e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare...

30
1 e-Procurement mit JBoss EJB Server und Apache Cocoon 2 e-Procurement mit JBoss EJB Server und Apache Cocoon 2 2 © 2001-2002 Orientation in Objects GmbH e-Procurement mit JBoss EJB Server und Apache Cocoon 2 eProcurement System eProcurement Prozesse Stammdaten Multivendor Katalog nach BMECat Produktdatenaustausch Geschäftsidee Realisierung KUNDE

Transcript of e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare...

Page 1: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

1

1e-Procurement mit JBoss EJB Server und Apache Cocoon 2

e-Procurement

mit

JBoss EJB Server

und

Apache Cocoon 2

2© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

eProcurement System

eProcurement

Prozesse

Stammdaten

Multivendor

Katalog nach BMECat

Produktdatenaustausch

Geschäftsidee Realisierung

KUNDE

Page 2: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

2

3© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Verwendete Technologien

• Servlet• JSP• EJB• JMS• JDBC• JavaMail• JNDI• ...

Fast gesamter Umfang der J2EE-Technologien+ zusätzlich XML Technologien (XSP, XSLT, ...)

J2EE + XML

4© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 3: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

3

5© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

SEU

• Xemacs (Code-Generatoren mitPerl ??Live-Demo EB codenaus vorgefertigtem Data mitDeployment??)

• Ant (Projekttemplate)• J2EE Deployment• JUnit• CVS (evtl. Auswertungstools,

Online Browsing)• Bugzilla (auch hier Auswertung

Entwicklung gefixter Bugs)

6© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Wechsel von make zu Ant

Integriert: CVS,JUnit, Reports;

Validierbar;Erweiterbar

(eigene Tasks)

BatchFlexibilität

JavaOS-spezifischPlatform

(Portabilität)

janeinMulti-threading

< 2 min> 20 minBuild-Dauer

Antmake

Page 4: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

4

7© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

• usage - zeigt an welche Targets verfügbar sind• compile - übersetzen der Java Quell Dateien• package - Java Archive erstellen• javadoc - Dokumentation erstellen• test - mögliche JUnit Tests starten• clean - löscht alle erzeugten Dateien (außer JavaDoc)• deploy - kopiert das Java Archive in die korrekten

Verzeichnisse• dist - erstellt eine auslieferbare Version mit allen

benötigten Verzeichnissen

Jakarta Ant als Build-Tool - Standard Targets

8© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Enterprise Project Template

Kann über CVS bezogen werden :• bin - ausführbare Dateien, Skripte• docs - Dokumentation und JavaDoc• libs - benötigte Java Archive (JAR‘s)• src - Java Quellen und Deployment Deskriptoren• web - Quell- bzw. Konfigurationsdateien für Web Front End

Befindet sich nicht im CVS :• build - erzeugte Dateien, jederzeit neu herstellbar• dist - Zielverzeichnis für Distribution

Page 5: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

5

9© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

J2EE Packaging

J2EE component

+ related files (Image-Dateien, Server-Utilities, ...)+ deployment descriptor (XML)

J2EE component

J2EE Application (Module)

Enterprise Bean Component (JAR)Web Component (WAR)Application Client Component (JAR)

. . . . . . . . . . . . .

. . . . . . . . . . . . .

J2EE ApplicationFinal Enterprise Solution(EAR)

10© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

JUnit als Test-Framework für EJBs

• Integration mit Ant (XML-Report Generierung undTransformation durch XSL)

• Suiten-Bildung (Create-, Ops-, Remove-Testsuiten)• Automatisierte Repository Checks iVm. Nightly Builds• Wichtig für Portierung auf anderen Application Server• Anzahl Test Cases: ~ 170

Page 6: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

6

11© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

JUnit Reportgenerierung bei Ant

TESTS-TestSuites.xml

TEST-...TestClassificationSystem.xml

TEST-...TestClassificationSystem.xml

TEST-....xml

12© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

JUnit Reportgenerierung bei Ant

+ ANT XSLStylesheets

TESTS-TestSuites.xml

Page 7: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

7

13© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Bugzilla

• Bug-Reporting Tool• Open Source• Bekannt durch Mozilla (Netscape Browser Grundstock)• Kunde testet mit Minimierung Test-Aufwand Entwickler

– Kostensenkung– Bessere Fehlerbeschreibungen– Prioritäten durch Kunde bestimmt

• Auswertungen für Projektleitung/Management• Verwaltung mehrerer Projekte möglich

– Sichtbarkeit einschränkbar

14© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 8: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

8

15© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Migration zu JBoss

• Warum– Bisher: Kommerzieller Application Server für Portal– Jetzt: Umwandlung von Portal zur Massenlösung -> Lizenzkosten++

• -> JBoss– Aktuelle Version: JBoss 2.4.3– Persistenz

• Nutzung server-spezifisches Feature (Nested Fields)• Java-JDBC-SQL Type Mapping

• Was mußte getan werden?– Server-spezifische Deskriptoren

• Finder• DB-Mapping• Resource Manager Connection Factories

• Vorteile:– Verwaltung der Runtime des Komplett-Systems durch eigenes CVS

Minimierung Installationsaufwand

16© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

JBoss Application Server

• Open Source• Vollständiger J2EE

Stack• Quelle: www.jboss.org

• JBossServer• JBossMQ• JBossCMP• JBossCX• JBossTX• JBossSX• JBossMX• JBossSOAP• JBossTest• JBossMail• JBossDoc• JBossMGT

Page 9: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

9

17© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Problem: grosse Attributmenge

Unternehmen

unternehmenID name vorname strasse ...

unternehmerID

vorname

strasse

plz

ort

...

name

18© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Nested Fields Feature

<<Entity Bean>>Unternehmen

unternehmenData

unternehmenID name vorname strasse ...

<<ValueObject>>UnternehmenData

unternehmenIDlieferAdresserechnungsAdresse...

Adresse

namevornamestrasseplzort

unternehmenID name vorname strasse ...

Page 10: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

10

19© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Auszug aus Deployment Descriptor

• EJB Standard-Deskriptor

<entity>

<ejb-name>Unternehmen</ejb-name> <home>de.oio...UnternehmenHome</home>

<remote>de.oio...Unternehmen</remote>

<ejb-class>

de.oio...UnternehmenBean

</ejb-class> <persistence-type>Container</persistence-type> <cmp-field>

<field-name>unternehmenID</field-name>

</cmp-field> <cmp-field>

<field-name>data</field-name> </cmp-field>

</entity>

• Server-spezifischer Deskriptor

<entity>

<ejb-name>Unternehmen</ejb-name> <cmp-field>

<field-name>data.firma</field-name> </cmp-field>

<cmp-field>

<field-name>data.adresse.strasse</field-name> </cmp-field>

<cmp-field>

<field-name>data.adresse.plz</field-name> </cmp-field>

<cmp-field> <field-name>data.adresse.ort</field-name> </cmp-field>

<cmp-field>

<field-name>data.website</field-name> </cmp-field> ...

</entity>

20© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 11: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

11

21© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Transformation mit XSLT

...<xsl:template match=“ARTIKEL"> <b><xsl:value-of select="NAME"/></b>, OrderUnit: <xsl:value-of select=„ORDER_UNIT"/><br/></xsl:template>...

...<ARTIKEL> <ARTIKEL_ID>10021</ARTIKEL_ID> <NAME>Bananenkarton</NAME> <ORDER_UNIT>Stück</ORDER_UNIT></ARTIKEL>...

<b>Bananenkarton</b>, OrderUnit: Stück<br/>

XML-Quelle

XSL-Stylesheet

Output

22© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

XSLTProzessor

XSLT Prozessor

news.html

news.txt

news.csv

docbook.xml

news.xml

html.xsl

txt.xsldocbook.xsl

csv.xsl

Page 12: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

12

23© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

XSLSheets

XSLSheets

XMLDokument

Idee: XSLT im Servlet

Web Server

Servlet Engine

XSLT Prozessor

XSLSheets

XSLSheets

XSLSheets

24© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 13: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

13

25© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Cocoon - Pipeline Model

article.xsp

article-standard.xsl

global2html.xsl

HTM

L-Serialiser

Generator

Transformer

Transformer

Serialiser

Generator Transformer Transformer Serialiser

26© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Ablauf

XSPGenerator

Daten

XSLTTransformator

XSLTTransformator

XMLDokument

Page Filter

XMLDokument

Global

Serializer

HTMLDokument

XMLDokument

XSP mitSQL Query

Serializer

XMLDokument

Filter View

Serializer

XMLDokument

Content View

Page 14: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

14

27© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Screenshot 1. ContentView

28© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Screenshot 2. Debug Pipe - FilterView

Page 15: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

15

29© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Screenshot HTML-Seite

30© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Cocoon Views

Client Cocoonrequest

?cocoon-view=debug

Client Cocoon

<map:view name="debug" from-label="debug"> <map:serialize type="xml"/></map:view><map:match pattern=".../*.xsp"> <map:act set="outpark"/> <map:act set="bkk"/> <map:generate type="serverpages"

src=".../pages/{1}.xsp"/> <map:transform src=".../filter/

{1}-standard.xsl"/> <map:label name=„debug"/> <map:transform src=".../style/

global2html.xsl"/> <map:serialize type="html"/></map:match>

Page 16: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

16

31© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Catalog-LösungB2B-Lösung

Integration JSP / XSP: Ziel

CocoonJSPJSP XSP XSP

Apache Webserver

Tomcat Servlet-Engine

Cocoon XSPXSPJSP

JSP

MS-SQL-ServerMS-SQL-Server

32© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 17: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

17

33© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Kombinierte Architektur

Cocoon

Datenbank

XSP XSPXSPXSP

ParserBean

Bestellung

EJB Taglib

Application ServerCocoon

Datenbank

Bestellung

EJB Taglib / Actions

ParserBean

Bestellung

XSP

Kunde

XSP XSP XSP

GUI ClientKommandozeileWeb Client Fremdsystem

articel.xsp

ESQL Taglib

34© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Trennung von Lese- und Schreibzugriffen

Artikel Tabelle

XSPeditarticle

Anzeige in der Viewper eSQL TagLibÄnderungen /

Schreibzugriffe(transaktional)

SBArticleService

EBArticle

XSPeditarticle

Action

Page 18: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

18

35© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Aufgabenverteilung

Enterprise JavaBeans• Geschäftsobjekte• Transaktionen• Umwandlung zwischen XML und Objekten

Cocoon• Präsentation• Reine Abfragen• Abfrage von Massendaten (mit SQL)• XML Dokumente erzeugen (z.B. BMECat Katalog)

36© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Logische Architektur

Client1. Generation

Client2. Generation

Client3. Generation

Datenbank

GeschäftsobjekteDaten

GeschäftsobjekteFunktionen

Prozesse übermehrere Geschäftsobjekte

HelperBean

Präsenation bzw.Präsentationslogik

Bean

ActionXSPJSP

EinkaeuferTabelle

BestellungTabelle

PositionTabelle

SBEinkaeuferService

EBPosition

SBBestellungService

SBPositionService

EBEinkäufer

EBBestellung

SBBestellService

Page 19: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

19

37© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

38© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Daten

Präsentationsschichtz.B. Cocoon mit XML,XSL und XSP

Anwendungsschichtz.B. EJB oder CORBA

Persistenzschichtz.B. RDBMS od. ODBMS

Erweiterte Drei-Schichten-Architektur

Logik StyleContent

Businesslogik

Page 20: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

20

39© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Cocoon-Actions

Client Cocoon

Front Controller

request

?cocoon-action=warenkorb-bestellen

delegate

MS SQL Server

get JBoss

Application Server

Warenkorb

BestellungPosition

create

Command /Action

Client Cocoon

<map:actionname="warenkorb-

bestellen"src="de.oio.outpark.cocoon.actions.WarenKorbBestellenAction"

/>

Warenkorb

Bestellung

Position

createWarenKorb

BestellenAction

40© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Sequenzdiagramm für MVC

Page 21: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

21

41© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

JSP

XSP-Frac Includer - Beispiel

XSP

XSP-Frac XSP-Frac

42© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Screenshot für einen Include

Page 22: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

22

43© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Custom Tag

<xsp:page language="java"

xmlns:catalog="http://www.oio.de/ catalog">

</catalog:get-warenkorb>

</xsp:page>

Client request

Cocoon

SQLTransformer

Custom TagLibClient

Catalog lib

44© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

Page 23: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

23

45© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

J2EE Patterns

• Composite View• View Helper (mit Java Beans als Helper Klassen)• Value Objects• Service Locator• Session Facade• Value List Handler (Katalog-Suche mit je 10 Treffern)• Service Activator ( MDB)

46© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Value Objects

DBPERSON

JBoss (EJB Server)

PersonBean(EntityBean)

Cocoon

XSP

PersonData(JavaBean)

Page 24: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

24

47© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Zugriff ohne Value Objects

48© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Zugriff mit Value Objects

Page 25: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

25

49© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

... <xsl:output method="text"/>

<xsl:template match="parameters">

Sehr geehrter <xsl:value-of select="parameter[@name='anrede']"/> <xsl:value-of select="parameter[@name='name']"/>

für Sie wurde wie folgt ein Account eingerichtet:

Username: <xsl:value-of select="parameter[@name='username']"/> Passwort: <xsl:value-of select="parameter[@name='passwort']"/>

</xsl:template>

<<Session Bean>>MailGenerator

EJB

getMailData()

Mailtext-Generierung mit XSLT

<parameters> <parameter name="anrede"> Herr </parameter> <parameter name="name"> Müller </parameter> <parameter name="username"> hmueller </parameter> <parameter name="passwort"> jdB3J21b </parameter></parameters>

buildParameterList()XSL

XSLXSL

getStyleSheet()

50© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Ersatz für Batchprozesse

JBoss Application Server

WebmilesEJB

WebmilesTimer

getLocalData

sendLocalDataToWebmiles()

Page 26: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

26

51© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Szenario für asynchrone Benachrichtigung

• Beispiel: Information von Lieferanten über neue Bestellung• Problem:

– Bei grossen Bestellungen (Sammelbestellungen) müssen evtl.viele Lieferanten benachrichtigt werden

– Blockierung des Clients– Benachrichtigung stellt sich für den User des Systems als

autonomen Prozess dar.• Lösung:

– Externer JMS Client (bei Application Servern ohne Unterstützungfür MessageDrivenBeans)

– MDB

52© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Szenario mit integriertem MDB

JMS- Provider

BestellungMailBean (MDB)

Lieferant1

Lieferant2

BestellungServiceBean

Bestellung

PositionPosition

MailServer

ClientBestellungServiceBean

Bestellung

PositionPosition

BestellungMailBean (MDB)

Lieferant1

Lieferant2

Page 27: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

27

53© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Vergleich Vorher – Nachher

54© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Entstandener zusätzlicher Aufwand

• Implementierung onMessage()– kein zusätzlicher Aufwand aufgrund

• des bereits implementierten MessageListener Interface• eines sowohl Client- als auch Server-seitig genutzten

SessionBean Creators• des J2EE Patterns Service Locator

• Deployment MessageDrivenBean– Erzeugung eines Deployment Descriptors– Konfiguration des Application Servers für den Zugriff auf das neue

Topic

Fazit: Gesamtaufwand < 1h

Page 28: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

28

55© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Versenden von PDF-Dokumenten

Container

EJB Server

AusschreibungService

JMSClient

Topic

Brief Versender

JavaMail

FOP

JMSClient

Xalan

JMSClient

Xalan

FOP

JavaMail

GIFs

Ausschreibung2fo.xsl

56© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Transaktionsklammern beim BMECat Import

• Problem: zu importierender Katalog kann sehr gross sein• Lösungsansatz:

– nicht um kompletten Katalog eine Transaktion legen, sondern umeinzelne logische Bestandteile des Kataloges

<?xml version="1.0" encoding="ISO-8859-1"?><!-- DOCTYPE BMECAT SYSTEM "bmecat_new_catalog.dtd" --><BMECAT version="1.01"><HEADER> <CATALOG> <CATALOG_ID>eClass40</CATALOG_ID> ... </CATALOG>

<BUYER> ... </BUYER>

<SUPPLIER> ... </SUPPLIER>

</HEADER><T_NEW_CATALOG> <CATALOG_GROUP_SYSTEM> <GROUP_ID>23170204</GROUP_ID> </CATALOG_GROUP_SYSTEM>

<ARTICLE mode="new"> <SUPPLIER_AID>6ES7031-0AA00-8AB0</SUPPLIER_AID> <ARTICLE_DETAILS> ... </ARTICLE_DETAILS> <ARTICLE_PRICE_DETAILS> <ARTICLE_PRICE> ... </ARTICLE_PRICE> ... </ARTICLE_PRICE_DETAILS> </ARTICLE>

<ARTICLE_TO_CATALOGGROUP_MAP> <ART_ID>6ES7031-0AA00-8AB0</ART_ID> <CATALOG_GROUP_ID> 23170204</CATALOG_GROUP_ID> </ARTICLE_TO_CATALOGGROUP_MAP>

</T_NEW_CATALOG></BMECAT>

Page 29: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

29

57© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Überblick

• Software Entwicklungsumgebung• Application Server• XML based Web Development• Cocoon 2.0• Systemarchitektur• Aspekte der Client Architektur• Aspekte der Server Architektur• Fazit

58© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Fragen

Page 30: e-Procurement · Enterprise Project Template Kann über CVS bezogen werden : • bin - ausführbare Dateien, Skripte • docs - Dokumentation und JavaDoc • libs - benötigte Java

30

59© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Generischer BAPI Aufruf mit Cocoon

SAP-System

XMLDokument

XMLDokument

BAPI Name

BAPI Meta Daten

BAPI ausführen

BAPI Rückgabe

Formular

Formular

Formular

60© 2001-2002 Orientation in Objects GmbHe-Procurement mit JBoss EJB Server und Apache Cocoon 2

Vielen Dank für IhreAufmerksamkeit!

Torben Jäger [email protected] Köhler [email protected] http://www.oio.de