Modellgetriebene Software-Entwicklung mit BPMN und SOA

Transcription

Modellgetriebene Software-Entwicklung mit BPMN und SOA
Modellgetriebene
Software-Entwicklung
mit BPMN und SOA
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
Version: 1.0
www.oio.de
[email protected]
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
Basismodelle 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.
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
2
Gliederung
•
•
•
•
•
MDSD meets BPM Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
3
Gliederung
•
•
•
•
•
MDSD meets BPMN Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
4
ARIS MDA Approach
OMG
Modelling Layer
Diagramm
Syntaxelement
Conceptional
(CIM)
VAD, EPC
Technical Terms
Functional Cluster
Logical
(PIM)
BPMN
eERM
Application System
Type
Physical
(PSM)
BPEL, WSDL
XSD
WSDL/XSD
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
5
Modellerstellung: Bottom-up MDSD SOA Approach
• Existing
• XSD
• WSDL
„Share
Blueprint“
• Business
Model
• BPMN
• SCAComposite
• BPEL
Technical Data
Import
© 2010 Orientation in Objects GmbH
Technical
Implementation
MDSD mit BPMN und SOA
6
Modellerstellung: Top-down MDSD SOA Approach
Eigenentwicklung
Datamodel
Generation
• Business Model
• VAD/EPC
• eERM, Access
Diagram, …
• Generated
• XSD
• WSDL
„Share
Blueprint“
• Manually linked
artefacts from
Business Model
• BPMN
Technical
Implementation
Consolidation
© 2010 Orientation in Objects GmbH
• SCA-Composite
• BPEL
MDSD mit BPMN und SOA
7
Top Down Analysis vs. Bottom Up Implementation
Analyse
Implementierung
Processes
Data/Services
VAC
EPC
BPMN
Userinterfaces
Screen
Design
Screen
Navigation
Data/Services
Technical
Services
© 2010 Orientation in Objects GmbH
eERM
XSD
WSDL
Userinterfaces
SDLà
XAML/XAP
SNL
Processes
BPEL
MDSD mit BPMN und SOA
8
Oracle BPA Suite Übersicht
Oracle SOA Suite 11g
Oracle BPA Suite 11g
Business Process Architect
JDeveloper
Import
Manage
Plugin
Share
Blueprint
Business
Process
Repository
© 2010 Orientation in Objects GmbH
Deploy
Refresh from
BPA Server
Weblogic
Server
MDSD mit BPMN und SOA
9
Oracle SOA Suite Laufzeitarchitektur
Oracle Weblogic Server
Oracle Service Bus
SCA Runtime
JEE Web
Rules Engine
Service
Mediator
Worklist
Application
ADF
EJB
Service
BPEL
Engine
BPEL
Process
© 2010 Orientation in Objects GmbH
EJB 3
Notifications
Messaging
JAX WS
JTA
JPA
JNDI
JDBC
MDSD mit BPMN und SOA
10
Laufzeitschichten der Anwendung
Process
Service
•
GUI-Level
Browser
•
Process-Level
BPEL-Engine
•
Domain-Level
JEE Server
•
Data Access-Level
Oracle Mediator, JDBC, …
•
Persistence-Level
RDBMS
e.g. Order process
Domain
Service 1
Domain
Service 2
e.g. Invoice service
Data Access
Service 1
e.g. Customer
© 2010 Orientation in Objects GmbH
Data Access
Service 2
e.g. Invoice
MDSD mit BPMN und SOA
Development Vision
1. Prozessmodell – Blue
Print
ARIS Artefakte & Generate
Process
XSD
WSDL
5
2
1
SDL
SNL
6
3
3 Szenarien (Screen Navigation)
4
• ADF
• Cocoon
• Silverlight
JDev
> JDeveloper
> Eclipse
> Visual Studio
Screen Application
Silverlight
(SDL > XAML)
7
Rules
2. Datentyp als XML
Schema
3. Servicedefinition als
WSDL
4. Technische
Implementierung in
JDeveloper
5. Navigationscontroller
6. Defintion der Screens
7. Business Rules
8. Build & Deployment
8
Build & Deployment Approach
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
12
Gliederung
•
•
•
•
•
MDSD meets BPMN Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
13
Mögliche Generierungspunkte für Datenobjekte
DO
Business Object
Process
Service
Domain
Service 1
Domain
Service 2
XSD
DO
e.g. findInvoicesByCustomer(..)
Data Access
Service 1
Data Access
Service 2
e.g. findCustomerByUID(..)
DO
e.g. findInvoicesByCustomerUID(..)
Java-Klassen
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
Konverter
XSD Generierung
Address
Address
Generierung
Entity type
D attribute (ERM)
ERM domain
D attribute (ERM)
ERM domain
D attribute (ERM)
D attribute (ERM)
© 2010 Orientation in Objects GmbH
XSD
ERM domain
ERM domain
MDSD mit BPMN und SOA
15
XSD import
Order
OrderItems
XSD
© 2010 Orientation in Objects GmbH
import
«xsdComplexType»
http://www.globalcompa ny.com/ns/order::Orde rInfoType
«xsdComplexType»
http://www.globalcompa ny.com/ns/order::ItemType
«xsdElement» OrderDate: date[0..1]
«xsdElement» ProductName: string[0..1]
«xsdElement» OrderPrice: decimal[0..1]
«xsdElement» OrderStatus: string[0..1]
«xsdElement» itemType: string[0..1]
«xsdElement» partnum: string[0..1]
«xsdElement» OrderComments: string[0..1]
«xsdElement» price: decimal[0..1]
«xsdElement» ApprovalRequired: boolean[0..1]
«xsdElement» Quantity: decimal[0..1]
Tagged Values:
Tagged Values:
maxOccurs = 1
maxOccurs = 1
minOccurs = 1
modelGroup = sequence
minOccurs = 1
modelGroup = sequence
MDSD mit BPMN und SOA
16
XML / Java Binding durch JAXB
Klasse
1
1
Schema
1
1
JAXB
**
*
Objekte
Objekte
© 2010 Orientation in Objects GmbH
1
1
Dokumente
Dokumente
Dokumente
Objekte
MDSD mit BPMN und SOA
17
JAXB Anwendungsszenario
Compile Time
Schemabasierte
Klassen
und Interfaces
Binding
Compiler
XML
Schema
Runtime
Anwendung
Objekte
XML
Dokumente
© 2010 Orientation in Objects GmbH
marshal
JAXB
API
unmarshal
MDSD mit BPMN und SOA
18
Vision der Integration: Generierung der Persistenz
aus kanonischem Modell
Legacy Model
ARIS
UML
BPA Suite - UML
Proprietary
Format
ERM VB-Script
Generierung
Pd-entity.xml
ARIS Extension
Generierung
XSLT
Transformation
EJB 2.0
JPA
EJB 3.x
© 2010 Orientation in Objects GmbH
Entity.xml
EJB 3.x
Entity.xsd
.Net
SDO
…
Ist
Vision
Hibernat
e
MDSD mit BPMN und SOA
Problem: Data Service Silos innerhalb der SOA
•
•
•
•
Geschäftsobjekte überspannen mehrere Silos
Modellierte Geschäftsobjekte, die real nicht existieren
Performance bei Relationen zwischen Objekten
Analyse für Generierung oft nicht detailliert genug
ES
B
Adapter
Adapter
Adapter
Adapter Adapter
Andere Services
© 2010 Orientation in Objects GmbH
Adapter
Adapter
Beschaffung
Logistik
MDSD mit BPMN und SOA
Gliederung
•
•
•
•
•
MDSD meets BPMN Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
21
Mögliche Generierungspunkte für Services
Software Service
Process
Service
e.g. Order process
Domain
Service 1
WSDL
Domain
Service 2
e.g. Invoice service
Data Access
Service 1
Data Access
Service 2
Service- & Client-Impl.
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
CIM
MDA Approach for SOA
Business Service
Map
Business Service
Model
Batch_Information
IS function
Business
Service
Business
service
PIM
Batch_Information
Software Service
Service
IS function
Business
service
Batch_Information
PSM
read
© 2010 Orientation in Objects GmbH
WSDL/XSD
MDSD mit BPMN und SOA
23
Example: WSDL-Generierung aus Access
Diagramm
CreditSe
rvice
CreditService
© 2010 Orientation in Objects GmbH
Validate Credit
MDSD mit BPMN und SOA
24
Web Service Architektur
Service Endpoint
Definition (WSDL)
import
publish
Web Service
Client
Web Service
Endpoint
request / response
artifacts
artifacts
SOAP
HTTP
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
25
Web Service Generierung „Contract Driven“
Service Endpoint
Definition (WSDL)
Code
Generator
JAX-WS
Service
Proxy
Service
Proxy
Implementierung
Client
© 2010 Orientation in Objects GmbH
Servlet Engine
MDSD mit BPMN und SOA
26
Deployment eines Web Service in JEE 5
Oracle Weblogic Server
JEE Web
EJB 3
Book
Web Application
@WebService
Class BookService
JAX WS
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
27
WSDL 2 Java
WSDL
Java
wsdl:definitions
@targetNamespace
Package
wsdl:portType
Interface @WebService
wsdl:operation
Methode @WebMethod
wsdl:fault
Exception @WebFault
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
28
WSDL 2 Java - Client
WSDL
Java
wsdl:service
Erbt von javax.xml.ws.Service
Servicename ist Klassenname
@WebServiceClient
wsdl:port
"Proxy" getPortname()
@WebEndpoint
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
29
Beispiel Schichtenbildung von Services und
Prozessen
Oracle Service Bus
Bestandsprüfungs-PService
BPEL Engine
Beschaffunfgs-PService
BANF-PService
Buchungs-PService
Oracle Service Bus
EJB 3.x Container (WLS)
ManageBANF DService
ManageBANF-DService
Bestellungs-DService
Legacy Container
Material
DB
Container
RMIService
BANF-BService
Bestellung BService
Bestellung-BService
Entität 1
Entität 2
Beschaffung DB
© 2010 Orientation in Objects GmbH
Externe Services
ProductService
Warenhaus
ContainerService
CalendarService
MDSD mit BPMN und SOA
30
Gliederung
•
•
•
•
•
MDSD meets BPMN Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
31
Mögliche Generierungspunkte für das UI
Screen
Screen Navigation
Process
Service
Domain
Service 1
Domain
Service 2
Data Access
Service 1
SDL
SNL
Data Access
Service 2
XAML
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
Anbindung der Oracle Worklist /
Verarbeitung von Human Tasks
Oracle PM
JEE
BPEL
Process
Task
complete
Assign task
Webframe
work
UI
Domain
Services
Silverlight
Domain
Worklist
API
API
Human
Tasks
Worklist Services
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
Human Task Clients als Mini-Applikation
•
Silverlight XAPs als Mini-Applikation
– Bearbeitung eines einzelnen Human Task
•
Wiederverwendung als Ziel
– Screens in verschiedenen HTs
– Mini-Applikationen als HTs
•
Schwierigkeiten
Silverlight Application
Screen 1
Screen 3
Screen 2
– Granularität der Screens
miniapp.xap
Silverlight Web
Navigation 1.snl
Navigation
Controller
Service
Facade
web-application.war
DService 1
services.ear
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
DService 2
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, ...)
•
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
– Verarbeitung über Framework oder Service möglich
•
Beides sind eigene, proprietäre Formate
– Sollten nicht direkt an potentielle Zielplattform (Silverlight) binden
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
Beispielmodell Screen
•
Screen Model
– Container
– Komponenten
– Binding auf DO
•
View Objects als eERM
(spezielles Mappingmodell)
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
36
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
– Actions
Modellierung von Servicecalls im UI (z.B. in Tabellen)
•
Sperrige und relativ starre UI durch Templates
– Vorteil für Generierung
– Nachteil für Endbenutzer
– Begrenzte Mächtigkeit der SDL
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
37
Beispielmodell Screen Navigation
•
•
Technisch unterspezifiziert
Wurden angereichert um:
– “Start” Navigation
– “End” Navigation
•
•
Pfadmöglichkeiten im Netz
erfordern zustandsbehafteten
Controller / Service
Transitionen nur über hier
sichtbare Controls
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
38
Gliederung
•
•
•
•
•
MDSD meets BPMN Vision
Datenmodellierung
Servicemodelle
Human Task Modelle
Prozessmodellierung
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
39
Mögliche Generierungspunkte für Prozesse
BPMN
Process
Service
e.g. Order process
Domain
Service 1
Domain
Service 2
Data Access
Service 1
© 2010 Orientation in Objects GmbH
BPEL
Data Access
Service 2
MDSD mit BPMN und SOA
Beispiel Process Map Beschaffung
Reklamation
Bestellung
SAP
Bestellanfrage
Bestellung
Wareneingang
Bestandskontrolle
Beschaffung
© 2010 Orientation in Objects GmbH
Abgelaufener
Warenausgang
Löschung
MDSD mit BPMN und SOA
41
Anwendungsgebiete BPMN vs. BPEL
BPMN
Business Analyst
BPEL
Automated
Business Process
IT Expert
Enterprise
Dialog Control Logic
Project Plan
KPI/SLA
Process Logic
Process Logic
BPEL
Domain
Logical Composition
Domain Object
Facade
Core Business Core Business Logic
Object
© 2010 Orientation in Objects GmbH
POJO
MDSD mit BPMN und SOA
42
Oracle SOA Suite Development-Architektur für
BPEL
Oracle Weblogic Server
Oracle Service Bus
SCA Runtime
JEE Web
Worklist
Rules-Engine
Service
Mediator
BPEL
Engine
BPEL
Notifications
ADF
EJB 3
EJB
Service
Messaging
JAX WS
JTA
JPA
JNDI
JDBC
JDeveloper
BPEL Designer
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
43
Modeling problems in the process area
•
Problematic Requirements in EPC
– EPC enthält Requirements als Freitext
– manchmal funktionale Requirements die nicht zu BPMN transformiert
wurden
• Not printable
• no automatic reporting
• Not searchable
•
•
Konsistente Modellierung des BO Zugriffs
Ungenaue Korrelation von Payloads, Prozessvariablen und
Serviceparametern
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
44
Beispielprozess: Wareneingang
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
45
Example: Referenzierung eines Service in BPMN
über ein Function Allocation Diagram
RezeptService
Rezeptierungs
vorschrift
checken...
isRezeptAvailableR
equestVO
IsRezeptAvailable
VO
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
46
Wareneingang: Hot Spot Komplexität
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
47
Wareneingang
Hot spot detail 1
Scanner
Typ der
Anlieferung
bestimmen
yes
Abpackungsco
de scannen
Scan Bestellungscode
Bestellcode lesbar
Barcode of Abpackung vorhanden
Liefercode
scannen
Liefercode lesbar
Lieferpapiere vorhanden)
© 2010 Orientation in Objects GmbH
Manuelle
Eingabe des
Liefercodes
MDSD mit BPMN und SOA
48
Wareneingang
Less complex
Typ der
Anlieferung
bestimmen
yes
Scan Bestellungscode
Bestellcode lesbar
Liefercode
scannen
Anlieferung
aufnehmen
Liefercode lesbar
Lieferpapiere vorhanden)
© 2010 Orientation in Objects GmbH
Manuelle
Eingabe des
Liefercodes
MDSD mit BPMN und SOA
49
Wareneingang
Lösung: BPMN variante
Anlieferung
aufnehmen
Bestellung
Lieferung
Prüfung
Anlieferung
aufnehmen
yes
Choose book-in type
of receipt of goods
Anlieferung
aufnehmen
Scan procurement
order barcode
PRO barcode is readable/available
no
yes
Enter PRO Number
PRO barcode is not readable/available but PRO number exists
yes
Scan shipping
documents/parcel
barcode
shipping documents/parcel barcode is available
shipping documents/parcel barcode is not available
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
50
Fazit
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
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-softskills/training-business-process-kurs-modeling-bpmn-schulung.htm
•
Schulung: Einführung in BPEL
– http://www.oio.de/seminar/xml/kurs-ws-bpel-schulung-bpel-seminarode-training.htm
•
Schulung: UML2 für MDSD
– http://www.oio.de/seminar/methodik-prozess-management-softskills/training-uml-kurs-mdsd-schulung.htm
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
52
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-drivensoftware/
•
Beratung zu SOA / Web Services
– http://www.oio.de/beratung-consulting/software-integration/soa-webservices/index.htm
© 2010 Orientation in Objects GmbH
MDSD mit BPMN und SOA
53
? ?
?
Fragen ?
?
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
[email protected]
?
Vielen Dank für ihre
Aufmerksamkeit !
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
[email protected]