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]