Modellgetriebene Software-Entwicklung mit BPMN und SOA · PDF fileaus fachlichen...

55
Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: Modellgetriebene Software-Entwicklung mit BPMN und SOA 1.0

Transcript of Modellgetriebene Software-Entwicklung mit BPMN und SOA · PDF fileaus fachlichen...

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]:

ModellgetriebeneSoftware-Entwicklung

mit BPMN und SOA

1.0

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Modellgetriebene Software-Entwicklung mit BPMNund SOA

• Die modellgetriebene Softwareimplementierung (MDSD) betrieblicher Prozessekombiniert die Qualitäts- und Wartbarkeitsvorteile von modellierter undgenerierter Software, wird aber oft ob ihrer Kosten und Durchführbarkeitdiskutiert.Wenn dann im Rahmen eines modellgetriebenen Implementierungsansatzesaus fachlichen Prozessmodellen in BPMN verwertbare technische Artefakte füreine SOA-basierte Softwaregenerierung erstellt werden können, eröffnet sichein ökonomisch sinnvoller Lösungsweg. Leider reichen die ursprünglichenModellierungstechniken der Oracle BPA Suite für eine wirtschaftlicheausnutzbare Softwaregeneration nicht aus. Insbesondere die ThemenfelderUserinterface und persistente Daten verschließen sich einer leichtenGenerierbarkeit aus den existierenden Modelltypen. Die Erweiterbarkeit derBPA-Suite und die enge Integration mit den Konzepten der Laufzeitarchitekturder Oracle SOA Suite 11g erlauben jedoch die erfolgreiche Erweiterung derBasismodelle mit dem Ziel einer nahezu vollständigen Softwaregenerierung.Der Vortrag stellt in einem Projekt erprobten Modellierungskonzepte fürProzesse, Services, Daten und Benutzeroberflächen vor und berichtet über dieErfahrungen bei deren Umsetzung mit der Oracle SOA Suite 11g.

2

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPM Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

3

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

4

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Physical(PSM)

Conceptional(CIM)

Logical(PIM)

ARIS MDA Approach

5

Functional Cluster

Application SystemApplication SystemType

WSDL/XSD

OMGModelling Layer Diagramm Syntaxelement

VAD, EPCTechnical Terms

BPMNeERM

BPEL, WSDLXSD

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Modellerstellung: Bottom-up MDSD SOA Approach

• Existing• XSD• WSDL

Technical DataImport

• BusinessModel• BPMN

„ShareBlueprint“ • SCA-

Composite• BPEL

TechnicalImplementation

6

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Modellerstellung: Top-down MDSD SOA Approach

• Business Model• VAD/EPC• eERM, Access

Diagram, …

DatamodelGeneration • Generated

• XSD• WSDL

Consolidation

• Manually linkedartefacts fromBusiness Model

• BPMN

„ShareBlueprint“ • SCA-Composite

• BPEL

TechnicalImplementation

7

Eigenentwicklung

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

ImplementierungAnalyse

Top Down Analysis vs. Bottom Up Implementation

Data/ServicesTechnicalServices eERM

UserinterfacesScreenDesign

ScreenNavigation

Processes

VAC EPC BPMN

Processes

BPEL

UserinterfacesSDLà

XAML/XAP SNL

Data/Services

XSD WSDL

8

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Oracle BPA Suite 11g Oracle SOA Suite 11g

Oracle BPA Suite Übersicht

9

BusinessProcess

Repository

WeblogicServer

Business Process Architect JDeveloper

ShareBlueprint Deploy

Refresh fromBPA Server

Import

Manage

Plugin

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Oracle SOA Suite Laufzeitarchitektur

10

Oracle Weblogic Server

SCA Runtime

ServiceMediator

BPELEngine

BPELProcess

Notifications

WorklistApplication

Oracle Service Bus

JEE Web EJB 3

ADF EJBService

Rules Engine

Messaging JAX WS

JTA JPA

JDBCJNDI

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Laufzeitschichten der Anwendung

DomainService 2

DomainService 1

ProcessService

Data AccessData AccessService 1

Data AccessData AccessService 2

e.g. Customer e.g. Invoice

e.g. Invoice service

e.g. Order process

• GUI-LevelBrowser

• Process-LevelBPEL-Engine

• Domain-LevelJEE Server

• Data Access-LevelOracle Mediator, JDBC, …

• Persistence-LevelRDBMS

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Development Vision

ARIS Artefakte & GenerateProcess XSD WSDL SNL

JDev

2233

44

Build & Deployment Approach

Rules

3 Szenarien (Screen Navigation)• ADF > JDeveloper• Cocoon > Eclipse• Silverlight > Visual Studio

55

77

1. Prozessmodell – BluePrint

2. Datentyp als XMLSchema

3. Servicedefinition alsWSDL

4. TechnischeImplementierung inJDeveloper

5. Navigationscontroller6. Defintion der Screens7. Business Rules8. Build & Deployment

SDL

Screen ApplicationSilverlight

(SDL > XAML)

66

12

11

88

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

13

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Mögliche Generierungspunkte für Datenobjekte

Business Object

DomainService 2

DomainService 1

ProcessService

Data AccessData AccessService 1

Data AccessData AccessService 2

e.g. findCustomerByUID(..) e.g. findInvoicesByCustomerUID(..)

e.g. findInvoicesByCustomer(..)

DO XSD

Java-Klassen Konverter

DO

DO

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

XSD Generierung

15

XSDEntity type

D attribute (ERM)

D attribute (ERM)

D attribute (ERM)

D attribute (ERM)

ERM domain

ERM domain

ERM domain

ERM domain

Address Address

Generierung

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

XSD import

16

Order

OrderItems

«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

XSD import

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

XML / Java Binding durch JAXB

17

Klasse Schema

JAXB

1 1

* *

Objekte Dokumente Dokumente

*

Objekte

1

1 1

1

Objekte Dokumente

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

JAXB Anwendungsszenario

18

Anwendung

SchemabasierteKlassen

und Interfaces

Objekte

BindingCompiler

XMLSchema

XMLDokumente

JAXBAPImarshal

unmarshal

Compile Time

Runtime

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Vision der Integration: Generierung der Persistenzaus kanonischem Modell

Legacy ModelUML

ARISBPA Suite - UML

Pd-entity.xml

Entity.xml

JPA

EJB 3.x Hibernate

Hibernate

.Net

ProprietaryFormat

ARIS ExtensionGenerierung

Entity.xsd

SDOEJB 2.0

IstVision

EJB 3.x …

XSLTTransformation

ERM VB-ScriptGenerierung

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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

Andere Services Beschaffung

ESB

Adapter Adapter Adapter Adapter Adapter Adapter Adapter

Logistik

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

21

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Mögliche Generierungspunkte für Services

Software Service

DomainService 2

DomainService 1

ProcessService

Data AccessData AccessService 1

Data AccessData AccessService 2

e.g. Invoice service

e.g. Order process

WSDL

Service- & Client-Impl.

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

MDA Approach for SOA

23

PSM

PIM

CIM

Business ServiceModel

ServiceSoftware Service

Service

WSDL/XSD

BusinessService Business

service

Business ServiceMap Batch_Information

Batch_Information

IS function

Businessservice

read

Batch_Information

IS function

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Example: WSDL-Generierung aus AccessDiagramm

24

Validate Credit

CreditService

CreditService

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Web Service Architektur

25

Service EndpointDefinition (WSDL)Service EndpointDefinition (WSDL)

SOAPSOAPHTTPHTTP

request / response

import publish

Web ServiceClient

Web ServiceClient

artifacts

Web ServiceEndpoint

Web ServiceEndpoint

artifacts

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Web Service Generierung „Contract Driven“

26

CodeGenerator

JAX-WS

CodeGenerator

JAX-WS

Service EndpointDefinition (WSDL)Service EndpointDefinition (WSDL)

ImplementierungImplementierungClient

ServiceProxy

Servlet Engine

ServiceProxy

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Deployment eines Web Service in JEE 5

27

Oracle Weblogic Server

JEE Web EJB 3

JAX WS

@WebServiceClass BookService

BookWeb Application

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

WSDL 2 Java

28

WSDL Java

wsdl:definitions@targetNamespace Package

wsdl:portType Interface @WebService

wsdl:operation Methode @WebMethod

wsdl:fault Exception @WebFault

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

WSDL 2 Java - Client

29

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

Beispiel Schichtenbildung von Services undProzessen

BPEL EngineBeschaffunfgs-PService

Bestandsprüfungs-PService

BANF-PService

Buchungs-PService

EJB 3.x Container (WLS)ManageBANF DServiceManageBANF-DService

Oracle Service Bus

Bestellungs-DService

Oracle Service Bus

Legacy Container

ContainerRMIService

MaterialDB

Externe Services

ProductService Warenhaus

ContainerService CalendarServiceCalendarService

BANF-BService

Bestellung BServiceBestellung-BService

Entität 1 Entität 2

Beschaffung DB

30

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

31

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Mögliche Generierungspunkte für das UI

Screen

DomainService 2

DomainService 1

ProcessService

Data AccessData AccessService 1

Data AccessData AccessService 2

SDL

XAML

Screen Navigation

SNL

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

JEE

Worklist Services

Anbindung der Oracle Worklist /Verarbeitung von Human Tasks

Oracle PM

Taskcomplete

BPELProcess

Assign task

HumanTasks

UI

ServicesDomainServices

Webframework

API

Silverlight

API

DomainWorklist

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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 WebNavigationController

Silverlight Application

Navigation 1.snl

Screen 1

Screen 2

Screen 3

miniapp.xap

web-application.war

ServiceFacade

DService 1 DService 2services.ear

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Beispielmodell Screen

• Screen Model– Container– Komponenten– Binding auf DO

• View Objects als eERM(spezielles Mappingmodell)

36

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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 inARIS

– ActionsModellierung 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

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Beispielmodell Screen Navigation

• Technisch unterspezifiziert• Wurden angereichert um:

– “Start” Navigation– “End” Navigation

• Transitionen nur über hiersichtbare Controls

• Pfadmöglichkeiten im Netzerfordern zustandsbehaftetenController / Service

38

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Gliederung

• MDSD meets BPMN Vision• Datenmodellierung• Servicemodelle• Human Task Modelle• Prozessmodellierung

39

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Mögliche Generierungspunkte für Prozesse

BPMN

DomainService 2

DomainService 1

ProcessService

Data AccessData AccessService 1

Data AccessData AccessService 2

e.g. Order process

BPEL

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Beispiel Process Map Beschaffung

41

Bestellung Wareneingang

Löschung

BestellungSAP

BestellungSAP

kontrolleBestands-kontrolle

Bestellanfrage

AbgelaufenerWarenausgang

Reklamation

Beschaffung

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Anwendungsgebiete BPMN vs. BPEL

42

AutomatedBusiness Process IT Expert

Business AnalystBPMN

BPEL

Enterprise Dialog LogicDialog Control LogicProject Plan

KPI/SLA

ProcessProcess Logic ProcessProcess Logic BPEL

Domain Logical CompositionLogical CompositionFacade

DomainDomain Object

Core BusinessCore BusinessObject Core Business LogicCore Business Logic POJO

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Oracle SOA Suite Development-Architektur fürBPEL

43

Oracle Weblogic Server

SCA Runtime

ServiceMediator

BPELEngine

Notifications

Worklist

Oracle Service BusJEE Web EJB 3

ADF EJBService

Rules-Engine

Messaging JAX WS

JTA JPA

JDBCJNDI

BPEL

JDeveloper

BPEL Designer

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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

44

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Beispielprozess: Wareneingang

45

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Example: Referenzierung eines Service in BPMNüber ein Function Allocation Diagram

46

Rezeptierungsvorschriftchecken...

RezeptService isRezeptAvailableRequestVO

IsRezeptAvailableVO

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Wareneingang: Hot Spot Komplexität

47

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

WareneingangHot spot detail 1

48

Scanner

Typ derAnlieferungbestimmen

Bestellcode lesbar

Scan Bestellungscodeyes

Liefercode lesbar

Lieferpapiere vorhanden)

ManuelleEingabe desLiefercodes

Liefercodescannen

Barcode of Abpackung vorhanden

Abpackungscode scannen

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

WareneingangLess complex

49

Typ derAnlieferungbestimmen

Bestellcode lesbar

Scan Bestellungscodeyes

Liefercode lesbar

Lieferpapiere vorhanden)

ManuelleEingabe desLiefercodes

Liefercodescannen Anlieferung

aufnehmen

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

WareneingangLösung: BPMN variante

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

Anlieferungaufnehmen

BestellungLieferungPrüfung

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

Fazit

51

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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

• Schulung: UML2 für MDSD– http://www.oio.de/seminar/methodik-prozess-management-soft-

skills/training-uml-kurs-mdsd-schulung.htm

52

MDSD mit BPMN und SOA© 2010 Orientation in Objects GmbH

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/

• Beratung zu SOA / Web Services– http://www.oio.de/beratung-consulting/software-integration/soa-web-

services/index.htm

53

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

? ?

???

Fragen ?

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Vielen Dank für ihreAufmerksamkeit !