MDSD meets BPMN - Eldorado für Analytiker? Ein Praxisbericht Version: 1.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Daniel Zwink Björn Feustel Wenn mit BPMN aus fachlichen Analysemodellen technisch verwertbare Prozessmodelle entstehen, dann werden aus Analytikern Goldgräber. Was in der Theorie schnelle Erträge verspricht, führt in der Praxis zu tiefen Grabungen bei der Modellierung von Datentypen, schnittstellen, Prozessen und deren Oberflächen. Häufig zitierte Basistechniken der Geschätsprozessmodellierung bieten in der Realität der SOA eines Großunternehmens oft nicht mehr als die sprichtwörtlichen "Spitzhacke und Schaufel". Der Vortrag sucht nach "schwerem Modellierer-Gerät". 2
Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 3 Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 4
Oracle BPA Suite Übersicht Oracle BPA Suite 11g Business Process Architect Oracle SOA Suite 11g JDeveloper Manage Share Blueprint Import Plugin Deploy Business Process Repository Refresh from BPA Server Weblogic Server 5 ARIS MDA Approach OMG Modelling Layer Diagramm Conceptional (CIM) VAD, EPC, Technical Term Logical (PIM) BPMN, eerm Physical (PSM) BPEL, WSDL, XSD 6
Modellerstellung: Bottom-up MDSD SOA Approach Existing XSD WSDL Technical Data Import Business Model BPMN Share Blueprint SCA- Composite BPEL Technical Implementation 7 Modellerstellung: Top-down MDSD SOA Approach Eigenentwicklung g Datamodel Generation Business Model VAD/EPC eerm, Access Diagram, Generated XSD WSDL Consolidation Share Blueprint Manually linked artefacts from Business Model BPMN SCA-Composite BPEL Technical Implementation 8
Top Down Analysis vs. Bottom Up Implementation Analyse Processes Implementierung s / Data VAC EPC BPMN XSD WSDL Userinterfaces Screen Design Screen Navigation Userinterfaces SDL XAML/XAP SNL s / Data Technical s eerm Processes BPEL 9 Oracle SOA Suite Laufzeitarchitektur Oracle 11g Application Server Oracle Bus SCA Runtime JEE Web EJB 3 Rules Engine Mediator BPEL Engine Worklist Application ADF EJB Messaging JAX WS BPEL Process Notifications JTA JPA JNDI JDBC 10
Laufzeitschichten der Anwendung GUI-Level Browser Process e.g. Order process Prozess-Level BPEL-Engine 1 2 e.g. Invoice service -Level JEE Server Data Access 1 e.g. Customer Data Access 2 e.g. Invoice Data Access-Level Oracle DB Adapter, JDBC, Persistenz-Level RDBMS Development Vision ARIS Artefakte & Generate Process XSD WSDL SNL 1 JDev 2 3 SDL 4 3 Szenarien (Screen Navigation) 7 8 Rules 5 ADF > JDeveloper Cocoon > Eclipse Silverlight > Visual Studio Screen Application Silverlight (SDL > XAML) Build & Deployment Approach 6 1. Prozessmodell Blue Print 2. Datentyp als XML Schema 3. definition als WSDL 4. Technische Implementierung in JDeveloper 5. Definition der Screen Navigations 6. Defintion der Screens 7. Business Rules 8. Build & Deployment 12
Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 13 Mögliche Generierungspunkte aus Datenmodellen DO Business Object Process 1 DO 2 e.g. findinvoicesbycustomer(..) XSD Data Access Data Access DO 1 2 e.g. findcustomerbyuid(..) e.g. findinvoicesbycustomeruid(..) Java Klasse Konverter C# Klasse
Kanonisches Datenmodell 15 Generierung von XSDs aus Business Objects Address Address Entity type D attribute (ERM) ERM domain XSD D attribute (ERM) ERM domain D attribute (ERM) ERM domain D attribute (ERM) ERM domain 16
XSD Import / Konsolidierung Order OrderItems XSD «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 = 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 17 XML / Java Binding durch JAXB Java Klasse 1 1 XML Schema 1 1 * Java Objekte JAXB 1 1 * * XML Dokumente Dokumente Dokumente Objekte Objekte 18
JAXB Anwendungsszenario Compile Time XML Schema Binding Compiler Schemabasierte Klassen und Interfaces Runtime Anwendung XML Dokumente marshal JAXB API unmarshal Objekte 19 Schwierigkeit: Data 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 Adapter Adapter Adapter Adapter Adapter Adapter Adapter Andere s Beschaffung Logistik
Vision der Integration: Generierung der Persistenz aus kanonischem Modell Legacy Model UML ARIS BPA Suite - UML Proprietary Format ERM VB-Script Generierung Pd-entity.xml ARIS Extension Generierung XSLT Transformation Entity.xml Entity.xsd EJB 2.0 JPA EJB 3.x.Net SDO EJB 3.x Hibernat e Ist Vision Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 22
Mögliche Generierungspunkte aus modellen Software Process e.g. Order process 1 2 e.g. Invoice service WSDL Data Access 1 Data Access 2 - & Client-Impl. Web Architektur Endpoint Definition (WSDL) import publish Web Client request / response Web Endpoint artifacts SOAP HTTP artifacts 24
Web Generierung Contract Driven Endpoint Definition (WSDL) Code Generator JAX-WS Client Proxy Proxy Servlet Engine Implementierung 25 Deployment eines Web in JEE 5 Oracle 11g Application Server Oracle Bus SCA Runtime Rules Engine Worklist Application JEE Web EJB 3 Book Web Application Mediator BPEL Engine @Web Class Book Notifications Messaging JTA JNDI JAX WS JPA JDBC 26
WSDL 2 Java WSDL Java wsdl:definitions @targetnamespace Package wsdl:porttype Interface @Web wsdl:operation Methode @WebMethod wsdl:fault Exception @WebFault 27 WSDL 2 Java - Client WSDL wsdl:service wsdl:port Java Erbt von javax.xml.ws. name ist Klassenname @WebClient "Proxy" getportname() @WebEndpoint 28
Beispiel Schichtenbildung von s und Prozessen Oracle Bus Bestandsprüfungs-P BANF-P BPEL Engine Beschaffunfgs-P Buchungs-P Oracle Bus EJB 3.x Container (WLS) ManageBANF-D Bestellungs-D Legacy Container Container RMI Material DB BANF-B B Entität 1 Bestellung-BB Entität 2 Externe s Product Warenhaus Beschaffung DB Container Calendar 29 Schwierigkeit: schichtung & Abhängigkeiten Process Application / UI 1 2 Process Data Access 1 Data Access 2 1 2
Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 31 Mögliche Generierungspunkte aus UI-Modellen Screen Screen Navigation Process 1 2 SDL SNL Data Access 1 Data Access 2 XAML
Anbindung der Oracle Worklist / Verarbeitung von Human Tasks Oracle PM BPEL Process JEE Webframe work UI Assign task Task complete s Worklist Silverlight API API Human Tasks Worklist s Human Task Clients als Mini-Applikation Silverlight XAPs als Mini-Applikation Bearbeitung eines Human Task Wiederverwendung als Ziel Screens in verschiedenen HTs Mini-Applikationen als HTs Schwierigkeiten Granularität der Screens Silverlightli Application Screen 1 Screen 3 Screen 2 miniapp.xap Silverlight Web Navigation 1.snl Navigation Controller Facade web-application.war services.ear D 1 D 2
Generierung von Screens und Navigationen Ziel: In ARIS Screen- und Navigationsmodelle zu pflegen Implementierungsneutral durch Intermediate Format Templates im Modell (Suche, Eingabe, Master-Detail,...) Screen Design per Screen Definition Language (SDL) Transformation nach XAML möglich (XSLT) Screen Navigation per Screen Navigation Language (SNL) Verarbeitung über Framework oder möglich Beispielmodell Screen Screen Model Container Komponenten Binding auf VO / DO View Objects als eerm (spezielles Mappingmodell) 36
Schwierigkeiten: Unvollständiges Metamodell 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 calls 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 Konvention: Transitionen nur über hier sichtbare Controls Pfadmöglichkeiten im Netz erfordern zustandsbehafteten Controller / 38
Gliederung MDSD meets BPMN Vision Datenmodellierung modelle Human Task Modelle Prozessmodellierung 39 Mögliche Generierungspunkte aus Prozessen BPMN Process e.g. Order process 1 2 BPEL Data Access 1 Data Access 2
Beispielhafte Process Map Bestellanfrage Beschaffung Bestellung SAP Reklamation Bestellung Wareneingang Bestands- prüfung Abgelaufener Warenausgang Umfüllung 41 Oracle SOA Suite Development-Architektur für BPEL Oracle 11g Application Server Oracle Bus SCA Runtime JEE Web EJB 3 Rules-Engine Mediator BPEL Engine Worklist ADF Messaging EJB JAX WS BPEL Notifications JTA JPA JDeveloper BPEL Designer JNDI JDBC 42
Schwierigkeit: Analyseunschärfe in der Prozessmodellierung Problematische Anforderungen in EPCs Enthalten Anforderungen als Freitext Funktionale Anforderungen die u.u. nicht zu BPMN transformiert wurden / werden konnten nicht druckbar kein automatisches Reporting nicht durchsuchbar Fragwürdiges Ergebnis bei starrer 1:1 Transformation Konsistente Modellierung des BO Zugriffs z.b. fehlende aufrufe Ungenaue Korrelation von Payloads, Prozessvariablen und parametern 43 Beispielprozess: Wareneingang 44
Schwierigkeit: Komplexität & Usability 45 Wareneingang: Hot Spot Detail Optimierungspotential Komplexität Bedienbarkeit in UI 46
Wareneingang: Hot Spot Lösungsmöglichkeit 1 Anlieferung aufnehmen 47 Wareneingang: Hot Spot Lösungsmöglichkeit 2 Bestellung Lieferung Prüfung Anlieferung aufnehmen Anlieferung aufnehmen Anlieferung aufnehmen 48
Fazit Oracle 11g SOA Suite ist......eine einsatzfähige Basis für eine modellgetriebene SOA...eine Laufzeitarchitekturplattform für human centric BPM...damit ein Erfolgsfaktor des Projektes Top-down Ansatz der Modellierung (EPC/ARIS nach BPMN) integriert sich nicht vollständig in die BPA Suite Werkzeugkette Generatoren bieten keine Möglichkeit des Reengineerings zwischen PSM und PIM, was zu Redundanzen bei WSDL- und Schemamodellen (ARIS/UML) führte Betrachtung der Kostenseite hohe initiale Modellierunganstrengungen notwendig sind Trägt die Idee von der Kopplung Analyse/Generierung? Kann die Analyse die notwendigen Details kennen? Iteratives Vorgehen notwendig 49 Mehr von OIO zum Thema 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 Artikel: Übersicht Eclipse Modeling Project EMP http://www.oio.de/public/opensource/uebersicht-eclipse-modelingframework-emp-emf-artikel.htm 50
???? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de? Fragen?? Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de