Modellgetriebene Software-Entwicklung mit BPMN und SOA · PDF file• MDSD meets BPM Vision...
Transcript of Modellgetriebene Software-Entwicklung mit BPMN und SOA · PDF file• MDSD meets BPM Vision...
1
Modellgetriebene Software-Entwicklung
mit BPMN und SOA
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
[email protected]: 1.0
Modellgetriebene Software-Entwicklung mit BPMN und SOA
• Die modellgetriebene Softwareimplementierung (MDSD) betrieblicher Prozesse kombiniert die Qualitäts- und Wartbarkeitsvorteile von modellierter und generierter Software, wird aber oft ob ihrer Kosten und Durchführbarkeit diskutiert. Wenn dann im Rahmen eines modellgetriebenen Implementierungsansatzes aus fachlichen Prozessmodellen in BPMN verwertbare technische Artefakte für eine SOA-basierte Softwaregenerierung erstellt werden können, eröffnet sich ein ökonomisch sinnvoller Lösungsweg. Leider reichen die ursprünglichen Modellierungstechniken der Oracle BPA Suite für eine wirtschaftliche ausnutzbare Softwaregeneration nicht aus. Insbesondere die Themenfelder Userinterface und persistente Daten verschließen sich einer leichten Generierbarkeit aus den existierenden Modelltypen. Die Erweiterbarkeit der BPA-Suite und die enge Integration mit den Konzepten der Laufzeitarchitektur der Oracle SOA Suite 11g erlauben jedoch die erfolgreiche Erweiterung der
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
g j g gBasismodelle mit dem Ziel einer nahezu vollständigen Softwaregenerierung. Der Vortrag stellt in einem Projekt erprobten Modellierungskonzepte für Prozesse, Services, Daten und Benutzeroberflächen vor und berichtet über die Erfahrungen bei deren Umsetzung mit der Oracle SOA Suite 11g.
2
2
Gliederung
• MDSD meets BPM Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 3
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 4
3
ARIS MDA Approach
OMGModelling Layer Diagramm Syntaxelement
Conceptional(CIM)
Logical(PIM)
Functional Cluster
Application SystemType
VAD, EPCTechnical Terms
BPMNeERM
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Physical(PSM)
5
WSDL/XSDBPEL, WSDLXSD
Modellerstellung: Bottom-up MDSD SOA Approach
• Existing• XSD• WSDL
Technical Data
• Business Model• BPMN
„Share Blueprint“ • SCA-
Composite• BPEL
Technical
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Import Implementation
6
4
Modellerstellung: Top-down MDSD SOA Approach
Eigenentwicklung
• Business Model• VAD/EPC• eERM, Access
Diagram, …
DatamodelGeneration • Generated
• XSD• WSDL
Consolidation
• Manually linkedartefacts fromBusiness Model
• BPMN
„Share Blueprint“ • SCA-Composite
• BPEL
Technical
g g
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Consolidation Implementation
7
ImplementierungAnalyse
Top Down Analysis vs. Bottom Up Implementation
Processes Data/Services
UserinterfacesScreen Design
Screen Navigation
VAC EPC BPMN
UserinterfacesSDL
XAML/XAP SNL
XSD WSDL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data/ServicesTechnical Services eERM
Processes
BPEL
8
5
Oracle BPA Suite 11g Oracle SOA Suite 11g
Oracle BPA Suite Übersicht
Business Process Architect JDeveloperp
ShareBlueprint Deploy
Import
Manage
Plugin
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 9
BusinessProcess
Repository
WeblogicServer
Refresh fromBPA Server
Oracle SOA Suite Laufzeitarchitektur
Oracle Weblogic Server
Oracle Service Bus
SCA Runtime
ServiceMediator
BPELEngine
WorklistApplication
JEE Web EJB 3
ADF EJBService
Rules Engine
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 10
BPELProcess
Notifications
Messaging JAX WS
JTA JPA
JDBCJNDI
6
Laufzeitschichten der Anwendung
• GUI-LevelBrowser
DomainService 2
DomainService 1
ProcessService
Data AccessData Access Data AccessData Access
e.g. Invoice service
e.g. Order process
• Process-LevelBPEL-Engine
• Domain-LevelJEE Server
• Data Access Level
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data AccessService 1
Data AccessService 2
e.g. Customer e.g. Invoice
• Data Access-LevelOracle Mediator, JDBC, …
• Persistence-LevelRDBMS
Development Vision
ARIS Artefakte & GenerateProcess XSD WSDL SNL
1. Prozessmodell – Blue Print
2. Datentyp als XML Schema
SDL
JDev
2233
44 3 Szenarien (Screen Navigation)• ADF > JDeveloper• Cocoon > Eclipse• Silverlight > Visual Studio
55
Schema3. Servicedefinition als
WSDL4. Technische
Implementierung in JDeveloper
5. Navigationscontroller6. Defintion der ScreensScreen Application
6611
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Build & Deployment Approach
Rules77
7. Business Rules8. Build & Deployment
Sc ee pp cat oSilverlight
(SDL > XAML)
12
88
7
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 13
Mögliche Generierungspunkte für Datenobjekte
Business ObjectDO
DomainService 2
DomainService 1
ProcessService
Data AccessData Access Data AccessData Access
e.g. findInvoicesByCustomer(..)
DO XSD
DO
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data AccessService 1 Service 2
e.g. findCustomerByUID(..) e.g. findInvoicesByCustomerUID(..)
Java-Klassen Konverter
DO
8
XSD Generierung
XSDEntity type
D attribute (ERM) ERM domain
Address Address
Generierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 15
D attribute (ERM)
D attribute (ERM)
D attribute (ERM)
ERM domain
ERM domain
ERM domain
XSD import
Order
OrderItems
XSD import
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 16
«xsdComplexType»http://www.globalcompany.com/ns/order::OrderInfoType«xsdElement» OrderDate: date[0..1]«xsdElement» OrderPrice: decimal[0..1]«xsdElement» OrderStatus: string[0..1]«xsdElement» OrderComments: string[0..1]«xsdElement» ApprovalRequired: boolean[0..1]
Tagged Values:maxOccurs = 1minOccurs = 1modelGroup = sequence
«xsdComplexType»http://www.globalcompany.com/ns/order::ItemType«xsdElement» ProductName: string[0..1]«xsdElement» itemType: string[0..1]«xsdElement» partnum: string[0..1]«xsdElement» price: decimal[0..1]«xsdElement» Quantity: decimal[0..1]
Tagged Values:maxOccurs = 1minOccurs = 1modelGroup = sequence
9
XML / Java Binding durch JAXB
Klasse Schema1 1
JAXB* **
1 1
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 17
Objekte Dokumente DokumenteObjekte 1 1Objekte Dokumente
JAXB Anwendungsszenario
SchemabasierteKlassen
und InterfacesBindingXML
Compile Time
AnwendungObjekte
gCompilerSchema
Runtime
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 18
XMLDokumente
JAXBAPImarshal
unmarshal
10
Vision der Integration: Generierung der Persistenz aus kanonischem Modell
Legacy ModelUML
ARISBPA Suite - UML
ProprietaryFormat
Pd-entity.xml
Entity.xml
ARIS ExtensionGenerierung
Entity.xsdXSLT
Transformation
ERM VB-ScriptGenerierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
JPA
EJB 3.x Hibernate
.Net SDOEJB 2.0
IstVision
EJB 3.x …
Problem: Data Service Silos innerhalb der SOA
• Geschäftsobjekte überspannen mehrere Silos• Modellierte Geschäftsobjekte, die real nicht existieren• Performance bei Relationen zwischen ObjektenPerformance bei Relationen zwischen Objekten• Analyse für Generierung oft nicht detailliert genug
ESB
Adapter Adapter Adapter Adapter Adapter Adapter Adapter
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Andere Services Beschaffung Logistik
11
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 21
Mögliche Generierungspunkte für Services
Software Service
DomainService 2
DomainService 1
ProcessService
Data AccessData Access Data AccessData Access
e.g. Invoice service
e.g. Order process
WSDL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data AccessService 1
Data AccessService 2
Service- & Client-Impl.
12
MDA Approach for SOA
CIM
Business ServiceMap
Batch_Information IS function
PIM
CBusiness Service
Model
Software ServiceService
BusinessService Business
service
Batch_Information
Businessservice
Batch_Information
IS function
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 23
PSM
WSDL/XSD
read
Example: WSDL-Generierung aus Access Diagramm
Validate Credit
CreditService
CreditService
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 24
13
Web Service Architektur
Service Endpoint Definition (WSDL)Service Endpoint Definition (WSDL)
request / response
import publish
Web ServiceClient
Web ServiceClient
Web ServiceEndpoint
Web ServiceEndpoint
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 25
SOAPSOAPHTTPHTTP
artifacts artifacts
Web Service Generierung „Contract Driven“
Service Endpoint Definition (WSDL)Service Endpoint Definition (WSDL)
Code Generator
JAX-WS
Code Generator
JAX-WS
Service Service
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 26
ImplementierungImplementierung
Client
Proxy
Servlet Engine
Proxy
14
Deployment eines Web Service in JEE 5
Oracle Weblogic Server
JEE Web EJB 3
@WebServiceClass BookService
BookWeb Application
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 27
JAX WS
WSDL 2 Java
WSDL Java
wsdl:definitions Package@targetNamespace Package
wsdl:portType Interface @WebService
wsdl:operation Methode @WebMethod
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 28
wsdl:fault Exception @WebFault
15
WSDL 2 Java - Client
WSDL Java
wsdl:serviceErbt von javax.xml.ws.ServiceServicename ist Klassenname@WebServiceClient
wsdl:port "Proxy" getPortname()@WebEndpoint
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 29
Beispiel Schichtenbildung von Services und Prozessen
BPEL EngineBeschaffunfgs-PService
Bestandsprüfungs-PService
Oracle Service Bus
BANF-PService
Buchungs-PService
EJB 3.x Container (WLS)ManageBANF DServiceManageBANF-DService
Oracle Service Bus
Bestellungs-DService
Legacy Container
ContainerRMIService
MaterialDB
BANF-BService
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Externe Services
ProductService Warenhaus
ContainerService CalendarServiceCalendarService
BANF BService
Bestellung BServiceBestellung-BService
Entität 1 Entität 2
Beschaffung DB
30
16
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 31
Mögliche Generierungspunkte für das UI
Screen Screen Navigation
DomainService 2
DomainService 1
ProcessService
Data AccessData Access Data AccessData Access
SDL SNL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data AccessService 1
Data AccessService 2
XAML
17
JEE
Anbindung der Oracle Worklist /Verarbeitung von Human Tasks
Oracle PMBPEL
Process UIWebframework
Task completeAssign task
DomainServices
APIAPI
Silverlight
APIAPI
DomainWorklist
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Worklist Services
HumanTasks
Human Task Clients als Mini-Applikation
• Silverlight XAPs als Mini-Applikation– Bearbeitung eines einzelnen Human Task
• Wiederverwendung als ZielSil li ht A li ti
g– Screens in verschiedenen HTs– Mini-Applikationen als HTs
• Schwierigkeiten– Granularität der Screens
Silverlight Web
Silverlight ApplicationScreen 1
Screen 2
Screen 3
miniapp.xap
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Navigation ControllerNavigation 1.snl
web-application.war
ServiceFacade
DService 1 DService 2services.ear
18
Generierung von Screens und Navigationen
• Ziel: Modelle in ARIS um Screens und Navigationen zu generieren– Spezifische Modelltypen für UI und Navigation– Templates im Modell (Suche, Eingabe, Master-Detail, ...)p ( g )
• Screen Design– Generierung nach SDL (Screen Definition Language)– Spezifikation einzelner Screens– Transformation nach XAML möglich (XSLT)
• Screen Navigation– Generierung nach SNL (Screen Navigation Language)– Spezifikation von Screen Flows für einen einzelnen Human Task
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Spezifikation von Screen Flows für einen einzelnen Human Task– Verarbeitung über Framework oder Service möglich
• Beides sind eigene, proprietäre Formate– Sollten nicht direkt an potentielle Zielplattform (Silverlight) binden
Beispielmodell Screen
• Screen Model– Container– Komponenten– Binding auf DO
• View Objects als eERM (spezielles Mappingmodell)
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 36
19
Schwierigkeiten in Bezug auf die Screenmodelle
• Screen Metamodell war initial technisch unterspezifiziert– Fehlende Data-Mappings– Screen Behaviour
• Metamodell im Projektverlauf angereichert um– Data Mapping
Abbildungsinformation des View Object auf das kanonische Modell in ARIS
– ActionsModellierung von Servicecalls im UI (z.B. in Tabellen)
• Sperrige und relativ starre UI durch Templates
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
– Vorteil für Generierung– Nachteil für Endbenutzer– Begrenzte Mächtigkeit der SDL
37
Beispielmodell Screen Navigation
• Technisch unterspezifiziert• Wurden angereichert um:
– “Start” Navigation
• Pfadmöglichkeiten im Netzerfordern zustandsbehaftetenController / Serviceg
– “End” Navigation • Transitionen nur über hier
sichtbare Controls
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 38
20
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• ServicemodelleServicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 39
Mögliche Generierungspunkte für Prozesse
BPMN
DomainService 2
DomainService 1
ProcessService
Data AccessData Access Data AccessData Access
e.g. Order process
BPEL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data AccessService 1
Data AccessService 2
21
Beispiel Process Map Beschaffung
BestellungBestellungSAPBestellanfrage
Reklamation
Bestellung Wareneingang
SAP
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 41
Löschung
Bestands-kontrolle
AbgelaufenerWarenausgangBeschaffung
Anwendungsgebiete BPMN vs. BPEL
Business AnalystBPMN
AutomatedBusiness Process IT Expert
BPEL
Enterprise Dialog Control Logic
Project PlanKPI/SLA
ProcessLogic
ProcessLogic BPEL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 42
DomainLogical
CompositionFacade
Domain Object
Core Business
Object
Core Business
LogicPOJO
22
Oracle SOA Suite Development-Architektur für BPEL
Oracle Weblogic Server
Oracle Service BusSCA Runtime
ServiceMediator
BPELEngine
Notifications
Worklist
JEE Web EJB 3
ADF EJBService
Rules-Engine
Messaging JAX WS
JTA JPA
JDBCJNDI
BPEL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 43
JDBCJNDIJDeveloper
BPEL Designer
Modeling problems in the process area
• Problematic Requirements in EPC– EPC enthält Requirements als Freitext – manchmal funktionale Requirements die nicht zu BPMN transformiert q
wurden • Not printable• no automatic reporting• Not searchable
• Konsistente Modellierung des BO Zugriffs• Ungenaue Korrelation von Payloads, Prozessvariablen und
Serviceparametern
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 44
23
Beispielprozess: Wareneingang
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 45
Example: Referenzierung eines Service in BPMN über ein Function Allocation Diagram
Rezeptierungsvorschriftchecken...
RezeptService isRezeptAvailableRequestVO
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 46
IsRezeptAvailableVO
24
Wareneingang: Hot Spot Komplexität
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 47
WareneingangHot spot detail 1
Scanner
Typ derAnlieferungbestimmen
Bestellcode lesbar
Scan Bestellungscodeyes
Liefercodescannen
Barcode of Abpackung vorhanden
Abpackungscode scannen
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 48
Liefercode lesbar
Lieferpapiere vorhanden)
ManuelleEingabe desLiefercodes
25
WareneingangLess complex
Typ der yesypAnlieferungbestimmen
Bestellcode lesbar
Scan Bestellungscodeyes
Liefercode lesbar
Lieferpapiere vorhanden)
ManuelleEingabe desLiefercodes
Liefercodescannen Anlieferung
aufnehmen
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 49
WareneingangLösung: BPMN variante
AnlieferungB t ll
gaufnehmen
Anlieferungaufnehmen
BestellungLieferungPrüfung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 50
PRO barcode is readable/available
Enter PRO Number
PRO barcode is not readable/available but PRO number exists
yesno
shipping documents/parcel barcode is available
shipping documents/parcel barcode is not available
Choose book-in typeof receipt of goods
Scan procurementorder barcode
yes
Scan shippingdocuments/parcel
barcode
yes
Anlieferungaufnehmen
26
Fazit
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 51
Mehr von OIO zum Thema
• Schulung: SOA – Service orientierte Architekturen– http://www.oio.de/seminar/entscheider/soa-schulung.htm
• Schulung: Modellierung von Geschäftsprozessen mit BPMN– http://www.oio.de/seminar/methodik-prozess-management-soft-
skills/training-business-process-kurs-modeling-bpmn-schulung.htm
• Schulung: Einführung in BPEL– http://www.oio.de/seminar/xml/kurs-ws-bpel-schulung-bpel-seminar-
ode-training.htm
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
g
• Schulung: UML2 für MDSD– http://www.oio.de/seminar/methodik-prozess-management-soft-
skills/training-uml-kurs-mdsd-schulung.htm
52
27
Mehr von OIO zum Thema
• Schulung: Einführung in die openArchitectureWare (OAW)– http://www.oio.de/seminar/entscheider/soa-schulung.htm
• Schulung: Überblick MDSD mit Open Source– http://www.oio.de/mda-mdsd-schulung.htm
• Beratung zu Modellgetriebener Softwareentwicklung– http://www.oio.de/beratung-consulting/mda-mdsd-model-driven-
software/
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
• Beratung zu SOA / Web Services– http://www.oio.de/beratung-consulting/software-integration/soa-web-
services/index.htm
53
? ??? ?
???
Fragen ?
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
??
28
Vielen Dank für ihre Aufmerksamkeit !
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim