Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite...

42
Anwendungsdesign, das jedes SOA Anwendungsdesign, das jedes SOA Anwendungsdesign, das jedes SOA Anwendungsdesign, das jedes SOA- - -Suite Projekte zum Suite Projekte zum Suite Projekte zum Suite Projekte zum Erfolg führt! Erfolg führt! Erfolg führt! Erfolg führt! Berthold Maier, Enterprise Architect

Transcript of Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite...

Page 1: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Anwendungsdesign, das jedes SOAAnwendungsdesign, das jedes SOAAnwendungsdesign, das jedes SOAAnwendungsdesign, das jedes SOA----Suite Projekte zum Suite Projekte zum Suite Projekte zum Suite Projekte zum Erfolg führt!Erfolg führt!Erfolg führt!Erfolg führt!Berthold Maier, Enterprise Architect

Page 2: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

The Team: Masons-of-SOA

� Bernd Trops Bernd Trops Bernd Trops Bernd Trops ((((TalendTalendTalendTalend):):):):[email protected]@[email protected]@talend.com

� Clemens UtschigClemens UtschigClemens UtschigClemens Utschig----Utschig (BoehringerUtschig (BoehringerUtschig (BoehringerUtschig (Boehringer----Ingelheim):Ingelheim):Ingelheim):Ingelheim):clemens.utschigclemens.utschigclemens.utschigclemens.utschig----utschig@boehringerutschig@boehringerutschig@boehringerutschig@boehringer----ingelheim.comingelheim.comingelheim.comingelheim.com

� Berthold Berthold Berthold Berthold Maier Maier Maier Maier (T(T(T(T----Systems):Systems):Systems):Systems):[email protected]@[email protected]@t----systems.comsystems.comsystems.comsystems.com

� Hajo Hajo Hajo Hajo Normann Normann Normann Normann (Accenture):(Accenture):(Accenture):(Accenture):[email protected]@[email protected]@[email protected]@[email protected]@accenture.com

� Torsten Winterberg (OPITZ CONSULTING):Torsten Winterberg (OPITZ CONSULTING):Torsten Winterberg (OPITZ CONSULTING):Torsten Winterberg (OPITZ CONSULTING):[email protected]@[email protected]@opitz----consulting.comconsulting.comconsulting.comconsulting.com

� Jürgen Kress (Oracle Corp.)Jürgen Kress (Oracle Corp.)Jürgen Kress (Oracle Corp.)Jürgen Kress (Oracle Corp.)[email protected] [email protected] [email protected] [email protected]

� Guido Schmutz (Guido Schmutz (Guido Schmutz (Guido Schmutz (TrivadisTrivadisTrivadisTrivadis):):):):[email protected]@[email protected]@trivadis.com

� Danilo Schmiedel (OPITZ CONSULTING):Danilo Schmiedel (OPITZ CONSULTING):Danilo Schmiedel (OPITZ CONSULTING):Danilo Schmiedel (OPITZ CONSULTING):[email protected]@[email protected]@opitz----consulting.comconsulting.comconsulting.comconsulting.com

www.soawww.soawww.soawww.soa----community.comcommunity.comcommunity.comcommunity.com

Page 3: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Ausgangssituation - Modelle …

ZuasZuasZuasZuas ())())())())AussteuerungAussteuerungAussteuerungAussteuerung

order IDorder IDorder IDorder ID

ZAS 5.() Order ZAS 5.() Order ZAS 5.() Order ZAS 5.() Order anlageanlageanlageanlageUserUserUserUser

SDFÖLKASL‘DFKAS‘DManagement)

Success?

Businesserror?

ZAS 1.19. ZAS 1.19. ZAS 1.19. ZAS 1.19. fdajälsjdfläasjdfsdadffdajälsjdfläasjdfsdadffdajälsjdfläasjdfsdadffdajälsjdfläasjdfsdadf

sonstwassonstwassonstwassonstwasVoIP phone)VoIP phone)VoIP phone)VoIP phone)SD;FKÖ’DSAFK’A’SD’’

device must be deleted.

Sonistger Demo Text deviceAlles nur für die Demosame - but this makes nosense)

[yes]

[no]

[no]

[yes]Order erweiternOrder erweiternOrder erweiternOrder erweitern

Order anlegenOrder anlegenOrder anlegenOrder anlegen

Order ausliefernOrder ausliefernOrder ausliefernOrder ausliefernOrder an Order an Order an Order an

LiferantenLiferantenLiferantenLiferanten

Orderdaten prüfenOrderdaten prüfenOrderdaten prüfenOrderdaten prüfen

Order genehmigenOrder genehmigenOrder genehmigenOrder genehmigen 2484 Prozess-

Diagramme in

ausführbare BPEL

Order Order Order Order abschiessenabschiessenabschiessenabschiessen

End(Businesserror)

End

Continueprocess?

ZAS 1.0.5. ZAS 1.0.5. ZAS 1.0.5. ZAS 1.0.5. Update Satin Update Satin Update Satin Update Satin

Nicht genau definiertNicht genau definiertNicht genau definiertNicht genau definiert

/)dsafß0asdf/)dsafß0asdf/)dsafß0asdf/)dsafß0asdfDelete VoIP Delete VoIP Delete VoIP Delete VoIP

Device in OPSADevice in OPSADevice in OPSADevice in OPSA

device must be deleted. DSFASKFD’SADKFAS’’’’DSASTAPS again)

ZAS 1.0.32. ZAS 1.0.32. ZAS 1.0.32. ZAS 1.0.32. SonstwasSonstwasSonstwasSonstwas

address from ACSaddress from ACSaddress from ACSaddress from ACS

Order mustbe deleted?

zur DemosdafasdfdsaffSdaüpfkasüdpkf#ads+

fllasdzur Demo

Transaction block

Ein Test zur Demonot compensate. Save Error (e.g. in order sdölfasödfdsafdsafand continue with process.

[yes]

[no]

[yes]

[no]

ausführbare BPEL

Prozesse überführen!

Page 4: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Quantitative Projektdarstellung …

� 41 41 41 41 Geschäftsprozesse Geschäftsprozesse Geschäftsprozesse Geschäftsprozesse

� 113 113 113 113 Schnittstellen Schnittstellen Schnittstellen Schnittstellen ---- WSDLWSDLWSDLWSDL

� 5778 5778 5778 5778 Service Operationen (1200 synchron)Service Operationen (1200 synchron)Service Operationen (1200 synchron)Service Operationen (1200 synchron)

� 15200 15200 15200 15200 ServiceServiceServiceService----AufrufeAufrufeAufrufeAufrufe

� 1111----276 276 276 276 Wiederverwendungen je Serviceoperation Wiederverwendungen je Serviceoperation Wiederverwendungen je Serviceoperation Wiederverwendungen je Serviceoperation

� 35 35 35 35 SCA SCA SCA SCA ---- Service Composites Service Composites Service Composites Service Composites AssembliesAssembliesAssembliesAssemblies

� 960 960 960 960 Prozesse in BPELProzesse in BPELProzesse in BPELProzesse in BPEL

� 3500 3500 3500 3500 Systemtestfälle Systemtestfälle Systemtestfälle Systemtestfälle

� 4000 4000 4000 4000 UnitUnitUnitUnit----TestsTestsTestsTests

� 350 350 350 350 BOM Datenobjekte (XSD BOM Datenobjekte (XSD BOM Datenobjekte (XSD BOM Datenobjekte (XSD ComplexTypesComplexTypesComplexTypesComplexTypes) ) ) )

� 6248 6248 6248 6248 Servicenachrichten aus BOM (XSD Servicenachrichten aus BOM (XSD Servicenachrichten aus BOM (XSD Servicenachrichten aus BOM (XSD ComplexTypesComplexTypesComplexTypesComplexTypes))))

� 30GB/Tag30GB/Tag30GB/Tag30GB/Tag BPEL BPEL BPEL BPEL InstanzzuwachsInstanzzuwachsInstanzzuwachsInstanzzuwachs im Dehydrationim Dehydrationim Dehydrationim Dehydration----StoreStoreStoreStore

19.02.2013 4

Page 5: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Notwendige Konzepte vor dem Start …

BussinessModel 2

ExecutionTest DrivenDevelopment

Fehler-Management

SOA Design-Pattern

Wiederverwendung

GUI -Integration

Property Management

DevOps -Betreib und

Wartung

19.02.2013 5

Metadaten Management

Validierung

ESB/OSB

BuildManagement

Prozess / Update und

Migration

Systemumgebung + HA

Purging

Page 6: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Umsetzung in BPEL Prozesse: So nicht …

… deutet auf viele Varianten hin. Geht das?

… ist

6

t orchestrierend

Page 7: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

DesignentscheidungenDesignentscheidungen

Page 8: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Organisation der Entwicklung und Wiederverwendung im Einklang!Organisation der Entwicklung und Wiederverwendung im Einklang!Organisation der Entwicklung und Wiederverwendung im Einklang!Organisation der Entwicklung und Wiederverwendung im Einklang!

Add f irst manager to Add f irst manager to Add f irst manager to Add f irst manager to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

Add f irst assistant to Add f irst assistant to Add f irst assistant to Add f irst assistant to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

C onnect fir st manager C onnect fir st manager C onnect fir st manager C onnect fir st manager

w i th first assistant in the w i th first assistant in the w i th first assistant in the w i th first assistant in the

gr oupgr oupgr oupgr oup

Success?

Success?

Start

C r eate C r eate C r eate C r eate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

[no]

[yes]

[no]

[yes]

[no]

[yes]

[no]

Add f irst manager to Add f irst manager to Add f irst manager to Add f irst manager to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

Add f irst assistant to Add f irst assistant to Add f irst assistant to Add f irst assistant to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

C onnect fir st manager C onnect fir st manager C onnect fir st manager C onnect fir st manager

w i th first assistant in the w i th first assistant in the w i th first assistant in the w i th first assistant in the

gr oupgr oupgr oupgr oup

Success?

Success?

Start

C r eate C r eate C r eate C r eate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

[no]

[yes]

[no]

[yes]

[no]

[yes]

[no]

Add f irst manager to Add f irst manager to Add f irst manager to Add f irst manager to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

Add f irst assistant to Add f irst assistant to Add f irst assistant to Add f irst assistant to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

C onnect fir st manager C onnect fir st manager C onnect fir st manager C onnect fir st manager

w i th first assistant in the w i th first assistant in the w i th first assistant in the w i th first assistant in the

gr oupgr oupgr oupgr oup

Success?

Success?

Start

C r eate C r eate C r eate C r eate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

[no]

[yes]

[no]

[yes]

[no]

[yes]

[no]

Teilprozess A ●●●●●●●● ●●●●●●●●❡❡❡❡❡❡❡❡

8

Prozess 1Prozess 1Prozess 1Prozess 1

C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant

w i th first manager in the w i th first manager in the w i th first manager in the w i th first manager in the

gr oupgr oupgr oupgr oup

U pdate InventoryU pdate InventoryU pdate InventoryU pdate Inventory

U pdate U pdate U pdate U pdate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

End

(Ok)

End (Internal error)

[yes]

[no]

[yes]

[no]

[yes]

[no]

C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant

w i th first manager in the w i th first manager in the w i th first manager in the w i th first manager in the

gr oupgr oupgr oupgr oup

U pdate InventoryU pdate InventoryU pdate InventoryU pdate Inventory

U pdate U pdate U pdate U pdate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

End

(Ok)

End (Internal error)

[yes]

[no]

[yes]

[no]

[yes]

[no]

C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant

w i th first manager in the w i th first manager in the w i th first manager in the w i th first manager in the

gr oupgr oupgr oupgr oup

U pdate InventoryU pdate InventoryU pdate InventoryU pdate Inventory

U pdate U pdate U pdate U pdate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

End

(Ok)

End (Internal error)

[yes]

[no]

[yes]

[no]

[yes]

[no]

Teilprozess B

Teilprozess C

Teilprozess X

Prozess 2Prozess 2Prozess 2Prozess 2 Prozess 3Prozess 3Prozess 3Prozess 3

●●●●●●●●

❡❡❡❡❡❡❡❡

●●●●●●●●

❡❡❡❡❡❡❡❡

❡❡❡❡❡❡❡❡

●●●●●●●●

●●●●●●●●

❡❡❡❡❡❡❡❡

❡❡❡❡❡❡❡❡

Page 9: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Merhstufiges Modell erlaubt hohe Wiederverwendung durch Rekombination der BPEL-Prozesse

ProzessProzessProzessProzess

Technische & fachliche Validierung

Durchführbarkeit und Korrektheit des Auftrags prüfen

Fachliche ProzessierungOrchestrierung und

PhasePhasePhasePhase ProzessschrittProzessschrittProzessschrittProzessschritt

(BLW_004)Kundenauftrag gegen Rahmenv ertrag prüfen

Start

(3)Prüfen, ob das Produkt,

d.h. die Materialnummernrahmenvertragskonform

sind

(1)Prüfen, ob der

Eingangskanal zulässigist

(2)Prüfen, ob

Rahmenv ertragsprüfungumgangen w ird

[OK]

[OK]

[nicht zulässig]

[Materialnummernnicht konform]

[GF = Leistungssperre]

Jede Phase stellt einen orchestrieren Teilprozess

als SOA-Service dar Jeder Prozessschritt als wiederverwendbarer SOA

Service

Reine fachliche Orchestrierung von

SOA Service

1

2

3

Hilfsservice als wiederverwendbare SOA

Service

4

19.01.2009

Quelle: Michael Mehl, T-Systems

9

Orchestrierung und Aussteuerung des Auftrags in betroffene Zielsysteme

AbschlussAnpassung/Aktualisierung Bestandssysteme

AusnahmebehandlungOK

Abweisung

(6)Prüfen, ob eine BKTO im

Auftrag v orhanden ist

(7a)Prüfen, ob die BKTO Teildes Rahmenv ertrags ist

(7b)BKTO aus demRahmenv ertrag

auswählen und imWitaAuftrag speichern

(4)Prüfen, ob der

Geschäftsfall in Bezug aufdas Produkt zulässig ist

(5)Prüfen, ob der

Kundenwunschtermin imv ereinbarten Zeitrahmen

liegt

(8)Prüfen, ob der

Kollokationsraumrahmenvertragskonform

ist

(9)Zusatzvereinbarungen

prüfen

(10)Planungsabsprachen

prüfen

[OK]

[OK]

[BKTO nichtermi ttelbar]

[OK]

[OK]

[OK]

[OK]

[BKTO nichtvorhanden & nur GFEB, RCW, STO]

[BKTOvorhanden]

[OK]

[KWT nicht imZei trahmen]

[Nicht OK]

[nicht OK]

[Geschäftsfall für Produktnicht zulässig]

[BKTO nicht imRahmenvertrag]

[nicht konform]

[GF KUE,LAE, LAFP,LS ohneBKTO]

Service

AusnahmebehandlungOK

Abweisung

(6)Prüfen, ob eine BKTO im

Auftrag vorhanden ist

(7a)Prüfen, ob die BKTO Teildes Rahmenvertrags ist

(7b)BKTO aus demRahmenvertrag

auswählen und imWitaAuftrag speichern

vereinbarten Zeitrahmenliegt

(8)Prüfen, ob der

Kollokationsraumrahmenvertragskonform

ist

(9)Zusatzvereinbarungen

prüfen

(10)Planungsabsprachen

prüfen

[OK]

[OK]

[BKTO nichtermittelbar]

[OK]

[OK]

[BKTO nichtvorhanden & nur GFEB, RCW, STO]

[BKTOvorhanden]

[OK]

[Nicht OK]

[nicht OK]

[BKTO nicht imRahmenvertrag]

[nicht konform]

[GF KUE,LAE, LAFP,LS ohneBKTO]

Page 10: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/Async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»

Backend Service

«system»

Siemens

«system»

Avaya

«system»

other «external system»

TAX

«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

Page 11: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

ProcessPhase

ProcessPhase

ProcessPhase

ProzessProzessProzessProzess

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system»

SAP

«system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

Process Step Process Step Process StepProcess Step

Adaption Adaption Adaption Adaption Adaption

Page 12: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

Prozess

BPSBPSBPSBPS

BASBASBASBAS

BDSBDSBDSBDS

Gib dem Gib dem Gib dem Gib dem „Kind“ „Kind“ „Kind“ „Kind“ einen Namen einen Namen einen Namen einen Namen …………

Manifestieren Manifestieren Manifestieren Manifestieren der Architektur der Architektur der Architektur der Architektur ----Prinzipien Prinzipien Prinzipien Prinzipien • ProjektspracheProjektspracheProjektspracheProjektsprache• ProjektstrukturProjektstrukturProjektstrukturProjektstruktur• DeploymentstrukturDeploymentstrukturDeploymentstrukturDeploymentstruktur• TestmoduleTestmoduleTestmoduleTestmodule

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system» «system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

ProcessStep

ProcessStep

ProcessStep

ProcessStep

Adaption Adaption Adaption Adaption Adaption

BASBASBASBAS

BCSBCSBCSBCSBSSBSSBSSBSS

BESBESBESBES

SAP

Page 13: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system»

Avaya

«system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

Page 14: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Komponenten- und Domänenschnitt

Order Order Order Order MediatorMediatorMediatorMediator

<<Mediator Component>>

OrderOrderOrderOrderFulfillmentFulfillmentFulfillmentFulfillment

ShipmentShipmentShipmentShipment

Create OrderCreate OrderCreate OrderCreate Order

<<BPEL Component>> OrderOrderOrderOrder

OrderStatusOrderStatusOrderStatusOrderStatus

ShipOrderShipOrderShipOrderShipOrder

<<BPEL Component>>

<<BPEL Component>>

WSDLWSDLWSDLWSDL

1..n1..n1..n1..n

OrderValidationOrderValidationOrderValidationOrderValidation

Approval Approval Approval Approval

<<HumanTaskComponent>>

CreditValidatingCreditValidatingCreditValidatingCreditValidating

FullfilmentFullfilmentFullfilmentFullfilment

ShipmentShipmentShipmentShipment

LoggingLoggingLoggingLogging

Select Select Select Select ManufacturerManufacturerManufacturerManufacturer

<<BPEL Component>>

<<Spring Component>>

OASIS ervice Component Architecture (SCA) Tutorial : Part 2 Mike Edwards – IBM , Anish Karmarkar – Oracle, Jim Marino – BEA

SOAPRMIJavaJMS

SOAPRMIJavaJMS

1..n1..n1..n1..n

Page 15: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

BPSBPSBPSBPS

BASBASBASBAS

BDSBDSBDSBDS

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system»

Avaya

«system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

BASBASBASBAS

BCSBCSBCSBCS

BSSBSSBSSBSS

BESBESBESBES

Page 16: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

LoggingBSSBSSBSSBSS

Trennen der Querschnittsaspektevom fachlichen Code …

• Eigenständige Komponenten

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system»

Avaya

«system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

Configuration

Serialization

Coordination

Page 17: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Querschnittsaspekte –Policies für Logging, Faultmanagment und Security

confidentiality

<PolicySetPolicySetPolicySetPolicySet>

@provides=“confidentiality,

BindingBindingBindingBinding

CompositeCompositeCompositeComposite

ComponentComponentComponentComponentserviceserviceserviceservice referencereferencereferencereference

Web ServicesWeb ServicesWeb ServicesWeb Services

JCAJCAJCAJCA

JMSJMSJMSJMS

…………

intentsintentsintentsintents

IntentsIntentsIntentsIntents

Interaction Interaction Interaction Interaction PolicyPolicyPolicyPolicy

Interaction Interaction Interaction Interaction PolicyPolicyPolicyPolicy

Implementation Implementation Implementation Implementation PolicyPolicyPolicyPolicy

IntentsIntentsIntentsIntents

IntentsIntentsIntentsIntents

confidentiality

integrity

exactlyOnce

@provides=“confidentiality,integrity,exactlyOnce”

Policies

locate

WS-Policy

@Bindings=“WebServices”

● Querschnittsaspekte wie Security, Fehlerlogging, Retry, etc. sollte immer als Aspekte behandelt werden und per Policies an die Komponenten dekoriert werden

OASIS ervice Component Architecture (SCA) Tutorial : Part 2 Mike Edwards – IBM , Anish Karmarkar – Oracle, Jim Marino – BEA

Page 18: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Interaction

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

BPSBPSBPSBPS

BASBASBASBAS

BDSBDSBDSBDS

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»Backend Service

«system»

Siemens

«system»

Avaya

«system»

other«external system»

TAX«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

CompositeCompositeCompositeComposite

ComponentComponentComponentComponent referencereferencereferencereferenceserviceserviceserviceservice

BASBASBASBAS

BCSBCSBCSBCS

BSSBSSBSSBSS

BESBESBESBES

Page 19: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

CDM

BCS = Service-AdaptionStandardized Service Definitions across Applications

3rd Party

GetVertrag

Service Adapter

Business Aktivity Service

GetVertrag

• Service-Composition bzw. Routing der erforderlichen Low-Level Service

• Maximale lose Kopplung durch Transformation der System Daten, Sicherheit, Protokoll

CDM CDM

GetVertrag

Service Adapter

3rd Party

GetVertrag

ServiceAT AT AT

A

LogicalAdapter

Service Adapter

• Hidden Backend – Integration / Interoperation mit Backend Systemen

• Gekapselte interne Nutzung der technischen Adapter3rd

IMS

Adapter ServiceAT AT AT

Oracle, TIBCO, SAP, …

Adapter

3rd CRM

3rd SAP

Page 20: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Architekturentscheidungen: KopplungsgradArchitekturentscheidungen: Kopplungsgrad

VerfügbarkeitVerfügbarkeitVerfügbarkeitVerfügbarkeit

LaufzeitLaufzeitLaufzeitLaufzeit

19.02.2013 20

eng eng eng eng ---- syncsyncsyncsync lose lose lose lose ---- asyncasyncasyncasyncKopplungsgradKopplungsgradKopplungsgradKopplungsgrad

LaufzeitLaufzeitLaufzeitLaufzeit

EinflußnahmeEinflußnahmeEinflußnahmeEinflußnahme

Page 21: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Frontend tier

Integrationtier

«schema»

Business data

Sync/Async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

BDS BDS BDS BDS ---- SyncSyncSyncSyncBDS BDS BDS BDS ---- SyncSyncSyncSync

BPSBPSBPSBPSBPSBPSBPSBPSSyncSyncSyncSync////AsyncAsyncAsyncAsync

MMMMessage EEEExchange PPPPattern

• Vorzugsweise async. bei Prozessen• Kategorieabhängig• Sync/Async Pattern für

Interaktionskomponenten Hier keine asynchrone Aktivitäten • Pick • Receive• Wait

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»

Backend Service

«system»

Siemens

«system»

Avaya

«system»

other «external system»

TAX

«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

BAS BAS BAS BAS ---- AsyncAsyncAsyncAsyncBAS BAS BAS BAS ---- AsyncAsyncAsyncAsync

BCSBCSBCSBCS---- AsyncAsyncAsyncAsyncBCSBCSBCSBCS---- AsyncAsyncAsyncAsyncBSS BSS BSS BSS ---- AsyncAsyncAsyncAsyncBSS BSS BSS BSS ---- AsyncAsyncAsyncAsync

BES BES BES BES ---- SyncSyncSyncSyncBES BES BES BES ---- SyncSyncSyncSync

Page 22: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Daten, Nachrichten, Typen, Entitäten usw. in der SOADaten, Nachrichten, Typen, Entitäten usw. in der SOA

Page 23: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Modelle und Sprachen

KlasseKlasse

KlasseKlasse KlasseKlasse KlasseKlasseKlasseKlasse

BOM / CDMBOM / CDMBOM / CDMBOM / CDM

KlasseKlasse

KlasseKlasseSOM SOM SOM SOM 1111

KlasseKlasse

SOM 2SOM 2SOM 2SOM 2

KlasseKlasse

SOM 3SOM 3SOM 3SOM 3KlasseKlasse

KlasseKlasse

SOM 4SOM 4SOM 4SOM 4

19.01.2009Quelle: Michael Mehl, T-Systems 23

System 2System 2System 2System 2DomäneDomäneDomäneDomäne / System / System / System / System 2222System 1System 1System 1System 1DomäneDomäneDomäneDomäne / System / System / System / System 1111

Service 1 Service 2 Service 3 Service 4Projekt (xxx)

SchnittstelleSchnittstelleSchnittstelleSchnittstelle AAAA

KlasseKlasse

KlasseKlasse KlasseKlasse

KlasseKlasse

ASBO 1ASBO 1ASBO 1ASBO 1 ASBO 2ASBO 2ASBO 2ASBO 2AdapterAdapterAdapterAdapter

MappingMapping

Page 24: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Common Data Model (CDM) & Service Data Model

� In der lokalen Prozessdomäne wird eine stabiles Kommunikations- und Objektmodell aufgebaut

� Verlinken mit semantischem Fachmodell erfolgt per XML-Annotation

� Generierung der feingranularen XML, Java etc. Artefakten aus den UML Modellen

� Domänenübergreifend wird eine Kopplung über den BCS Adapter (Transformation bez. Lifecyclemanagment) hergestellt

� Nachrichten = Komposition aus Basisobjekten und BasisStrukturen

� Nachrichten tauschen Referenzen (ID‘s) aus und transiente Prozess-Informationen. Der Zustand eines atomaren Services wird immer in den Backendsystemen gehalten.

Service-Kommunikation

AktivitätsserviceAktivitätsservice

VertragskündigungVertragskündigungVertragskündigungVertragskündigung

nehme Grunddaten nehme Grunddaten nehme Grunddaten nehme Grunddaten neu aufneu aufneu aufneu auf

eeeeuuuueeeerrrrnnnnuuuummmmmmmmeeeerrrr

nnnneeeeuuuu

aaaauuuuffff

nnnneeeehhhhmmmmeeee

SSSStttteeeeuuuueeeerrrrnnnnuuuummmmmmmmeeeerrrr

nnnneeeeuuuu

aaaauuuuffff

vergebe vergebe vergebe vergebe

SteuernummerSteuernummerSteuernummerSteuernummer

NachrichtNachrichtNachrichtNachrichtKopfKopfKopfKopf

Referenzdaten (Schlüssel)Referenzdaten (Schlüssel)Referenzdaten (Schlüssel)Referenzdaten (Schlüssel)

Transiente DatenTransiente DatenTransiente DatenTransiente Daten

1 2 3

BDSBDSBDSBDS BDSBDSBDSBDS

VertragVertrag

Vertrag

Page 25: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Service- und Datenmodellstruktur

sd listLineFeatures

Inventory

Subscriber

(from BUC 1.18

BPS PhoneServiceBAS CUCMAdapter

selectMenuCfb()

l istLineFeatures(ListLineFeaturesType) :ListLineFeaturesResponseType

class CCLibrary temp

«ACC»Line

«BCC»+ Id :Identifier

«ACC»SpeedDial

«BCC»+ Label :Name+ Target :SimplePhoneNumber

«ACC»Dev ice

«BCC»+ IpAddress :Value

Phone Services)+ Id :Identifier+ Number :SimplePhoneNumber

«ACC»PhoneProfile

«BCC»+ Id :Identifier+ Pin :Value+ CallWaiting :State+ PinLock :State

«ABIE»BIELibrary::

Qualified_Phone

«BBIE»+ Id :Identifier

«ABIE»BIELibrary::Id_Phone

«BBIE»+ DeviceName :Text+ Id :Identifier

+ Target :SimplePhoneNumber+ Index :Numeric

«ABIE»BIELibrary::Pin_Phone

«BBIE»+ Id :Identifier+ Pin :Text+ DeviceName :Text

«ACC»BIELibrary::

Pinlock_Phone

«BCC»+ Id :Identifier+ DeviceName :Text+ PinLock :State

«ABIE»BIELibrary::Simple_Phone

«BBIE»+ Id :Identifier+ IpAddress :Text+ Pin :Text+ DeviceName :Text+ CallForwarding :State+ PinLock :State

+ IpAddress :Value+ DeviceName :Value+ Id :Identifier

«basedOn»

+basedOn 0..1

«basedOn»

+basedOn

0..1

«ASCC»

0..*

«ASCC»

0..*

«basedOn» «basedOn»

«ASCC»

«basedOn»

Page 26: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

SOA Hierarchical View

«service bus»

Service Components

SOAPHTTP/XMLRMI

Business Process Engine

Persistence

SOAP

Process

Subprocess (optional)

Frontend tier

Integrationtier

«schema»

Business data

Sync/async

JPA

«guilogic»

Rich Client

MobilePhone

Web Dashboard

´Native System Interfaces Business Applications

Step Step Step

«service bus»

«service facade»

Backend Service

«system»

Siemens

«system»

Avaya

«system»

other «external system»

TAX

«external system»

other

«adap... «adap... «adap... «adap... «adap...

Step

Integrationtier

Backend tier

«schema»Process data

«instance»

dehyd. store

Page 27: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

FehlermanagmentFehlermanagment

01.04.2010B. Rederlechner / Bundesanstalt für Arbeit, März 2011 27

Der LeitstandDer LeitstandDer LeitstandDer Leitstand

Page 28: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Fehlermanagement in BPEL

� AsynchronitätAsynchronitätAsynchronitätAsynchronität erfordert zusätzliche Konzepteerfordert zusätzliche Konzepteerfordert zusätzliche Konzepteerfordert zusätzliche Konzepte

� MediatorMediatorMediatorMediator---- Funktioniert nichtFunktioniert nichtFunktioniert nichtFunktioniert nicht

� Konzept für Konzept für Konzept für Konzept für ReceiveReceiveReceiveReceive

� Propagieren des Fehler durch mehrere Schichten Propagieren des Fehler durch mehrere Schichten Propagieren des Fehler durch mehrere Schichten Propagieren des Fehler durch mehrere Schichten

� FaultFaultFaultFault----PolicyPolicyPolicyPolicy----Framework kann nicht verwendet werden Framework kann nicht verwendet werden Framework kann nicht verwendet werden Framework kann nicht verwendet werden

� End2End End2End End2End End2End LoggingLoggingLoggingLogging (von GUI bis in die DB) (von GUI bis in die DB) (von GUI bis in die DB) (von GUI bis in die DB) Meldung an Meldung an Meldung an Meldung an

� BPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendig� BPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendigBPEL Designvorlagen und Basisimplementierung notwendig

� Kapseln und weiterreichen Kapseln und weiterreichen Kapseln und weiterreichen Kapseln und weiterreichen

� Erwartete Fehler = <Business>FaultBusiness>FaultBusiness>FaultBusiness>Fault

� Unerwartete Fehler = UnexpectedFaultUnexpectedFaultUnexpectedFaultUnexpectedFault

� ExceptionsExceptionsExceptionsExceptions automatisiert durch die BPELautomatisiert durch die BPELautomatisiert durch die BPELautomatisiert durch die BPEL----Ebenen zu tragenEbenen zu tragenEbenen zu tragenEbenen zu tragen

� Muss jede Muss jede Muss jede Muss jede Schnittstelle Schnittstelle Schnittstelle Schnittstelle WSDLWSDLWSDLWSDL----Fault Fault Fault Fault unexpectedFault mit dem mit dem mit dem mit dem MessagetypMessagetypMessagetypMessagetyp NgxFaultMsg definierendefinierendefinierendefinieren

� Jeder BusinessFault Jeder BusinessFault Jeder BusinessFault Jeder BusinessFault muss den muss den muss den muss den MessagetypMessagetypMessagetypMessagetyp NgxFaultMsg implementieren implementieren implementieren implementieren

� Jeder BusinessFault eine WSDLJeder BusinessFault eine WSDLJeder BusinessFault eine WSDLJeder BusinessFault eine WSDL----Fault Fault Fault Fault mit dem zugehörigen mit dem zugehörigen mit dem zugehörigen mit dem zugehörigen MessagetypMessagetypMessagetypMessagetyp haben.haben.haben.haben.

� z.B. z.B. z.B. z.B. CustomerNotFoundErrorCustomerNotFoundErrorCustomerNotFoundErrorCustomerNotFoundError ------------ > > > > CustomerNotFoundErrorMsgCustomerNotFoundErrorMsgCustomerNotFoundErrorMsgCustomerNotFoundErrorMsg extendsextendsextendsextends UNFaultMsg

Page 29: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Fehlermanagement in BPEL bei asynchronen Nachrichten

Page 30: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

AsynchronSynchron

Page 31: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Transaktion & Kompensation

� Läuft rückwärts im Prozess

� bis zum Start – nur BPEL intern

� bis ein manueller Eingriff erfolge

� Korrekte Catch & Comensate notwendig

� Bei asynchron FaultOperation

� Fehler inerhalb Compensate-Handler � Fehler inerhalb Compensate-Handler bricht ab Execution ab – Lost Instances!

� Technische 2PC TX

� Manchmal Erforderlich –EJB/Java Binding

� Ausnutzung der Engine-Eigenschaften

� Erfordert interne Threading-Kenntnisse

Page 32: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Fehlermanagement in BPELErrorhandlingErrorhandlingErrorhandlingErrorhandling----DatenstrukturenDatenstrukturenDatenstrukturenDatenstrukturen

<xs:complexType name="NgxFaultNgxFaultNgxFaultNgxFault"><xs:sequence>

<xs:element name=„name" type="xs:string" minOccurs="1" maxOccurs="1"/><xs:element name="code" type="xs:string" minOccurs="1" maxOccurs="1“/><xs:element name=„categorycategorycategorycategory" type="bie:NgxCategorybie:NgxCategorybie:NgxCategorybie:NgxCategory" minOccurs="0" maxOccurs="1"/><xs:element name="message" type="xs:string" minOccurs="1" maxOccurs="1“/><xs:element name="timestamp" type="xs:dateTime" minOccurs="0" maxOccurs="1“/><xs:element name="extrainfo" type="xs:string" minOccurs="0" maxOccurs="1"/><xs:element name="causecausecausecause" type="bie:NgxFaultbie:NgxFaultbie:NgxFaultbie:NgxFault" minOccurs="0" maxOccurs="unbounded"/><xs:element name="causecausecausecause" type="bie:NgxFaultbie:NgxFaultbie:NgxFaultbie:NgxFault" minOccurs="0" maxOccurs="unbounded"/><xs:element name="context" type="bie:NgxFaultContext" minOccurs="0" maxOccurs="1"/>

<xs:element name="parameter" type="bie:NgxParameter" minOccurs=" maxOccurs="unbounded“/></xs:sequence>

</xs:complexType>

02.05.201232

<xs:simpleType name=„NgxCategoryNgxCategoryNgxCategoryNgxCategory"><xs:restriction base="xs:string"><xs:enumeration value="ObjectNotFound"/><xs:enumeration value="DataInconsistence"/><xs:enumeration value=„SecurityIssue"/><xs:enumeration value="UnknownFault"/><xs:enumeration value="VersioningConflict"/><xs:enumeration value="ValidationFailed"/>

Page 33: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Fehlermanagement in BPELFault-Datenstruktur

� Wichtige ElementeWichtige ElementeWichtige ElementeWichtige Elemente

� causecausecausecause ���� Abbildung von Fehlerhierarien (Abbildung von Fehlerhierarien (Abbildung von Fehlerhierarien (Abbildung von Fehlerhierarien (StacktraceStacktraceStacktraceStacktrace))))���� Abbildung von FehlerlistenAbbildung von FehlerlistenAbbildung von FehlerlistenAbbildung von Fehlerlisten

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

Succ

ess?

Succ

ess?

Succ

ess?

Succ

ess?

Succ

ess?

Succ

ess?

[yes

]

[yes

]

[yes

]

[yes

]

[yes

]

[yes

]

NgxFaultNgxFaultNgxFaultNgxFaultcause

cause

cause

cause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

NgxFaultNgxFaultNgxFaultNgxFaultcause

Liste von Fehlern

Add f irst manager to Add f irst manager to Add f irst manager to Add f irst manager to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

Add f irst assistant to Add f irst assistant to Add f irst assistant to Add f irst assistant to

manager/assistant groupmanager/assistant groupmanager/assistant groupmanager/assistant group

C onnect fir st manager C onnect fir st manager C onnect fir st manager C onnect fir st manager

w i th first assistant in the w i th first assistant in the w i th first assistant in the w i th first assistant in the

gr oupgr oupgr oupgr oup

C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant C onnect fir st assis tant

w i th first manager in the w i th first manager in the w i th first manager in the w i th first manager in the

gr oupgr oupgr oupgr oup

U pdate InventoryU pdate InventoryU pdate InventoryU pdate Inventory

U pdate U pdate U pdate U pdate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

C r eate C r eate C r eate C r eate

manager/assistant group manager/assistant group manager/assistant group manager/assistant group

i n C U CMi n C U CMi n C U CMi n C U CM

Success?

Success?

[no]

[yes]

[yes]

[no]

[yes]

[no]

[yes]

[no]

[yes]

[no]

[yes]

[no]

Add

firs

t man

ager

to

Add

firs

t man

ager

to

Add

firs

t man

ager

to

Add

firs

t man

ager

to

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

Add

firs

t ass

ista

nt to

A

dd fi

rst a

ssis

tant

to

Add

firs

t ass

ista

nt to

A

dd fi

rst a

ssis

tant

to

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

man

ager

/ass

ista

nt g

roup

Con

nect

firs

t man

ager

C

onne

ct fi

rst m

anag

er

Con

nect

firs

t man

ager

C

onne

ct fi

rst m

anag

er

wit

h fir

st a

ssis

tant

in th

e w

ith

first

ass

ista

nt in

the

wit

h fir

st a

ssis

tant

in th

e w

ith

first

ass

ista

nt in

the

grou

pgr

oup

grou

pgr

oup

Con

nect

firs

t ass

ista

nt

Con

nect

firs

t ass

ista

nt

Con

nect

firs

t ass

ista

nt

Con

nect

firs

t ass

ista

nt

wit

h fir

st m

anag

er in

the

wit

h fir

st m

anag

er in

the

wit

h fir

st m

anag

er in

the

wit

h fir

st m

anag

er in

the

grou

pgr

oup

grou

pgr

oup

Upd

ate

Inve

ntor

yU

pdat

e In

vent

ory

Upd

ate

Inve

ntor

yU

pdat

e In

vent

ory

Upd

ate

Upd

ate

Upd

ate

Upd

ate

man

ager

/ass

ista

nt g

roup

m

anag

er/a

ssis

tant

gro

up

man

ager

/ass

ista

nt g

roup

m

anag

er/a

ssis

tant

gro

up

in C

UC

Min

CU

CM

in C

UC

Min

CU

CMSu

cces

s?

Succ

ess?

Succ

ess?

Succ

ess?

End

(Ok)

Star

t

Cre

ate

Cre

ate

Cre

ate

Cre

ate

man

ager

/ass

ista

nt g

roup

m

anag

er/a

ssis

tant

gro

up

man

ager

/ass

ista

nt g

roup

m

anag

er/a

ssis

tant

gro

up

in C

UC

Min

CU

CM

in C

UC

Min

CU

CM Su

cces

s?

Succ

ess?

[no]

[yes

]

[yes

]

[no]

[yes

]

[no]

[yes

]

[no]

[yes

]

[no]

[yes

]

[no]

Page 34: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Development …Development …

19.02.2013 34

Page 35: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Test-Driven-Development in BPEL mit RPD

Debug User Interfaces:

HTML / AjaxText Text

RPD Mini-Server

TextX

B

Copyright Copyright Copyright Copyright People@WorksPeople@WorksPeople@WorksPeople@Works –––– Holger StratmannHolger StratmannHolger StratmannHolger Stratmann

19.02.2013 35

XG

–X

ML

Generator

BEE –BPEL Emulation Engine

RPD Mini-Server

XB

–X

ML B

uilder

People@Works – Holger Stratmann

Page 36: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

19.02.2013 36

Page 37: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Generierung, ein wichtiger ErfolgsfaktorGenerierung, ein wichtiger Erfolgsfaktor

19.02.2013 37

Page 38: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

MDA/MDSD als Erfolgsgarant

� MDA Generatoren

� Einhaltung der Architekturrichtlinien

� Für alle statischen Aspekte

� Keine XSD oder WSDL sollte gebaut werden

� Zentrale Ablage der Metadaten und dessen Referenzierung

� Ablage in der SOA Suite in einem eigenen MDS Projekt� Ablage in der SOA Suite in einem eigenen MDS Projekt

� Kein kopieren einer Ressource (WSDL/XSD, Policies, etc)

� Generierung der Struktur durch Vorlagen

Page 39: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Architekturvorgaben und WSDL ….

Lösung zur Einheitlichen Umsetzung: Lösung zur Einheitlichen Umsetzung: Lösung zur Einheitlichen Umsetzung: Lösung zur Einheitlichen Umsetzung: Einsatz eines Generators (Einsatz eines Generators (Einsatz eines Generators (Einsatz eines Generators (egegegeg. . . . oAWoAWoAWoAW))))

• Statische Artefakte können generiert werden

• Dynamsiche Anwendungsteile mit Einschränkungen …

Page 40: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

UML … DSLUML … DSLUML … DSLUML … DSL BPELBPELBPELBPEL GerüstGerüstGerüstGerüst

Page 41: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Systemarchitektur und HochverfügbarkeitSystemarchitektur und Hochverfügbarkeit

Cluster …

Prozessausführung …

Endpointmanagment …

Geo Redundanz

19.02.2013 41

Berlin

Stuttgart

Geo Redundanz

Deployment …

Prozess Storage …

ESB Queuing …

Page 42: Anwendungsdesign, das jedes SOA---Suite Projekte zum ... · Anwendungsdesign, das jedes SOA---Suite Projekte zum -Suite Projekte zum Erfolg führt! Berthold Maier, Enterprise Architect

Berthold MaierEnterprise Architect

T-Systems Systems Integration, Architecture

Dachauerstraße 651, 80995 München

Mobil: +49 171 3077198

E-Mail: [email protected]

Hausanschrift

Telekontakte

Vielen Dank für Ihre Aufmerksamkeit!