Post on 16-Mar-2020
transcript
Modellgetriebene Software -Entwicklung
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.deVersion:
Software -Entwicklung mit BPMN und SOA
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
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
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.
2
Gliederung
• MDSD meets BPM Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 3
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 4
Conceptional(CIM)
ARIS MDA Approach
Functional Cluster
OMGModelling Layer Diagramm Syntaxelement
VAD, EPCTechnical Terms
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Physical(PSM)
Logical(PIM)
5
Application SystemType
WSDL/XSD
BPMNeERM
BPEL, WSDLXSD
Modellerstellung: Bottom-up MDSD SOA Approach
• Existing„Share
Blueprint“ • SCA-Composite
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
• XSD• WSDL
Technical Data Import
• Business Model• BPMN
Composite• BPEL
Technical Implementation
6
Modellerstellung: Top-down MDSD SOA Approach
DatamodelGeneration • Generated
• XSD
„Share Blueprint“ • SCA-Composite
• BPEL
Eigenentwicklung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
• Business Model• VAD/EPC• eERM, Access
Diagram, …
• XSD• WSDL
Consolidation
• Manually linkedartefacts fromBusiness Model
• BPMN
• BPEL
Technical Implementation
7
ImplementierungAnalyse
Top Down Analysis vs. Bottom Up Implementation
Userinterfaces
Processes
VAC EPC BPMN
Data/Services
XSD WSDL
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Data/Services
Technical Services eERM
Userinterfaces
Screen Design
Screen Navigation
Processes
BPEL
Userinterfaces
SDL�XAML/XAP SNL
8
Oracle BPA Suite 11g Oracle SOA Suite 11g
Oracle BPA Suite Übersicht
Business Process Architect JDeveloper
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 9
BusinessProcess
Repository
WeblogicServer
ShareBlueprint Deploy
Refresh fromBPA Server
Import
Manage
Plugin
Oracle SOA Suite Laufzeitarchitektur
Oracle Weblogic Server
SCA Runtime
Worklist
Oracle Service Bus
JEE Web EJB 3
Rules Engine
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 10
ServiceMediator
BPELEngine
BPELProcess
Notifications
WorklistApplication ADF EJB
Service
Messaging JAX WS
JTA JPA
JDBCJNDI
Laufzeitschichten der Anwendung
ProcessService
e.g. Order process
• GUI-LevelBrowser
• Process-LevelBPEL-Engine
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
DomainService 2
DomainService 1
Data AccessData AccessService 1
Data AccessData AccessService 2
e.g. Customer e.g. Invoice
e.g. Invoice service
• Domain-LevelJEE Server
• Data Access-LevelOracle Mediator, JDBC, …
• Persistence-LevelRDBMS
Development Vision
ARIS Artefakte & GenerateProcess XSD WSDL SNL
2233
55
1. Prozessmodell – Blue Print
2. Datentyp als XML Schema
3. Servicedefinition als WSDL
4. Technische Implementierung in
SDL
6611
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
JDev44
Build & Deployment Approach
Rules
3 Szenarien (Screen Navigation)• ADF > JDeveloper• Cocoon > Eclipse• Silverlight > Visual Studio
77
Implementierung in JDeveloper
5. Navigationscontroller
6. Defintion der Screens
7. Business Rules
8. Build & Deployment
Screen ApplicationSilverlight
(SDL > XAML)
12
88
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 13
Mögliche Generierungspunkte für Datenobjekte
Business Object
ProcessService
DO
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
DomainService 2
DomainService 1
Data AccessData AccessService 1
Data AccessData AccessService 2
e.g. findCustomerByUID(..) e.g. findInvoicesByCustomerUID(..)
e.g. findInvoicesByCustomer(..)
DO XSD
Java-Klassen Konverter
DO
XSD Generierung
AddressAddress
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 15
XSDEntity type
D attribute (ERM)
D attribute (ERM)
D attribute (ERM)
D attribute (ERM)
ERM domain
ERM domain
ERM domain
ERM domain
Generierung
XSD import
Order
OrderItems
import
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 16
«xsdComplexType»
http://www.globalcompany.com/ns/order::OrderInfoTyp e
«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 = 1
minOccurs = 1
modelGroup = 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 = 1
minOccurs = 1
modelGroup = sequence
XSD import
XML / Java Binding durch JAXB
Klasse Schema
JAXB
1 1
1 1
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 17
JAXB
* *
Objekte Dokumente Dokumente
*
Objekte 1 1Objekte Dokumente
JAXB Anwendungsszenario
SchemabasierteKlassen
und InterfacesBinding
CompilerXML
Schema
Compile Time
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 18
AnwendungObjekte
XMLDokumente
JAXBAPImarshal
unmarshal
Runtime
Vision der Integration: Generierung der Persistenz aus kanonischem Modell
Legacy ModelUML
ARISBPA Suite - UML
Pd-entity.xml
ProprietaryFormat
ARIS ExtensionGenerierung
ERM VB-ScriptGenerierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Entity.xml
JPA
EJB 3.xHibernat
eHibernat
e
.Net
Entity.xsd
SDOEJB 2.0
IstVision
EJB 3.x …
XSLTTransformation
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
ESB
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Andere Services Beschaffung
Adapter Adapter Adapter Adapter Adapter Adapter Adapter
Logistik
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 21
Mögliche Generierungspunkte für Services
Software Service
ProcessService
e.g. Order process
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
DomainService 2
DomainService 1
Data AccessData AccessService 1
Data AccessData AccessService 2
e.g. Invoice service
WSDL
Service- & Client-Impl.
MDA Approach for SOA
CIM
Business ServiceModel
BusinessService Business
service
Business ServiceMap
Batch_Information IS function
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 23
PS
MP
IM
ServiceSoftware Service
Service
WSDL/XSD
Batch_Information
Businessservice
read
Batch_Information
IS function
Example: WSDL-Generierung aus Access Diagramm
CreditService
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 24
Validate CreditCreditService
Web Service Architektur
Service Endpoint Definition (WSDL)Service Endpoint Definition (WSDL)
import publish
Web ServiceWeb Service Web ServiceWeb Service
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 25
SOAPSOAPHTTPHTTP
request / response
Web ServiceClient
Web ServiceClient
artifacts
Web ServiceEndpoint
Web ServiceEndpoint
artifacts
Web Service Generierung „Contract Driven“
Code Generator
JAX-WS
Code Generator
JAX-WS
Service Endpoint Definition (WSDL)Service Endpoint Definition (WSDL)
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 26
ImplementierungImplementierung
Client
ServiceProxy
Servlet Engine
ServiceProxy
Deployment eines Web Service in JEE 5
Oracle Weblogic Server
JEE Web EJB 3
BookWeb Application
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 27
JAX WS
@WebServiceClass BookService
Web Application
WSDL 2 Java
WSDL Java
wsdl:definitions@targetNamespace Package
wsdl:portType Interface @WebService
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 28
wsdl:operation Methode @WebMethod
wsdl:fault Exception @WebFault
WSDL 2 Java - Client
WSDL Java
wsdl:serviceErbt von javax.xml.ws.ServiceServicename ist Klassenname@WebServiceClient
"Proxy" getPortname()
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 29
wsdl:port "Proxy" getPortname()@WebEndpoint
Beispiel Schichtenbildung von Services und Prozessen
BPEL Engine
Beschaffunfgs-PService
Bestandsprüfungs-PService
BANF-PService
Buchungs-PService
Oracle Service Bus
Oracle Service Bus
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
EJB 3.x Container (WLS)
ManageBANF DServiceManageBANF-DService
Bestellungs-DService
Legacy Container
ContainerRMIService
MaterialDB
Externe Services
ProductService Warenhaus
ContainerService CalendarServiceCalendarService
BANF-BService
Bestellung BServiceBestellung-BService
Entität 1 Entität 2
Beschaffung DB
30
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 31
Mögliche Generierungspunkte für das UI
Screen
ProcessService
Screen Navigation
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
DomainService 2
DomainService 1
Data AccessData AccessService 1
Data AccessData AccessService 2
SDL
XAML
SNL
JEE
Anbindung der Oracle Worklist /Verarbeitung von Human Tasks
Oracle PM
Task complete
BPEL Process
Assign task
UI
ServicesDomainServices
Webframework
Silverlight
WorklistDomainWorklist
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
Worklist Services
HumanTasks
APIAPI
APIAPI
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– Granularität der Screens
Silverlight Application
Screen 1
Screen 2
Screen 3
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
– Granularität der Screens
Silverlight WebNavigation ControllerNavigation 1.snl
miniapp.xap
web-application.war
ServiceFacade
DService 1 DService 2services.ear
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)
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
– 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
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
(spezielles Mappingmodell)
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
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
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
37
Beispielmodell Screen Navigation
• Technisch unterspezifiziert• Wurden angereichert um:
– “Start” Navigation– “End” Navigation
• Transitionen nur über hiersichtbare Controls
• Pfadmöglichkeiten im Netzerfordern zustandsbehaftetenController / Service
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 38
Gliederung
• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 39
Mögliche Generierungspunkte für Prozesse
BPMN
ProcessService
e.g. Order process
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
DomainService 2
DomainService 1
Data AccessData AccessService 1
Data AccessData AccessService 2
BPEL
Beispiel Process Map Beschaffung
Bestellung Wareneingang
BestellungSAP
BestellungSAPBestellanfrage
Reklamation
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 41
Bestellung Wareneingang
Löschung
-kontrolle
Bestands-kontrolle
AbgelaufenerWarenausgangBeschaffung
Anwendungsgebiete BPMN vs. BPEL
AutomatedBusiness Process IT Expert
Business AnalystBPMN
BPEL
Enterprise Dialog Control Logic
Project PlanKPI/SLA
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 42
Enterprise Control Logic KPI/SLA
ProcessLogic
ProcessLogic BPEL
DomainLogical
CompositionFacade
Domain Object
Core Business
Object
Core Business
LogicPOJO
Oracle SOA Suite Development-Architektur für BPEL
Oracle Weblogic Server
SCA Runtime
Worklist
Oracle Service BusJEE Web EJB 3
ADF EJBService
Rules-Engine
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 43
ServiceMediator
BPELEngine
Notifications
Service
Messaging JAX WS
JTA JPA
JDBCJNDI
BPEL
JDeveloper
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
wurden • Not printable• no automatic reporting• Not searchable
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH
• Not searchable
• Konsistente Modellierung des BO Zugriffs• Ungenaue Korrelation von Payloads, Prozessvariablen und
Serviceparametern
44
Beispielprozess: Wareneingang
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 45
Example: Referenzierung eines Service in BPMN über ein Function Allocation Diagram
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 46
Rezeptierungsvorschriftchecken...
RezeptService isRezeptAvailableRequestVO
IsRezeptAvailableVO
Wareneingang: Hot Spot Komplexität
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 47
WareneingangHot spot detail 1
Scanner
Typ der
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 48
Typ derAnlieferungbestimmen
Bestellcode lesbar
Scan Bestellungscodeyes
Liefercode lesbar
Lieferpapiere vorhanden)
ManuelleEingabe desLiefercodes
Liefercodescannen
Barcode of Abpackung vorhanden
Abpackungscode scannen
WareneingangLess complex
Typ derAnlieferungbestimmen
Bestellcode lesbar
Scan Bestellungscodeyes
Liefercodescannen Anlieferung
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 49
Liefercode lesbar
Lieferpapiere vorhanden)
ManuelleEingabe desLiefercodes
Anlieferungaufnehmen
WareneingangLösung: BPMN variante
AnlieferungaufnehmenBestellung
Lieferung
Prü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
Anlieferungaufnehmen
Prüfung
Fazit
MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH 51
? ??Fragen ?
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.de
??Fragen ?
Vielen Dank für ihre
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.de
Vielen Dank für ihre Aufmerksamkeit !