Modellgetriebene Software -Entwicklung mit BPMN …...Modellgetriebene Software -Entwicklung...

Post on 16-Mar-2020

3 views 0 download

Transcript of Modellgetriebene Software -Entwicklung mit BPMN …...Modellgetriebene Software -Entwicklung...

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 !