Home
Dissertation - Eldorado
Contents
1. 193 Oat SB Piles EE 196 6 3 Vergleich A ie eg Aen ed hae ed 201 7 bertragung des InBuS Konzeptes auf andere BPMS 207 7 1 jBPM ab Version 5 x 22 222 a EE 212 Hee SCHNEE beet LE aan area 214 8 Einfachheit als Erfolgsfaktor im BPM 217 8 1 Einfachheit bei der Service Integration 217 8 2 Einfachheit der Prozesssprachen 218 8 3 Einfachheit durch Abstraktion BPM in der Cloud 224 9 Fazit und Ausblick 227 Ol Paz EE EENEG 227 9 2 Ausblick ott 2 22 20 ER ak ee oe e 228 Literaturverzeichnis 231 Abbildungsverzeichnis 254 Tabellenverzeichnis 255 Listings 257 xi Inhaltsverzeichnis xii KAPITEL 1 Einleitung Die typischen Systemlandschaften in heutigen Unternehmen sind meist sehr heterogen Neben den zentralen ERP Systemen Enterprise Resour ce Planning gibt es oft noch viele weitere L sungen z B als selbst geschriebene Software oder sogar auf der Basis von Tabellenkalkulatio nen H ufig kommen auch noch sehr alte Systeme so genannte Legacy Systeme BLWG99 zum Einsatz welche oft nur schwer zu warten sind da sie in einer Programmiersprache entworfen wurden die heute kaum noch jemand beherrscht Das gutes Beispiel hierf r ist COBOL wel ches vorwiegend bei Banken und Versicherungen aber auch bei gro en Industrieunternehmen zum Einsatz kommt Die Einf hrung von ERP Systemen sollte bereits daf r sorgen dass im Unternehmen ein globales Integriertes In
2. WSDLs und die automatische Generierung von Java Code werden ein gesetzt Somit die die API Definition Teil der Implementierung und ist immer korrekt und vollst ndig KVS Bewertung Alle Business Objekte in NetSuite sind per API erreichbar Es gibt nichts was in der GUI m glich ist aber nicht per API Auf jedes Objekt kann dabei tiber jede CRUD Operation zugegriffen werden Die Abdeckung der Business Objekte ist demnach sehr gut 45 von 50 Punkte wie es in Tabelle 3 5 zu sehen ist 3 3 Cloud basierte ERP Systeme Tabelle 3 5 NetSuite Business Objekte Create Read Update Delete Simple Query Customer V D D D D Vendor D D D D D Item D D D D D Sales Quote d d D D D Sales Order D D D D D Sales Invoice D D D D D Purchase Quote Purchase Order D D D D D Purchase Invoice D D D D D Employee D D D D D hier Add thier Get hier GetList dhier Inventoryltem hier Estimate fhier VendorBill 93 3 Untersuchung von Business A PIs 94 Das System bietet kein Business Objekt f r Angebote also Sales Quo te oder Purchase Quote an jedoch gibt es das Business Objekt Esti mate zu deutsch Absch tzung oder Kalkulation und das NetSui te Help Center definiert Estimate folgenderma en An estimate transaction sometimes referred to as a qu
3. Die Benutzerauthentifizierung funktioniert immer gleich Der Benutzer schickt seinen Benutzernamen und sein Passwort zum Service login und bekommt ein Security Token sowie eine Endpoint URL zur ck Diese Daten sind nun f r alle folgenden API Aufrufe zu benutzen Dieser Vor gang ist sehr einfach wenn der Client das Salesforce eigene Web Service 90 3 3 Cloud basierte ERP Systeme Framework WSC einsetzt In dem Fall wird der gesamte Authentifizie rungscode automatisch generiert und der Entwickler muss sich keine Ge danken dar ber machen wie die Authentifizierung funktioniert Fall ei ne andere Technologie z B JAX WS BPEL SOAP UI zum Einsatz kommt um die Services aufzurufen muss der Entwickler den Algorith mus selbst implementieren Dieser ist nicht sehr kompliziert aber der Entwickler muss wissen wie mit verschiedenen Technologien umzugehen ist HTTP SAAJ JAXB JAX WS DOM XML gt EAM Bewertung o 3 3 1 4 Zus tzliche Informationen Die Dokumentation ist auf der Webseite verf gbar welche nat rlich dazu gedacht ist von Menschen gelesen zu werden Eine zus tzliche maschi nenlesbare Version w re vorteilhaft Es gibt keine Dokumentation der Business Objekte sowie deren Felder in den WSDL Dokumenten selbst Es w re zu w nschen wenn die Business Objekte auch in der WSDL dokumentiert w ren in lt documentation gt Tags und wenn diese Dokumentation ebenfalls in die generierten Java Stubs als JavaDoc b
4. 2 Die Engine informieren dass der Service die Verantwortung f r die Ausf hrung bernommen hat 3 Den Service ausf hren 4 Die Engine informieren dass der Service ausgef hrt wurde Damit wird der Engine erlaubt die Ausf hrung des Prozesses fortzusetzen Skript Aktivit ten Skript Aktivit ten sind bei YAWL nicht vorgese hen Technische Service Aktivitaten Es existieren mehrere fertige Imple mentierungen von YAWL Services Zum Aufruf von SOAP Web Services existiert der YAWL WS Invoker welcher die Technologie Apache WSIF einsetzt Weitere Services versenden SMS E Mails oder Nachrichten ber den Dienst Twitter Au erdem gibt es noch einen YAWL Service zum Umgang mit digitalen Signaturen Business Aktivit ten Durch die M glichkeit eigene YAWL Services zu implementieren ist es auch m glich so Business Aktivit ten zu er stellen Technische Unterst tzung z B durch Code Generatoren gibt es nicht Fazit Das Service Integration Konzept von YAWL besitzt den beson deren Pluspunkt der absoluten Unabh ngigkeit von Plattform und Pro grammiersprache Kritisch anzumerken ist dabei dass es auch nachteilig sein kann jeden einzelnen Service auch sehr kleinschrittige ber das Netzwerk aufzurufen Hier sollte man sehr darauf achten nur grobgra nulare Prozesse zu modellieren da ansonsten der Overhead f r die Nach richten bertragung zu gro wird Business Aktivit ten sind mit YAWL zwar m glich werden jed
5. ISSN 0018 9162 MARGARIA Tiziana STEFFEN Bernhard Simplicity as a driver for agile innovation In Computer 43 2010 Nr 6 S 90 92 MERTEN Maik STEFFEN Bernhard Simplicity driven application development 2012 MERTEN Maik STEFFEN Bernhard HOWAR Falk MARGARIA Tiziana Next Generation LearnLib In AB DULLA Parosh A Hrsg LEINO K Rustan M Hrsg TACAS Bd 6605 Springer 2011 Lecture Notes in Com puter Science ISBN 978 3 642 19834 2 S 220 223 MARGARIA Tiziana STEFFEN Bernhard REITEN SPIESS Manfred Service Oriented Design The Roots Version 2005 http dx doi org 10 1007 11596141_ 34 In BENATALLAH Boualem Hrsg CASATI Fa bio Hrsg TRAVERSO Paolo Hrsg Service Oriented Computing ICSOC 2005 Bd 3826 Springer Berlin Heidelberg 2005 450 464 10 1007 11596141 34 MULESOFT MuleSoft Website http www mulesoft org Version 2013 MULESOFT SaaS Integration Survey 2012 Trends Volume II http resources mulesoft com SaaSIntegrationSurvey html Version 2013 MusIL Clemens von JR Integration von Statistikfunk tionalitat in eine Prozessmanagementumgebung Techni sche Universit t Dortmund Diplomarbeit 2009 NAGEL R Technische Herausforderungen modellge triebener Beherrschung von Prozesslebenszyklen aus der Fachperspektive Von der Anforderungsanalyse zur Rea lisierung PhD thesis Dissertation Technische Universi t t Dortmund Lehrs
6. estimate und quote nicht ge nau synonym NetSuite behandelt sie jedoch gleich Auf der NetSuite Homepage schreiben sie ber Quote and Order Management aber die API kennt nur estimate Nicht nur Benennungen sind inkonsistent F r die meisten Objekte gibt es eine Entity ID also einen eindeuti gen Identifizierungsschl ssel f r dieses Objekt Leider besitzen nicht alle Business Objekte dieses Feld so hat ein Inventoryltem zum Beispiel eine Item ID IKB Bewertung o Die Struktur der API ist klar und einfach gehalten KES Bewertung 3 3 Cloud basierte ERP Systeme Die API Technologie ist sehr gut dokumentiert Die Business Objekte und deren Felder sind ebenfalls gut dokumentiert und zwar in einem PDF Dokument welches auf der NetSuite Webseite zum Herunterladen bereitsteht net12a KVD Bewertung 3 3 2 3 Technologie Mit WSDL und SOAP werden plattformunabh ngige Standards einge setzt so dass die API von beliebigen Plattformen und Programmierspra chen aus benutzt werden kann PUS Bewertung Der Datentransfer ist grunds tzlich verschl sselt Dies wird durch den strikten Einsatz von HTTPS SSL mit 128 Bit Verschl sselung erreicht Alle Web Services verlangen Authentifizierung und Autorisierung Ein Client bekommt Zugang zur API durch den Aufruf des Login Services Dieser Service erzeugt eine Session welche automatisch nach 15 Minu ten ohne Aktivit t ges
7. 0Benutzerfreundlichkeit der APIs 21Entwurfsregeln f r APIs 22 2 3 Application Programming Interfaces APIs Eine weitere sehr allgemeine Ver ffentlichung ber das gesamte Feld API Usability ist der Bericht einer entsprechenden Interessensgruppe bei der CHI Konferenz welche 2009 ver ffentlicht wurde DFMS09 Der Bericht beschreibt was unter API Usability zu verstehen ist und welche Fragestellungen in dem Gebiet aktuell untersucht werden Die Gruppe gr ndete auch eine Web Pr senz unter www apiusability org auf der Links und Ressourcen zum Thema gesammelt werden Zum Design von APIs stellt Bloch Bl006 eine umfangreiche Sammlung von Tipps f r Software Entwickler zusammen Eine zentrale Forderung ist dabei dass eine ver ffentlichte API sich im Idealfall niemals ndern sollte da es immer noch Software geben kann die diese API benutzt und davon abh ngig ist dass sie auch genau so funktioniert wie sie ur spr nglich erdacht und spezifiziert wurde Der Entwurf einer API muss also immer mit besonders gro er Sorgfalt geschehen und es sollte immer mehrmals gepr ft und berdacht werden ob der aktuelle Stand reif genug ist ver ffentlicht zu werden Die besondere Wichtigkeit von API Stabilit t und die damit zusammenh ngende Herausforderung eines gut funktionierenden Versionierungskonzeptes werden in Kapitel 3 wieder aufgegriffen wenn f r die Untersuchung von ERP APIs genau definiert wird welche Kr
8. 2011 IEEE Symposium on IEEE 2011 S 173 176 Kub13 KUBCZAK Christian jETI ein serviceorientiertes framework zur high level Ausf hrung von Remote Komponenten 2013 KVD00 KREMERS Mark VAN DISSEL Han Enterprise resource planning ERP system migrations In Communications of the ACM 43 2000 Nr 4 S 53 56 KWBE03 KLEPPE Anneke G WARMER Jos BAST Wim Ex PLAINED MDA The model driven architecture practice and promise 2003 LDL03 LinpsaAy A Downs D LUNN K Business pro cesses attempts to find a definition In Information and Software Technology 45 2003 Nr 15 S 1015 1019 LGZC10 Liu F Guo W ZHAO Z Q CHou W SaaS integration for software cloud In Cloud Computing CLOUD 2010 IEEE 8rd International Conference on IEEE 2010 S 402 409 LKRP 08 LEITNER Florian KRALLINGER Martin RODRIGUEZ PENAGOS Carlos HAKENBERG J rg PLAKE Conrad Kuo Cheng Ju Hsu Chun Nan TSAI RT HUNG Hsi Chuan LAu William W u a Introducing meta services for biomedical information extraction In Geno me biology 9 2008 Nr Suppl 2 S S6 LLCO9 Liv F Li L CHoU W Communications enable ment of software as a service SaaS applications In Global Telecommunications Conference 2009 GLOBE COM 2009 IEEE IEEE 2009 S 1 8 LLZ 07 Li Y Liu Y ZHANG L Li G XIE B SUN J An exploratory study of web services on the internet 240
9. 27 28 29 30 BusinessObject objectistLC 0bject objectistUC JavaService read objectistUC objectistLC Number execution setVariable String objectistLC Key getValue execution objectistLC 7 2 Activiti Listing 7 8 Template JavaDelegate package de activiti test import org activiti engine delegate DelegateExecution import org activiti engine delegate Expression import org activiti engine delegate JavaDelegate public class SalesOrderCustomService implements JavaDelegate private Expression salesOrderNumberKey private Expression salesOrderKey Override public void execute DelegateExecution exec throws Exception Integer salesOrderNumber Integer exec getVariable String salesOrderNumberKey getValue exec BusinessObject salesOrderObject SalesOrderJavaService read objectistUC salesOrderNumber execution setVariable String salesOrderKey getValue execution salesOrder Hier gilt das gleiche wie fiir die Ubertragung auf jBPM5 Jedoch ist hier zusatzlich zu beachten dass es sich bei Activiti nicht um einfach wieder verwendbare Business Aktivit ten handelt Wenn dies erreicht werden 215 7 bertragung des InBuS Konzeptes auf andere BPMS sollte so m sste der Prozess Editor von Activiti noch mindestens um folgende Features erweitert werden e Auflistung aller JavaDelegates in Kategorien Editor f r die Kategorisierung de
10. 4 5 return ActivityExecutionStatus Closed s Im Unterschied zu den meisten anderen Prozessengines wird bei WF f r die Kommunikation zwischen den Aktivit ten kein Variablen Kontext eingesetzt Der bergebene ActivityExecutionContext stellt keinen Daten Container dar sondern lediglich eine Sammlung einfacher Funk tionen mit denen die Ausf hrung gesteuert werden kann Zur Kom munikation zwischen den Aktivit ten werden stattdessen so genannte Dependency Properties eingesetzt Jede Aktivit t kann diese optional enthalten Da auch der Prozess selbst wieder eine Aktivit t ist besitzt auch dieser potentiell Dependency Properties Nun ist es m glich zwi schen den Properties z B von einer Aktivit t und dem umgebenden Prozess Bindings zu definieren So wird explizit definiert wie die Akti vit ten miteinander kommunizieren k nnen Dependency Properties sind dabei relativ kompliziert zu definieren Der beschriebene Vorgang ber Ohttp msdn microsoft com en us magazine cc163504 aspx 195 6 Service Integration in anderen BPMS Properties und Bindings zwischen den Properties ist recht komplex und technisch Dies ist auch Microsoft bewusst Sie verweisen dabei auf die gute Unterst tzung durch die Entwicklungsumgebung Visual Studio mit dessen so genannten code snippet support der auf Knopfdruck ge w nschte Code Segmente einf gt bzw vervollst ndigt Somit wird die Erstellung zwar vereinfach
11. angesprochen Die API ist insgesamt nicht durch Kategorien strukturiert und die einzelnen Services sind oft so klein dass viele Funk tionsaufrufe n tig sind um an zusammengeh rige Daten zu gelangen So gibt es zum Beispiel beim Kundenobjekt separate Funktionen zum Lesen der Adresse der E Mail und der Telefonnummer Eine Dokumentation der API ist kaum vorhanden so dass es oft schwierig ist die korrekten Service Namen zu identifizieren Auch sind nur sehr wenige Beispiele f r die Benutzung der API vorhanden Durch die Benutzung von SOAP WSDL bzw XML RPC werden grund s tzlich plattformunabh ngige Technologien verwendet Dabei ist je doch immer zu beachten dass diese Technologien hier nicht so eingesetzt werden wie sie gedacht sind sondern lediglich als Transportschicht f r das propriet re Protokoll Zur Autorisierung der Benutzer werden rollen basierte ACLs eingesetzt Optional kann f r die bertragung HTTPS eingesetzt werden Die Authentifikation erfolgt ber die Angabe von 61 ACL Access Control List 62 AZS 111 3 Untersuchung von Business A PIs Benutzername und Passwort bei jedem Aufruf Die API bietet weder Dokumentation noch Auswahlwerte noch Va lidierungsregeln oder Icons an Optionale Parameter sind lediglich im Dokumentations Tag der WSDL entsprechend gekennzeichnet wobei au erdem fast alle Parameter optional sind Man kann den Services wie bei OpenERP eine
12. zurufen eine SQL Aktivit t um SQL Skripte auszuf hren oder eine Webservice Aktivit t welche sich genau wie das lt invoke gt in WS BPEL verh lt Technische Service Aktivit ten sind im Allgemeinen schon viel besser ge eignet f r die Service Integration als Skript Aktivit ten Sie sind speziali sierter und erfordern normalerweise nicht die Kenntnis einer Programmier oder Skriptsprache Nichtsdestotrotz werden hier Gesch ftsprozess und Service Technologien immer noch nicht hinreichend voneinander getrennt 4 5 Business Aktivit ten Es dem Business Experten zu erm glichen ausschlie lich in dem ihm ver trauten Business Vokabular zu denken kann durch die Einf hrung einer entsprechenden DSL Domain specific Language MHS05 VDKV00 erreicht werden Es sollte klar sein dass Prozesssprachen die haupts ch lich auf Aktivit ten setzen wie sie in den Abschnitten 4 3 und 4 4 be schrieben wurden keine Business DSL darstellen k nnen Van Deursen et al VDKV00 definieren eine DSL folgenderma en A domain specific language DSL is a programming lan guage or executable specification language that offers through Diese Aktivit ten k nnte man auch den Skript Aktivit ten zuordnen 123 4 Service Integration in BPMS appropriate notations and abstractions expressive power focu sed on and usually restricted to a particular problem domain Folgende Punkte sind demnach zu erf llen 1
13. ContextElement 2 ContextExpression 3 ListBox Der Parametertyp ContextElement dient zur Deklaration von Kom munikation mit dem Ausf hrungskontext also zum Umgang mit Lauf zeitdaten Hier wird ein Schl ssel festgelegt unter welchem im Kontext ein entsprechendes Java Objekt zu finden ist Durch entsprechende An notationen an dieses Element kann optional definiert werden ob das SIB hier ein neues Objekt in den Kontext schreibt etwas aus dem Kontext liest ein Objekt im Kontext manipuliert oder eben dies l scht Mit dem Parametertyp ContextExpression k nnen Ausdr cke in der aus dem JavaEE Umfeld entlehnten Expression Language definiert werden Diese Ausdr cke k nnen dynamische und konstante Bestandteile besitzen Dynamisch kann auf Werte im Ausf hrungskontext zugegriffen werden oder Berechnungen k nnen durchgef hrt werden Konstante An teile sind zum Beispiel String Literale oder konstante Zahlenwerte Da hier eine technische Sprache verwendet wird sollte genau berlegt wer den ob man ein SIB mit einem Parameter dieses Typs ausstattet Dies f hrt unweigerlich dazu dass der Benutzer dieses SIBs die Ausdruckss prache beherrschen muss ContextExpressions sollten also im Optimal fall nur bei recht technischen SIBs verwendet werden die auf einer eher niedrigen Stufe der Hierarchie vorkommen so dass nur IT Experten mit diesen SIBs in Ber hrung kommen F r Business Experten wird der Ein satz schnell zu techn
14. Dies ist in dem Bereich schon eine erschreckende Zahl w re jedoch im ERP API Bereich noch weit schlimmer Bei der Vielzahl von Ver ffentlichungen zum Thema API Usability auf der einen Seite und der Wichtigkeit von APIs im SOA Umfeld ist es umso erstaunlicher dass bis jetzt recht wenige Arbeiten gibt die bei de Aspekte im Zusammenhang untersuchen Maleshkova et al MPD10 untersuchten 2010 Remote APIs also APIs von entfernten Systemen konzentrierten sich dabei jedoch auf die APIs von Web Applikationen wie zum Beispiel Flickr del icio us oder Doodle Insgesamt wurden mehr als 200 Web Applikationen analysiert die alle im Verzeichnis program mableweb com gelistet sind Statistiken angefertigt und folgende Aspekte untersucht e die Gr e der APIs Anzahl von Operationen e die technische Basis REST oder RPC e die Benutzung in Mash ups e ob Default Werte f r Parameter vergeben sind e ob optionale Parameter existieren die auch so gekennzeichnet sind e ob es coded parameters gibt also Parameter deren Wert von einer Berechnung abhangt e ob alternative Werte unterst tzt werden Auswahllisten 25REST Restfull State Transfer 26RPC Remote Procedure Call 25 2 Grundlagen e welches Format unterst tzt wird XML JSON e wie genau die Aufrufdetails aussehen z B zur Authentifizierung e ob eine gute Dokumentation mit Beispielen und Listen von Fehler nachrichten und codes existie
15. MG11 MELL P GRANCE T The NIST definition of cloud computing draft In NIST special publication 800 2011 S 145 MH11 MAZANEK Steffen Hanus Michael Constructing a bidirectional transformation between BPMN and BPEL with a functional logic programming language In Jour nal of Visual Languages amp Computing 22 2011 Nr 1 S 66 89 MHS05 MERNIK Marjan HEERING Jan SLOANE Anthony M When and how to develop domain specific languages In 241 Literaturverzeichnis ACM Comput Surv 37 2005 Dezember Nr 4 316 344 http dx doi org 10 1145 1118890 1118892 DOT 10 1145 1118890 1118892 ISSN 0360 0300 Mic12 MICROSOFT Microsoft Dynamics NAV Websi te http www microsoft com en us dynamics products nav overview aspx Version 2012 MJX 10 Myers Brad A JEONG Sae Y XIE Yingyu BEA TON Jack STYLOS Jeffrey EHRET Ralf KARSTENS Jan EFEOGLU Arkin BUSSE Daniela K Studying the Documentation of an API for Enterprise Service Oriented Architecture In JOEUC 22 2010 Nr 1 S 23 51 MNSO05 MARGARIA Tiziana NAGEL Ralf STEFFEN Bernhard Remote Integration and Coordinati on of Verification Tools in JETI In Engineering of Computer Based Systems IEEE International Conference on the 0 2005 S 431 436 http dx doi org http doi ieeecomputersociety org 10 1109 ECBS 2005 59 DOI http doi ieeecomputersociety org 10 1109 ECBS 2005 59 ISBN 0
16. PPH arlopue N yuanzyuequogeq _ Stot TRINA SOOTAIOS GOM pat mama ONOSTULDOL SNS Teygueog UOFSHAIILY IALIS MO TEISLIV Z UOA Z TBL PIISPA SINIE 70 MPL 205 6 Service Integration in anderen BPMS 206 KAPITEL bertragung des InBuS Konzeptes auf andere BPMS Durch die Trennung von Backend und Frontend in InBuS ist eine Uber tragung auf andere BPMS als das jABC sehr einfach m glich Dabei kann die Backend Seite komplett bernommen werden Nur das Fron tend muss an die entsprechenden Prozesskomponenten angepasst wer den Dabei ist es sehr vorteilhaft dass hier Templates als technologi sche Grundlage verwendet werden Existieren schon Templates f r z B SIBs so k nnen diese durch eine entsprechende Abwandlung recht schnell zu Templates alternativer Prozesskomponenten werden In einem ersten Schritt kann dazu einfach eine spezielle Instanz einer Prozesskomponen te von Hand implementiert werden Diese Implementierung dient dann als Vorlage f r das neue Template Man analysiert dabei die Implemen tierung dahingehend welche Bestandteile konstant und welche variabel sind Die variablen Bestandteile werden dann entsprechend durch Kon strukte der Template Sprache ersetzt Welche Konstrukte z B konkrete Variablen zur Verf gung stehen und auch benutzt werden m ssen kann dabei sehr einfach z B einem existierenden SIB Template entnommen werden In Listing 7 1 ist eine vereinfachte Version des Te
17. SA ck BS ads Se Skript Aktivit ten aoa eg Soe eS OE Ew e Technische Service Aktivit ten 2 222222 0 Business Aktivit ten ASL EENHEETEN E EE EE EE 4 5 3 Organisation 58 rn Ae el e A ede ee end 5 Service Integration im jABC 5 1 5 2 5 3 5 4 Service Integration mit SIBs Oe Skript Aktivit ten e649 SU Er aS eos 5 1 2 Technische Service Aktivit ten 8 1 3 Business Aktivit ten Manuelle SIB Implementierungen 32 MOMCEIBS san eye gene 592 BRPSSIBE sr eat EE 5 2 3 Weitere SIB Implementierungen SIB Generierung ea N ee a 5 3 1 Template basierte Code Generierung 5 32 EE esse ee 5 3 3 Integration der SAP BAPI 5 3 4 Integration von Intuit Quickbooks 5 3 5 Das InBuS Framework 5 3 6 Integration von Microsoft Dynamics NAV Anwendungsbeispiel oo a a a a a SAT ENEE a e Wala ee ea ee a 5 4 2 Umsetzung 2a are ed Sed 119 119 121 121 123 123 125 127 129 Inhaltsverzeichnis 6 Service Integration in anderen BPMS 177 EN a Se a a eat ee ea aa ee 177 6 1 1 jBPM 4 x PDL se tis 2d Sy he ce ot kt ode Be Ste 179 GK jBPM 5 x BPMN 2 0 2 2 28 2 ae ke A 181 6 2 Activiti BPMN 2 0 EE ee EE lee Ge che Soke a 184 6 3 Bonita Open Solution BPMN 2 0 185 0 4 Arista FOW 2 0 2 padha fe he E an en ade o 188 6 9 YAW e Byes ade ae N So kD keg Sek tue KEY 191 6 6 Windows Workflow Foundation
18. SQL k nnen als direkte Parameter von Aktivit ten problematisch sein Salso einen zu interpretierenden Ausdruck 122 4 4 Technische Service Aktivit ten 4 4 Technische Service Aktivit ten Vielen BPMS merkt man an das bei ihrer Entwicklung haupts chlich die dahinter liegenden Technologien im Fokus der Aufmerksamkeit stan den Dies f hrt dazu dass die am h ufigsten eingesetzte Technik zur Service Integration sich auf die Technologie bezieht mit der der Ser vice angeboten wird Ein gutes Beispiel daf r ist WS BPEL Hier gibt es die Aktivit t lt invoke gt f r den Aufruf eines durch WSDL defi nierten SOAP Webservices Bei der Benutzung dieser Aktivit t oder irgendetwas anderem in WS BPEL muss der Prozessmodellierer ein tie fes Verst ndnis f r alle beteiligten Technologien wie WSDL SOAP XSD manchmal auch XSLT aufweisen Ein Prozessmodellierer denkt typischerweise in Schritten wie F hre Preiskalkulation durch und ein Wechsel im Denken hin zu Schritten wie Rufe den Webservice auf wel cher die Preiskalkulation ausf hrt kann eine gewaltige H rde darstellen besonders wenn auch noch viele andere Technologien existieren WS BPEL ist nicht die einzige Prozessbeschreibungssprache mit sol chen technischen Service Aktivit ten wie sie im Folgenden weiter ge nannt werden sollen Fast alle Sprachen und Systeme bieten Aktivit ten wie zum Beispiel eine Java Aktivit t an um Java Methoden auf
19. Verzeichnis dienen ist dass diese Information veralten kann Wenn ein neuer Service hinzugef gt wird oder ein bestehender entfernt wird so gelangt diese Information nicht automatisch in die Dokumentation Es ist immer m glich dass vergessen wird den Text zu aktualisieren Er fahrung lehrt uns dass dies auch h ufig so geschieht KVS Korrekte und vollst ndige Service Definitionen Die ver ffentliche Beschreibung der API entspricht leider nicht immer ex akt der Implementierung Dies ist dann der Fall wenn die Beschreibung manuell gepflegt wird anstatt bei jeder Implementierungs nderung auto matisch aktualisiert zu werden Bei einem Ansatz wie es zum Beispiel bei JavaDoc Oral2 angewandt wird kann dieses Problem nicht auftreten Hier wird die Dokumentation der Interfaces Klassen etc direkt an diese annotiert um dann durch das JavaDoc Tool die entsprechende HTML Dokumentation automatisch zu generieren In den Build Tools kann nun verankert werden dass bei jedem Kompiliervorgang automatisch auch das JavaDoc aktualisiert wird hnliche Automatisierungen sollten bei allen API Dokumentationen verwendet werden Im Bereich der Webser vices dienen meist die WSDL Dateien selbst als ihre Dokumentation Es existiert auch noch ein entsprechendes Dokumentations Tag im WSDL Standard um jedes Element einer WSDL entsprechend zu erl utern 59 3 Untersuchung von Business A PIs 60 VZB Voller Zugriff auf Business Objekte Jede API s
20. als Parameterwerte verlangt werden Technische Service Aktivit ten jBPM 5 setzt darauf den Einsatz technischer Service Aktivit ten m glichst zu vermeiden So gibt es hier bewusst keine Aktivit t wie z B Call Web Service Stattdessen wird die Benutzung dom nenspezifischer Aktivit ten empfohlen welche dem Konzept der Business Aktivit ten sehr nahe kommen Zwei fertig zu benutzende Aktivit ten werden bereits mit dem Produkt ausgeliefert Dies sind eine Logging Aktivit t zur Generierung von Log Nachrichten w hrend der Laufzeit sowie eine Aktivit t zum Verschicken von E Mails Diese k nnen sowohl als technische Service Aktivit ten als auch als Business Aktivit ten wahrgenommen werden Nat rlich ist es 18http mvel codehaus org 181 6 Service Integration in anderen BPMS 182 auch immer m glich die dom nenspezifischen Aktivit ten zu nutzen um eigene technische Service Aktivit ten zu entwickeln Business Aktivit ten Im Handbuch zu jBPM 5 ist zu lesen dass do main specific processes also dom nen spezifische Prozesse unterst tzt werden Damit ist gemeint dass Prozesse dom nenspezifische Business Aktivit ten enthalten k nnen In jBPM werden diese manchmal als work items und manchmal als domain specific services bezeichnet Es exis tiert ein Komponentenmodell welches definiert wie eigene Aktivit ten entwickelt werden die im Prozessmodellierungstool in der Aktivit ten samm
21. ckgabewert direkt durch diese Methode zu erhalten Manche technischen Eigenschaften aus dem SAP Technologie Umfeld also von BAPI RFC und ABAP werden in der JCo API nicht ver steckt sondern wie sie sind angeboten Diese Eigenschaften sind ebenfalls nicht Java typisch Am wichtigsten ist hierbei wohl die Beschr nkung der komplexen Datenstrukturen auf Structure und Table Dies ist weit von einer Objektorientierung entfernt Ein weiterer Punkt ist dass es manch mal neben den eigentlichen Datenstrukturen noch zus tzlich sogenannte X Leisten gibt Dabei handelt es sich um eine Checkliste also eine Liste von ankreuzbaren Feldern die f r jedes Feld einer Datenstruktur angibt ob die hier ein neuer Wert angegeben wird der ber cksichtigt werden soll Im Beispiel ist die Behandlung einer solchen X Leiste in den Zeilen 21 bis 24 zu sehen Hier existiert zur Datenstruktur CLIENTDATA noch die X Leiste CLIENTDATAX F r alle Felder dieser Datenstruktur muss nun der Wert auf X gesetzt werden Auch ist hier zu sehen wie intern der fehlende Boolean Datentyp abgebildet wird und zwar mit ei ner Zeichenkette die genau ein Zeichen lang ist und entweder ein X f r true oder ein Leerzeichen f r false enth lt Bei der Behandlung von Fehlern kommt ebenfalls das SAP typische zum Vorschein und ersetzt die Java typische Herangehensweise Kommt es beim Aufruf der Funktion zu einem Fehler so wird nicht Java typisch eine Exception geworfen Der Funkt
22. computing systems ACM 2010 S 1331 1334 fab1 1 FABERNOVEL Amazon com The Hidden Em pire http de slideshare net faberNovel amazoncom the hidden empire Version 2011 FFIO4 FORMAN Ira R FORMAN Nate IBM John V Java reflection in action 2004 FK05 FAN J KAMBHAMPATI S A snapshot of public web services In ACM SIGMOD Record 34 2005 Nr 1 S 24 32 Fow02 FOWLER M Public versus published interfaces In Soft ware IEEE 19 2002 Nr 2 S 18 19 http dx doi org 10 1109 52 991326 DOI 10 1109 52 991326 ISSN 0740 7459 236 FP02 FZ10 Gae07 Gao06 Gib77 GJZ 11 GPTI2 GSSO04 GX09 H 95 HAAR10 Literaturverzeichnis FRANKEL David PARODI John Using model driven architecture to develop web services In IJONA Techno logies white paper 2002 FAROOQ U ZIRKLER D API peer reviews a me thod for evaluating usability of application programming interfaces In Proceedings of the 2010 ACM conference on Computer supported cooperative work ACM 2010 S 207 210 GAEB J rn Entwicklung eines BPEL Plugins f r das JavaA BC Framework Universit t Dortmund Diplomar beit 2007 Gao Yi BPMN BPEL transformation and round trip engineering In URL http www eclarus com pd BPMN BPEL Mapping pdf 2006 GIBSON JJ The concept of affordances In Perceiving acting and knowing 1977 S 67 82 GERKEN J JETTER H C
23. die zu den gro en Dienstesammlungen von ERP Systemen geh ren Dazu wird eine Reihe verschiedener repr sentati ver APIs von ERP Systemen systematisch untersucht bewertet und die dahinter liegenden Konzepte analysiert und kategorisiert Da sich her ausgestellt hat dass aktuelle Entwicklungen im Bereich des Cloud Computing sich ganz besonders auf die Natur der Services ausgewirkt haben wird auch dieser Aspekt mit in die Untersuchungen einbezogen Es wird gezeigt dass der XMDD Ansatz bzgl der Service Integration das Gesch ftsprozessmanagement deutlich vereinfachen kann Durch die Implementierung eines Frameworks zur Generierung von Prozessbaustei nen die im Prozessmodellierungstool jJABC verwendet werden k nnen wird gezeigt dass es m glich ist dass auch Prozessmodellierer ohne tech nisches Know How ausf hrbare Gesch ftsprozesse erstellen und zum Ein satz bringen k nnen 1 2 Thesen und Anforderungen Im Folgenden werden 5 Thesen bezeichnet mit T1 bis T5 aufgestellt aus denen sich die Anforderungen dieser Arbeit direkt ergeben Die An forderungen bestehen konkret darin diese Thesen durch Untersuchungen und eigene Implementierungen zu belegen oder bei Bedarf entsprechende Einschr nkungen aufzuzeigen T1 Entt uschende Qualit t von ERP APIs Die Schnittstellen von ERP Systemen haben im Allgemeinen eine sehr entt uschende Qualit t Au erdem gibt es keinen Standard f r die Entwicklung von ERP APIs Daraus folgt
24. gbar als Library gibt Wiederverwendung ist demnach ein wichtiger Baustein auf dem Weg zur Einfachheit Teilweise konnten durch den Einsatz von Libraries komplexe Aufgabenstellungen durch sehr wenige Code Zeilen gel st werden Maik Merten zeigte am Beispiel einer Neuimplementierung des jJABC Editors als SaaS L sung WebABC dass auch hier die Betonung und strikte Beachtung der Einfachheit zu einem sehr guten Ergebnis f hrt MS12 51 2 Grundlagen 52 KAPITEL 3 Untersuchung von Business APIls Wenn Systeme in Prozesse integriert werden sollen so muss es eine M g lichkeit geben die Systeme anzusteuern Im Bereich der ERP Systeme haben deren Hersteller schon lange erkannt dass es wichtig ist hier ei ne Sammlung von Services anzubieten also eine API mit der man von au en auf die Daten und Funktionen des Systems zugreifen kann In die sem Kapitel werden die Ergebnisse einer Untersuchung beschrieben die die APIs verschiedener ERP Systeme vergleicht Die untersuchten Sys teme sind dabei von sehr unterschiedlicher Natur Vertreten sind sowohl Systeme die von gro en Konzernen eingesetzt werden als auch kleine L sungen f r kleine oder mittlere Unternehmen oder sogar Einzelperso nen Ein weitere wichtige Kategorisierung ist die der Deployment Art ob es sich also um traditionelle on premise Systeme handelt die al so im unternehmenseigenen Rechenzentrum betrieben werden oder um Cloud basierte Systeme bei d
25. ge und bezeichnet sowohl eine Petri Netz basierte Prozessbeschreibungs sprache als auch das dazugeh rige BPMS welches als Open Source 191 6 Service Integration in anderen BPMS Software frei verf gbar ist Die Sprache YAWL wurde mit dem Ziel entwi ckelt eine Prozesssprache zu besitzen die alle so genannten Workflow Patterns DATHKBO3 direkt unterst tzt Workflow Patterns sind da bei typische Kontrollfluss und Datenflusselemente die als strukturie rende Elemente in verschiedenen Prozesssprachen vorkommen Beispiele sind die Sequenz die parallele Verzweigung oder die exklusive Aus wahl Ein Workflow Pattern entspricht also in etwa der Einf hrung eines neues Control SIBs im jABC Insgesamt werden aktuell auf der Homepage Wor13 43 verschiedene Patterns gelistet Daraus folgt dass es sich bei YAWL um eine sehr komplexe Sprache handelt da f r jedes Pattern ein entsprechendes Element vorhanden sein muss welches von Modellierer verstanden und richtig eingesetzt werden muss Nicht nur die Sprache selbst ist sehr komplex Gleiches gilt ebenso f r den Mechanismus zur Service Integration welcher sich stark von den Konzep ten der oben beschriebenen BPMS abhebt F r die Einbindung von Ser vices werden so genannte Custom YAWL Services Thel3b Thel3a eingesetzt Dies sind mit SIBs vergleichbare Prozesskomponenten nur dass diese nicht von der Prozessengine selbst sondern entfernt ausgef hrt werden Die Serv
26. ist nirgendwo hinterlegt wie genau sie zu bedienen ist Die Reihenfolge der typischen Schritte zur Erledigung einer Aufgabe ist meist nirgend wo dokumentiert Das hat zur Folge dass nur der Ersteller selbst sein Konstrukt bedienen kann und er sich somit selbst unersetzlich macht Verl sst er das Unternehmen oder wechselt er nur die Abteilung so kann dies katastrophale Folgen haben Um diese Probleme zu beheben ist anzustreben solche prototypischen L sungen zu migrieren und zwar hin zu prozessgesteuerten service orientierten Systemen Dabei k nnen die existierenden Tabellenkalkula tionen gut als Einstieg in die Anforderungsanalyse herangezogen werden Da hier die Prozesse nicht enthalten sind m ssen erg nzend Interviews mit den Erstellern durchgef hrt werden Gibt es neben dem Ersteller noch weitere Benutzer so k nnen diese ebenfalls interviewt werden Die Protokolle dieser Interviews k nnen dann als Grundlage f r die Prozess modellierung dienen Die Tabellenkalkulationen selbst dienen eher als 5 2 Manuelle SIB Implementierungen Anforderungsanalyse f r die Datenseite Ist die Modellierung abgeschlossen k nnen die Prozesse technisch umge setzt werden Um einen Big Bang zu vermeiden kann an dieser Stelle eine schrittweise Migration vollzogen werden Dazu wird zun chst die Tabellenkalkulation weiter als Daten Backend genutzt und durch den au tomatisierten Gesch ftsprozess gesteuert Erst in einem sp teren Schritt
27. kann dann bei Bedarf die Tabellenkalkulation zum Beispiel durch ein Datenbanksystem oder gar ein ERP System ersetzt werden Es muss al so m glich gemacht werden ein Office System service orientiert in ein BPMS zu integrieren Im besten Fall m chte man Business Aktivit ten die der Nutzung und Manipulation von Office Dokumenten wie z B Tabellenkalkulationen dienen Dies wurde in verschiedenen Projekten durchgef hrt Die Projektgruppe Excelerate ACD 12 befasste sich zum Beispiel genau mit diesen Thema n mlich der Migration von Mi crosoft Excel basierten L sungen hin zu agilen service orientierten Archi tekturen Weiterhin wurden sowohl f r Industrieprojekte als auch f r in terne Demonstrationszwecke weitere Integrationen von Office Produkten durchgef hrt Textverarbeitungssoftware wurde in Prozessen oft zur ein fachen Generierung von Berichten verwendet Im Folgenden wird auf die unterschiedlichen integrierten Systeme und die verschiedenen Her angehensweisen der Integration eingegangen In Abschnitt 5 2 1 1 geht es um die Integration von MS Office auf zwei unterschiedliche Arten in Abschnitt 5 2 1 2 folgt dann eine Erl uterung der Integration von Open Office bzw LibreOffice 5 2 1 1 Microsoft Office Die Ansteuerung von Microsoft Office von au en ist prinzipiell m glich jedoch nicht immer ganz unproblematisch Es gibt grunds tzlich dabei zwei verschiedene Ans tze Zum einen kann man ber die COM basierte API auf Off
28. kommen in Programmcode nat rlicherweise sehr h ufig vor z B bei den Parametern von Methoden Da es hier im Allgemeinen um Service Integration geht und im speziellen um die Integration meist sehr komple xer Services mit zahlreichen Parametern ist dies besonders praktisch So ist es bei Velocity n tig daf r eine Schleife zu programmieren welche die Parameter ausgibt und f r jede Iteration ein Komma anzuf gen Dabei muss jedoch zus tzlich bei jeder Iteration berpr ft werden ob es sich um die letzte Iteration handelt Ist dies der Fall so muss die Ausgabe des Kommas ausgelassen werden Bei StringTemplate wird die Produk tion Komma separierter Listen stattdessen durch eine Anwendung eines Sub Templates auf alle Elemente einer Menge durchgef hrt wobei expli zit eine Zeichenkette in diesem Fall ein Komma als Trenner angegeben werden kann Nachdem mit einem Template der Code generiert wurde wird mit dem Code Beautifier Jalopy der Code formatiert so dass er auch menschen 42 Anzahl der BPMS multipliziert mit der Anzahl der Business APIs 43 Anzahl der BPMS und Anzahl der Business APIs werden addiert 4http www antlr org Shttp www stringtemplate org 46http jalopy sourceforge net bzw http notzippy github com JALOPY2 MAIN 160 5 3 SIB Generierung Business Objekt ausw hlen Funktion ausw hlen optionale Parameter ausw hlen Datenquellen angeben Dokumenation und Icon angeben Benutzungsregeln ang
29. mit der Beschriftung Details werden verschiedene Registerkarten mit Laufzeitinformationen zur Verf gung gestellt Hier wird unter anderem angezeigt welche Ausf hrungsthreads momentan existieren die Inhal te des Ausf hrungskontextes k nnen eingesehen werden und die gesamte Ausf hrungshistorie wird in einer entsprechenden Tabelle protokolliert und dargestellt Da das Tracer Fenster mehrere Erweiterungspunkte be sitzt ist es f r andere Plugins m glich weitere Schaltfl chen Anzeigen 54Beispiele Eclipse Netbeans IntelliJ Idea Microsoft Visual Studio 55Die parallelen Threads k nnen auch einzeln gesteuert werden 47 2 Grundlagen no customer RE ebe default ut customer name Choose custom Find customers in SAP default GITT default gt defauli e ead cu address Display Customer Execution SimpleCustom 2 8 SU M Immer im Vordergrund details gt gt gt C Haltepunkte ignorieren M abnehmende Kantenfarbe Status PAUSED Abbildung 2 5 Ausf hrung im jABC mit dem Tracer oder ganze Registerkarten einzuf gen auf denen weitere Informationen ber die aktuelle Ausf hrung dargestellt werden Die Ausf hrung im jABC muss bei den SIBs nicht genau das gleiche Ver halten bewirken wie eine Ausf hrung im Produktivbetrieb Es ist m g lich f r ein SIB separate Anweisungen f r beide Szenarien zu hinterlegen Zum Beispiel kann eine Ausf hrung eines SIB
30. sind drei eher technische Kern Dokumente von 43 Dokumenten insgesamt Die Business Objekte haben allesamt keinerlei verpflichtende Bestand teile DOP Bewertung 3 3 3 Workday Workday wor12 ist eine SaaS L sung welche nicht wirklich alle Be reiche von dem abdeckt was man unter einem ERP System versteht Stattdessen konzentriert sich die Software auf die Mitarbeiter eines Un ternehmens weswegen sie sich selbst auch Human Capital Management Tool nennt Neben der Verwaltung von Mitarbeitern werden ebenfalls thematisch verwandte Gebiete abgedeckt wie z B Gehaltsabrechnun gen Ausgabenverwaltung Projektmanagement und Finanzmanagement Workday wurde 2005 von Dave Duffield Gr nder von PeopleSoft und Aneel Bhusi ehemaliger Vize Pr sident von PeopleSoft gegr ndet 3 3 3 1 Zentrale Anforderungen Das Workday System besitzt keine echte Registry welche aber auch nicht wirklich ben tigt wird Es gibt nur eine feste Anzahl von WSDL Dokumenten genau eine WSDL pro Kategorie von Services Es ist eben falls m glich mehrere dieser WSDLs zu gr eren zu b ndeln durch das Hintereinanderh ngen von durch Plus Zeichen getrennten Kategoriena men in der URL der WSDL Wenn also der Client auf die gesamte API zugreifen m chte so ist es theoretisch auch m glich eine WSDL f r das gesamte System herunterzuladen und anschlie end z B Java Stubs daraus zu generieren Innerhalb der Kategorien existieren aus einer rei
31. 2 Grundlagen Modellierung Implemen Optimierun E S BPM tierung Kreislauf Monitoring Ausf hrung Abbildung 2 1 BPM Kreislauf alle Bestandteile des genannten Kreislaufs umfasst Das bekannteste Beispiel f r eine direkt ausf hrbare Gesch ftsprozess sprache ist WS BPEL oft auch einfach BPEL genannt Man merkt hier deutlich dass die Sprache eher aus der SOA Welt als aus der BPM Welt stammt da hier ein Prozess wirklich nur aus einer Orchestrierung von Services besteht Prozesse laufen also vollautomatisch ab und jeder Pro zessschritt ist der Aufruf eines Web Services Echte Gesch ftsprozesse in denen es neben IT Systemen auch um Menschen geht die involviert werden m ssen sind zun chst einmal nicht m glich Erst sp ter wurde daher die Erweiterung BPEL4People also BPEL f r Menschen einge f hrt was lange Zeit nur ein White Paper ohne Implementierung war und irgendwann wenn auch oft sehr unterschiedlich nach und nach von den Engine Herstellern umgesetzt wurde In dieser Arbeit werden ausschlie lich ausf hrbare Prozessbeschreibungen betrachtet Reine Mo dellierungen zu Dokumentationszwecken spielen hier keine Rolle Automatisierte Prozesse wie in BPEL sind auch typisch f r den Bereich der Enterprise Application Integration EAI wo es darum geht ver schiedenste Applikationen in einem Unternehmen miteinander zu verbin den Dazu wird traditionell eine nachrichtenbasierte Middleware MOM Message Ori
32. 2 Web Ontology Language Document Overview Second Edition http www w3 org TR owl2 overview Version 2012 WATSON R B Improving software API usability through text analysis A case study In Professional Communication Conference 2009 IPCC 2009 EEE In ternational IEEE 2009 S 1 7 WEIDLICH Matthias DECKER Gero GROSSKOPF Alexander WESKE Mathias BPEL to BPMN The myth of a straight forward mapping In On the Move to Meaningful Internet Systems OTM 2008 Springer 2008 S 265 282 WFMC The workflow reference model Web site http www wfmc org reference model html workflow_reference_model Version 1995 WHITE Stephen Using BPMN to model a BPEL pro cess In BPTrends 3 2005 Nr 3 S 1 18 WINKLER Christian Entwicklung eines JABC Plugins zum Design von JDBC kompatiblen Datenbankschemata Technische Universit t Dortmund Diplomarbeit 2006 Wu Y C MAR L W JIAU H C CoDocent Support API usage with code example and API documentation In Software Engineering Advances ICSEA 2010 Fifth International Conference on IEEE 2010 S 135 140 251 Literaturverzeichnis wor12 Workday Website http www workday com Version 2012 Wor13 WORKFLOW PATTERNS INITIATIVE Workflow Pat terns home page http workflowpatterns com Version 2013 WZDO7 WEINREICH Rainer ZIEBERMAYR Thomas DRA HEIM Dirk A versioning model for enterprise services In Advanced Information Networking
33. Bereitstellung einer solchen Bibliotheken Sammlung in gleich sechs Programmiersprachen stellt einen erheblichen Aufwand fiir den Anbieter Google dar Bei jeder Anderung der REST API miissen auch alle Client Bibliotheken angepasst werden Auf der anderen Seite ist die Situation fiir die Benutzer der API so besonders komfortabel Man muss sich keine Gedanken tiber entfernte Funktions aufrufe Sicherheitsaspekte oder Netzwerkthemen im Allgemeinen ma chen Stattdessen kann einfach die lokale Java API genutzt werden Der Entwicklungsaufwand liegt hier also beim Anbieter nicht beim Benut zer Dies ist Google m glich da die angebotenen Dienste ein relativ festes Angebot an Services besitzt Bei ERP Systemen wie SAP ERP oder CRM Systemen wie Salesforce w re dieser Ansatz kaum praktika bel Zum einen sind diese APIs erheblich gr er zum anderen treten hier deutlich h ufiger nderungen und Anpassungen z B im Customi zing auf Salesforce bietet daher zwar auch eine eigene Client Bibliothek an diese generiert jedoch immer erst den Client seitigen Code aus der API Beschreibung Bei SAP wurde dabei die SOAP basierte eSOA Technologie eingesetzt siehe dazu auch Abschnitt 3 2 2 Bei SAP eSOA wird zu den angebo tenen SOAP Webservices keine Client Library angeboten Stattdessen 3https developers google com google apps app apis 4 ttps developers google com gdata docs client libraries 145 5 Service Integration im jABC 146 kann
34. CUSTOMERADDRESS Structure 31 fields CUSTOMERCOMPANYDETAIL Structure 15 fields CUSTOMERGENERALDETAIL Structure 110 fields RETURN Structure 10 fields table CUSTOMERBANKDETAIL optional 8 fields Abbildung 3 5 Struktur der BAPI zum Lesen von Kundendaten Ausgabedaten Die Bereiche Import und Export k nnen Parameter ent halten die entweder einen einfachen Datentyp haben oder eine Structure darstellen In der Gruppe Table befinden sich nur Parameter des Typs Table Leider kann man der API nicht direkt ansehen ob eine Table daf r vorgesehen ist dass man Daten in sie hineinschreibt oder Daten aus ihr herausliest oder sogar beides Diese Information muss der Dokumentati on entnommen werden die in nat rlichsprachlichem Freitext formuliert ist Ein Beispiel einer Schnittstellendefinition ist in Abbildung 3 5 zu se hen Es handelt sich um eine Funktion zum Lesen von Kundendaten Die Details zu den verwendeten Structures wurden hier ausgelassen KES Bewertung 0 Die Dokumentation ist relativ unvollst ndig F r zahlreiche Funktionen existiert gar keine Dokumentation und manchmal gibt es zwar etwas Dokumentation aber diese geh rt eigentlich zu einer anderen Funktion Ein gutes Beispiel f r so eine Fehlzuordnung zwischen Dokumentation und Implementation ist die BAPI Employee GetList Entsprechend der Dokumentation aus dem BAPI Explorer ist das dazugeh rige Funkti onsmodul BAPI_EMPLOYEE_GETDATA aber GetData sollte etwas
35. Daten werden in jedem Fall im Ausf hrungskontext gehalten und k nnen damit von allen weiteren SIBs benutzt werden Bei manuell implementierten SIBs ist dabei grunds tzlich ratsam nur den wirklichen Implementierungsteil von Hand zu erstellen Die Defini tion des SIBs kann besser schneller einfacher und weniger fehleranf llig mit der SIBCreator GUI erstellt werden Das zweite SIB referenziert wie erw hnt das in Abbildung 5 6 darge stellte Untermodell Hier befinden sich drei manuelle Tasks n mlich die 51 Auf welche Anzeigetechnologie also z B Java Swing oder HTML ist f r dieses Beispiel uner heblich 52 Beispiele sind zu finden unter http www cmsfrog de form__ generator formular generator html oder http code google com p swing formbuilder 53siehe dazu auch Abschnitt 5 3 173 5 Service Integration im jABC Durchf hrung von Schulungen Hier sind keine technischen Services auf zurufen sondern stattdessen durch Personen T tigkeiten zu vollziehen Es handelt sich also hier um Human Tasks wie sie zum Beispiel auch von BPEL4People adressiert werden Ublich ist hier eine Umsetzung mit tels Aufgabenlisten Jeder involvierte Benutzer hat seine eigene Liste von Aufgaben Die Ausf hrung einer manuellen Aktivit t im Prozess hat zur Folge dass eine neue Aufgabe zu der entsprechenden Liste hinzugef gt wird Hat der Besitzer der Aufgabenliste diese Aufgabe erledigt so kann er sie entsprechend abhaken und der Pro
36. Der Business Objekt Ansatz f hrt auf der anderen Seite zu einer konsistenteren und besser strukturierten API Ein Benutzer muss hier nur eine relativ kleine Menge an Operationen kennen und schon ver steht er dadurch sehr gut was genau ein bestimmter Service an Funktio nalit t anbietet Au erdem ist es hier einfacher eine gute Abdeckung der ben tigten Funktionen zu gew hrleisten da man relativ leicht erkennen kann welche Operationen f r ein bestimmtes Business Objekt angebo ten werden Es ist bei diesem Ansatz insgesamt einfacher einen guten berblick ber die API zu behalten 3 4 Vergleich Aufgrund der Tatsache dass SOAP Web Services die Standardtechnolo gie zur Realisierung von Business APIs darstellen war es nat rlich dass in dieser Untersuchung der Gro teil der L sungen auf diese Technologie aufsetzte Obwohl hier jeweils die gleiche Technologie eingesetzt wurde kann man erkennen dass die konkrete Umsetzung sehr unterschiedlich sein kann Zus tzlich zu der Tatsache dass die L sungen verschiede ne Ans tze zur Strukturierung einsetzen siehe oben Funktionen oder Business Objekte als Hauptordnungselemente wurden auch die WSDL Dokumente sehr unterschiedlich gestaltet Die L sung von Salesforce lie fert eine riesige WSDL Datei f r die gesamte API Workday besitzt ein WSDL Dokument pro Kategorie ein Porttype pro Kategorie mit der M glichkeit die Dokumente zu gr eren zu kombinieren und schlie lich liefert SAP
37. Diese w re in einem SLG nicht n tig Durch die Be schr nkung auf Repeat Until Schleifen ist es in diesem Fall n tig die Bedingung vor der Schleife noch einmal abzufragen Es wurde also eine XOR Aktivit t mit der Beschriftung Anzahl gt 0 eingef gt welche die gleiche Bedingung enth lt wie die Schleifen Aktivit t Hier erfolgt also eine Dopplung des Arbeits und War tungsaufwandes Wenn die Bedingung ge ndert werden soll so muss immer daran gedacht werden dies an beiden Stellen zu tun Au er dem ist diese Dopplung f r das Verst ndnis dieses Prozesses nicht f rderlich e Die verwendete XOR Aktivitat ben tigt zur sp teren Zusammen f hrung der Kontrollfl sse ein entsprechendes Pendant ein XOR Join mit der Beschriftung 4 Die Beschriftung hat hier keine Bedeutung sondern entspricht lediglich dem Default Wert des vier ten eingef gten Knotens Zum einen w re es sch ner wenn dieser Knoten gar nicht n tig w re wie in einem SLG zum anderen w re zu w nschen dass nichtssagende Beschriftungen auch weggelassen werden d rfen e Die ausgehenden Kanten der XOR Aktivitat besitzen hier die Be schriftungen 0 und 1 was den Wahrheitswerten falsch und wahr entspricht Diese Beschriftungen sind fest vorgegeben Sie sind lei der wenig intuitiv f r Fachanwender Sprechende Bezeichner wie ja und nein w hren hier angebrachter e Es existieren explizite Startknoten und Endknoten die sonst
38. Durch Java Reflection kann zu jeder Zeit festgestellt werden ob ein bestimm ter Webservice bereits importiert wurde oder nicht Nur wenn die Java Klassen f r die Page noch nicht existieren wird der Importiervorgang ausgel st Ansonsten k nnen die bestehenden Klassen genutzt werden In Abbildung 5 3 ist die entsprechende Seite des Wizards dargestellt Auswahl der Operation Die Informationen ber angebotenen Opera tionen einer Page und die Struktur der Parameter kann am einfachsten direkt aus dem WSDL Dokument ausgelesen werden Man ben tigt also einen Parser der ein WSDL Dokument einer Dynamics Page oder Co deUnit einliest und folgende Informationen liefert e Wie ist der Name des Business Objektes e Welche Operationen werden angeboten e Welche Parameter besitzen die Operationen Eine Recherche zu Open Source Implementierungen von WSDL Parsern in Java hat ergeben dass zwar viele Libraries zu Web Services im All gemeinen existieren jedoch kein WSDL Parser der genau die oben an gesprochenen Ergebnisse liefert Vorhandene L sungen lesen zwar intern auch WSDL Dokumente ein erzeugen daraus dann jedoch direkt Client Stubs ohne die erkannten Strukturen der WSDL ffentlich nach au en 5 3 SIB Generierung hin anzubieten Da eine WSDL eine sehr einfache Grundstruktur hat war es jedoch nicht sehr aufw ndig hier einen entsprechenden Parser selbst zu implementieren Auch hierf r wurde wieder JDOM verwen det Zun chst wurd
39. Eigentum des Unternehmens ohne zum Hersteller des ERP Systems zu wandern Das ERP System wird nun zunehmend als reines Informationssystem behan delt Das Zusammenspiel von BPM und SOA ist somit ein Schl ssel zu einer beherrschbaren Systemlandschaft in Unternehmen Beh06 Dieses Zu sammenspiel wird besonders von Beratungsh usern viel beworben und hoch gelobt Wenn man nun hinter die Fassaden guckt merkt man dass genau an der Schnittstelle zwischen beiden Konzepten die Technologie noch sehr wenig ausgereift ist und dass hier noch so gut wie keine Stan dards existieren die definieren wie genau Services so in ausf hrbare Gesch ftsprozesse integriert werden k nnen dass dies m glichst fehler frei und mit vertretbarem Aufwand m glich ist Gerade das gute Zu sammenspiel von BPM und SOA stellt gleichzeitig einen gro en Schritt in Richtung eines guten Business IT Alignments dar also der Zusam menarbeit der unterschiedlichen Stakeholder in einem Unternehmen auf der einen Seite das Management auf der anderen die IT Abteilung 1 Einleitung 1 1 Thema der Arbeit Diese Arbeit besch ftigt sich mit der Problematik der Service Integration in Gesch ftsprozess Management Systemen BPMS Business Process Management Systems Dies wird je nach verwendeter Sprache und nach verwendeter Software sehr unterschiedlich umgesetzt und dabei oft noch sehr unstrukturiert Besonderer Fokus wird hier auf die Ansteuerung von Diensten gelegt
40. Es ist also jeweils sehr spezifisches technische Know How f r das Customizing dieser Produkte notwendig also f r die spezifische An passung an die Kundenbed rfnisse Dies ist meist auch genau so beab sichtigt So k nnen die ERP Hersteller ihre Berater damit besch ftigen dieses Customizing f r Kunden durchzuf hren was gerade bei h u fig wechselnden Kundenanforderungen ein sehr eintr gliches Gesch ft sein kann Innerhalb einer serviceorientierten Architektur ist es tenden ziell denkbar das Customizing nicht im ERP System durchzuf hren sondern das ERP System wie es ist als Backend zu benutzen und die Anpassungen in der Orchestrierungsschicht dar ber zu positionieren So wird auch der so genannte Vendor Lockin vermieden also die Entste hung von Abh ngigkeiten von einem bestimmten Software Hersteller 2 6 XMDD und jABC Wie in These T4 formuliert k nnen der Ansatz des Extreme Model Dri ven Design XMDD und dessen Umsetzung jABC die Art und Weise der Service Integration deutlich vereinfachen Im Folgenden werden zu n chst der allgemeine Ansatz dann das grundlegende Prozessmodell 41IDE Integrated Development Environment 42Tn letzter Zeit immer mehr durch Java erg nzt aber noch nicht ersetzt 35 2 Grundlagen anschlie end das Prozesskomponentenmodell SIB und schlie lich das Tool jABC mit seinen Plugins beschrieben 2 6 1 Extreme Model Driven Design XMDD XMDD MS04 MS06 MS08 MS09 s
41. Hier k nnen diese SIBs nun einfach gefunden werden und bei Bedarf per Drag and Drop auf der Prozessfl che platziert werden Wird die Taxonomie gro so ist das Suchfeld praktisch mit dem man unter der Benutzung von Wildcards die Sammlung der SIBs filtern kann 5 4 Anwendungsbeispiel Im Folgenden wird an einem kleinen Beispiel gezeigt wie die Umsetzung eines Prozesses mit sehr verschiedenen Aktivit ten in JABC aussehen kann In Abschnitt 5 4 1 wird dazu zun chst ein Szenario vorgestellt welches umgesetzt werden soll Danach wird in Abschnitt 5 4 2 beschrie ben wie dieses Szenario als Prozess im jABC modelliert wird und wie die dazugeh rigen SIBs entstehen 5 4 Anwendungsbeispiel ree Cul FIR MD cuyt Japi views mvug EEE IE mmm 7 a a ls Ra IM EH d K a d k Ja d Projects SIBs AR SIBs Taxonomy GC Customer DO Create Customer 0 Read Customer 0 Edit Customer CU Delete Customer EG Vendor O Create Vendor Abbildung 5 4 SIB Taxonomie 5 4 1 Szenario Folgendes Szenario zum Thema Mitarbeitereinstellung soll umgesetzt werden In einer mittelst ndischen Unternehmensber tung welche aufgrund der guten Marktlage in der nahen Zukunft mit einem enormen Anwachsen der Mitarbeiterzahl rechnet soll die Einstellung neuer Mitarbeiter so bald wie m glich standardisiert und organisiert ablaufen Bisher musste ein neuer Mitarbeiter sich oft selbst um viele Dinge aktiv bem
42. Listen oder Baumdarstellung schnell auffindbar ist Letztlich kann die fehlerfreie Benutzung von Business Aktivit ten noch durch die Definition von entsprechenden Regeln vereinfacht werden Die se Regeln gelten lokal f r die jeweilige Aktivit t und h chstens noch f r das direkte Umfeld also z B f r die ausgehenden beschrifteten Kanten Solche Regeln k nnen Wertebereiche f r Parameter sein oder in aufwen digeren F llen auch spezifische Regeln f r die richtige Benutzung wie z B dass eine Aktivit t nicht die letzte in einem Prozess sein darf 4 5 2 Erstellung Anders als Skript Aktivit ten oder technische Service Aktivit ten die je weils quasi direkt verwendet werden k nnen m ssen Business Aktivit ten f r jeden Service einzeln erst einmal erstellt werden Nicht der Definiti onsteil und auch ganz besonders nicht der Implementierungsteil fallen einfach vom Himmel Dies bedeutet also immer einen gewissen initialen Aufwand der sich sp ter auszahlt wenn komplexe Prozesse auf eine agile Art und Weise erstellt werden Service Integration bedeutet grunds tz lich einen gewissen technischen Aufwand den man nicht wegzaubern kann Was man machen kann und auch sollte ist den Aufwand zum einen m glichst zu minimieren und dann zum anderen den brig gebliebenen Aufwand m glichst geschickt auf die richtigen Personen verteilen Jede beteiligte Person oder Rolle sollte dabei genau ihren Kenntnissen und F higkeiten
43. Programmier oder Spezifikationssprache 2 Ausf hrbarkeit 3 Fokus auf ein bestimmtes Anwendungsgebiet Problem Domain 4 Beschr nkung der M chtigkeit restricted Punkt 1 ist f r alle Prozesssprachen erf llt da es sich um Spezifikationss prachen f r Prozesse handelt Punkt 2 besagt dass wir uns hier mit aus f hrbaren Sprachen auseinandersetzen Das bedeutet dass in Sprachen wie EPK BPMN 1 x oder die Aktivit tsdiagramme der UML herausfal len Diese Sprachen sind reine Notationen ohne konkrete Ausf hrungsse mantik Punkt 3 verlangt dass man ein bestimmtes Anwendungsgebiet im Auge hat F r eine DSL mit dem Anwendungsgebiet Business sind also Aktivit ten n tig die Gesch ftst tigkeiten im engeren Sinne repr sentieren Die Aktivit ten sind die Bausteine der Prozesse entsprechen also den Befehlen einer Programmiersprache Sie machen die Anwend barkeit und M chtigkeit der Sprache aus Wenn man also eine Prozesss prache bewertet und pr ft ob es sich hier um eine DSL handelt so muss man die Sammlung der Aktivit ten betrachten Punkt 4 besagt dass man mit dieser Sprache nicht jedes Problem l sen k nnen muss So ist es kaum sinnvoll mit BPEL einen Sortieralgorithmus zu implementieren Diese bewusste Einschr nkung ist auch ein gutes Argument gegen den Einsatz von Skript Aktivit ten Der besonders wichtige Punkt 3 fordert f r eine Business DSL also kon kret dass eine Aktivit t eine Gesch ftsakti
44. SQL handelt Die SOQL Artefakte m ssen mittels des Web Services query an eine Salesforce Instanz ge schickt werden Wenn der Client nach einem bestimmten Objekt suchen m chte so gibt es hierf r wieder eine eigene propriet re Sprache SOSL Salesforce Object Search Language Die entsprechenden Artefakte werden dabei per Web Service find an Salesforce geschickt Da Salesforce kein vollwertiges ERP System sondern nur ein CRM System ist w re es nicht wirklich fair die gleiche Menge an Business Objekten zur Untersuchung von deren Unterst tzung heranzuziehen VZB Bewertung Anstatt dass einzelne Services versioniert sind hat hier die gesamte API eine einzige Versionsnummer Es gibt dabei keine Garantie dass ein Cli ent der gegen eine bestimmte API Version implementiert wurde auch mit einer zuk nftigen Version funktionieren wird Es ist m glich auf ein neues Salesforce Release zu migrieren und dabei bei der alten API Version zu bleiben Es gibt grundsatzlich drei Jahre Support ftir eine bestimmte API Version Nach Ablauf der Garantiezeit gibt es keinerlei Gewahrleistungen mehr SSD Bewertung o 89 3 Untersuchung von Business A PIs 3 3 1 2 API Design Die Benennungen der API sind intuitiv und konsistent IKB Bewertung Die Struktur ist klar und einfach KES Bewertung Die API Technologie ist sehr gut dokumentiert Auch alle Business Objekte und deren Felder sind ausf hrlich auf
45. System Design f r verteilte Gesch ftsprozesse dpunkt Verlag 2008 JEONG Sae Y XIE Yingyu BEATON Jack MYERS Brad A STYLOS Jeffrey EHRET Ralf KARSTENS Jan EFEOGLU Arkin BUSSE Daniela K Improving Documentation for eSOA APIs through User Studies In PIPEK Volkmar Hrsg Rosson Mary B Hrsg RUYTER Boris E R Hrsg WULF Volker Hrsg IS EUD Bd 5435 Springer 2009 Lecture Notes in Com puter Science ISBN 978 3 642 00425 4 S 86 105 KARLA David Automatische Generierung von Softwa rebausteinen zur Anbindung von SAP Diensten an ein Business Prozess Management System Technische Uni versit t Dortmund Diplomarbeit 2009 KASPRZAK Piotr Konzeption und prototypische Umset zung der Portierung einer EAI Middleware auf eine agile serviceorientierte Architektur SOA Technische Univer sit t Dortmund Diplomarbeit 2009 239 Literaturverzeichnis KM12 KIADEHI Elias F MOHAMMADI Shahriar Cloud ERP Implementation of Enterprise Resource Planning Using Cloud Computing Technology 2012 KMWLO9 kopp Oliver MARTIN Daniel WUTKE Daniel LEY MANN Frank The difference between graph based and block structured business process modelling languages In Enterprise Modelling and Information Systems Ar chitecture Citeseer 2009 KR11 Ko A J RICHE Y The role of conceptual knowled ge in API usability In Visual Languages and Human Centric Computing VL HCC
46. Systeme Tabelle 3 6 Workday Business Objekte Create Read Update Delete Simple Query Employee d v v vi Applicant ve v v3 vi Bank Account Vv vi Z Business Unit Ca v Vv Basic Project d VP Dei Job Profile vr v vt d Position SH V v hier Hire Employee thier Get_ Employee hier Update_Employee_Personal_Info Update_Employee_Image Demote_Employee thier Terminate_Employee hier Put__Applicant hier Get Applicant jedoch deprecated Get Applicants stattdessen empfohlen Shier Get_Applicants hier Put_ Applicant hier Put_Bank_ Account jGet_ Bank Accounts kPut_ Bank _ Account hier Put_ Business Unit MGet_ Business _ Units Put _ Business _ Unit hier Put _Basic__Project PGet_ Basic Projects 7Put_ Basic_ Project Thier Put_Job_ Profile Shier Get Job Profile jedoch deprecated Get Job Profiles stattdessen empfohlen thier Get Job Profiles hier Put_Job_ Profile hier Put_ Position Get_ Positions Put_ Position 99 3 Untersuchung von Business A PIs Change Edit Maintain Manage Update Aufgrund der Tat sache das diese Flut von Benennungen f r hnliche Aktionen der einzige negative Punkt im Benennungsschema ist und f r jede Operation relativ klar ist was dahinter steckt kann hier noch eine mittlere Bewertung gerechtfertigt werden IKB Bewertun
47. Technologie nicht ein AZS Bewertung 0 gt EAM Bewertung 3 2 1 4 Zus tzliche Informationen Es gibt spezielle technische BAPI Funktionen f r den Zugriff auf die Hil fetexte BAPI_INTERFACE_GETDOCU und Wertevorschl ge BA PI_HELPVALUES_GET der einzelnen Funktionen DVA Bewertung gt WVA Bewertung Die Deklaration optionaler Parameter ist nicht immer eindeutig und ausreichend Ein gutes Beispiel ist das Hinzuf gen eines neuen Kun dendatensatzes Der Parameter personal data Personendaten ist als obligatorisch markiert der Parameter company data Betriebsdaten als optional In Wirklichkeit wie es auch in der Dokumentation der BAPI Funktion steht muss immer genau eines von beiden angegeben werden Handelt es sich bei dem Kunden um eine Einzelperson so wird personal data verlangt wenn es sich um eine Firma handelt compa ny data Wenn keines oder beides ausgef llt wird kommt es zu einer Fehlermeldung Weiterhin gibt es weitere davon abh ngige Parameter Wenn personal data ausgef llt wurde so kann in personal address noch die Postadresse der Person angegeben werden bei der Benutzung von company data m ssen die entsprechenden Daten in company ad dress eingegeben werden Ein gutes API Design h tte hier entweder so ausgesehen dass man zwei Funktionen anbietet eine f r Personen und eine f r Firmen oder dass die API Technologie eine M glichkeit bie
48. Vor und Nachteile in bestimmten Berei chen aufgezeigt 4 3 Skript Aktivit ten Skript Aktivit ten erlauben es Code einer Programmiersprache direkt am entsprechenden Knoten im Prozessmodell zu annotieren Code wird also direkt in das Prozessmodell eingef gt Modellierung und Implemen tierung werden vermischt Dieser Code wird dann w hrend der Prozess ausf hrung bei Erreichen der Skript Aktivit t ausgef hrt Dieses Feature wird blicherweise f r das Rapid Prototyping oder f r sehr kleine Auf gaben genutzt Alle anderen Anwendungen stellen eine Art von Miss brauch dar Der Code der nur direkt in dieser Aktivit ten Instanz exis tiert kann nur durch Copy and Paste wiederverwendet werden was schnell zu schwer wartbaren L sungen f hrt Dadurch dass im Prinzip jeder Code in einer Skript Aktivit t erlaubt ist ist es m glich dass hier externe Services aufgerufen werden Die Schw che der mangelnden Wiederverwendung ist nicht der einzige Nachteil Zus tzlich wird hier ein fundamentales Konzept des Software Engineerings verletzt Separation of concerns Trennung der Angele genheiten Unterschiedliche Aspekte sollten an getrennten Orten behan delt werden so dass ein m glichst modulares System entsteht Nur so kann man Sichten auf ein Gesamtsystem gewinnen die ein insgesamt komplexes System f r einzelne Beteiligte verst ndlich darstellen Hier ist es wichtig zu beachten dass es im Bereich des G
49. WSDL einsetzen k nnen sehr unterschiedlich realisiert sein siehe Kapitel 3 Diese Unterschiede w rden dann wie sie sind auf Ebene der Business Aktivit ten sichtbar werden Bei System spezifischen Genera toren ist dies zum einen nicht der Fall zum anderen ist hier die Chance wesentlich gr er dass die generierten Aktivit ten auch in allen F llen wirklich fehlerfrei funktionieren und das ohne manuelle Manipulation des generierten Codes Praktische Erfahrungen haben gezeigt dass tech nische Tricks auf Seiten der API Anbieter also besonders kreative Nut zungen der Service Technologien sehr schnell dazu f hren k nnen dass die automatische Generierung auf Basis einer Technologie nicht funktio niert Dies kann zum Beispiel daran liegen dass der Service Provider die NET Technologie von Microsoft einsetzt und der Service Consumer Ja va Und selbst innerhalb der Java Welt kann es Probleme geben wenn ein Dienst zum Beispiel mit JAX WS angeboten wird und mit Axis konsumiert werden soll Zusammenfassend k nnen die Generierungstechnologien also in zwei Di mensionen kategorisiert werden e Bezieht sich der Generator auf eine bestimmte Technologie oder auf ein System e Erfolgt die Generierung halb oder vollautomatisch Es existiert hier kein klarer Kandidat als grunds tzliche beste Wahl Stattdessen hat jede Option ihre Vor und Nachteile wie sie oben be schrieben wurden 4 5 3 Organisation Im Idealfall hat ein Pro
50. Zeitzone und eine Locale bergeben jedoch wird dadurch keine bersetzung der Elemente der API selbst angeboten Insgesamt ist die API von Apache Ofbiz im Vergleich zu der von Ope nERP recht kritisch zu betrachten besonders aufgrund der eigenwilligen Verwendung der WSDLs Eigentlich kann die Ofbiz API nicht als echte Web Service API betrachtet werden Der Einsatz von Standardtools zur Stub Generierung schl gt hier fehl Die kaum vorhandene Dokumentati on und die fehlende Versionierung sind weitere Schwachpunkte Als Fazit zu Open Source ERP APIs insgesamt l sst sich sagen dass der Qualit tsstandard hier leider noch deutlich unter dem der kommerziellen L sungen liegt Es scheint so zu sein dass die Open Source Communitys hier personell doch deutlich schlechter aufgestellt sind als die Entwick lungsabteilungen der gro en Hersteller kommerzieller ERP Systeme Bei einer aufw ndigen Arbeit wie der Pflege einer guten API samt Doku mentation macht sich dieses deutlich bemerkbar 3 5 2 E Commerce APls hnlich gro e APIs wie die der ERP Systeme bieten die bekannten E Commerce Plattformen Ebay und Amazon Da sich diese ebenfalls in der Dom ne Business aufhalten k nnen sie auch der Kategorie Business APIs zugeordnet werden Da beide Angebote eine hnliche Funktiona lit t anbieten man kann auf der einen Seite anbieten und verkaufen auf der anderen Seite Produkte suchen und kaufen und da beide An gebote v
51. abwechselnd immer wieder ausgegeben wird und anschlie end um 1 ver ringert wird bis die Zahl 0 erreicht ist Die hier zu sehende Darstellung ist leicht gegen ber dem Original abgewandelt Die erste Abweichung besteht darin dass hier das Datenobjekt also die Integer Variable nicht 8 2 Einfachheit der Prozesssprachen Pool Black Box Nachrichtenfluss ES Manuelle U Aufgabe Mi Zugeklappter Teilprozess x 8 a D E x f O Schleifen p ER il ufga Teilprozess Parallele Start Mehrfach ausf hrung Ereignis Teilprozess eo m N Aufruf Sendende Bedi ingungs Fehler R Aktivit t Aufgabe Startereignis Endereignis Abbildung 8 2 BPMN 2 0 Kollaborationsdiagramm Quelle BPM11 zu sehen ist Bei AristaFlow ist es blich auch die Datenobjekte explizit als Knoten darzustellen Wird dieser Variable ein Wert zugewiesen so wird dies durch eine gerichtete Kante von der entsprechenden Aktivit t zum Datenobjekt hin dargestellt wird der Wert gelesen so existiert eine gerichtete Kante vom Datenobjekt zur lesenden Aktivit t Diese Daten objekte und die damit verbundenen Kanten lassen sich im Tool optional auch ausblenden Hier wurde auf die Darstellung verzichtet da nur ge zeigt werden soll dass auch die Darstellung des Kontrollflusses allein schon zu komplex ist Die zweite Abweichung ist das Layout AristaFlow besitzt einen permanenten und automatischen Layouter der daf r
52. als entwickle sich BPMN zu dem De facto Standard im BPM Bereich Da BPMN insgesamt tech nologieneutral definiert und somit in seiner Spezifikation an einigen technischen Stellen recht wage bleibt ist es den Engine Herstellern berlassen wie genau bestimmte Dinge umgesetzt werden Zum The ma Service Integration wird zum Beispiel nur sehr wenig ausgesagt In Abschnitt 4 1 wird auf diesen Aspekt genauer eingegangen 2 2 Service orientierte Architektur SOA Der Begriff Service orientierte Architektur kurz SOA wird wie es auch schon bei BPM war je nach Quelle und Community unterschiedlich definiert Schon im Jahr 1996 benutzte das Beratungsunternehmen Gart ner den Begriff in einem Bericht Laut einem weiteren Gartner Bericht von 2003 Nat03 war dies die erste Nennung und damit Erfindung des Begriffes Hier wird SOA zusammenfassend folgenderma en definiert 1OBPMN setzt weder eine bestimmte Programmiersprache wie z B Java noch eine bestimmte Service Technologie wie z B SOAP Web Services voraus 14 2 2 Service orientierte Architektur SOA SOA is a software architecture that starts with an inter face definition and builds the entire application topology as a topology of interfaces interface implementations and interface calls Es handelt sich also um eine Software Architektur wobei hier die Schnitt stellen interfaces in den Mittelpunkt gestellt werden Da in dieser Ar beit APIs sta
53. and Applications Workshops 2007 AINAW 07 21st International Confe rence on Bd 2 IEEE 2007 S 570 575 xTul3 XTUPLE xTuple Webseite http www xtuple com Version 2013 YZZ 07 Yu Xiaofeng ZHANG Yan ZHANG Tian WANG Linzhang ZHAO Jianhua ZHENG Guoliang LI Xu andong Towards a model driven approach to auto matic bpel generation In Model Driven Architecture Foundations and Applications Springer 2007 S 204 218 252 Abbildungsverzeichnis 2 1 2 2 2 3 2 4 2 9 3 1 3 2 3 3 3 4 3 9 3 6 3 7 5 1 5 2 5 3 5 4 5 9 5 6 6 1 8 1 BP MEK deu ca se as nor nr RE AG 12 Workflow Reference Model Quelle WfM95 14 Das so genannte SOA Dreieck 2 2 19 jABC Benutzeroberfl che 22 2 2222 20 45 Ausf hrung im jABC mit dem Tracer 48 Rollen im Umgang mit Business APIs 55 Top Antworten auf die Frage What are the top 3 5 app lications or systems your customers need to connect to Quelle Mul13b 2 aaa 57 Kategorisierung der API Anforderungen 58 Zugriff einer Java Applikation auf SAP ERP per BAPI 66 Struktur der BAPI zum Lesen von Kundendaten 70 Struktur der BAPI zum Anlegen eines Kunden 72 eSOA SOAP request for getting customer data 75 2IDBCreator GUTE 148 Die Schritte eines InBuS Wizards 161 Auswahl der Page im InBuS Wizard 166 SIB Taxonomie we ee Ee
54. and Reengineering 2007 CSMR 07 11th European Conference on IEEE 2007 S 307 318 246 RJO8 RKS10 RMO6 Rob09 RSB05 Sal08 sal12a Sa112b SAP05a SAP05b SAP10 Literaturverzeichnis RATIU D JURJENS J Evaluating the reference and representation of domain concepts in APIs In Program Comprehension 2008 ICPC 2008 The 16th IEEE Inter national Conference on IEEE 2008 S 242 247 RAMKUMAR S KUMAR S SHIROOR R Process centric guidance and tools for next generation Network Services API design In Internet Multimedia Services Architecture and Application IMSAA 2010 IEEE 4th International Conference on IEEE 2010 S 1 6 RECKER Jan C MENDLING Jan On the translation between BPMN and BPEL Conceptual mismatch bet ween process modeling languages In The 18th Interna tional Conference on Advanced Information Systems En gineering Proceedings of Workshops and Doctoral Con sortium Namur University Press 2006 S 521 532 ROBILLARD M P What makes apis hard to learn ans wers from developers In Software IEEE 26 2009 Nr 6 S 27 34 RAFFELT Harald STEFFEN Bernhard BERG Therese Learnlib a library for automata learning and experimen tation In Proceedings of the 10th international workshop on Formal methods for industrial critical systems ACM 2005 S 62 71 SALESFORCE Integraing Salesforce com Applications and SAP http www salesforce com
55. assets pdf misc WP_SAPIntegration pdf Version 2008 Salesforce Website http www salesforce com Version 2012 SALESFORCE Salesforce Web Services API Developer s Guide http www salesforce com us developer docs api index htm Version 2012 SAP AG BAPI Programming Guide http help sap com erp2005_ehp_05 helpdata EN e0 9eb2370f 9cbe68e10000009b38f8cf frameset htm Version 2005 SAP AG BAPI User Guide http help sap com erp2005_ehp_05 helpdata EN 7e 5e114a4a1611d1894c0000e829f bbd frameset htm Version 2005 SAP AG Whitepaper SOA made easy with SAP 2010 247 Literaturverzeichnis SAP 12a SAP AG SAP ERP Website http www sap com solutions business suite erp index epx Version 2012 SAP12b SAP AG SAP Website http www sap com Version 2012 SAP 13a SAP SAP Business ByDesign Website http www54 sap com solutions tech cloud software business management bydesign overview index html Version 2013 SAP13b SAP SAP Business One OnDemand Website http www54 sap com solutions sme software erp small business management on demand index html Version 2013 Sa 07 SASSMANNSHAUSEN Dennis Konzeption und Entwick lung prozessgest tzter E Mail Verarbeitung in service orientierten Architekturen Technische Universit t Dort mund Diplomarbeit 2007 SB09 SOUZA C R B de BENTOLILA D L M Automatic eva luation of API usability using complexity metrics and vi sualizations
56. au en heranzukommen Neben dem offiziellen Weg gibt es fast immer auch eine Art Hintert r Bei ERP APIs w re dies zum 2 3 Application Programming Interfaces APIs Beispiel der direkte Zugriff auf die hinter dem ERP System liegenden relationalen Datenbanken ber SQL Dies hat jedoch deutliche Nach teile gegen ber einer API Es ist hier grunds tzlich eine extrem genaue Kenntnis der Datenstruktur erforderlich und s mtliche Abh ngigkeiten m ssen beachtet werden um nicht einen inkonsistenten Datenbestand zu erzeugen Ebenso werden hier keine Gesch ftsregeln automatisch be achtet wie es bei der API Benutzung der Fall w re so dass man nie sicher ist ob man im Sinne des Unternehmens und dessen Regeln han delt Das wohl schwerwiegendste Problem ist jedoch dass sich das in terne Datenschema auch einfach irgendwann ndern kann und nicht wie bei der API im Idealfall stabil bleibt Es kann also zu jeder Zeit sein dass so eine L sung nicht mehr funktioniert Businge et al BSB12 nen nen solche Hintert ren bad non APIs im Unterschied zu den offiziellen good APIs Sie besch ftigten sich mit der Benutzung der Eclipse API in Eclipse Plugins und zwar untersuchten sie inwieweit Entwickler die ver ffentlichte API oder stattdessen eine bad non API also in diesem Fall die nicht ver ffentlichten internen Klassen und Methoden nutzten Sie fanden heraus dass 44 der analysierten Plugins non APIs benutz ten
57. auf der anderen Seite der Service Adapter generiert werden Um beides zusammen zu bringen und das SIB voll funktionsf hig zu machen ist zum Schluss jedoch immer noch manuelle Arbeit n tig Dies wird nach wie vor traditionell im Sour cecode des SIBs gemacht 25Zum Beispiel f r den LocalChecker einen Genesys Code Generator oder den Tracer 147 5 Service Integration im jABC Erstelle SIB S Package de test a Name BeispielSIB Par D8 Name String empty a Anzahl Integer 0 Neu Integer v B Branches n error Erstellen Neu Interfaces Abbildung 5 1 SIB Creator GUI Die SIB Creator API ist nicht einfach eine API zu den Funktionen die auch per GUI angeboten werden Stattdessen wird hier das Ziel der voll automatischen Generierung ausf hrbarer SIBs verfolgt Hiermit k nnen zu existierenden Java Methoden ausf hrbare SIBs erzeugt werden Alle n tigen Informationen und Metadaten m ssen dabei per API angegeben werden Um ein SIB zu generieren m ssen zun chst entsprechende Datenobjekte erzeugt werden die alle n tigen SIB Informationen enthalten In einem ClassWrapper einem MethodWrapper und potentiell mehreren Instan zen der Klasse ParameterWrapper werden alle n tigen SIB Informationen angegeben Dazu geh rt neben der Auswahl der Java Methode zum Bei spiel auch der Klassenname des neuen SIBs die UID das Icon und Do kumentationstext Die Benutzung der SIB Creator API is
58. basierten eSOA L sung von SAP Die erste Sammlung von SIBs welche SAP ERP Services aufrufen wur de manuell implementiert Als technische Grundlage wurde dabei die SAP BAPI und der Java Connector JCo gew hlt Wenn man JCo direkt benutzt damit also manuell in Java einen BAPI Aufruf implementiert sieht der dabei entstehende Code zum Beispiel wie hier in Listing 5 1 dargestellt aus Beispiel aus MBD 11 Listing 5 1 Java Code zum Aufruf einer BAPI Methode mit JCo JCO Client client JCO createClient 001 user apassword EN some hostname com 00 client connect JCO Repository repo new JCO Repository myRepository client IFunctionTemplate functionTlt repo getFunctionTemplate BAPI_MATERIAL_SAVEDATA lei E Function function functionTlt getFunction D N D or gt Ri N j 19Hier wurde JCO in der Version 2 0 verwendet 139 5 Service Integration im jABC 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Al 42 43 44 45 140 ParameterList importParameters function getImportParameterList JCO Structure headData importParameters getStructure HEADDATA headData setValue M1234 MATERIAL headData setValue HAWA MATL_TYPE headData setValue 1 IND_SECTOR JCO Structure clientData importParameters getStructure CLIENTDATA clientData setValue PCE BASE_UOM_I
59. beherrschen BPEL BPEL hat eine sehr technische Natur und orientiert sich eng an den Web Service und XML Technologien Die schon in Abschnitt Dau erkennen am unterstrichenen Label 7 zu erkennen an einem fett dargestellten Label 223 8 Einfachheit als Erfolgsfaktor im BPM 6 7 erw hnten Erkenntnisse aus eigenen Arbeiten sowie verschiedener Diplomarbeiten haben gezeigt dass BPEL weit davon entfernt ist das ITSy Prinzip zu unterst tzen 8 3 Einfachheit durch Abstraktion BPM in der Cloud Soll in einem Unternehmen ein durchg ngiges Gesch ftsprozessmana gement eingef hrt werden so ist es grunds tzlich schon mit einem er heblichen Aufwand verbunden daf r nur die technische Grundlage zu schaffen An den Arbeitspl tzen m ssen entsprechende Modellierungs tools installiert werden f r die Ausf hrung muss eine Prozess Engine auf einem Server laufen und diese Engine ben tigt meist noch einen Ap plikationsserver als Basis Dazu k nnen noch weitere Applikationen zur Kommunikation und Koordination der beteiligten Abteilungen und Per sonen kommen wie z B Aufgabenlisten Verwaltungen oder Kalender All diese Applikationen m ssen dabei initial installiert und konfiguriert werden und anschlie end auch kontinuierlich aktualisiert und bei auf tretenden Fehlern oder Sicherheitsl cken entsprechend gepatcht werden F r den Betrieb besonders der Server Software dabei meist ein Rechen zentrum betrieben mit einer Rei
60. benutzt werden Bei einem manuell implementierten SIB ist der Zugriff auf eine Abbildung oder Lis te immer m glich aber auch bestimmte fertige SIBs k nnen gut damit umgehen Viele Common SIBs arbeiten zum Beispiel mit der Expression Language von Java EE In dieser kann durch eine sehr einfache Syntax auf die Daten zugegriffen werden Liegt zum Beispiel unter dem Schl s sel customer ein Kundenobjekt im Kontext und das entsprechende Ob jekt besitzt die Felder name und city so kann auf diese Daten einfach mittels customer name bzw customer city zugegriffen werden Liegt unter customers eine Menge von Kunden so kann auf den ersten mittels customers 0 auf dessen Namen mittels customers 0 name zugegrif fen werden Durch die Darstellung der Struktur des Business Objektes in der SIB Hilfe kann ein Modellierer oder Entwickler immer sehr einfach nachschauen ber welche Bezeichner auf bestimmte Daten zugegriffen werden muss Bei der Entwicklung von InBuS war stets wichtig dass die generierten SIBs auch mit beliebigen anderen SIBs kombinierbar sind egal ob sie mit einem anderen Tool generiert wurden oder von Hand programmiert wur den Daher wurde zum Beispiel darauf verzichtet ein spezielles globales Datenmodell einzuf hren das alle SIBs benutzen m ssen Stattdessen steht jedes SIB mit seinen Daten f r sich und diese Daten k nnen be liebig erzeugt gelesen transformiert oder gel scht werden Praxiserfah rungen haben gezeigt das
61. bige an einer anderen Diese Freignisse k nnen bei BPEL zum Beispiel Web Service Aufrufe sein Somit hat man auch hier wieder eine GOTO Semantik In jedem Fall unterscheidet sich der BPEL Prozess stark vom urspr nglich modellierten BPMN Prozess Wird nun der BPEL Prozess ausgef hrt und beobachtet so ist es schwierig R ckschl sse auf das Ori ginalmodell zu ziehen Der BPM Kreislauf siehe Abbildung 2 1 in Ab schnitt 6 7 wird also durchbrochen Auch in RM06 und WDGW08 wird das Problem des konzeptionellen Unterschieds der beiden Sprachen beschrieben So l sst sich schlie lich schlussfolgern dass eine direkte Aus f hrung der Modellierungssprache wie bei BPMN2 oder jABC die zu bevorzugende L sung darstellt Pjotr Kaspczak nutzte in seiner Diplomabeit BPEL zur Implementie rung einer serviceorientierten Architektur f r ein so genanntes Campus Management System also einer Verwaltungssoftware f r Universit ten Kas09 Eingesetzt wurde hier die BPEL Software Glassfish ESB von 199 6 Service Integration in anderen BPMS 200 Sun Microsystems was heute zu Oracle geh rt Glassfish ESB ist ein Pa ket aus einem BPEL Modellierungstool auf Basis der IDE Netbeans dem JavaEE Server Glassfish und der BPEL Engine OpenESB Hier wurde BPEL direkt im BPEL Modellierungstool erstellt also ohne zus tzliches fachliches Modell Wichtige Erkenntnisse dieser Arbeit waren dass die direkte Nutzung von BPEL extrem technisch ist un
62. dass die Umsetzungen jeweils extrem unterschiedlich ausse hen k nnen Selbst die Benutzung derselben grundlegenden Technologie z B WSDL und SOAP ndert daran nichts T2 Cloud Computing f hrt zu besseren APls Der Trend Systeme z B ERP Systeme in die Cloud zu verlagern oft als SaaS bt einen enormen Druck auf die Hersteller aus ihre APIs qualitativ zu verbessern 2XMDD Extreme Model Driven Design siehe Abschnitt 2 6 1 1 2 Thesen und Anforderungen Das f hrt dazu dass die APIs der Cloud Systeme viele Schwachpunkte der APIs traditioneller Systeme nicht mehr aufweisen und teilweise sogar berraschend gute und kreative L sungen bieten T3 Aktuelle BPMS unterst tzen wenig bei der Service Integration Aktuelle Gesch ftsprozessmanagementsysteme konzentrieren sich meist stark darauf wie Prozesse modelliert werden wie Benutzerinteraktion und Aufgabenverwaltung realisiert wird und wie die einzelnen Elemen te der Sprache unterst tzt werden Der Punkt der Service Integration wird meist nur sehr stiefm tterlich behandelt Das f hrt vor allem zu ei ner hohen Fehleranf lligkeit Oft m ssen z B bestimmte Bezeichner die an unterschiedlichen Stellen eingegeben werden genau bereinstimmen ohne dass das Modellierungstool berpr ft ob dies der Fall ist Das Vorgehen zur Integration eines Services in den Prozess verlangt bei aktuellen BPMS ein erhebliches Ma an technischem Verst ndnis Das liegt vor allem daran dass
63. der Adresse zur Stra e geh rt und im Optimalfall direkt dahinter angezeigt wird ISN Bewertung 3 3 2 NetSuite NetSuite net12b ist ein Cloud basiertes vollst ndiges ERP System wel ches als SaaS L sung angeboten wird Die Zielgruppe sind Unternehmen mittlerer Gr e oder Teile gro er Unternehmen NetSuite bietet eine Web Service API mit Namen SuiteTalk an Diese API setzt auf den bekannten WSDL SOAP Technologie Stack 3 3 2 1 Zentrale Anforderungen Wie die Salesforce L sung bietet NetSuite eine WSDL f r die ganze Ap plikation an Die Typ Informationen also die Informationen wie die Business Objekte strukturiert sind sind in 42 externe XSD Dokumente ausgelagert die allesamt per lt import gt Statement in die WSDL einge bunden sind Nur eine WSDL zu benutzen macht eine extra Registry berfl ssig da die WSDL die Registry sozusagen selbst enth lt M ch te ein Client die Liste aller Business Objekte auslesen die hier record types hei en kann er entweder alle Elemente aus den XSD Dateien heraussuchen die den Typen lt record gt erweitern oder er benutzt die Enumeration RecordType die eine Liste aller 131 Business Objekte enth lt Die WSDL enth lt insgesamt lediglich 23 Operationen Alle Operationen die sich auf Daten beziehen wie z B add get update delete k nnen auf alle Business Objekte angewandt werden Diese m ssen dazu entsprechend bergeben werden RSD Bewertung
64. der Prozess hierarchisch gegliedert Das be deutet konkret dass ein Knoten des Graphen wieder eine Referenz auf ein Untermodell sein kann Die Hierarchien k nnen dabei beliebig tief sein Das Modell ist bei XMDD stets direkt ausf hrbar Das kann durch einen in das Modellierungstool integrierten Interpreter geschehen Ein ande rer Weg der Ausf hrung ist die Code Generierung Hier wird aus dem Modell zun chst ausf hrbarer Programmcode generiert welcher dann kompiliert und schlie lich ausgef hrt werden kann Wichtig ist dabei dass bewusst darauf verzichtet wird den generierten Code manuell zu bearbeiten Alle nderungen werden auf Modellebene oder in den orche strierten Services durchgef hrt nie im generierten Code So entf llt das grunds tzlich schwierige Roundtrip Problem XMDD kombiniert die Ideen verschiedener Bereiche e Service Orientierung SOA e Extreme Programming XP e Modell getriebene Entwicklung MDD model driven development auch MDSD Model driven software development e Aspektorientierung AOP Aspect oriented programming 2 6 2 Service Logic Graph SLG Das zentrale Modell ist bei XMDD der Prozess Das Prozessmodell wird dabei als so genannter Service Logic Graph SLG dargestellt Dabei handelt es sich um einen gerichteten Graphen mit ausgezeichnetem Start knoten Die beschrifteten Knoten symbolisieren Aktionen und beschrif tete Kanten Branches genannt definieren den Kontrollfluss For
65. der Salesforce Webseite Sall2b dokumentiert KVD Bewertung 3 3 1 3 Technologie Mit WSDL SOAP und REST werden plattformunabhangige Standards eingesetzt wodurch die API von beliebigen Plattformen und Program miersprachen aus benutzt werden kann PUS Bewertung Der Datenverkehr wird bei Salesforce grunds tzlich verschl sselt Dies wird durch die strikte Verwendung von HTTPS SSLv3 TLS erreicht sowie der Regel dass die Schliissellange mindestens 128 Bit betragen muss Zus tzlich kann ein Benutzer nur dann auf ein Salesforce System zugreifen wenn f r ihn das Zugriffsrecht API enabled aktiviert ist Der Client muss immer zun chst ein Login durchf hren mittels eines entsprechenden Web Services und erhalt dadurch ein so genanntes Se curity Token wodurch man Zugriff auf das System erh lt Der Zugriff kann auf bestimmte Tageszeiten beschr nkt werden oder auch auf spe zielle IP Adressen Gibt es keine Beschr nkung bzgl der IP Adressen wird grunds tzlich berpr ft ob von dieser IP Adresse schon einmal ei ne Verbindung mit dem Salesforce System existiert hat Falls dem so ist wird die Verbindung gew hrt ansonsten wird berpr ft ob die Anfra ge von einem Browser mit g ltigem Cookie kommt Trifft dies ebenfalls nicht zu wird berpr ft ob die IP Adresse auf der Liste von vertrauens w rdigen IP Adressen steht Falls dies auch nicht der Fall ist wird der Zugriff verweigert AZS Bewertung
66. ein XML Schema geben welches die XML Struktur der Business Objekte definiert und die Services zum Lesen und Schrei ben w rden jeweils auf die gleiche Elementdefinition zur ckgreifen So k nnte man zum Beispiel recht einfach einen Update Service f r Kunden daten durch die Orchestrierung der Services zum Lesen und Schreiben implementieren KES Bewertung Die Services sind insgesamt sehr ausf hrlich dokumentiert Zum Bei spiel gibt es ein extra Wiki mit Namen ES Wiki Enterprise Services Wiki welches sogenannte ES Bundles enth lt Dies sind Dokumenta tionspakete die sich auf eine Sammlung thematisch zusammengeh riger Services beziehen Die Services eines ES Bundles geh ren also alle zu ei nem Business Prozess oder Szenario Leider ist die Dokumentation die man aus der Service Registry bekommt nicht immer komplett KVD Bewertung 0 75 3 Untersuchung von Business A PIs 76 3 2 2 3 Technologie Web Services sind eine gute Wahl wenn gro er Wert auf Plattformunab h ngigkeit gelegt wird Weiterhin nutzt SAP auch f r Sicherheitsbelange Standards und zwar HTTP basic authentication f r die Authentifizie rung und optional zus tzlich SSL HTTPS zur Verschl sselung falls ho her Wert auf Sicherheit gelegt wird PUS Bewertung Der Sicherheits Level kann beim Deployen eines Services konfiguriert werden Die Authentifikation des Clients kann f r einen Service kom plett abgeschalt
67. eine einfache Map erwartet wird die als Schl ssel die Parameternamen und als Werte die Parameterwerte beinhaltet Dieses Vorgehen hat den Vorteil dass keine neuen Klassen generiert und benutzt werden m ssen Nun gibt es ver schiedene Herangehensweisen die Map bereitzustellen In diesem Fall ist es m glich dass bei der Implementierung des ersten SIBs die GUI zur Dateneingabe direkt die gew nschte Datenstruktur erzeugt wird Al ternativ kann das GUI SIB auch alle Datenfelder als einzelne Elemente mit jeweils einzelnen Schl sseln in den Kontext schreiben In dem Fall ist ein zus tzliches Provider SIB oder bei einer tieferen Verschachte lung mehrere Provider SIBs n tig um die gew nschte Datenstruktur zu konstruieren Zum Schluss besteht noch die M glichkeit Dokumentationstext zu ver fassen ein Icon zu vergeben und Benutzungsregeln f r den LocalChe cker festzulegen 59standardm ig das Logo von Dynamics NAV was aber auch gegen jedes andere Icon ausgetauscht werden kann 175 5 Service Integration im jABC 176 KAPITEL 6 Service Integration in anderen BPMS Nachdem in Kapitel 5 dargestellt wurde wie in JABC Services in die Prozesse integriert werden befasst sich diesen Kapitel nun mit einer Auswahl alternativer BPMS Es sind jeweils reine BPMS also Syste me die sich mit dem Management von Gesch ftsprozessen im engeren Sinne besch ftigen Jedes Produkt besitzt dabei immer mindestens ein Prozess
68. einem TCP IP Server sowie Client Bibliotheken f r R C und Java Diese Technologie mit dem Java Client wurde f r die R SIBs eingesetzt Ein R SIB muss nun R Anweisungen erzeugen diese ber Rserve ausf hren lassen und das Ergebnis der Ausf hrung in den Kontext legen Die Service Adapter wurden mit der Template Engine Apache Velocity generiert f r die SIBs selbst wurde die SIB Creator API genutzt In der Praxis stellte sich sp ter heraus dass die generierten SIBs nach wie vor recht technisch sind was dazu f hrte dass diese Generierungstechnologie nicht sehr h ufig zum Einsatz kam SIB Generierung in jETI In jETI werden mit dem Tool WSDL2SIB vollautomatisch direkt ausf hrbare SIBs vollst ndig generiert Bei der Benutzung dieses Tools hat sich mit der Zeit herausgestellt dass dies oft in der Theorie besser funktioniert als in der Praxis Zum einen nutzen die Anbieter von Web Service APIs in vielen F llen ungew hnliche Kon strukte die von den Standard Java Stub Generierungstools nicht verar beitet werden k nnen zum anderen erh lt man so grunds tzlich SIBs welche die Struktur des Services exakt abbilden Man hat also keine M glichkeit das SIB benutzerfreundlicher zu machen Das technische Problem der vielf ltigen Web Service L sungen wurde zum Teil dadurch angegangen dass man bei WSDL2SIB eine Auswahl verschiedener Java Webservice Bibliotheken hat so dass bei dem Versagen der einen eine 26R ist eine Imple
69. entsprechend eingesetzt werden die Kommunikation zwi schen den Rollen sollte unterst tzt und vereinfacht werden und es ist auch ganz besonders gewollt dass alle beteiligten Rollen immer wieder miteinander kommunizieren um das gew nschte Ergebnis zu erzielen Im Folgenden wird beschrieben welche m glichen Wege existieren Business Aktivit ten zu erstellen und wie erreicht werden kann dass dieser Auf wand m glichst gut minimiert und organisiert wird Die naheliegendste M glichkeit der Erstellung ist die manuelle Imple mentierung In F llen in denen nur wenige Services eingebunden wer den m ssen kann dies eine angebrachte L sung sein Es funktioniert direkt und kein weiterer Aufwand muss z B in Technologien zur Code Generierung investiert werden Ein ausgefeilteres Verfahren ist die automatische Generierung des De finitionsteils basierend auf Daten die in einer graphischen Benutzero berfl che eingetragen werden In einem recht einfachen Formular k nnen dabei Schnittstellendaten Eingabe Ausgabe ausgehende Kanten sowie Metadaten Dokumentation Icon Benutzungsregeln f r die Aktivit t angegeben werden Durch eine einfache strukturierte Benutzeroberfl 127 4 Service Integration in BPMS che wird hier erreicht dass der Benutzer zum einen davor bewahrt wird kein Element zu vergessen und zum anderen berhaupt erst bef higt wird eine solche Aktivit t zu erstellen ohne Kenntnisse einer konkreten Definitionssprach
70. erzeugt und entsprechende Objekte m ssen f r einen Aufruf durch ihre Kon struktoren erzeugt werden 3 2 Traditionelle on premise ERP Systeme lt soapenv Envelope xmlns soapenv xmlns glob gt lt soapenv Header gt lt soapenv Body gt lt glob CustomerBasicDataByIDQuery_sync gt lt CustomerBasicDataSelectionByID gt lt CustomerID gt 1001 lt CustomerID gt lt CustomerBasicDataSelectionByID gt lt glob CustomerBasicDataByIDQuery_sync gt lt soapenv Body gt lt soapenv Envelope gt Abbildung 3 7 eSOA SOAP request for getting customer data Wie man sich leicht vorstellen kann sieht die Antwort auf diese Anfrage noch weit komplizierter aus sie enth lt s mtliche Kundendaten und das an vielen Stellen ebenso tief verschachtelt Zum Beispiel teilt sich eine simple Angabe wie die Telefonnummer in die Teile CountryDialingCode und SubscriberID auf Diese Elemente sind eingebettet in Number was wiederum eingebettet ist in Telephone was Teil von Communication ist was Teil von CommunicationData ist was Teil von BasicData ist was letztlich eingebettet ist in Customer Andere Elemente sind von hnlicher Komplexit t Wenn ein neuer Kunde angelegt wird sehen die Eingabedaten berra schenderweise nicht so aus wie die Antwort auf das Lesen der Kunden daten Zum Beispiel ist hier eine Telefonnummer sogar noch komplexer Falls die eSOA Schnittstellen wirklich objektorientiert organisiert w ren so w rde es
71. fachlichen Anwendungsbau steinen beschreibt die jeweils eine klar umrissene fachliche Aufgabe wahrnehmen Weiterhin werden hier die folgenden Charakteristika erw hnt e Es existieren fachliche Anwendungsbausteine mit klar umrissener fachlicher Aufgabe e Es besteht eine lose Kopplung zwischen den Anwendungsbaustei nen Funktionalit ten werden als Services angeboten e Ein Service ist eine feste definierte Leistung kann als Prozessele ment verwendet werden ist eine abstrakte Sicht auf den Anwen dungsbaustein verbirgt Implementationsdetails hat den Charakter einer vertraglichen bereinkunft und ist tendenziell grobgranular e Der Aufruf von Services geschieht ber einen einheitlichen platt formunabh ngigen Mechanismus ber anonyme Schnittstellen Das Auffinden des Service Anbieters nennt sich Discovery e Wichtig ist die Trennung der Zust ndigkeiten nach fachlichen Ge sichtspunkten Separation of Concerns und die Kapselung tech nischer Details In Punkt 2 kann als Prozesselement verwendet werden wird also deutlich dass Prozesse in einer SOA eine gro e Rolle spielen Somit h ngen BPM und SOA stark zusammen Dieses Zusammenspiel ist genau das was durch die Betrachtung der Thematik Service Integration in dieser Arbeit ausgeleuchtet werden soll Thomas Erl definiert SOA ber acht verschiedene Entwurfsprinzipien Erl08 wobei es sich dabei um Regeln handelt die vorgeben was genau Services si
72. geregelt PC09 In dieser Arbeit werden die M glichkeiten des Cloud Computings aus verschiedenen Blickwinkeln betrachtet Besonders interessant sind hier die Nutzung der Cloud als Basis f r den Betrieb von ERP Systemen sie he Abschnitt 3 3 sowie den Betrieb der BPM Software Modellierungs tool Engine Aufgabenverwaltung etc in der Cloud siehe Abschnitt 8 3 2 5 Enterprise Resource Planning ERP Diese Arbeit behandelt das Thema der Service Integration haupts chlich mit der Integration von ERP Systemen ERP steht dabei f r Enterprise Resource Planning also w rtlich bersetzt Unternehmensressourcen planung Ressourcen sind dabei Kapital Betriebsmittel und Personal Jacobs und Weston beziehen sich auf die Definition aus dem APICS Dictionary Framework for organizing defining and standardizing the business processes necessary to effectively plan and control an organization so the organization can use its internal knowledge to seek external advantage Diese Definition zeigt dass der Begriff sehr allgemein gehalten wird Jede betriebliche Software eines gewissen Umfangs und mit einer gewissen Vielseitigkeit wird somit heute als ERP System bezeichnet An diese Konvention h lt sich auch diese Arbeit Ein ERP System ist ein zentrales betriebliches Informationssystem meist mit einer relationalen Datenbank als Backend Vor der Einf hrung sol cher L sungen war es blich dass in einem Unternehmen f r
73. immer Prozesse in der Verwaltung eines Unternehmens gemeint nicht die eher kleinschrittigen Prozesse zur Produktion eines bestimmten Produktes Dies ist auch in dieser Arbeit so zu verstehen Um nun zu beschreiben was genau mit Management im Umfeld von Gesch ftsprozessen gemeint ist muss man zun chst in der Geschichte etwas zur ckgehen In den 90er Jahren war ein h ufig benutzter Begriff im Zusammenhang mit Gesch ftsprozessen Business Process Reenginee ring JMPW93 Damit ist die T tigkeit der Neugestaltung der Prozes se in einem Unternehmen gemeint basiert auf intensiven Untersuchun gen und Analysen Insgesamt beschr nkte man sich darauf die Prozesse zu analysieren und zu dokumentieren also zu modellieren Die model lierten Ist Prozesse k nnen dann immer wieder als Grundlage f r die Optimierung der Prozesse benutzt werden Diese Prozesse wurden noch nicht direkt ausgef hrt sondern waren maximal Vorlagen f r die manuel le Softwareentwicklung hnlich wie es traditionell meist im UML Umfeld gemacht wird Ein bekanntes und bedeutendes Beispiel aus dieser Zeit sind die Ereignisgesteuerten Prozessketten EPK STA05 aus dem ARIS Konzept SS06 von August Wilhelm Scheer Nach wie vor ist die se Modellierungstechnik weit verbreitet und hat auch aktuelle Standards wie BPMN stark beeinflusst Zu dieser Zeit stand das K rzel BPM noch meist f r Business Process Modeling Mit dem Aufkommen service ori
74. in Kategorien zusammengefasst werden wirkt die BAPI auf den ersten Blick als w re sie objekt orientiert In Wirklichkeit handelt es sich aber nur um eine Art objekt orientierte Sicht auf eine Sammlung von Funktionen Jede BAPI Funktion wird eindeutig identifiziert durch den dazugeh rige Namen des RFC Funktionsmoduls Die Funktionen sind hier also die verwalteten Entit ten nicht die Business Objekte Der Na me des Funktionsmoduls entspricht dabei nicht immer dem Namen des Business Objektes und dessen Methode bzw der Funktionsmodulname kann nicht eindeutig aus den Namen von Business Objekt und Methode hergeleitet werden Zum Beispiel existiert ein Business Objekt SalesOr der mit einer Methode ChangeFromData Das dazugeh rige Funkti onsmodul heisst dagegen BAPI_SALESORDER_CHANGE RSD Bewertung Es kommt relativ h ufig vor dass Informationen im BAPI Explorer nicht korrekt sind Es werden zum Beispiel Parameter aufgef hrt die in Wirk lichkeit gar nicht existieren oder der dokumentierende Text beschreibt eine komplett andere Funktion Um an die korrekten Metadaten der Funktionen zu gelangen ist es vor zuziehen direkt per API also z B per JCo darauf zuzugreifen Auch per API werden alle ben tigten Metadaten bereitgestellt Diese sind im Unterschied zum Inhalt des BOR im BAPI Explorer korrekt und voll st ndig Die Metadaten k nnen hier entweder direkt ber bestimmte API Funktionen abgefragt werden oder auch
75. ist es so dass in einem Prozess vor einem Funkti onsaufruf Daten vom Benutzer erwartet werden und nach einem Funktionsaufruf entsprechende Ergebnisse am Bildschirm pr sen tiert werden sollen Genau f r diese Zwecke werden diese Dialoge eingesetzt e SAP SIBs Dieses Paket enth lt SIBs welche die Services der SAP Lib aufrufen oder Dialoge der SAP Forms anzeigen Es han delt sich bei diesen SIBs also um dom nenspezifische Business Aktivit ten siehe Abschnitt 4 5 e SAP Demo Dieses Paket enth lt Beispielprozesse die zeigen wie die SAP SIBs verwendet werden k nnen um einen ausf hrbaren Gesch ftsprozess darzustellen 143 5 Service Integration im jABC 5 2 3 Weitere SIB Implementierungen Neben den in Abschnitt 5 2 1 beschriebenen Office SIBs und den in Ab schnitt 5 2 2 beschriebenen SAP SIBs existieren noch viele weitere SIB Sammlungen die manuell erstellt wurden und f r die Modellierung von Business Prozessen benutzt werden k nnen Im folgenden werden stell vertretend drei verschiedene Sammlungen kurz vorgestellt Common SIBs Die Sammlung der Common SIBs wurde bereits in Abschnitt 5 1 erw hnt Diese SIBs sind gr tenteils eher technischer Na tur und werden bei der Entwicklung von Gesch ftsprozessen eher auf sehr niedrigen Ebenen der Prozesshierarchie also in technischen Prozes sen verwendet Viele dieser SIBs sind tendenziell eher kleinschrittig und erfordern zum Teil die Kenntnis bestimmter Tech
76. jABC heraus Wizards starten kann um SIBs f r entsprechende Business Services zu generieren Die Kerneigenschaften von InBuS sind also die folgenden 1 F hrung des Benutzers durch einen Wizard siehe Abschnitt 5 3 2 2 Generierung der SIB Quelltexte durch Templates siehe Abschnitt 5 3 1 Neben diesen beiden Grundprinzipien gibt es noch zwei wesentliche An forderungen die eng miteinander zusammenh ngen 1 Leichte Erweiterbarkeit und Wiederverwendbarkeit von Komponen ten durch modularen Aufbau 2 Universelle Anwendbarkeit f r beliebige APIs und beliebige BPMS Die M glichkeit zur Erweiterung ist von besonderer Wichtigkeit Es sollte m glichst einfach und schnell gehen InBuS z B um neue ERP Systeme zu erweitern Au erdem ist das InBuS Konzept nicht auf das jJABC be schr nkt Da auch andere BPMS Prozesskomponenten besitzen die prin zipielle hnlichkeiten zu den SIBs des jJABC aufweisen genaueres dazu folgt in Kapitel 6 ist es m glich auch f r diese Systeme die Prozess komponenten zu generieren Auf die Erweiterung des InBuS Konzeptes auf alternative BPMS wird in Kapitel 7 eingegangen Damit Erweiterun gen sowohl auf API Seite als auch auf BPMS Seite m glich sind besitzt InBuS einen modularen Aufbau der f r beide Seiten unabh ngige Im plementierungsmodule vorsieht Die API Seite wird dabei im Folgenden Backend genannt die BPMS Seite Frontend Wenn InBuS also um 159 5 Service Integration im j
77. jedoch noch abgefragt werden Dieses Beispiel zeigt auch die potentielle Einfachheit der Bedie nung In vielen F llen wird eine Software durch eine blinde Bet tigung der Buttons weiter weiter weiter fertig installiert Somit wird einfach immer der vorgegebene Standard gew hlt F r den Gro teil der Benutzer ist dies genau das gew nschte Verhalten Man hat also erreicht dass die Bedienung fast immer sehr einfach und nur in Ausnahmef llen etwas aufwendiger ist 5 3 SIB Generierung In dieser Arbeit wurde eine Java Swing basierte Wizard Library aus dem Netbeans Projekt von Sun Microsystems verwendet Diese bietet viele Funktionen die alle Wizards gemeinsam haben e An der linken Seite befindet sich ein gro es Feld mit allen Schritten und der Markierung wo man sich aktuell befindet e Am unteren Rand befinden sich die typischen Buttons f r Weiter Zur ck Fertig e Man kann sich in einem Kontext Daten merken die vom Benutzer eingegeben werden e Der letzte Schritt des Wizards ist der so genannte Finisher Hier muss die Generierung angesto en werden Dies ist wiederum ein mehrschrittiger Prozess weshalb w hrenddessen ein Fortschritts balken angezeigt wird 5 3 3 Integration der SAP BAPI Nach der in Abschnitt 5 2 2 beschriebenen Entwicklung von SIBs f r die SAP BAPI wurde schnell klar dass die manuelle Entwicklung der SIBs immer wieder sehr hnlich abl uft Bei der extremen Gr e der BAPI be d
78. kleine und mittlere Unternehmen ist es sicherlich inter essant den Einsatz einer L sung wie OpenERP in Erw gung zu ziehen da zum einen keine Anschaffungskosten anfallen und es sich zum anderen durch die solide API relativ gut in eine serviceorientierte Architektur ein binden l sst Man sollte bei der Benutzung auf jeden Fall bedenken dass hier keine Versionierung vorhanden ist und somit auch keine Gew hr leistung was die Stabilit t der API und damit die Zukunftssicherheit angeht Apache Ofbiz Apache Ofbiz Apal3 ist ein weiteres Open Source ERP System Hier wird es in Version 11 04 02 betrachtet Die API ba siert technisch urspr nglich auf einer eigenen propriet ren Technologie bei der die Services in einem eigenen XML Format beschrieben werden Dabei werden so genannte Simple Services und Java Services unter schieden Bei ersteren werden die Services komplett in der XML Datei beschrieben bei letzteren befindet sich dort mit einem Java Klassennamen sowie einem Methodennamen lediglich der Verweis auf einen Service Diese propriet ren Dienste werden in der aktuellen Ofbiz Version nicht mehr direkt angeboten sondern werden ber zwei alternative Service Technologien angeboten Diese Technologien bilden dabei quasi einen Wrapper um die alte Technologie Im einzelnen sind dies XML RPC sowie durch WSDL Dokumente beschriebene SOAP Web Services Die WSDL Definitionen werden hier jedoch nicht wie gewohnt zur Beschrei b
79. kon kreter Anforderungen definiert werden die eine API erf llen sollte Dies wird im folgenden Abschnitt 3 1 vorgenommen Diese Anforderungen sind das Ergebnis jahrelanger Erfahrungen aus Industrieprojekten sowie studentischen Projekten im Rahmen von Projektgruppen Seminaren Vorlesungen und bungen an der Technischen Universit t Dortmund sowie der Universit t Potsdam Besonders die Erfahrungen aus den Di plomarbeiten von David Karla Kar09 und Andr Ackermann Ack10 waren hier besonders n tzlich 3 1 Vergleichskriterien Wie in Abbildung 3 3 zu sehen konnten wir vier grobe Kategorien von Anforderungen an ERP APIs identifizieren Die erste und wichtigste Kategorie enth lt alle zentralen Anforderungen Aspekte der Benutzer freundlichkeit wurden unter der Kategorie API Design zusammenge fasst Alles was die eingesetzte Technologie betrifft geh rt zur Kategorie Technologie und schlie lich geh ren alle M glichkeiten zus tzliche In formationen anzubieten in die Kategorie zus tzliche Informationen Insgesamt gibt es hier 18 verschiedene Anforderungen f r ERP APIs Bei der Bewertung der APIs wurde grunds tzlich ein besonderer Augen merk darauf geworfen wie gut sich die Informationen automatisch durch Software auswerten und nutzen lassen Dies ist besonders f r die auto matische Generierung von Service Bausteinen interessant was in Kapitel 5 3 5 dieser Arbeit detailliert behandelt wird 57 3 Untersuchu
80. lange der de facto Stan dard in Bereich BPM so dass eine Nichtbetrachtung hier nicht in Frage kommt Da BPEL sich beim Thema Service Integration im Wesentli chen auf die lt invoke gt Aktivit t beschr nkt wurde die Sprache in den Tabellen 6 1 und 6 2 welche einer bersicht der Auswertung enthalten ausgelassen In mehreren Diplomarbeiten wurde am Lehrstuhl 5 f r verschiedene An wendungsbereiche evaluiert wie gut sich BPEL f r die Definition von ausf hrbaren Gesch ftsprozessen einsetzen l sst J rn Gaeb verfasste eine Arbeit ber die Modellierung von BPEL Prozessen im jABC Gae07 Dazu implementierte er ein entsprechendes jABC Plugin Mit diesem war es m glich BPEL Prozesse in das jABC zu importieren sie dort als SLG zu bearbeiten und diese auch wieder zu exportieren Damit dies m glich ist wurde zus tzlich eine spezielle Pa lette von BPEL SIBs entworfen Dabei handelt es sich um Control SIBs 197 6 Service Integration in anderen BPMS die jeweils eine BPEL Aktivit t darstellen Hier wurde besonders deut lich das ein SLG und ein BPEL Prozess von grunds tzlich verschiedener Natur sind Ein SLG ist Graph orientiert ein BPEL Prozess prinzipiell Block orientiert Das bedeutet dass in BPEL z B f r eine Verzweigung mit if ein entsprechender Block mit Anfang und Ende existiert Im jABC wurde also jeweils ein SIB f r den Anfang und f r das Ende des if Blocks bereit gestellt Bei anderen Aktivit ten w
81. man sich mit Standard Webservice Frameworks wie JAX WS oder Apache Axis Client Stubs generieren Bei der Umsetzung der Projek te kamen die Studenten relativ schnell zu der Erkenntnis dass es sich bei eSOA um eine sehr gro e und auch sehr inkonsistente API handelt Damit wurden die Ergebnisse aus Abschnitt 3 2 2 best tigt Es wurde eigentlich erwartet dass nach der Umsetzung des Kundenprozesses eine analoge Entwicklung f r Lieferanten und Mitarbeiter sehr einfach durch die Ersetzung entsprechender Services m glich sei Es stellte sich her aus dass dies nicht m glich ist da Kunden Lieferanten und Mitarbeiter in SAP ERP grunds tzlich sehr verschieden behandelt werden Auch die eSOA API bot hier sehr verschiedene Services an Folgende Services wur den angeboten e Lieferant Find Supplier by Name and Address Read Supplier Basic Data e Mitarbeiter Find Employee by Elements Find Employee Address by Employee e Kunde Find Customer by Elements Nicht nur die Benennung der Services ist jeweils sehr unterschiedlich In allen Fallen ist es gewiinscht nach einer Suche Listen von Personen oder Organisationen zu erhalten Welche Informationen jedoch pro Person oder Organisation mitgeliefert wird ist sehr unterschiedlich So wird die Adresse nur manchmal direkt mit angegeben Fehlt sie ist es oft n tig f r die entsprechende ID separat noch einmal die Adressinformation zu erfragen M chte man also eine Liste von z B 100 Ad
82. mit dem COM Ansatz bei Microsoft Office zu vergleichen nicht mit dem POL Ansatz Es existiert am Lehrstuhl 5 eine Implementierung von OpenOffice SIBs die von Martin Sugioarto implementiert wurden Diese SIB Sammlung enth lt SIBs in drei verschiedenen Unterkategorien e Allgemeine SIBs Kategorie Common CloseDocument Schlie t das Dokument NewDocument Erzeugt ein neues Dokument PrintDocument Druckt ein Dokument SaveDocuement Speichert ein Dokument SaveDocumentAsPDF Exportiert das Dokument als PDF StartOffice Startet eine Instanz von OpenOffice e Tabellenkalkulation Calc Kategorie Calc CalculateColumnSum Berechnet die Summe einer Spalte GetCellValue Berechnet den Wert einer Zelle InsertNewSheet F gt eine neue Tabelle ein SetCellValue Setzt den Wert oder die Formel einer Zelle SetCurrentSheet W hlt die aktuelle Tabelle aus e Textverarbeitung Writer Kategorie Writer InsertTable F gt eine Tabelle ein MoveCursor Bewegt den Cursor an eine vorgegebene Stelle Replace Text Sucht nach einem vorgegebenen Text und ersetzt alle Vorkommen durch einen gegebenen neuen Text SetCursorProperties Setzt die aktuellen Eigenschaften des Cur sors Schriftart und gr e Farbe Unterstrichen WriteText F gt Text an der aktuellen Cursor Position ein Die OpenOffice SIBs wurden in zahlreichen Demos und Beispielprozes sen eingesetzt Die Writer SIB
83. nicht einfach und umgekehrt Da her ist es grunds tzlich wichtig eine gute Rollenaufteilung zu finden wo jeder seine Kernkompetenzen m glichst gut einbringen kann Damit diese Aufteilung gut funktioniert ist eine Etablierung einer gut funktio nierenden Kommunikation zwischen den Rollen unerl sslich Der XMDD Ansatz ist eine Herangehensweise die das ITSy Prinzip sehr 59ITSy IT Simply works It simply works 50 2 7 Einfachheit als Prinzip gut unterst tzt Das Prozessmodell ist sehr einfach gehalten es gibt ins gesamt nur ein Prozessmodell der SLG und die Rollenaufteilung ist zwischen Anwendungsexperten und IT Experten klar geregelt Im Bereich der Service Integration ist es ebenso von entscheidender Wich tigkeit zu beachten was f r die beteiligten Personen der einfachste Weg ist In Kapitel 4 werden verschiedene grunds tzliche Ans tze zur Service Integration beschrieben und verglichen Hinsichtlich ihrer Einfachheit unterscheiden sie sich immens Verschiedene Arbeiten wurden durchgef hrt um zu demonstrieren dass das ITSy Prinzip auch funktioniert In der Diplomarbeit von Jan Pardo Parl2 DGPS12 wurde ein Abrechnungssystem f r Leistungen im Be reich des Reha Sports entwickelt und dabei strikt auf die Einhaltung des ITSy Prinzips geachtet Die Prozesse wurden hier im jABC nach dem XMDD Ansatz modelliert Au erdem wurde stark darauf geachtet nie unn tig etwas selbst zu implementieren was es bereits verf
84. nichts machen und auch immer die jeweils gleiche feste Bezeichnung tra gen In BPMN k nnen diese noch weitere Informationen tragen und mit individuellen Bezeichnungen versehen werden so dass diese Ele mente sinnvoll zum Verst ndnis beitragen k nnen Im jABC sind 222 8 2 Einfachheit der Prozesssprachen iR false a E Anzeige Wert Eingabe Anzahl ER Eingabe Anzahl Anzahl gt 0 Schleifenindex default ok Herunterz hlen Abbildung 8 4 Die gleiche Schleife im jABC eigene Start und Endereignis optional Tragen sie nicht zu einem besseren Verst ndnis bei so k nnen sie einfach weggelassen werden Als Startereignis kann jedes beliebige SIB gekennzeichnet werden ein Endereignis besitzt im Allgemeinen einen ausgehenden Model branch In Abbildung 8 4 ist dargestellt wie die Schleife als SLG im jABC mo delliert wird Die Anzahl der Knoten verringert sich dabei von neun auf f nf Eigentlich w rden hier auch vier Knoten reichen da der Endknoten Fertig optional ist Dieser wurde lediglich eingef gt um noch deutli cher anzuzeigen dass von dem Verzweigungsknoten aus der Prozess auch verlassen werden kann YAWL YAWL ist eine Sprache bei der das Ziel ist alle existieren den Workflow Patterns direkt zu unterst tzen Noch weitaus extremer als bei BPMN f hrt dies dazu dass die Anzahl verschiedener Elemente un berschaubar gro ist und es somit sehr aufw ndig ist die Sprache zu lernen und komplett zu
85. rer Punkt ist dass die Funktionen nicht wirklich als API ver ffentlicht 104 3 4 Vergleich Tabelle 3 8 Ergebnisse der Auswertung Cloud basierte ERP Systeme RSD KVS VZB EDV SSD IKB KES KVD PUS AZS EAM GLD DVA WVA DOP VVA GIS ISN Salesforce nicht untersucht NetSuite Workday O O n u QBOE OO O werden Es existiert zum Beispiel keinerlei Versionierung weder von einzelnen Services noch von der API im Ganzen Somit wei der Be nutzer nie ob eine Client L sung noch mit dem n chsten Release von Dynamics NAV zusammenarbeitet Der Ansatz von Dynamics NAV kann also f r kleine bis mittlere Unternehmen empfohlen werden die lediglich Standard Anforderungen an die Software stellen Die Quickbooks API punktet mit ihrer relativ guten Online Reference Hier werden alle Services in verschiedenen Formaten beschrieben und mit 105 3 Untersuchung von Business A PIs 106 relativ ausf hrlicher Dokumentation pr sentiert Solang die Zahl der Ser vices nicht zu gro wird ist diese L sung recht praktisch Bei einer gr e ren Menge an Services wird das ganze schnell un bersichtlich da wie bei Dynamics NAV jegliche Form von weiterer Kategorisierung und Struk turierung fehlt Die zugrundeliegende Technologie der Quickbooks API ist sehr speziell und kann nur in reinen Windows Umgebungen auf eine einfache Weise benutzt werden Somit
86. rzt Die Material art hei t an einer Stelle MATERIAL_ TYPE und an einer anderen MATL_ TYPE In den meisten F llen ist die Namensgebung immerhin so intuitiv dass man verstehen kann was gemeint ist IKB Bewertung o Um die API m glichst einfach zu halten ist die Anzahl der Datentypen in der BAPI sehr beschr nkt Es gibt nur einige einfache Datentypen sowie lediglich zwei Arten von komplexen Typen Structure und Table Eine Structure ist vergleichbar mit einem struct in C oder C oder mit einem record in Pascal Es handelt sich also um einen Datensatz welcher verschiedene Werte mit jeweils einem festen Namen und einem einfachen Datentyp besitzen Structures k nnen nicht verschachtelt werden eine Structure kann also nicht eine andere enthalten Diese Eigenschaft trifft ebenso auf eine Table zu Diese k nnen als Listen von Structures gesehen werden Die hier genannten Einschr nkungen f hren zu einer recht auf ger umten und bersichtlichen API f hren aber auch zu Problemen Oft w re es recht nat rlich tiefer geschachtelte Datentypen zu verwenden Auch die Abbildung auf objekt orientierte Programmiersprachen wird so erschwert Jede Funktion hat drei Gruppen von Parametern Import f r die Einga bedaten Export f r die Ausgabedaten und Table f r Eingabe und 69 3 Untersuchung von Business A PIs 70 BAPI_CUSTOMER_GETDETAIL2 import CUSTOMERNO String COMPANYCODE optional String export
87. scht werden k n nen Optional kann eine Page als ver ffentlicht markiert werden was dazu f hrt dass sie als SOAP Webservice nach au en verf gbar gemacht wird Im Auslieferungszustand ist zun chst keine Page ver ffentlicht Je de Page die zug nglich gemacht werden soll muss explizit so markiert werden Au erdem muss ihr ein Name verliehen werden ber die sie ex tern verf gbar gemacht wird Es existiert dabei ein WSDL Dokument pro Page Die URLs aller Page WSDL Dokumente werden zentral in ei nem DISCO Dokument aufgelistet siehe Abschnitt 3 2 3 1 Der vom Benutzer verliehene Name der Page ist dabei immer Teil der WSDL URL Au erdem ist durch das Vorkommen der Zeichenkette Page an der URL direkt erkennbar dass es sich um eine Page handelt und nicht um einen sonstigen Webservice von Dynamics NAV Die DISCO Registry F r den ersten Schritt des Wizards siehe Ab schnitt 5 3 5 ist es n tig eine Liste aller Business Objekte zu erlangen Da Business Objekte in Dynamics NAV den Pages entsprechen wird al so eine Liste aller ver ffentlichten Pages ben tigt Genau dies steht im DISCO Dokument In Listing 5 3 ist zu sehen dass f nf verschiedene Pa ges angeboten werden die jeweils zum fiktiven Unternehmen CRONUS AG geh ren Au erdem ist noch ein globaler Webservice SystemSer vice vorhanden der allgemeine Informationen liefert die f r die hier an gestrebte Integration der Services nicht ben tigt werde
88. sich APIs m glichst nicht ver ndern soll ten Durch ein gutes Versionierungskonzept ist es jedoch m glich diese scheinbaren Gegens tze jedenfalls zu einem gewissen Grad zu verein baren Dies wird sp ter in Abschnitt 3 1 beschrieben Da die Software Integration durch eine API f r ein SaaS System von noch gr erer Bedeutung ist als f r traditionelle Systeme existieren mehrere Ver ffentlichungen die sich mit der Integration im Bereich SaaS befassen Hai und Sakoda HS09 schreiben ber Best Practises in diesem Bereich Liu et al LGZC10 haben dabei eine eher technische Sicht auf das Thema und schlagen eine konkrete Architektur f r SaaS Integration vor SaaS Adapter Framework In LLC09 konzentrieren sie sich auf die Frage wie eine Firewall in SaaS Integration Szenarien berwunden werden kann Shi Shil2 schrieb seine Master Arbeit ber 36auch on premise also in etwa auf dem Firmengel nde 31 2 Grundlagen 32 die Integration traditioneller ERP Systeme mit Cloud Diensten und f hr te daf r einige Interviews mit Personen aus der Industrie durch Leider kann die Existenz von APIs f r Cloud Anwendungen jedoch auch Probleme bereiten Dies ist zum Beispiel dann der Fall wenn das An gebot in Web prinzipiell kostenlos ist und sich das betreibende Unter nehmen irgendwann berlegt wie es mit dem Dienst Geld verdienen soll Die naheliegendste L sung ist hier fast immer das Schalten von W
89. sich intensiv mit der Prozessbeschreibungssprache BPEL auseinandergesetzt Unter anderem wurde die Sprache in mehre ren Diplomarbeiten und Projektgruppen eingesetzt siehe dazu die Abschnitte 6 7 und 8 2 Ebenso intensiv wurde die Sprache BPMN evaluiert So setzen zum Beispiel mehrere untersuchte BPMS BPMN ein BPMN wird unter anderem in den Abschnitten 4 1 6 1 6 2 6 3 und 8 2 thematisiert Es wurden die M glichkeiten des Cloud Computing f r BPM er forscht zum Beispiel in der Projektgruppe PCB in der Projekt gruppe Intercloud oder der Bachelorarbeit von Moussa Oumarou Oum12 Dies wird in Abschnitt 8 3 behandelt Durch alle Arbeiten zieht sich das Thema Einfachheit als Leitmo tiv Dazu wurde auch von Jan Pardo eine entsprechende Diplomar beit angefertigt Auf dieses Thema wird besonders in Abschnitt 2 7 und in Kapitel 8 eingegangen 9 2 Ausblick Diese Arbeit hat zum Ziel ein Leitfaden im Bereich der Service Integration zu sein und dies sowohl f r die Seite der Service Anbieter als auch f r die Seite der Service Nutzer Um noch mehr praktischen Nutzen aus die sem Leitfaden zu ziehen bieten sich noch sehr viele M glichkeiten an diese Arbeit fortzusetzen Im Bereich der APIs existieren noch viele weitere Produkte die es wert w ren untersucht zu werden Dazu k nnten zu Beispiel die folgenden geh ren 9 2 Ausblick Zahlreiche Produkte der Firma Oracle unter anderem auch JD Edwards Das
90. und On Demand Da diese Modelle immer wieder sehr hnlich aussehen und ein Business Experte solche Modelle nicht selbst erstellen m chte bzw kann wurde zus tzlich der Quickbooks Model Generator entwickelt Dieser gene riert die beschriebenen SLGs zum Zugriff auf Quickbooks Services Auch hier wird ein Wizard eingesetzt welcher vergleichbar ist mit dem im SAP Plugin Somit n hert sich das Konzept insgesamt wieder an das 5 3 SIB Generierung des SAP Plugins an Der entscheidende Unterschied bleibt dass hier auch auf einer sehr technischen Ebene noch ein SLG benutzt wird Im SAP Plugin wurde dies komplett versteckt 5 3 5 Das InBuS Framework Nach den Erfahrungen mit den unterschiedlichen ERP APIs siehe Kapi tel 3 den manuellen SIB Implementierungen siehe Abschnitt 5 2 sowie den Diplomarbeiten von David Karla Kar09 und Andr amp Ackermann Ack10 mit ihren Ans tzen zur SIB Generierung f r SAP BAPI siehe Abschnitt 5 2 2 resp Intuit Quickbooks siehe Abschnitt 5 3 4 wur den die Ergebnisse genutzt um ein einheitliches Konzept zur Wizard gesteuerten Template basierten Generierung von SIBs f r Business A PIs aufzustellen und ein entsprechendes Framework zu implementieren Die ses Framework tr gt den Namen InBuS was f r Integrating Business Software steht Es f gt sich durch die Bereitstellung eines jJABC Plugins nahtlos in dessen graphische Benutzeroberfl che ein Das bedeutet dass man direkt aus dem
91. und Activiti war Dieser verlie Activiti um mit Effektif ein neues Projekt zu starten Dabei handelt es sich eben falls um ein komplett Cloud basiertes BPM System also einer fertigen SaaS L sung Enthalten sind sowohl ein Modellierungstool als auch eine Prozessengine und eine Aufgabenverwaltung Zum Zeitpunkt der Ver ffentlichung dieser Arbeit war die Software selbst noch nicht ver f fentlicht Es existieren lediglich Vortr ge und Whitepapers die beschrei ben wie das fertige Projekt aussehen soll Bei Effektiv wird besonderer Wert auf Einfachheit gelegt Einfache und h ufig vorkommende Dinge sollen mit wenigen Klicks zu erledigen sein http www effektif com l6Hier wird Signavio eingesetzt Die Signavio GmbH ist auch Hauptunterst tzer und Finanzgeber des Projektes 226 KAPITEL 9 Fazit und Ausblick Im Folgenden wird zun chst in Abschnitt 9 1 ein Fazit dieser Arbeit gezogen bevor dann schlie lich in Abschnitt 9 2 ein Ausblick auf m gli che Erweiterungen und Fortsetzungen der in dieser Arbeit behandelten Themen gewagt wird 9 1 Fazit In dieser Arbeit wurde gezeigt dass heutige Servicesammlungen oft lei der eine entt uschende Qualit t bieten Dies gilt auch f r Produkte namhafter Hersteller Positiv ist der Trend zu bewerten den das Cloud Computing in diesem Bereich angesto en hat Hier ist offensichtlich ein echter N hrboden f r gute Konzepte zur Realisierung von APIs entstan den Soll
92. und kann somit in beliebigen Java Projekten genutzt werden Das oben aufgef hrte Beispiel in dem ein neues Material hinzugef gt s e gt or gt w N oO 10 11 12 15 16 5 2 Manuelle SIB Implementierungen wurde sieht also bei der Benutzung der SAP Lib wie in Listing 5 2 aus Listing 5 2 BAPI Aufruf mit SAP Lib SAPConnection connection new SAPConnection jcoProperties Material material new Material material setMaterialNumber M1234 material setMaterialType HAWA material setIndustrySector 1 material setUnitOfMeasure PCE material setMaterialGroup 002 material setDescription computer mouse try MaterialBAPI addMaterial connection material catch SAPException e e printStackTrace Hier sieht man dass der Code zum einen deutlich k rzer ist als in Lis ting 5 1 zum anderen ist er deutlich intuitiver und Java typischer Das Material Objekt ist nun ein Objekt im objektorientierten Sinne der ei gentliche Aufruf befindet sich in einer Zeile und bei einem auftretenden Laufzeitfehler wird eine entsprechende Exception geworfen Zusammen mit der SAP Lib existieren noch weitere Pakete durch die diese Funktionen in das jABC integriert werden e SAP Forms Dieses Paket enth lt eine Sammlung von Dialogen also Eingabemasken und Anzeigedialoge die mit Java Swing erstellt wurden Diese Dialoge wurden spezifisch f r bestimmte Funktionen entworfen Oft
93. von Services Das Identifizieren des richtigen Services wird auch Service Discovery genannt Services m ssen also in einem Repository vorgehalten werden und dort hinreichend durch Metainformationen beschrieben sein damit man sie bei Be darf findet und schlie lich benutzen kann Kompositionsf higkeit von Services Eine Menge einfacher Ser vices kann durch einen Prozess der auf diesen Services basiert zu einem gr eren komplexeren Service kombiniert werden Dies wird auch oft Orchestrierung genannt In Punkt 8 Kompositionsf higkeit wird deutlich dass sich Thomas Erl auch auf die Rolle von BPM in SOA Erl08 S 114 f bezieht Die Gesch ftsprozessebene ist ein Kernst ck jeder service orientierten Architektur Aus der Sicht der Komposition hat sie normalerweise die Rolle einer bergeordneten Kontrollinstanz f r die Servicekomposition Das Aufkommen der Orchestrie rungstechnologie hat diese Rolle aus der Implementierungs perspektive weiter gest rkt 13Der Consumer ist die Service aufrufende Instanz man k nnte also auch Kunde oder Client sagen 17 2 Grundlagen Nicolai Josuttis Jos08 betont dass es sich bei SOA nicht um eine kon krete Architektur handelt sondern eher um eine Art Konzept welches zu einer Architektur hinf hrt Als zentralen Pluspunkt gegen ber vorheri gen Konzepten oder Architekturen sieht er die gewonnene Flexibilit t des Unternehmens welches ei
94. wahlweise aus einer von JCo automatisch generierten HTML oder XML Datei ausgelesen wer den 67 3 Untersuchung von Business A PIs Tabelle 3 1 SAP BAPI Business Objekte Create Read Update Delete Simple Query Customer De d d d Vendor d d d d Item Sales Quote d D Sales Order D D D Sales Invoice Purchase Quote m Purchase Order v fe Z Purchase Invoice a Ser Employee D hier thier hier dhier hier 68 CreateFromData Edit GetDetail GetList CustomerQuotation KVS Bewertung o Die BAPI ist weit davon entfernt komplett zu sein F r kein einziges un tersuchtes Business Objekt sind alle notwendigen Methoden verf gbar um das Objekt zu erzeugen zu lesen zu manipulieren oder zu l schen Es k nnen hier nur 12 von 50 m glichen Punkten vergeben werden zu sehen in Tabelle 3 1 Nat rlich ist es m glich die ben tigten Funktionen zu implementieren und somit die BAPI zu erweitern jedoch ist dies nicht schon fertig im Auslieferungszustand eines SAP Systems integriert Insbesondere bedeu tet dies dass solche Erweiterungen dann jeweils propriet r sind und nicht einheitlich f r alle SAP Systeme Au erdem sollte man betrachten dass jede Erweiterung Arbeit bedeutet was Kosten verursacht und nat rlich eine potent
95. welcher zus tzlich zu einer gew hnlichen komplexen GUI eingesetzt wird das Nutzerverhalten beobachtet und an den passenden Stellen den Nutzer mit Ratschl gen behilflich ist Ein bekanntes Beispiel ist hier zum Bei spiel der Office Assistent von Microsoft Office auch als Karl Klam mer im Englischen Clippy bekannt Ein solcher Guide ben tigt also immer ein gewisses Ma an k nstlicher Intelligenz da er zun chst selbst feststellen muss was der Benutzer plant Es ist allgemein bekannt dass dies nicht immer besonders gut funktioniert oder das Erscheinen des Guides einfach in vielen Situationen unerw nscht ist Bei der SIB Generierung steht das Ziel eindeutig fest Hier sollte demnach kein Guide sondern besser ein Wizard eingesetzt werden Ein Wizard wird von Dryer folgenderma en definiert provide task assistance by breaking the task into a typi cally linear series of steps and presenting the steps to a person one at a time Weiterhin wird hier ausgesagt dass sich Wizards aufgrund ihrer linearen Struktur am besten f r Aufgaben eignen die ein durch einen Algorithmus erzeugtes Ergebnis besitzen K nstliche Intelligenz kommt bei Wizards im Unterschied zu Guides nicht zur Verwendung Bekannt sind Wi zards vor allem von Software Installationsprogrammen Auch hier steht das Ziel Ich m chte die Software installieren vorher eindeutig fest Details Speicherort Feature Auswahl m ssen
96. wird deutlich warum Quickbooks als eine Low Budget L sung angesehen werden kann die nur f r sehr kleine Unternehmen mit Standard Anforderungen ausreichend ist Die APIs von Salesforce und NetSuite haben sehr viel gemeinsam Beide sind insgesamt qualitativ sehr hochwertig besonders was die zentralen Anforderungen an Business APIs und das API Design angeht Salesfor ce hat dazu noch als positives Alleinstellungsmerkmal die Bereitstel lung internationalisierter Labels sowie Layout Informationen f r graphi sche Benutzeroberfl chen was es recht einfach macht brauchbare eigene Oberfl chen zu generieren Salesforce und NetSuite sind beides recht mo derne Systeme z B im Vergleich zu SAP oder Dynamics NAV Da sie nicht mit Legacy Strukturen und R ckw rtskompatibilit t zu k mpfen haben konnten die Entwickler dieser Systeme von Grund auf moderne APIs entwerfen Au erdem haben sie erkannt dass eine API heutzutage mindestens genauso wichtig ist wie die graphische Benutzeroberfl che Wenn man nur die jeweiligen APIs betrachtet k nnen diese beiden Sys teme relativ uneingeschr nkt empfohlen werden Die API von Workday besitzt eine besonders gute Dokumentation die so gar auch komplett ber die API selbst also ber die WSDL Dokumente zug nglich ist Hiermit steht diese API allein da Au erdem ist es die ein zige API die auch Validierungsregeln f r die einzelnen Services mit aus liefert Leider hatten wir keine laufende Te
97. wurde Nichtsdestotrotz ist es interessant zu sehen dass sich diese Technolo gie grundlegend von SAP s eSOA unterscheidet Eher wie bei Dynamics NAV von Microsoft wird hier ein WSDL Dokument pro Business Objekt verwendet und jedes Dokument beinhaltet dabei die gleichen einfachen CRUD Operationen Auch SAP s Hauptprodukt SAP ERP wird als Cloud L sung angebo ten Dazu kooperiert SAP mit dem IaaS Anbieter Amazon und bietet SAP ERP Installationen auf Amazon s EC2 8 an Hierzu werden von Amazon Anleitungen und allgemeine Dokumentationen dazu angeboten Mhttp www infog com news 2012 05 Miguel Moonlight MSDLL Dynamic Link Library 16B1WS Business One Web Services ITSDN SAP Developer Network 18502 Elastic Compute Cloud http aws amazon com de sap 86 3 3 Cloud basierte ERP Systeme wie ein SAP ERP auf EC2 deployt und betrieben werden kann und was dabei beachtet werden muss SAP und Amazon zertifizieren dabei dass diese und andere SAP L sungen auf dieser Plattform lauff hig sind Da hier ein Standard SAP ERP zum Einsatz kommt muss hier keine sepa rate Evaluierung der API vorgenommen werden Microsoft bietet Dynamics NAV ebenfalls als Cloud Installation an Da f r wird die IaaS L sung Windows Azure eingesetzt wobei hierauf der Server von Dynamics NAV mit einer Web Oberfl che deployt wird Die ser Dienst wird seit dem vierten Quartal 2012 angeboten Da die Art des Deployments Cloud od
98. z B relationale ber JDBC sind nicht erreichbar Es ist weder erlaubt eigene Threads zu starten noch auf das Dateisystem zuzugreifen Eine weitere Einschr nkung besteht darin dass nicht alle Java Klassen des JRE genutzt werden d rfen sondern nur ca 40 aller Klassen die in einer entsprechenden Whitelist aufgez hlt werden All diese Einschr nkungen machen es schwierig bis unm glich existierende Engines wie jABC oder Activiti zu deployen Diese Erfahrung machte auch die Projektgruppe Hier wurde intensiv daran gearbeitet verschie dene Versionen der beiden Engines auf die Google Plattform zu bringen Letztlich erfolgreich konnte Activiti auf der PaaS Heroku von Sales force deployt werden welche deutlich weniger Einschr nkungen definiert Da w hrend der Laufzeit der Projektgruppe klar wurde dass ein gro es Problem im Cloud Computing in den fehlenden Standards und somit ge ringer Portabilit t und Interoperabilit t zwischen den Clouds liegt wird in der Projektgruppe Intercloud die Arbeit fortgesetzt Hier soll nun ei nerseits untersucht werden wie verschiedene Clouds zusammen benutzt werden k nnen und andererseits wie gemeinsame Schnittstellen definiert werden k nnen so dass es einfach m glich ist Applikationen von einer Cloud in die andere zu portieren Bei der Verwendung von laaS wie z B Amazon EC2 hat man letztlich keine Einschr nkungen aber auf der anderen Seite auch mehr Aufwand da hier das Laufzeitsys
99. zu sehen ist jedoch deutlich schlanker und einfacher gehalten Die Einfachheit bedeutet jedoch auch dass es hier kein Pendant zu WSDL gibt es existiert also keine formale Schnitt stellendefinition Auch dies verhindert eine elegante und automatisierte Nutzung auf Client Seite gerade bei gro en und komplexen APIs Open Bravo Opel3a ein weiterer Fork von Compiere bietet gar keine ffentlichen Informationen zu einer API an Gleiches gilt f r das Projekt Synerpy AvERP Syn13 OpenERP OpenERP Opel3b ist ein in Python implementiertes Open Source ERP System Die Daten werden dabei im Datenbanksystem Post greSQL abgelegt Als technische Grundlage f r das ERP System dient ein eigenes ORM Framework namens OpenObject Das System be steht aus vielen verschiedene Untermodulen die in einem ffentlichen Repository frei verf gbar sind Auch die Entwicklung eigener Module ist m glich Module k nnen dabei eigene Business Objekte definieren oder auch vorhandene Objekte erweitern Business Objekte werden in Ope nERP durch Python Klassen realisiert die von einer bestimmten Klasse erben miissen Diese Klasse stellte alle grundlegenden Funktionen f r 3 http www xtuple org node 310 bzw http sourceforge net projects postbooks files 09 20PostBooks API 31 http www weberp org wiki APIDocumentation 32ORM Object relational mapping 33Klasse osv kurz f r Object Service 108 3 5 Schnittstellen weite
100. 186 9 A0 Dry97 DRYER D C Wizards guides and beyond Rational and empirical methods for selecting optimal intelligent user interface agents In Proceedings of the 2nd international 235 Literaturverzeichnis conference on Intelligent user interfaces ACM 1997 S 265 268 DS11 DOoEDT M STEFFEN B Requirement Driven Eva luation of Remote ERP System Solutions A Service oriented Perspective In Software Engineering Workshop SEW 2011 34th IEEE 2011 ISSN 1550 6215 S 57 66 DWC 10 DILLON T Wu C CHANG E Cloud computing Issues and challenges In Advanced Information Networ king and Applications AINA 2010 24th IEEE Interna tional Conference on IEEE 2010 S 27 33 Erl05 ERL Thomas Service Oriented Architecture Concepts Technology and Design Upper Saddle River NJ USA Prentice Hall PTR 2005 ISBN 0131858580 Erl08 ERL Thomas SOA Entwurfsprinzipien f r serviceori entierte Architektur Addison Wesley 2008 ES85 ERICSSON K A SIMON H A Protocol analysis MIT press 1985 ESMO7 ELLIS B STYLOS J MYERS B The factory pattern in api design A usability evaluation In Proceedings of the 29th international conference on Software Enginee ring IEEE Computer Society 2007 S 302 312 ESM 10 EISENBERG D S STYLOS J MYERS B A Apatite a new interface for exploring APIs In Proceedings of the 28th international conference on Human factors in
101. 2 PAPAZOGLOU M What s in a Service In Software Architecture 2007 S 11 28 PARNAS D L On the criteria to be used in decomposing systems into modules In Communications of the ACM 15 1972 Nr 12 S 1053 1058 PARR Terence J Enforcing strict model view separati on in template engines In Proceedings of the 13th inter national conference on World Wide Web ACM 2004 S 224 233 PARDO Jan Einfachheit als Prinzip Eine Webanwen dung zur Abrechnung von Rehasportma nahmen Techni sche Universit t Dortmund Diplomarbeit 2012 PARAMESWARAN AV CHADDHA A Cloud interopera bility and standardization In SETlabs briefings 7 2009 Nr 7 S 19 26 POLYVYANYY Artem GARCIA BANUELOS Luciano WESKE Mathias Unveiling hidden unstructured regi ons in process models In On the Move to Meaningful Internet Systems OTM 2009 Springer 2009 S 340 356 PLETCHER D M Hou D BCC Enhancing code com pletion for better API usability In Software Mainte nance 2009 ICSM 2009 IEEE International Conference on IEEE 2009 S 393 394 245 Literaturverzeichnis quil2 Intuit Quickbooks Website http quickbooks intuit com Version 2012 Rad05 RADEN Neil Shedding light on shadow IT Is Excel running your business In DSSResources com 26 2005 RB95 RUMMLER G A BRACHE A P Improving Performan ce How To Manage the White Space on the Organization Chart The Jossey Bass Management Series ER
102. 3SIB Service Independent Building Block siehe Abschnitt 2 6 3 1 Einleitung Beschr nkung der Automatisierung auf eine halbautomatische L sung bewirken dass der Benutzer so Einfluss auf die Generierung aus ben kann dass die Services so aussehen wie er es sich w nscht Technische Probleme m ssen bei diesem Ansatz meist nur einmal gel st werden n mlich bei der Implementierung der Wizards und nicht mehr bei jeder Service Integration neu 1 3 Meine Arbeitsschwerpunkte Der Kern der geleisteten Arbeiten die dieser Ausarbeitung zu Grunde liegen gliedert sich grob in drei Teile 1 Untersuchung von ERP APIs 2 Untersuchung von BPMS bzgl Service Integration 3 Entwicklung eines Service Integration Frameworks f r ERP Systeme durch Wizard gesteuerte Generierung von Prozessbausteinen Untersuchung von ERP APIs In einer ersten Studie siehe Abschnitt 3 2 wurden vier verschiedene APIs von traditionellen ERP Systemen un tersucht Dazu geh ren zwei L sungen des Marktf hrers SAP und zwar die ltere BAPI RFC L sung sowie die modernere Webservice basierte eSOA L sung Als Kontrast wurde neben dieser L sung f r sehr gro e Unternehmen das deutliche schlankere System Dynamics NAV von Mi crosoft gestellt welches eher auf kleinere und mittlere Unternehmen ab zielt Als weiteres System wurde noch Intuit Quickbooks in die Untersu chung mit aufgenommen ein Buchhaltungssystem was auf Grund sei nes Umfangs aber auch schon als E
103. 4 enth lt eine umfangreiche Analyse der unterschiedlichen Ans tze und f hrt Vor und Nachteile sowie geeignete Anwendungsgebiete der Ans tze auf 2 7 Einfachheit als Prinzip Ein zentrales Leitprinzip bei der Entwicklung von Software im Allge meinen und bei der praktischen Umsetzung von Gesch ftsprozessen im Speziellen sollte immer die Einfachheit sein Die Betonung und Erfor schung der Einfachheit ist auch Inhalt des ITSy Projektes MS10 MFS11 Marl1 Einfache L sungen sind im Allgemeinen sehr elegant leicht zu verstehen und leicht zu warten Gleichzeitig k nnte man ein wenden dass komplexe Probleme auch komplexe L sungen erfordern Dies ist jedoch nur mit Einschr nkungen so zu sehen Zun chst muss be trachtet werden dass ein gro er Teil von Problemen eben nicht komplex ist Diesen Probleme sollten dementsprechend auch mit einfachen L sun gen begegnet werden Nur bei wirklich komplexen Problemen sollte ein entsprechender Aufwand betrieben werden Dabei ist immer zu beden ken ob dieser Aufwand gerechtfertigt ist Nach dem Paretoprinzip auch 80 20 Prinzip genannt werden in einem Projekt 80 der Ergebnisse in 20 der Zeit erreicht Oft ist es also angebracht nach 20 der Arbeit diese einzustellen und sich neuen Aufgaben zu widmen Ein weiterer Punkt ist dass Einfachheit f r verschiedene Personen ganz unterschiedlich wahrgenommen wird Was f r einen Kaufmann einfach ist ist evtl f r einen Programmierer
104. 7695 2308 0 MPD10 MALESHKOVA M PEDRINACI C DOMINGUE J In vestigating Web APIs on the World Wide Web In Web Services ECOWS 2010 IEEE 8th European Conference on IEEE 2010 S 107 114 MRTS98 MCLELLAN S G ROESLER A W TEMPEST J T SPINUZZI C I Building more usable APIs In Software IEEE 15 1998 Nr 3 S 78 86 MS04 MARGARIA Tiziana STEFFEN Bernhard Lightweight coarse grained coordination a scalable system level ap proach In Int J Softw Tools Technol Transf 5 2004 March 107 123 http dx doi org 10 1007 s10009 003 0119 4 DOI 10 1007 s10009 003 0119 4 ISSN 1433 2779 MS06 MARGARIA Tiziana STEFFEN Bernhard Service En gineering Linking Business and IT In IEEE Computer 39 2006 Nr 10 S 45 55 MS08 MARGARIA Tiziana STEFFEN Bernhard Agile IT Thinking in User Centric Models In MARGARIA Tizia na Hrsg STEFFEN Bernhard Hrsg ISoLA Bd 17 Springer 2008 Communications in Computer and Infor mation Science ISBN 978 3 540 88478 1 S 490 502 242 MS09 MS10 MS12 MSHM11 MSRO5 Mul13a Mul13b Mus09 Nag09 Nas Literaturverzeichnis MARGARIA Tiziana STEFFEN Bernhard Con tinuous Model Driven Engineering In Com puter 42 2009 S 106 109 http dx doi org http doi ieeecomputersociety org 10 1109 MC 2009 315 DOI http doi ieeecomputersociety org 10 1109 MC 2009 315
105. ABC ein Frontend Modul erweitert wird so kann es danach f r ein weiteres BPMS eingesetzt werden wird es um ein Backend Modul erweitert so wird eine weitere Business API unterst tzt InBuS dient also quasi als zentraler Hub der die Anzahl der Integrationsmodule zwischen Backends und Frontends von quadratisch auf linear reduziert Die Template Engine Als Template Engine wurde f r InBuS das aus dem AntLR Projekt stammende StringTemplate Par04 verwendet Dabei handelt es sich um eine recht minimalistische Template Engine die zu einer sehr guten Trennung von Template und Logik f hrt An ders als z B bei Apache Velocity erlaubt StringTemplate keine Wer tezuweisungen an Variablen beliebige Schleifen oder bedingte Verzwei gungen Unterst tzt wird die Ersetzung von Platzhaltern durch Werte und der Funktionsaufruf Letzteres wird intensiv genutzt so dass auch aus einem Template heraus andere Unter Templates aufgerufen wer den k nnen Zur besseren bersicht k nnen dabei mehrere Templates zu Template Gruppen zusammengefasst werden Diese fassen mehrere Templates in einer Datei zusammen StringTemplate ist bewusst keine Turing vollst ndige Sprache und zwingt den Entwickler somit dazu die Logik au erhalb des Templates anzusiedeln Somit bleibt das Template selbst leicht verst ndlich Ein nettes Detail der StringTemplate Sprache z B im Vergleich zu Ve locity ist die sehr gute Unterst tzung Komma separierter Listen Diese
106. AZOGLOU Mike P Managing the evolution of service specifications In Advanced Information Systems Engi neering Springer 2008 S 359 374 ADOUAKOU Ettiboa CHRISTIDIS Georgios DREES Alexander GABRIEL Felix HAMMERL Christian Lo RENZ Kersten MARRO Donato PARDO Jan THAL MANN Carola WANG Hongzhi PG 551 Excelerate Endbericht 2012 ACKERMANN Andre Automatische Generierung von Softwarebausteinen zur Modellierung ERP System tiber greifender Gesch ftsprozesse Universit t Potsdam Di plomarbeit 2010 Activiti Website http www activiti org Version 2013 ADAMS Michael J Facilitating dynamic flexibility and exception handling for workflows Queensland University of Technology Brisbane Australia Diss 2007 ADEMPIERE E V ADempiere Webseite http www adempiere com Version 2013 AGARWAL Anamika Versioning of Web service interfa ces Massachusetts Institute of Technology Masterarbeit 2004 231 Literaturverzeichnis 232 Amal3 AMM08 Apal3 Aril3 BB05 BBCT04 Beh06 BFHMI2 BGK 04 Bid00 BJMo9 BJX 08 AMAZON Amazon Web Services Website http aws amazon com de Version 2013 AL MASRI E MAHMOUD Q H Investigating web ser vices on the world wide web In Proceedings of the 17th international conference on World Wide Web ACM 2008 S 795 804 APACHE SOFTWARE FOUNDATION Apache Ofbiz Web seite http ofbiz ap
107. C sondern l sst sich auch auf andere BPMS bertragen Dies ist in Kapitel 7 genauer beschrieben Schlie lich gewinnt die Organisation der Business Aktivit ten bei ei ner wachsenden Service Anzahl immer mehr an Bedeutung W hrend 54siehe Abschnitt 6 5 WF 202 6 8 Vergleich jABC die Aktivit ten in hierarchischen Kategorien Taxonomien or ganisiert bieten jBPM4 jBPM5 und AristaFlow lediglich einfache Kate gorien Activiti YAWL und WF bieten gar keine Unterst tzung f r die Organisation der Aktivit ten an In diesen Tools muss jeweils einfach der Name der gew nschten Aktivit t bekannt sein und direkt eingege ben werden Insgesamt ist zu beobachten dass viele Tools mittlerweile den Quasi Standard BPMN2 einsetzen Obwohl dieser viele Freir ume im Bereich der Service Integration l sst ist es trotzdem so dass die einzelnen L sungen wie jBPM 5 Activiti und Bonita sich nicht an die Spezifikation halten So definiert Activiti nicht Web Services sondern Java Services als Standardtechnologie jBPM benutzt die Service Aktivit t gar nicht und Bonita erlaubt das beliebige Anh ngen von Aktionen an den gan zen Prozess vor eine Aktivit t oder nach einer Aktivit t Insgesamt sind die BPMN Umsetzung also sehr unterschiedlich so dass erkennbar ist dass BPMN f r den Bereich der Service Integration kein ausreichender Standard ist In den Tabellen 6 1 und 6 2 ist der Vergleich der BPMS noch einmal in strukturierter
108. EJB EL EPK ERP ESB eSOA FTP Business Process Management System Gesch ftsprozessmanagementsystem Computer Integrated Manufacturing Component Object Model Commercial off the Shelf Customer Relationship Management Create Read Update Delete Datenbank Management System Distributed Component Object Model Data Integration API Discovery Dynamic Link Library Document Management System Document Object Model Deklaration optionaler Parameter API Anforderung Domain specific Language Document Type Definition Dokumentation verf gbar per API API Anforderung Enterprise Application Integration Einfacher Authentifizierungsmechanismus API Anforderung Elastic Compute Cloud ERP Central Component Eingabedatenvalidierung API Anforderung Erweiterte Ereignisgesteuerte Prozessketten Enterprise Java Beans Expression Language Ereignisgesteuerte Prozessketten Enterprise Resource Planing Enterprise Service Bus Enterprise Service oriented Architecture File Transfer Protocol GEAR GIS GLD GSSAPI GUI HCI HCM HQL HRM HTML HSQL HTTP HTTPS laaS IBM ID IDE IDES IKB ITSy jABC Java EE Java SE Listings Game based Easy and Reverse Model Checking Graphische Icons die Service symbolisieren API Anforderung Geschwindigkeit resultierend aus Latenz und Durchsatz API Anforderung Generic Security Service API Graphical User Interface Grafische Benutzeroberfl che Human Comput
109. ERP System Infor ERP LN ehemals Baan Die neben Dynamics NAV weiteren Produkte aus Microsofts Dynamics Produktreihe wie z B Dynamics AX oder Dynamics GP Die Menge der auf dem Markt verf gbaren BPMS ist mittlerweile fast un berschaubar geworden Potenziell zu untersuchende Systeme w ren hier noch die folgenden Oracle BPM IBM Business Process Manager SAP Netweaver Business Process Management Software AG webMethods inubit BPM Suite was mittlerweile zur Firma Bosch geh rt Soreco Xpert ivy Cordys BOP AgilePoint Die Software zur SIB Generierung kann immer noch weiter verbessert und ausgebaut werden Es sind fortgeschrittenere Funktionen zur Datentransformation denk bar Die Integration bestehender Frameworks zur GUI Generierung f r GUI SIBs w rde die Software weiter komplettieren Die m glichst einfache Definition komplexer Abfragen besonders an Business Objekte w re ein eigenes Forschungsthema welches sich an diese Arbeit anschlie en k nnte Man k nnte Generatoren von Prozess Aktivit ten f r alle unter suchten APIs sowie alle untersuchten BPMS erstellen 229 9 Fazit und Ausblick 230 Literaturverzeichnis Abe99 ABP08 ACD 12 Ack10 act13 Ada07 ADe13 Aga04 ABELSON H Architects of the information society Thirty five years of the laboratory for computer science at MIT MIT Press 1999 ANDRIKOPOULOS Vasilios BENBERNOU Salima PA P
110. IA Tizia na Hrsg STEFFEN Bernhard Hrsg ISoLA 2 Bd 7610 Springer 2012 Lecture Notes in Computer Science ISBN 978 3 642 34031 4 S 75 77 DH09 DEKEL U HERBSLEB J D Improving api documen tation usability with knowledge pushing In Software Engineering 2009 ICSE 2009 IEEE 31st International Conference on IEEE 2009 S 320 330 DJB 09 Dous Guillaume JOUAULT Fr d ric BEZIVIN Jean u a Transforming BPMN process models to BPEL pro cess definitions with ATL In Fifth International Work shop on Graph Based Tools Grabats 2009 co located with TOOLS 2009 2009 Dow07 DOWNES Stephen Why the Semantic Web Will Fail http halfanhour blogspot de 2007 03 why semantic web will fail html Version 2007 DRRM 10 DADAM Peter REICHERT Manfred RINDERLE MA Stefanie LANZ Andreas Pryss R diger PREDE SCHLY Michael KOLB Jens Ly Linh T JURISCH Martin KREHER Ulrich GOSER Kevin From ADEPT to AristaFlow BPM Suite A Research Vision Has Be come Reality Version 2010 http dx doi org 10 1007 978 3 642 12186 9 50 In RINDERLE MA Ste fanie Hrsg SADIQ Shazia Hrsg LEYMANN Frank Hrsg AALST Wil Hrsg MYLOPOULOS John Hrsg ROSEMANN Michael Hrsg SHAw Michael J Hrsg SZYPERSKI Clemens Hrsg Business Process Management Workshops Bd 43 Springer Berlin Hei delberg 2010 ISBN 978 3 642 12186 9 529 531 10 1007 978 3 642 12
111. IBs in diesem SLG verbunden werden k nnen Damit werden die Werte dieser Parameter und die Ziele der Branches nicht mehr lokal im SLG sondern global f r den ganzen SLG definiert Eine Ebene h her erscheinen diese Modell Parameter und Modell Branches dann als Parameter und Bran ches des MacroSIBs bzw GraphSIBs Hier werden also die Werte der Modell Parameter des referenzierten SLGs festgelegt Modell Branches k nnen als Ausg nge f r SLGs gesehen werden Ist ein Branch als 2 6 XMDD und jABC Modell Branch gekennzeichnet so wird die Ausf hrung bei der Wahl dieses Branches eine Ebene h her fortgesetzt und zwar durch die Wahl des entsprechenden Branches des MakroSIBs bzw GraphSIBs Zur Modellierung von Parallelit t werden das ForkSIB und das JoinSIB eingesetzt Das ForkSIB startet f r alle ausgehenden Branches je einen Thread Diese Threads werden dann parallel ausgef hrt Ein JoinSIB ist das Gegenst ck zum ForkSIB und wartet bis ber alle eingehenden Kanten ein Thread angekommen ist Anschlie end wird die Ausf hrung durch den einzigen ausgehenden Branch des JoinSIBs fortgesetzt Ein JoinSIB synchronisiert also parallele Threads ForkSIB und JoinSIB sind grunds tzlich paarweise und korrekt geschachtelt zu verwenden Zur Unterst tzung von Ereignissen oder englisch Events werden eben falls entsprechende Control SIBs angeboten Das SIB FireEvent l st ein Ereignis aus WaitForEvent wartet auf das Eintreten eines Ereign
112. IC 1995 RD98 REICHERT Manfred DADAM Peter Adept flex Supporting Dynamic Changes of Workflows Without Losing Control In Journal of Intelligent Informa tion Systems 10 1998 93 129 http dx doi org 10 1023 A 1008604709862 ISSN 0925 9902 10 1023 A 1008604709862 Red13 REDHAT SOFTWARE JBoss jBPM Website http www jboss org jbpm Version 2013 ResO 1 RESCORLA E SSL and TLS Designing and Building Secure Systems Boston 2001 rfc98 RFC 2478 The Simple and Protected GSS API Ne gotiation Mechanism http tools ietf org html rfc2478 Version 1998 rfc02 RFC 3244 Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols http tools ietf org html rfc3244 Version 2002 rfc06a RFC 4559 SPNEGO based Kerberos and NTLM HTTP Authentication in Microsoft Windows http tools ietf org html rfc4559 Version 2006 rfc06b RFC 4757 The RC4 HMAC Kerberos Encryption Types Used by Microsoft Windows http tools ietf org html rfc4757 Version 2006 RHS05 RICHTER Jan Peter HALLER Harald SCHREY Peter GI Informatiklexikon Service orientierte Architektur http www gi de service informatiklexikon detailansicht article serviceorientierte architektur html Version 2005 Riv04 RIVIERES J des Eclipse APIs Lines in the sand In EclipseCon Retrieved March 18 2004 S 2004 RJO7 RATIU D JURJENS J The reality of libraries In Soft ware Maintenance
113. Implementierungsaufwand darstellen Ent sprechende Generatoren f r Backend Systeme wie bei InBuS sind hier nicht vorgesehen Fazit Sehr positiv zu bewerten ist dass bei Bonita Open Solution dem Thema Connectivity ein vergleichsweise hoher Stellenwert beigemes sen wird Eine gro e Sammlung von Connectoren ist bereits vorhan den Diese sind auch relativ gut und ausf hrlich dokumentiert Teilwei se schaffen Sie es sogar durch eine Spezialisierung auf bestimmte ein geschr nkte Aufgaben als Business Aktivit ten gelten zu k nnen Bei gro en Backend Systemen wie SAP st t dieser Ansatz jedoch schnell an seine Grenzen Hier wird lediglich eine technische Service Aktivit t angeboten Backend spezifische Generatoren sind nicht vorgesehen Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Ver gleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 4 AristaFlow AristaFlow DRRM 10 Aril3 ist eine BPM Plattform bei der die Un terst tzung von Ad hoc Prozessen und die sehr explizite Darstellung des Datenflusses die Haupt Features darstellen Wie die vorherig behandel ten Systeme ist AristaFlow Java basiert und unterst tzt die Entwick lung eigener Aktivit ten in Java Hier wird keine offener Standard zur Prozessmodellierung wie BPMN 2 sondern eine propriet re Prozessmo dellierungssprache eingesetzt welche vom AristaFlow Vorg ngerprodukt ADEPT RD98 bernommen wurde 3 188
114. In Software Engineering Companion Vo lume 2009 ICSE Companion 2009 31st International Conference on IEEE 2009 S 299 302 SC07 STYLOS J CLARKE S Usability implications of requi ring parameters in objects constructors In Proceedings of the 29th international conference on Software Enginee ring IEEE Computer Society 2007 S 529 539 Sch10 SCHMIDT Rainer Meta Services as Third Dimension of Service Oriented Enterprise Architecture In Enterpri se Distributed Object Computing Conference Workshops EDOCW 2010 14th IEEE International IEEE 2010 S 157 164 SG06 SCHACHER M GR SSLE P Agile Unternehmen durch Business Rules Der Business Rules Ansatz Springer 2006 Xpert press Series http books google de books id y0fmqyq4XLUc ISBN 9783540256762 SGBT08 STYLOS J GRAF B BUSSE D K ZIEGLER C EHRET R KARSTENS J A case study of API re design for improved usability In Visual Languages and Human Centric Computing 2008 VL HCC 2008 IEEE Symposium on IEEE 2008 S 189 192 248 SHBLO6 Shi12 SK11 SKLNO9 Sko02 SM07 Smi04 SMN 06 Sol05 Spi09 Literaturverzeichnis SHADBOLT N HALL W BERNERS LEE T The semantic web revisited In Intelligent Systems IEEE 21 2006 Nr 3 S 96 101 SHI Jia Integrating Conventional ERP System with Cloud Services From the Perspective of Cloud Service Type KTH School of Information an
115. Interface und wurde Mitte der 1990er Jahre mit SAP R 3 Release 3 1 eingef hrt Es handelt sich hierbei um eine Sammlung von Funktionen die einen entfernten Zugriff auf das SAP ERP System sowie auf andere Shttp www softwaretop100 org enterprise top 10 http softwaretop100 org global software top 100 edition 2010 65 3 Untersuchung von Business APIs JCo E NI RFC Bibliothek Java Connector Java Native Interface in C ABAP Funktionsbausteine f i RDBMS Abbildung 3 4 Zugriff einer Java Applikation auf SAP ERP per BAPI SAP Systeme erlauben Die technologische Grundlage der BAPI ist RFC Remote Function Call ein propriet res Protokoll von SAP vergleich bar mit dem bekannten RPC Mechanismus Remote Procedure Call von Sun Microsystems Um RFCs von au erhalb eines SAP Systems aufzu rufen gibt es die RFC Bibliothek welche f r Microsoft Windows und Linux verf gbar ist und in der Programmiersprache C verfasst wurde Es existiert ebenfalls eine Java Bibliothek mit dem Namen JCo Ja va Connector welche einen Zugriff auf die RFC Bibliothek durch den Einsatz von JNI Java Native Interface erm glicht Die gesamte Kom munikationsstruktur von der Java Anwendung bis zum SAP System ist in Abbildung 3 4 dargestellt Wir testeten die BAPI Technologie mit Hilfe einer SAP ERP Installation am SAP UCC University Competence Center der Universit t Mag Der Einfachheit halber und da es f r den hier bes
116. Iwas sinngem dem Thema Service Integration entspricht 6 4 AristaFlow Skript Aktivit ten AristaFlow bietet eine Aktivit t zur Ausf hrung von Skripten in der Sprache BeanShell welche sich sehr stark an der Java Syntax orientiert Technische Service Aktivitaten Es existiert eine gro e Sammlung tech nischer Service Aktivit ten Typischerweise bietet hier eine Aktivit t ei ne ganze Sammlung verschiedener Varianten eines Services an e Die SQL Aktivit t beinhaltet Services zum Zugriff auf relationale Datenbanken mittels SQL DB2 Derby MS SQL MySQL Oracle e Die GUI Aktivit t erm glicht die Interaktion mit einem Nutzer durch eine Eingabemaske welche automatisch generiert werden kann e Die EXE Aktivit t f hrt Kommandozeilenbefehle des jeweiligen zu grundeliegenden Betriebssystems aus e Die Aktivit t StaticJavaCall f hrt eine Klassenmethode einer Java Klasse aus e Die Aktivit t SendMail dient dem Versand von E Mails e Die XOR Aktivitat wird f r Entscheidungen und die damit verbun denen Verzweigungen im Prozessgraphen genutzt Dazu wird ein Ausdruck ausgewertet und abh ngig vom Ergebnis der Auswertung die entsprechende ausgehende Kante gew hlt e Die Aktivit t FilelO bietet zwei Services einen zum Lesen und einen zum Schreiben von Dateien e Es existieren Aktivit ten zur bertragung von Daten ber ein Netz werk mittels S FTP oder HTTP e Die Aktivit t St
117. Klasse BusinessObject Die Klasse BusinessObject dient als Container f r die Laufzeitdaten Die von JAX WS generierten Datenobjekte die genau denen des Services entsprechen k nnen nicht einfach verwendet werden da sie auch die Ele mente enthalten die im Wizard nicht ausgew hlt wurden Nun gibt es zwei M glichkeiten mit diesen Daten umzugehen Entweder generiert man neue Klassen z B JavaBeans f r die Datenobjekte oder man ver wendet generische Datenstrukturen wie Abbildungen java util Map oder Listen java util List Bei InBuS wurde der zweite Ansatz ge w hlt So wird der Generierungsaufwand niedrig gehalten und es existie ren aus technischer Sicht immer einfach zu verstehende Datenstrukturen Die Klasse BusinessObject erbt also von java util Map wobei die Schl ssel die Namen der Parameter und die Werte die entsprechenden Werte der Parameter sind Jeder Wert kann dabei wieder eine Abbil dung oder eine Liste sein und Listen k nnen wieder Abbildungen oder Listen enthalten So sind beliebige komplexe Datenstrukturen abbild bar Zus tzlich existiert noch ein Sonderfeld f r den Typ Namen des Business Objekts Dieses Objekt wird also durch das SIB im Kontext gespeichert bzw wird dort vor seiner Ausf hrung erwartet Bei der Ein gabe reicht auch eine einfache Map hier ist die Benutzung der Klasse BusinessObject nicht zwingend erforderlich Dieses Datenobjekt kann 5 3 SIB Generierung danach von weiteren SIBs besonders einfach
118. L nur als reines Serialisierungsformat gesehen was grunds tzlich vor dem Anwender versteckt wird Im Mai 2011 verlie en die Hauptentwickler von jBPM die Firma Red Hat und starteten als Angestellte der DMS Firma Alfresco ein neues Projekt namens Activiti welches eine direkte Weiterentwicklung von jBPM 4 darstellt Um dies zu betonen besitzt die erste Version von Acti viti die Versionsnummer 5 0 Activiti wird in Abschnitt 6 2 behandelt JBoss selbst f hrte die Entwicklung von jBPM 4 nicht weiter sondern lie k nftige Entwicklungen auf Basis eines anderen JBoss Produktes namens Drools Flow entstehen Dies ist wiederum Teil des Business Rules Frameworks Drools Die technologische Basis des aktuellen BPMS von JBoss genannt jBPM 5 ist also nicht jBPM 4 sondern Drools Flow Der gr te Unterschied zwischen jBPMA und seinen beiden Nachfolgern ist die benutzte Sprache Im unterschied zu jBPM 4 bei der die pro priet re Sprache jPDL zum Einsatz kam nutzen jBPM 5 und Activiti BPMN 2 Die Gr nde auf BPMN zu wechseln sind im Wesentlichen folgende e BPMN ist ein offizieller Standard der OMG und hat sich mittler weile zu einem de facto Standard im BPM Bereich entwickelt e Seit Version 2 0 deckt die Spezifikation nicht mehr nur die reine Notation ab sondern enthalt auch die Beschreibung einer Ausftih rungssemantik sowie eines X ML basierten Speicher und Austausch formats In der Theorie soll
119. LSDocumentCell Es existieren also SIBs zum erstellen ffnen und speichern von Doku menten und SIBs zum lesen bearbeiten und formatieren von Zellen Diese SIBs sind demnach sehr kleinschrittig und technisch geh ren somit in die in Abschnitt 4 4 beschriebene Kategorie der technischen Service Aktivit ten Solche SIBs werden meist nicht vom Anwendungsexperten selbst genutzt und verwendet sondern m ssen zun chst in einem tech nischen Modell zu einem konkreten Anwendungsfall kombiniert werden Dieses Modell kann dann wieder als Ganzes bereitgestellt und per Makro SIB in ein bergeordnetes Modell eingebettet werden 5 2 1 2 OpenOffice LibreOffice Bei der Ansteuerung der freien Office L sung OpenOffice 6 oder des sen Fork LibreOffice 7 findet man eine g nzlich andere Situation vor 2POI urspr nglich Poor Object Implementation 13http poi apache org 14Zell Typen Numeric String Formula Blank Boolean Error 15Schriftgr e unterstrichen fett kursiv 1 amp http www openoffice org de 17http de libreoffice org 137 5 Service Integration im jABC als beim oben beschriebenen Microsoft Office Hier gibt es jeweils eine of fizielle Java API Es ist also von vornherein vorgesehen diese Systeme plattformunabh ngig ansteuern zu k nnen Dies erleichtert eine service orientierte Einbindung in einen Gesch ftsprozess enorm Da es sich hier um eine API handelt ist der Ansatz prinzipiell eher
120. Literaturverzeichnis In Web Services 2007 ICWS 2007 IEEE International Conference on IEEE 2007 S 380 387 LNMS10 LAMPRECHT A NAUJOKAT Stefan MARGARIA Ti ziana STEFFEN Bernhard Synthesis based loose pro gramming In Quality of Information and Communica tions Technology QUATIC 2010 Seventh International Conference on the IEEE 2010 S 262 267 Luc12 Luca CARACCIOLO Twitter verleugnet mit neuer API seine Wurzeln http t3n de news twitter verleugnet neuer api 413077 Version 2012 LWC07 Li Hui WANG Haiyang Cul Lizhen Automatic composition of web services based on rules and meta services In Computer Supported Cooperative Work in Design 2007 CSCWD 2007 11th International Confe rence on IEEE 2007 S 496 501 Mar11 MARGARIA Tiziana Formal methods in the era of service oriented design In Computer Software and App lications Conference COMPSAC 2011 IEEE 85th An nual IEEE 2011 S 452 453 MBD 11 Kapitel Customer Oriented Business Process Manage ment Vision and Obstacles In MARGARIA Tiziana BOSSELMANN Steve DOEDT Markus FLOYD Bar ry D STEFFEN Bernhard In Conquering Complexity Springer 2011 ISBN 978 1 4471 2296 8 MFS11 MARGARIA Tiziana FLOYD Barry D STEFFEN Bern hard It simply works Simplicity and embedded systems design In Computer Software and Applications Confe rence Workshops COMPSACW 2011 IEEE 35th An nual IEEE 2011 S 194 199
121. ML Nachricht anzugeben Die Generierung erfolgt dann vollautomatisch Das hat zur Folge dass in einem Batch Durchlauf eine SIB Sammlung f r die gesamte Quickbooks API erzeugt werden kann und das ohne Eingreifen des Benutzers Die resultierenden SIBs sind dabei jedoch sehr technisch und ohne weitere Hilfs SIBs nicht zu benutzen Zus tzlich zu den generierten SIBs gibt es daher eine ganze Reihe manuell implementierter SIBs e InitQuickbooks allgemeine Initialisierung e CheckConnectionTicket berpr fung des ConnectionTickets e CheckSessionTicket berpr fung des SessionTickets e GetSignOnTicket zur Authentifizierung e InitRequest Initialisierung der Anfrage e SelectRequest Auswahl einer Anfrage e AddRequest Hinzuf gen einer Anfrage e SendRequest Verschicken einer Anfrage e GetResponse Auslesen der Antwort e SelectResponseltem Auswahl eines Teiles der Antwort Auch diese sind insgesamt sehr technisch und kleinschrittig Man hat es demnach insgesamt nur mit SIBs zu tun die der Kategorie technische Service Aktivit ten siehe Abschnitt 4 4 angeh ren Konkrete Szenari en m ssen im jABC als SLG zusammengestellt werden Dazu werden die technischen SIBs entsprechend orchestriert Man ben tigt also einen gan zen SLG f r einen Funktionsaufruf bestehend aus relativ vielen SIBs Dies ist der gro e Unterschied zum SAP Plugin von David Karla wo Business Aktivit ten generiert wurden und zwar ma geschneidert
122. Modellierungstool sowie eine Ausf hrungsumgebung oder En gine Es steht also jeweils der ausf hrbare Prozess im Mittelpunkt Reine Modellierungstools wurden nicht betrachtet da hier nicht der Be darf der Service Integration besteht Ebenfalls wurden keine Integration Frameworks ohne direkten Prozessbezug wie z B ein ESB Enterprise Service Bus untersucht 6 1 jBPM Das Prozess Framework jBPM Red13 ist ein Projekt der Firma JBoss welche heute Teil des Unternehmens RedHat Software ist Bis zur Version 4 wurde dabei eine eigene propriet re Prozessdefinitionssprache namens jPDL eingesetzt Wie die Namen von Softwareprodukt und Sprache schon andeuten handelt es sich bei jBPM um ein Java basiertes Frame work mit einer entsprechenden Java API um Gesch ftsprozesse auszu f hren und zu berwachen Ein in jPDL definierter Prozess besteht aus iBPM Eine Akronym f r Java Business Process Management 2jPDL Abk rzung f r Java Process Definition Language 177 6 Service Integration in anderen BPMS einer Prozessbeschreibung in XML sowie Service Implementierungen in Java Dies ist im Wesentlichen im jJABC genauso Bei jPDL r ckt das XML jedoch deutlich mehr in den Mittelpunkt da es hier sehr blich ist dies manuell zu bearbeiten Es existiert zwar ein graphischer Editor da dieser jedoch nicht besonders ausgereift und feature reich ist wird er somit eher als optionales Add on gesehen Beim jABC wird XM
123. N I ERICSSON M JACOBSON A The ob ject advantage business process reengineering with object technology 1994 JKPMO07 JORGES Sven KUBCZAK Christian PAGEAU Felix MARGARIA Tiziana Model driven design of reliable 238 JMPW93 JMS06 JMS08 J r13 Jos08 JXB 09 Kar09 Kas09 Literaturverzeichnis robot control programs using the JABC In Engineering of Autonomic and Autonomous Systems 2007 EA Se 07 Fourth IEEE International Workshop on IEEE 2007 S 137 148 JOHANSSON H J MACHUGH P PENDLEBURY A J WHEELER W A Business process reengineering Break point strategies for market dominance Wiley New York 1993 J RGES Sven MARGARIA Tiziana STEFFEN Bern hard FormulaBuilder a tool for graph based modelling and generation of formulae In Proceedings of the 28th international conference on Software engineering ACM 2006 S 815 818 J RGES Sven MARGARIA Tiziana STEFFEN Bern hard Genesys service oriented construction of proper ty conform code generators In Innovations in Sys tems and Software Engineering 4 2008 361 384 http dx doi org 10 1007 s11334 008 0071 2 ISSN 1614 5046 10 1007 s11334 008 0071 2 JORGES Sven Lecture Notes in Computer Science Bd 7747 Construction and Evolution of Code Generators A Model Driven and Service Oriented Approach Springer 2013 ISBN 978 3 642 36126 5 JOSUTTIS N SOA in der Praxis
124. PUS Bewertung 0 Kerberos ist als sehr sichere Technologie bekannt Das gleiche gilt nicht fir NTLM Selbst Microsoft selbst schreibt Shttp www gnu org software wget manual html_node HTTP Options html http curl haxx se docs manpage html 1Ohttp www soapui org http hc apache org httpcomponents client ga ntlm html 79 3 Untersuchung von Business A PIs Therefore applications are generally advised not to use NTLM 12 Es wird also empfohlen NTLM allgemein nicht einzusetzen Es ist gene rell m glich SSL HTTPS einzusetzen um die Sicherheit zu erh hen AZS Bewertung 0 EAM Bewertung 3 2 3 4 Zus tzliche Informationen Da die API im Allgemeinen komplett undokumentiert ist ist demnach auch keine Dokumentation ber die API abrufbar DVA Bewertung Wenn der Client zwischen verschiedenen Alternativen aus einer festen Menge von Alternativen ausw hlen kann so wird in der WSDL daf r der Datentyp enumeration benutzt Diese L sung ist noch etwas ele ganter als die BAPI L sung da die Information direkt in der dazugeh rigen API Funktion hinterlegt ist und kein zus tzlicher Funktionsaufruf notwendig ist WVA Bewertung Optionale Parameter sind entsprechend gekennzeichet Dies gilt ebenfalls f r optionale Teile komplexer Parameter DOP Bewertung 3 2 4 Intuit Quickbooks Quickbooks qui12 ist eine Buchhaltungssoftware f r kleine und mittlere Unternehmen
125. RP System bezeichnet werden kann Dieses System ist besonders in den USA sehr erfolgreich und zielt eher auf kleinere Unternehmen ab Diese Studie zeigte dass die APIs eine erschreckend geringe Qualit t aufwiesen und es wird deutlich dass der Entwicklung der API von Herstellerseite bei weitem nicht der Stellenwert einger umt wird wie der Entwicklung der graphischen Benutzeroberfl chen Ebenso konnte an den mangelnden Features der APIs abgelesen werden welches Gesch ftsmodell die Hersteller verfolgen Anscheinend bekommt die Bereitstellung einer guten API in vielen F llen keine hohe Priorit t bei den Herstellern Wenn die nahtlose Integration mit Syste men anderer Hersteller erschwert wird bedeutet dies automatisch eine st rkere Bindung der Nutzer an den einen einzelnen Hersteller und somit die F rderung einer IT Monokultur F r die genannte Studie wurde ein Anforderungskatalog entwickelt der beschreibt welche Eigenschaften eine gute ERP API aufweisen sollte 1 3 Meine Arbeitsschwerpunkte damit die dahinter liegenden Systeme m glichst gut integrierbar sind Besonderer Augenmerk wurde darauf gelegt ob die APIs hinreichend In formationen anbieten um auf dieser Basis automatisch Prozessbausteine zu generieren die in BPMS zur Entwicklung ausf hrbarer Gesch ftspro zessbeschreibungen genutzt werden k nnen In einer zweiten Studie siehe Abschnitt 3 3 wurde die gerade genannte Studie um Cloud ERP Systeme also genauer Sa
126. SO clientData setValue 002 MATL_GROUP JCO Structure clientDataX funcion getImportStructure CLIENTDATAX clientDataX setValue X BASE UOM_ISO clientDataX setValue X MATL_GROUP JCO Parameter tableParameters function getTableParameterList JCO Table descrTable tableParameters getTable MATERIALDESCRIPTION descrTable appendRow descrTable setValue e LANGU descrTable setValue computer mouse MATL_DESC client execute function JCO ParameterList exportParameters function getExportParameterList JCO Structure returnStructure exportParameters getStructure RETURN if returnStructure getString TYPE equals returnStructure getString TYPE equals S String errorMessage returnStructure getString MESSAGE throw new Exception errorMessage System out println Material successfully added client disconnect Ui An diesem Beispiel kann man sehr gut sehen warum es nicht erstre benswert ist f r jeden Service Aufruf eine entsprechende manuelle Im plementierung direkt mit JCo durchzuf hren Der Code ist insgesamt sehr lang technisch kompliziert und an vielen Stellen Java untypisch Obwohl es sich bei JCo um eine Java Bibliothek handelt wurden hier viele Dinge auf eine Weise umgesetzt die nicht den Sprachkonventionen und blichen Gepflogenheiten unter Java Programmierern entsprechen Das f hrt unweigerlich zu einer Verletzung des ITSy Prinzips
127. Seite neu zu laden 29 2 Grundlagen um mit den Kundenanst rmen zurechtzukommen und zu manch ande ren Zeiten war es deutlich ruhiger Da die brach liegenden Ressourcen genutzt werden sollten entschied sich Amazon dazu diese an die Allge meinheit zu vermieten Nun konnte jeder die Rechen und Speicherleis tung von Amazon nutzen Das Angebot existiert unter der Bezeichnung Amazon Web Services Amal3 und umfasst mittlerweile eine Viel zahl an verschiedenen Angeboten Bis hierhin wurde sehr deutlich dass extrem unterschiedliche Ans tze als Cloud Computing bezeichnet werden Auf der einen Seite gibt es die ASP Angebote auf der anderen Seite die Rechen und Speicherdienste von z B Amazon Und sp ter kamen noch viele weitere wieder andere Dienste hinzu die ebenfalls unter dem Stichwort Cloud gef hrt wer den Es muss also eine Kategorisierung der unterschiedlichen Dienste erfolgen Dies ist auch geschehen Im oben erw hnten NIST Dokument MG11 wird dargelegt dass sich im Wesentlichen die Kategorien SaaS Software as a Service PaaS Platform as a Service und IaaS In frastructure as a Service ausmachen lassen e SaaS In die Kategorie SaaS fallen alle Dienste die vor der Cloud ra als ASP bezeichnet wurden also fertige Web Applikationen die unter anderem dank AJAX sehr nah an Bedienbarkeit und das Feature Reichtum von Desktop Applikationen heran reichen Ein prominentes Beis
128. Service Discovery Nutzung von Apache POI Eine gute Alternative zur Nutzung der COM Schnittstelle ist die Manipulation der Office Dokumente ohne die Nutzung der Office Suite selbst Dazu kann zum Beispiel die Software 8DCOM Distributed Component Object Model Phttp sourceforge net projects jacob project 1Ohttp j interop org Uhttp jawinproject sourceforge net 136 5 2 Manuelle SIB Implementierungen des Projektes POI von der Apache Software Foundation eingesetzt werden Dabei handelt es sich um eine Java Bibliothek zum Lesen und Manipulieren von Office Dokumenten Unterst tzt werden hier die Da teiformate f r Word Excel Powerpoint Outlook Visio und Publisher Als besonders ausgereift gilt die Implementierung des Excel Formats Insgesamt ist hier zu ber cksichtigen dass die L sung nicht von Micro soft selbst stammt sondern das Ergebnis von Reverse Engineering ist Es werden nie alle Funktionen und Eigenschaften der Dateiformate ab gedeckt und bei jeder neuen Office Version dauert es naturgem eine Weile bis die Implementierer es auch f r diese Version wieder geschafft haben das Dateiformat zu entschl sseln Unter Nutzung von Apache POI wurde unter meiner Anleitung eine Sammlung von SIBs zum Lesen und Bearbeiten von Excel Dokumenten erstellt Folgende SIBs wurden dabei entwickelt e CreateXLSDocument e OpenXLSDocument SaveXLSDocument ReadXLSDocumentCell e EditXLSDocumentCell e FormatX
129. Service Integration in Gesch ftsprozessmanagementsystemen mit besonderem Fokus auf die Integration von ERP Systemen unter Ber cksichtigung des aktuellen Trends hin zum Cloud Computing Dissertation zur Erlangung des Grades eines Doktors der Naturwissenschaften der Technischen Universit t Dortmund technische universit t dortmund an der Fakult t f r Informatik Fakult t f r f Informatik von Markus Doedt Dortmund 2013 Tag der m ndlichen Pr fung Dekan Gutachter 12 12 2013 Prof Dr Ing Gernot A Fink Prof Dr Bernhard Steffen Prof Dr Jakob Rehof iii Danksagung To succeed in business it is necessary to make others see things as you see them John H Patterson 1844 1922 Ich m chte mich ganz herzlich bei Prof Dr Bernhard Steffen bedanken Er hat als mein Chef und Doktorvater w hrend meiner ganzen Zeit am Lehrstuhl f r Programmiersysteme immer ein offenes Ohr gehabt und meine Arbeit stets mit kompetenter und konstruktiver Kritik sowie mit inspirierenden Ideen stark nach vorne gebracht Ich habe ihn in der Zeit nicht nur als kompetenten Doktorvater und Informatiker sondern auch als sehr lieben Menschen kennen gelernt Mein weiter Dank geht an mei nen Zweitgutachter Prof Dr Jakob Rehof den ich ebenso sowohl als Informatiker als auch als Mensch sch tze Ganz besonders bedanke ich mich auch bei meiner Familie Meine Frau Karin mein Sohn Titus und zuletzt auch meine klein
130. SimpleExampleSIB implements Executable public static final String BRANCHES Veleseewilie Uerereeie Ips public String execute ExecutionEnvironment env wey A String data env get x Object result Service callService data env put y result catch Exception e e printStackTrace return error D return default Als Parameter werden alle ffentlichen Felder der SIB Klasse interpre tiert Ein Vorgabewert muss immer definiert sein Der Wert null ist nicht erlaubt Die Menge m glicher Typen enth lt einfache und kom fo diesem Fall ist der Service Aufruf ein einfacher Java Methodenaufruf Dahinter kann sich nat rlich auch jede beliebige andere Technologie verbergen wie zum Beispiel ein SOAP Web Service Aufruf 5lEin Fehler wird hier durch eine Java Exception ausgel st 52also durch public gekennzeichnete 40 2 6 XMDD und jABC plexe Typen Beide Kategorien enthalten sowohl Standard Java Typen als auch SIB spezifische Klassen Die einfachen Java Typen sind zum Beispiel Boolean und String und verschiedene Zahlentypen wie Integer Long Float und Double Komplexe unterst tzte Java Typen sind Lis ten ArrayList LinkedList Vector Mengen HashSet LinkedHashSet TreeSet Abbildungen HashMap TreeMap Hashtable oder Referen zen auf Dateien File Bei den SIB spezifischen Typen sind in dieser Arbeit besonders drei von Relevanz da sie regelm ig verwendet werden 1
131. UTEL Stephan HOFSTEDE Arthur ter Translating standard process models to BPEL In Advanced Information Systems En gineering Springer 2006 S 417 432 ODHVDA08 OuyANG Chun Dumas Marlon HM Arthur VAN DER AALST Wil M Pattern based translation of BPMN process models to BPEL web services In Jn ternational Journal of Web Services Research IJWSR 5 2008 Nr 1 S 42 62 ODTHA06 Ouvans C Dumas Marlon TER HOFSTEDE Ar thur H AALST Wil M d From BPMN process models to BPEL web services In Web Services 2006 ICWS 06 International Conference on IEEE 2006 S 285 292 244 OMG11 OMG12 Opel3al Opel3b Oral2 Oum 12 Pap07 Par72 Par04 Par12 PCo9 PGBWo09 PH09 Literaturverzeichnis OMG Business Process Model and Notation BPMN Version 2 0 http www omg org spec BPMN 2 0 Version 2011 OMG In OMG s OCEB Certification Program What is the Definition of Business Process http www omg org oceb defbusinessprocess htm Version 2012 OPENBRAVO Openbravo Webseite http www openbravo com Version 2013 OPENERP OpenERP Webseite https www openerp com de Version 2013 ORACLE JavaDoc Website http docs oracle com javase 7 docs technotes guides javadoc Version 2012 OUMAROU Moussa Cloud Computing unterst tztes Gesch ftsprozessmanagement am Beispiel von Amazon WS Technische Universit t Dortmund Bachelor Arbeit 201
132. ZOLLNER M MADER M REITERER H The concept maps method as a tool to evaluate the usability of APIs In PART 5 Proceedings of the 2011 annual conference on Human factors in computing systems ACM 2011 S 3373 3382 GRILL T POLACEK O TSCHELIGI M Methods towards API Usability A Structural Analysis of Usabi lity Problem Categories In Human Centered Software Engineering 2012 S 164 180 GRONMO Roy SKOGAN David SOLHEIM Ida OL DEVIK Jon Model driven web services development In e Technology e Commerce and e Service 2004 EEE 04 2004 IEEE International Conference on IEEE 2004 S 42 45 GONG Shuai XIONG Jinhua Interaction mismatch discovery based transformation from BPMN to BPEL In Services Computing 2009 SCC 09 IEEE International Conference on IEEE 2009 S 292 299 HOLLINGSWORTH D u a Workflow management coali tion The workflow reference model In Document Num ber TC00 1003 1995 Nr 1 1 HOFSTEDE A M Hrsg AALST W M P d Hrsg ADAMNS M Hrsg RUSSELL N Hrsg Modern Business Process Automation YAWL and its Support 237 Literaturverzeichnis Environment Springer 2010 http www springer com computer science database management 26 informationtretrieval book 978 3 642 03120 5 HAHWO3 HOFSTEDE Arthur ter AALST Wil van d HOFSTEDE Arthur ter WESKE Mathias Business Process Manage ment A Survey Version 2003 http dx doi o
133. aS L sungen erweitert Dazu geh rt die CRM L sung Salesforce das ERP System NetSuite so wie die HCM Software Workday Dabei sollte vor allem die Frage beant wortet werden ob es insgesamt einen wesentlichen Unterschied zwischen den APIs der traditionellen ERP Systeme und der Cloud L sungen zu beobachten gibt Diese These konnte im Gro en und Ganzen belegt wer den Alle untersuchten Cloud Systeme boten sehr solide Schnittstellen an Der Anforderungskatalog der von der ersten Studie bernommen wurde konnte zu einem deutlich h heren Grad abgedeckt werden Erg nzt wurden die Studien noch von weiteren Untersuchungen von APIs im Business Umfeld Zun chst wurde dazu OpenSource ERP Software daraufhin untersucht ob hier ebenfalls APIs angeboten werden und wenn ja wie gut diese sind Die Untersuchungen best tigen besonders die schon in den vorherigen Studien gewonnenen Erkenntnisse dass die L sungen einen sehr unterschiedlichen Charakter haben k nnen was meist in der Historie der Software Produkte begr ndet ist Standards werden sehr unterschiedlich eingesetzt so dass eine einheitliche Behandlung der APIs nicht m glich ist Auf jede API muss bei der Integration indivi duell eingegangen werden damit der Anwender nicht immer wieder mit den technischen Eigenarten der API Umsetzung konfrontiert wird Zu s tzlich wurden noch die APIs der E Commerce Plattformen Amazon und Ebay betrachtet Diese sind von der Gr e her vergleichbar mit
134. ach m glich da die Onscreen Reference alle Informatio nen aus einer Menge von JSON Dateien JavaScript Object Notation bezieht welche auch mit dem Quickbooks SDK ausgeliefert werden ei ner Sammlung von Tools mit denen man Quickbooks bezogene Software entwickeln kann Bei der Entwicklung von Windows Clients hat man die zus tzlichen M glichkeit die QBFC Quickbooks Foundation Classes zu benutzen einer Software Bibliothek die eine API basierend auf Mi crosoft s COM Technologie enth lt Diese versteckt die Benutzung von XML vor dem Benutzer gt RSD Bewertung o Es stellte sich heraus dass die Informationen in dem XML Schema nicht immer korrekt und vollst ndig sind Die JSON Dateien sind hier von deutlich besserer Qualit t In Ack10 wird das Schema durch die sys tematische Analyse der JSON Files nachtr glich korrigiert und erst an schlie end als Grundlage f r die automatische Generierung von Prozess bausteinen genutzt KVS Bewertung 0 Die Abdeckung der Business Objekte ist leider fast so schlecht wie bei der SAP BAPI 15 von 50 Punkte wie in Tabelle 3 4 zu sehen VZB Bewertung Es existiert kein Konzept zur Versionierung der API wodurch es m glich w re eine Stabilit t derselbigen zu gew hrleisten SSD Bewertung 13COM Component Object Model sl 3 Untersuchung von Business A PIs Tabelle 3 4 Quickbooks Business Objekte Customer Vendor Item Sales Quo
135. ache org Version 2013 ARISTAFLOW GMBH AristaFlow Website http www aristaflow com Version 2013 BORE C BORE S Profiling software API usabili ty for consumer electronics In Consumer Electronics 2005 ICCE 2005 Digest of Technical Papers Interna tional Conference on IEEE 2005 S 155 156 BAINA Karim BENATALLAH Boualem CASATI Fa bio TOUMANI Farouk Model driven web service deve lopment In Advanced Information Systems Engineering Springer 2004 S 527 543 BEHERA Gopala K BPM and SOA A Strategic Al liance http www bptrends com publicationfiles 05 06 WP BPM SOA Behara pdf Version 2006 BURNS C FERREIRA J HELLMANN T D MAU RER F Usable results from the field of API usability A systematic mapping and further analysis In Visual Lan guages and Human Centric Computing VL HCC 2012 IEEE Symposium on IEEE 2012 S 179 182 BLoWw Michael GOLAND Yaron KLOPPMANN Matt hias LEYMANN Frank PFAU Gerhard ROLLER Die ter ROWLEY Michael BPELJ BPEL for Java BEA and IBM March 2004 BIDER Business Process Modelling Concepts In PBPM 00 2000 BAKERA Marco J RGES Sven MARGARIA Tiziana Test your strategy graphical construction of strategies for connect four In Engineering of Complex Computer Systems 2009 14th IEEE International Conference on IEEE 2009 S 172 181 BEATON Jack JEONG Sae Y XIE Yingyu STYLOS Jeffrey Myers Brad A Usa
136. anderes machen als GetList In der Tat gibt es ebenfalls ein Funktionsmodul mit dem Namen BAPI_EMPLOYEE_GETLIST welches erfolgreich ausgef hrt werden kann und die Dokumentation aus dem BAPI Explorer passt zu diesem Funktionsmodul Der BAPI Explorer enth lt jedoch eine Funk tion mit Namen Employee GetData Sogar die Dokumentation die man bekommt wenn man per API darauf zugreift ist entsprechend falsch sie geh rt eigentlich zu Employee GetData Wenn man nach der Dokumen tation f r Employee GetData sucht bekommt man kein Ergebnis KVD Bewertung 3 2 Traditionelle on premise ERP Systeme 3 2 1 3 Technologie RPC ist ein propriet res Protokoll SAP bem ht sich jedoch es m glich berall zu unterst tzen indem die RFC Library f r Linux und Windows angeboten wird und durch die Bereitstellung des Java Connectors JCo PUS Bewertung 0 Der Netzwerkverkehr von RFC Aufrufen ist standardm ig unverschl s selter Klartext Informationen wie Benutzername Tabellennamen Wer te etc k nnen so sehr einfach von au en abgeh rt werden Sogar das Passwort kann sehr einfach ermittelt werden da es lediglich durch eine XOR Operation mit einem festen und in Nun07 ver ffentlichten Schl s sel verschleiert wird Es existiert eine SAP Technologie mit Namen SNC Secure Network Communications um den Datentransfer zu verschl s seln was jedoch laut Nun07 nur selten zum Einsatz kommt Auch unser Testsystem setzte diese
137. angemerkt dass ein SLG prinzipiell auch noch andere Interpretationen als die Standardinterpretation als Kontrollfluss besitzen kann Die konkrete Semantik eines SLG wird erst durch das interpretie rende Werkzeug festgelegt In der Referenzimplementierung jABC also durch ein entsprechendes Plugin Die mit gro em Abstand gel ufigste Semantik ist jedoch die Kontrollflusssemantik also der Prozess Dies ist auch die einzige relevante Semantik f r diese Arbeit Andere Beispie le sind zum Beispiel die graphische Modellierung von Formeln JMS06 Datenbankschemata Win06 oder Grammatiken Nag09 Kapitel 4 Ein wichtiges Feature von SLGs ist die M glichkeit der hierarchischen Modellierung Dabei kann ein entsprechend ausgezeichneter Knoten eine Referenz auf einen weiteren SLG symbolisieren welcher in dem Fall als Untermodell interpretiert wird Ein Knoten steht also f r einen ganzen Prozess Diese Hierarchien k nnen von beliebiger Tiefe sein Hierarchie ist wichtig um einen SLG bersichtlich und damit verst ndlich zu hal ten Nur so k nnen auch komplexe Systeme modelliert werden Au erdem entstehen so verschiedene Sichten auf das Gesamtsystem auf verschiede nen Abstraktionsleveln Je nachdem wie detailliert und technisch die Sicht sein soll kann man auf der obersten fachlichen Ebene stehen blei ben oder aber weit absteigen in sehr kleinschrittige technische Abl ufe Durch die M glichkeit andere SLGs einzubinden wird dabei zus tzlich d
138. angesehen werden kann Leider unterst tzen die meisten BPMS keine Taxonomien sondern oft nur eine einfache nicht weiter unterteilte Liste von Aktivit ten Manch mal kann diese Liste noch auf einer Ebene in Kategorien aufgeteilt wer den Selten hat man eine echte hierarchische Struktur die frei nach se mantischen Gesichtspunkten gestaltet werden kann Statt der logischen semantischen Position in einer Taxonomie hat man oft auch nur die phy sische Position der Aktivit t z B der lokale Pfad zur Definitionsdatei Nat rlich ist der physische Ort welcher auch als ein Aspekt einer Taxo nomie gesehen werden kann nicht unwichtig Business Aktivit ten k n nen zum Beispiel im Idealfall auf einem zentralen Server in einem Netz werk z B dem Internet bereitgestellt werden so dass jede Installation eines Modellierungstools dieses zentrale Repository nutzen kann KAPITEL 5 Service Integration im jABC Im Folgenden wird beschrieben wie die Integration von Services im Kon text von XMDD siehe Abschnitt 2 6 und genauer im entsprechenden Tool jABC durchgef hrt wird In Abschnitt 5 1 wird dargelegt wie al le drei in Kapitel 4 beschriebenen Kategorien von Aktivit ten mit SIBs umgesetzt werden Darauf folgt in Abschnitt 5 2 eine Beschreibung ver schiedener SIB Implementierungen die manuell durchgef hrt wurden Abschnitt 5 3 befasst sich mit der automatischen Generierung von SIBs wobei hier die Generierung von SIBs f
139. ar Kundenverlust bedeuten Daher ist die Vereinbarung von Service Level Agreements SLA unabdingbar Darin muss genau geregelt werden was der Cloud Anbieter dem Kunden zusi chert so zum Beispiel eine maximale Ausfallrate Bei einem Versto ge gen ein SLA muss der Anbieter dann zum Beispiel f r die Umsatzeinbu Den des Kunden aufkommen Da es sehr unterschiedliche Cloud Modelle gibt muss jeweils einzeln genau berlegt werden wie ein entsprechendes SLA aussieht Wenn die Ausfallsicherheit ein so wichtiges Thema ist so stellt sich na t rlich auch die Frage was ein Kunde macht wenn er nicht einmal Zu gang zum Netz hat z B bei einem Kundenbesuch in einem Gebiet oh ne mobilen Internetempfang Die Offline Benutzung ist bei den meisten Cloud Angeboten nicht vorgesehen Dies ist nach wie vor ein Vorteil der Desktop Applikationen 2 5 Enterprise Resource Planning ERP Die Vielzahl verschiedener Cloud Angebote bedeutet heute leider auch eine Vielzahl verschiedenster Konzepte und Technologien Es gibt kaum Standards weder im Bereich SaaS noch f r die Plattformen bei PaaS noch f r die Bereitstellung von Rechenleistung oder Speicherplatz bei IaaS Dies macht eine Interoperabilit t zwischen Clouds schwierig bis un m glich Dies bedeutet im Einzelnen dass die Migration von Software in die Cloud oder auch die Migration zwischen Clouds sehr aufw ndig sein kann Auch die Kommunikation zwischen verschiedenen Cloud Systemen ist somit nicht
140. atoren oder wie in dieser Arbeit Business Process Modeling BPM ist demnach nur ein Anwendungsgebiet unter vielen Durch die vielen unterschiedlichen Ein fl sse und historischen Wurzeln haben sich viele Ideen und Konzepte ergeben die im BPM Bereich bis heute immer noch wenig verbreitet 43 2 Grundlagen sind dieses Gebiet jedoch deutlich nach vorne bringen k nnen Besonders die Unters tzung der Zusammenarbeit zwischen dem Business Experten und dem IT Experten kann hier deutlich verbessert werden Wie genau dies bewerkstelligt wird wird genauer in Kapitel 5 beschrieben Dass die Konzepte nicht auf das JABC beschr nkt sind sondern auch auf andere BPMS bertragen werden k nnen ist Thema von Kapitel 6 2 6 4 1 Modellierung Die in Abbildung 2 4 dargestellte Benutzeroberfl che des jABC ist in drei Bereiche gegliedert siehe Nummerierung in der Abbildung 1 Projekt und SIB Browser Im Bereich oben links befinden sich auf zwei Registerkarten verteilt der Projekt Browser sowie eine bersichtliche Darstellung der SIBs Der Projekt Browser in der Abbildung nicht zu sehen beinhaltet eine bersicht aller jJABC Projekte mit denen in dieser Installation gearbeitet wird Projekte k nnen hier zum Beispiel ge ffnet geschlossen neu erstellt um benannt oder gel scht werden F r jedes Projekt werden die bein halteten Elemente dargestellt Das sind im Wesentlichen die SLGs und projektspezifische SIB Sammlungen Der SIB Browser st
141. b Service ver ffent licht werden In der Standardeinstellung ist kein Service von au en ver f gbar Jeder Service der ver ffentlicht werden soll muss daf r mittels der GUI von Dynamics NAV explizit in die Liste der ver ffentlichen Ser vices aufgenommen werden Wir testeten die NAV Services mit einer Demo Installation von Microsoft Dynamics NAV 2009 SP1 Diese wird ausgeliefert mit den Daten der fiktionalen Firma CRONUS Ine 3 2 3 1 Zentrale Anforderungen Alle ver ffentlichten Web Services werden in einer zentralen Registry Datei angeboten die im Format DISCO vorliegt kurz f r Disco very Dabei handelt es sich um ein XML basiertes Registry Format von Microsoft Sko02 Diese Datei kann ber HTTP abgerufen werden Dynamics NAV nutzt das Format dabei lediglich als eine simple Lis te von Service URLs also den URLs der WSDL Dateien Diese URLs enthalten immer auch den Namen der Page so dass ein Benutzer oder Client Programm sehen kann welche Pages verf gbar sind und unter welcher URL sie erreichbar sind Dass einfach alle URLs aufgelistet wer den bedeutet dass insgesamt relativ wenige Informationen ver ffentlicht werden F r viele Nutzungsszenarios ist dies ausreichend Besser w re es jedoch wenn die Page Namen in separaten XML Elementen stehen w r den und wenn f r jede Page etwas Dokumentationstext verf gbar w re RSD Bewertung o Die Schnittstellen werden durch WSDL Dateien beschrieben D
142. benfalls in der Dokumentation zu erw hnen und zu erkl ren Die Definition der Ausg nge in der Business Aktivit t selbst bietet einen entscheidenden Vorteil gegen ber einer freien Benennung der Kanten So hat eine Aktion sehr oft verschiedene m gliche Ausg nge die m glichst alle betrachtet werden sollten Werden diese m glichen Ausg nge expli zit mit der Aktivit t definiert so tr gt dies zum einen dazu bei die Aktivit t besser zu verstehen und zum anderen dass kein Ausgang un absichtlich unber cksichtigt bleibt Durch die verschiedenen Ausg nge ist jede Business Aktivit t gleichzeitig ein potentieller XOR Split also ein Entscheidungspunkt an dem entschieden wird welche ausgehende Kante gew hlt wird Dies f hrt zu einer sehr kompakten Prozessdarstel lung da keine zus tzliche XOR Aktivitat ben tigt wird Wie oben schon erw hnt ist die Definition der Ausg nge in der Aktivit t selbst keine un bedingte Voraussetzung um als Business Aktivit t zu gelten Tats chlich verzichten die meisten Sprachen auf dieses Feature und nutzen eher zu s tzliche Gateways f r diesen Zweck Um die Benutzung einer Business Aktivit t noch komfortabler zu ge stalten bieten es manche Tools an ihnen eigene graphische Icons zuzu weisen so dass zum einen der modellierte Prozess leicht zu verstehen ist 8wie z B ein BPMN XOR Gateway 126 4 5 Business Aktivit ten und zum anderen die Aktivit t in einer Aktivit tensammlung in
143. bestimmte Muster ab gebildet werden Es wird also ein Methoden und Konventionenhand buch erstellt Folgendes sind Beispiele f r unterschiedliche Modellierun gen gleicher Sachverhalte e Exklusive Entscheidungen k nnen durch ein entsprechendes XOR Gateway ein rautenf rmiger Knoten mit einem X oder durch meh rere bedingte ausgehende Kanten mit kleinen Rauten an der Quell seite modelliert werden e Parallelit t kann einfach durch mehrere ausgehende Kanten oder explizit durch ein AND Gateway dargestellt werden Eine dritte m gliche Variante ist hier die Platzierung mehrerer nicht verbun dener Tasks innerhalb eines Teilprozesses Ein Kollaborationsdiagramm ist ein BPMN Diagramm welches potentiell mehrere miteinander kommunizierende Prozesse jeweils in eigenen Pools darstellt Die kommunizierenden Prozesse k nnen dabei auch abstrakt als leerer Pool Black Box dargestellt werden 2und f r alle die den Prozess lesen und verstehen sollen 219 8 Einfachheit als Erfolgsfaktor im BPM 220 AristaFlow Start Zwischen Ereignis Teilprozess Eingetreten Angeheftet unterbrechend Unterbrechend Nicht unterbrechend Ereignis Teilprozess Angeheftet Nicht unterbrechend Blanko Untypisierte Ereignisse i d R am Start oder Ende eines Prozesses Nachricht Empfang und Versand von Nachrichten Timer Periodische zeitliche Ereignisse Zeitpunkte oder Zeitspannen Eskalation Meldung an den
144. betrachtet wurde und evaluiert wurde inwieweit eine automatische Generierung von SIBs m glich und praktikabel ist wurde an der Universit t Potsdam von Andr Acker mann eine Diplomarbeit angefertigt in der entsprechendes f r das in Abschnitt 3 2 4 behandelte Intuit Quickbooks entwickelt wurde Dazu musste zun chst einmal erreicht werden eine Kommunikation zwi schen Java und Quickbooks herzustellen Es wurde also eine entsprechen de Klassenbibliothek konzipiert und in Java implementiert die hnlich wie die existierende QBFC Bibliothek funktioniert also die qbXML Dateien parst bzw generiert Somit kann also nun von Java aus auf die Quickbooks API zugegriffen werden ohne dass im Java Code XML manipuliert werden muss Bei der Erstellung dieser Klassenbibliothek mussten mehrere H rden genommen werden F r qbXML existiert so wohl eine DTD als auch eine XSD Spezifikation Zun chst wurde die DTD untersucht Eine Konvertierung der DTD nach XSD ist durch den Einsatz des Tools Apache Castor auch m glich Es stellte sich heraus dass die DTD sehr unvollst ndig war Also wurde direkt die vorhan dene XSD Definition betrachtet Mittels Apache Castor k nnen daraus entsprechende Java Klassen automatisch generiert werden Apache Cas tor ist ein XML Binding Framework Das bedeutet dass man nach dem Generieren der Java Klassen durch einen einzigen Methodenaufruf ein fach die in XML kodierten Informationen als Java Objekte instanziieren kan
145. bility challenges for en Literaturverzeichnis terprise service oriented architecture APIs In VE HCC IEEE 2008 S 193 196 BLHL 01 BERNERS LEE T HENDLER J LASSILA O u a The semantic web In Scientific american 284 2001 Nr 5 S 28 37 Blo06 BLOCH J How to design a good API and why it matters In Companion to the 21st ACM SIGPLAN symposium on Object oriented programming systems languages and applications ACM 2006 S 506 507 BLWG99 BISBAL Jes s LAWLESS Deirdre WU Bing GRIM SON Jane Legacy information systems Issues and direc tions In Software IEEE 16 1999 Nr 5 S 103 111 BMRS07 BAKERA Marco MARGARIA Tiziana RENNER Cle mens D STEFFEN Bernhard Verification diagnosis and adaptation Tool supported enhancement of the model driven verification process In Revue des Nouvelles Tech nologies de Information RNTI SM 1 2007 S 85 98 BMRS09 BAKERA M MARGARIA T RENNER C D STEF FEN B Tool supported enhancement of diagnosis in model driven verification In Innovations in Systems and Software Engineering 5 2009 Nr 3 S 211 228 BMS 08 BEATON Jack Myers Brad A STYLOS Jeffrey JEONG Sae Y XIE Yingyu Usability Evaluation for Enterprise SOA APIs In in 2nd International Workshop on Systems Development in SOA Environments SDSOA 2008 Co located with ICSE 2008 S 29 34 Bon13 BONITASOFT Bonita Open Solution Websi te http ww
146. boten Die erste ist die Enterprise WSDL Diese bietet stark getypte Schnittstellen mit allen Betriebsdaten Die WSDL kann zum Beispiel durch die haus eigene IT Abteilung genutzt werden um spezielle Client Applikationen f r das Unternehmen selbst zu entwickeln Da dies genau das ist was in dieser Arbeit unterst tzt werden soll wurde genau diese API hier untersucht Die zweite WSDL ist die allgemeiner gehaltene so genannte Partner WSDL die schwach typisiert ist und genutzt werden kann von Software Unternehmen die allgemeine Clients zum Beispiel Smartphone Apps entwickeln wollen durch die man Zugriff auf beliebige Kundenin stanzen von Salesforce bekommt 3 3 1 1 Zentrale Anforderungen Die SOAP WSDL basierte Web Service API bietet insgesamt nur ein WSDL Dokument die Enterprise WSDL f r die Gesamtheit aller Ser vices an Da dieses Dokument die komplette API enth lt ist sie natur gem extrem gro 7642 Zeilen ohne benuterspezifische Services die w hrend des Customizings hinzugef gt werden k nnen Dieser Ansatz funktioniert f r Salesforce da der Gesamtumfang des Produktes noch relativ berschaubar ist im Vergleich zu zum Beispiel SAP Aufgrund der Tatsache dass es sich nur um eine CRM Software handelt und sich daher auf den einen Aspekt der Kundenverwaltung konzentriert ist diese eine WSDL immer noch zu handhaben Die Benutzung nur eines WSDL Dokuments macht es m glich ohne eine Registry auszukom
147. bt es hier erhebliche konzeptionelle Probleme Wenn aus dem Graph orientierten fachlichen Modell BPEL generiert werden sollte so wurde grunds tzlich alles in eine Flow Umgebung gewandelt also ein Block in BPEL innerhalb dessen wieder graph orientiert modelliert wird Hier werden prinzipiell alle Unterelemente parallel ausgef hrt Zus tzlich ist es m glich so genannte Links einzuf hren Dies sind Contraints die aussagen dass eine bestimmte Aktivit t erst dann ausgef hrt wer den darf wenn eine bestimmte andere erfolgreich abgeschlossen wurde Wurde nun also eine einfache Sequenz aus f nf Schritten modelliert so resultierte dies in einem BPEL Prozess mit einer Flow Umgebung die f nf parallele Threads enth lt wobei jeder der Threads jeweils darauf wartet dass die Ausf hrung seines Vorg ngers abgeschlossen wurde Bei langen Sequenzen kann dies schnell zu einem Performance Problem wer 527 B Invoke Receive Reply If oder While Shttp www 03 ibm com software products de de wps 198 6 7 BPEL den Zur Zeit der Diplomarbeit war es sogar so dass die aktuelle Imple mentierung des Process Servers nicht mit sehr vielen parallelen Threads umgehen konnte was dazu f hrte dass eine konsequente Benutzung der IBM Tools schon bei berschaubaren Prozessen zu regelm igen Server Crashs f hrte Der Ansatz der BPEL Generierung von IBM ist bei weitem nicht der einzige Versuch auf diese Weise die Br cke von der Business S
148. ch eine vorgeschriebene Folge von Schritten gef hrt wird In jedem einzelnen Schritt ist nur wenig zu tun und es ist somit immer relativ klar was vom Benutzer erwartet wird Dies ist der gro e Unterschied zu einer gew hnlichen Benutzeroberfl che mit Men s Buttons und vielen weite ren komplexen Elementen Bei einem Wizard stellt sich f r den Benutzer nie die Frage wo er jetzt in der GUI suchen muss um etwas bestimmtes zu erreichen Stattdessen ist das Ziel von vornherein vorgegeben und eng mit dem Wizard verkn pft So kann der Benutzer quasi an die Hand 35 ASP Active Server Pages Webtechnologie von Microsoft hei t in der aktuellen Version ASP NET und ist Teil des NET Frameworks 36 JSP Java Server Pages Java basierte Webtechnologie von Oracle 37http velocity apache org 38manchmal auch Assistent genannt 153 5 Service Integration im jABC 154 genommen werden und Schritt f r Schritt zum gew nschten Ergebnis geleitet werden Dryer Dry97 sieht einen Wizard als eine Form eines Ul Agents Ein UL Agent wird hier folgenderma en definiert User interface UI agents are new intelligent user inter face technologies that can help prevent people from making mistakes by guiding them through information system tasks Es geht bei einem Ul Agent demnach haupts chlich um Fehlervermei dung durch eine strikte F hrung des Nutzers Die zweite Variante eines Ul Agents ist nach Dryer ein Guide
149. chiedenen anderen Sprachen z B BPMN 1 x oder EPKs zu generieren Da diese Sprachen jedoch meist grundlegend unterschiedlich sind war dies immer sehr pro blematisch und f hrte nie zu zufriedenstellenden L sungen Zum einen 5lDer vollst ndige und korrekte Name der Sprache lautet seit der aktuellen Version 2 0 WS BPEL wobei das WS f r Web Services steht und zeigt dass sich diese Sprache in die lange Liste der existierenden WS Sprachen einreiht die verschiedene Aspekte des Um gangs mit SOAP basierten Web Services abdecken Vorher hie die vollst ndige Bezeichnung BPELAWS Im allgemeinen Sprach und Schriftgebrauch hat sich jedoch die einfache Kurz form BPEL durchgesetzt 196 6 7 BPEL QL bpmn bpel xpdl i O mmm jpdl Abbildung 6 1 Relative H ufigkeiten der Erw hnungen von Prozesssprachen im WWW nach Google Trends http www google de trends vom 13 02 2013 sind die meisten graphischen Notationen Graph basiert BPEL dage gen Block orientiert zum anderen enth lt ein BPEL Dokument deutlich mehr technische Informationen als jedes EPK oder BPMN Diagramm Bei BPEL handelt es sich zwar um eine Sprache und nicht um ein konkretes BPMS es ist jedoch trotzdem sinnvoll sie als Vergleich zu den anderen BPMS heran zu ziehen Zum einen hneln sich verschie dene BPEL basierte BPMS stark besonders in Bezug auf das Thema Service Integration zum anderen war BPEL
150. chlossen wird Es existiert grunds tzlich ein Limit von zwei Verbindungen pro Benutzername Passwort Kombination eine Verbindung f r die GUI und eine zweite f r die API AZS Bewertung Die Benutzerauthentifizierung wird durch den Login Service durchge f hrt Der Benutzer sendet dazu seinen Benutzernamen sein Passwort seine Account ID und optional noch seine Rolle zum Server Danach erzeugt der Service eine Session und gibt die dazugeh rige Session ID als Cookie zur ck an den Client Dieser Cookie wird nun f r alle folgenden Service Aufrufe benutzt Der Logout Service schlie t die Session EAM Bewertung o 3 3 2 4 Zus tzliche Informationen Die Dokumentation ist als PDF Dokument verf gbar welches von der NetSuite Seite heruntergeladen werden kann Dieses ist nat rlich da zu gedacht von Menschen gelesen zu werden Eine zus tzliche Maschi nenlesbare Version w re von Vorteil Es gibt keine Dokumentation der Business Objekte oder deren Felder in den WSDL Dokumenten selbst DVA Bewertung F r Wertevorschl ge setzt NetSuite das XSD Element lt enumeration gt ein VVA Bewertung 95 3 Untersuchung von Business A PIs In den XML Schema Dokumenten wird das Attribut minOccurs zur Kenn zeichnung optionaler Elemente eingesetzt Dies ist jedoch fast immer auf 0 gesetzt so dass alle Parameter als optional gelten Die einzigen XSD Dokumente die Pflichtelemente enthalten minOccurs 1
151. chriebenen Aspekt keine weitere Rolle spielt 66 wurden die SAP ERP Installation und die Datenbank auf einem Server dargestellt In der Praxis werden hierf r bei Produktivsysteme dedizierte Server eingesetzt Bei der hier vorliegenden Betrachtung geht es jedoch lediglich um die logische Sicht von der Client Seite aus Dabei spielt es keine Rolle ob sich Anwendungsserver und Datenbankserver auf einem physikalischen Server befinden 3 2 Traditionelle on premise ERP Systeme deburg Die Daten des Systems geh ren allesamt zur fiktionalen Un ternehmensgruppe IDES International Demonstration and Education System Es existiert also ein vollst ndig installiertes und eingerichtetes SAP ERP System mit vollen Customizing f r Zwecke der Evaluierung zum Testen sowie f r Forschung und Lehre Die angebotene Version war SAP ERP version ECC 6 0 ERP Central Component 3 2 1 1 Zentrale Anforderungen Die Services der BAPI sind organisiert im sogenannten BOR Business Object Repository worauf man durch den BAPI Explorer Zugriff be kommt Der BAPI Explorer ist Teil der SAP GUI der Client Applikation f r SAP die es f r verschiedene Plattformen gibt Windows Java Web Leider kann auf das BOR nur per GUI und nicht per API zugegriffen werden Das hat den gro en Nachteil dass man nicht per API feststellen kann welche Services angeboten werden Da die Funktionen zu Business Objekten gruppiert sind welche selbst wieder
152. cht Die SIBs sollten m glichst einheitlich zu benutzen sein unabh ngig vom dahinter liegenden System Au erdem sollte das Voka bular bei SIB Namen Parameter Namen Branch Namen und in der Do kumentation dem Vokabular des Benutzers entsprechen nicht dem des API Anbieters Gleiches gilt f r die Organisation und Kategorisierung der Services bzw SIBs All dies kann nur durch eine halb automatische Generierung erreicht werden Halb automatisch bezieht sich hier auf den gesamten Generierungsprozess der mehrstufig aufgebaut ist 1 Sammeln aller n tigen Informationen a Lesen der Informationen aus der API z B mit entsprechenden Parsern b Eingabe von Informationen durch den Benutzer in einem Wi zard der Benutzer wird also gef hrt 2 Die eigentliche Generierung des Quelltextes Der Begriff halb automatisch bezieht sich hier also lediglich um den zweiten Unterpunkt des ersten von zwei Teilen bei dem der Benutzer eingreifen muss Hier kann der Benutzer entscheiden welche Parameter wie benutzt werden sollen wie sie im SIB hei en sollen und wie genau die Dokumentation aussehen soll Sowohl die Analyse der API also auch die eigentliche Generierung laufen voll automatisch Das Ergebnis ist da bei ein fertiges Generat welches weder gelesen noch weiter manipuliert werden muss Damit dieser Generierungsprozess so durchgef hrt werden kann muss entsprechende Software existieren welche die API analysiert den Wi zard s
153. cht im Allgemeinen eine gu te Plattformunabh ngigkeit Leider nutzt Dynamics NAV propriet re L sungen zur Authentifizierung Die standardm ig verwendete L sung ist hier Microsoft s Implementierung von SPNEGO Kerberos SPNEGO rfc98 ist ein Protokoll Verhandlungs Mechanismus protocol negotia tion implementiert von Microsoft unter dem Namen HTTP Nego tiate rfc06a Kerberos ist ein sicheres Netzwerkauthentifizierungspro tokoll welches gegenseitige Authentifizierung mutual authentication unterst tzt Das bedeutet dass Client und Server jeweils gegenseitig ih re Identit t berpr fen und verifizieren Die hier eingesetzte Implemen tierung von Kerberos rfc02 rfc06b kann nur in einer reinen Windows Systemlandschaft mit einem Active Directory Domain Controller und ei nem zentralen Kerberos Server eingesetzt werden Somit m ssen alle Be nutzer die von anderen Technologien aus z B Java oder Nicht Windows Betriebssysteme wie Linux auf die Services zugreifen wollen oder die ei ne Windows Systemlandschaft einsetzen die in Arbeitsgruppen Work groups anstatt Domains organisiert sind auf die Technologie NTLM NT Lan Manager ausweichen Dies ist ebenfalls eine propriet re L sung von Microsoft wird aber auch von zahlreichen Tools z B wget curl SOAP UT und Libraries z B der HTTP Components Client aus den Apache Commons unterst tzt die nicht f r Windows entwickelt wurden
154. d Communication Technology ICT Diplomarbeit 2012 41 S SCHELLER T KUHN E Measurable concepts for the usability of software components In Software Enginee ring and Advanced Applications SEAA 2011 37th EU ROMICRO Conference on IEEE 2011 S 129 133 SCHUMM David KARASTOYANOVA Dimka LEY MANN Frank NITZSCHE Jorg On visualizing and mo delling BPEL with BPMN In Grid and Pervasive Com puting Conference 2009 GPC 09 Workshops at the IE EE 2009 S 80 87 SKONNARD Aaron XML Files Publishing and Disco vering Web Services with DISCO and UDDI In MSDN Magazine 2 2002 STYLOS J MYERS B Mapping the Space of API De sign Decisions In Visual Languages and Human Centric Computing 2007 VL HCC 2007 IEEE Symposium on IEEE 2007 S 50 60 SMITH Howard A response to BPELJ Enough is enough in the field of BPM http www fairdene com bpelj BPELJ Enough Is Enough pdf Version 2004 STEFFEN Bernhard MARGARIA Tiziana NAGEL Ralf J RGES Sven KUBCZAK Christian Model Driven Development with the jABC In BIN Eyal Hrsg Ziv Avi Hrsg UR Shmuel Hrsg Haifa Verification Conference Bd 4383 Springer 2006 Lecture Notes in Computer Science ISBN 978 3 540 70888 9 S 92 108 SOLUTIONS GTA W Vital eCommerce Stati stics http www gtawebsolutions com excerpo_ e commerce_stats htm Version 2005 SPIZTER Dominik Modellbasierte Entwicklung von Code Generato
155. d Informationen ber diese Services zu r ckliefern Meta Services stellen also eine Art Selbstbetrachtung des Systems dar vergleichbar mit dem Konzept der Reflection FF104 in Programmiersprachen wie Java e Wie wird die Authentifizierung durchgeftihrt Sollen bei jedem Auf ruf erneut Benutzername und Passwort tibertragen werden oder soll eine Sitzung mit einem entsprechenden Sitzungsschl ssel er zeugt werden welcher immer wieder bertragen wird Beide An s tze besitzen ihre Vor und Nachteile Der Aufbau einer Session ist evtl technisch komplexer und ist ein technisches Detail welches oft trotzdem im Prozessdiagramm auftaucht Andererseits ist dieser Ansatz sehr elegant und effizient Die Authentifizierung f r jeden einzelnen Service Aufruf ist insgesamt einfacher in der Benutzung jedoch auch weniger effizient Grunds tzlich gilt dass Dokumentation extrem wichtig ist und aus nahmslos alles dokumentiert werden muss Dabei ist auch wichtig dass die vorhandene Dokumentation auch an den entsprechenden Stellen zu g nglich ist Die Dokumentation geh rt also nicht nur auf eine Webseite oder in ein PDF sondern in die WSDL Web Service Frameworks sollten dann diese Dokumentation auch als Dokumentation in ihr Generat ber nehmen z B als JavaDoc Dokumentation darf an keiner Stelle verloren gehen Man sollte ein Konzept von Business Rules haben welche auch als Vali dierungsregeln gelten Diese sollten wohl strukturi
156. d des Aufsichtsrates von SAP dem weltweit f hren den Hersteller von ERP Systemen Beaton et al BJX 08 BMS 08 besch ftigen sich mit SAPs eSOA Technologie und deren Analyse mittels Verfahren aus dem Bereich der Mensch Maschine Interaktion Sie pr sentieren auch einen entsprechen den Ansatz zur API Evaluierung vor Sie kritisieren die sehr komplexen Datenstrukturen die vage Dokumentation die langen Service Namen und die zahlreichen Inkonsistenzen in der API In einer Fallstudie mit einer Gruppe von sechs Studenten hat es kein einziger Teilnehmer ge schafft den Client Code f r einen recht einfachen Service zu implemen tieren In anderen Publikationen konzentrieren Beaton et al sich kom plett auf die eSOA Dokumentation JXBt09 MJX 10 2 4 Cloud Computing These T2 siehe Abschnitt 1 2 besagt dass durch Cloud Computing insgesamt die Qualit t der APIs besser geworden ist Daher wird in die sem Abschnitt zun chst einmal eingef hrt was genau unter dem Begriff Cloud Computing zu verstehen ist Die wohl am h ufigsten zitierte Definition des Begriffs Cloud Computing stammt vom amerikanischen NIST Dieses Institut definiert Cloud Computing folgenderma en MG11 Cloud computing is a model for enabling ubiquitous con venient on demand network access to a shared pool of confi gurable computing resources e g networks servers storage applications and services that can be rapidly provisioned and rel
157. d nur Programmie rern zugemutet werden kann Es kam h ufig vor dass der graphische Modellierer nicht ausreichte und BPEL im XML Quelltext bearbeitet werden musste Speziell bei Datentransformationen wurde es kompli ziert F r einfache Transformationen reichte hier der Mapping Editor bei dem per Drag and Drop Pfeile zwischen den Bl ttern zweier B u me gezogen werden Bei komplexeren Transformationen wurde auf XSLT gesetzt Die Ausf hrung von XSLT ist jedoch kein Bestandteil der offi ziellen BPEL Spezifikation Stattdessen wurde hier eine propriet re Er weiterung von Sun Microsystems eingesetzt Hier zeigt sich ein weiteres Problem was oft bei der Nutzung von Standards anzutreffen ist Die einzelnen Hersteller halten sich so gut wie nie an den Standard sondern implementieren nur den Teil der ihnen zusagt und erweitern dies dann noch um eigene Elemente So ist es nicht m glich den hier erstellten BPEL Prozess direkt auf eine BPEL Engine eines anderen Herstellers als Sun Microsystems zu deployen Skript Aktivit ten Als Skript Aktivit t in BPEL kann die Erweite rung BPELJ aufgefasst werden Hier wird Java Code direkt in das XML von BPEL eingef gt so dass Java und BPEL in einer Datei ge mischt werden Diese Erweiterung existiert jedoch lediglich als Spezifi kation Kein Hersteller hat dieses Feature in sein Tool integriert Technische Service Aktivit ten In BPEL wird zum Aufruf von Ser vices die Aktivit t lt i
158. den Schlie lich wird in Abschnitt 2 6 auf das am Lehrstuhl 5 der TU Dort mund entwickelte XMDD Konzept und dessen Referenzimplementierung jABC eingegangen 2 1 Gesch ftsprozessmanagement Das Gesch ftsprozessmanagement besch ftigt sich wie der Name schon sagt mit der Verwaltung von Gesch ftsprozessen Um genau zu verste hen was damit gemeint ist soll zun chst definiert werden was genau loft auch Business Process Management BPM 2 Grundlagen ein Gesch ftsprozess ist und anschlie end erl utert werden was in die sem Zusammenhang der sehr allgemeine Begriff Management alles umfasst Gesch ftsprozessmanagement ist eine interdisziplin re Disziplin zwischen der Informatik und verschiedenen Anwendungsgebieten hier vor allem den Wirtschaftswissenschaften Dieser interdisziplin re Charakter be wirkt eine Vielzahl unterschiedlicher Sichten auf das gleiche Thema Je nachdem welche Community nach einer Definition des Begriffes Ge sch ftsprozess gefragt wird bekommt man eine andere Antwort Lind say et al LDL03 haben daher verschiedenste Definitionen des Begriffes nebeneinandergestellt und die verschiedenen Aspekte beleuchtet hnli ches hat auch die OMG durchgef hrt und beschrieben was aus ihrer Sicht ein Gesch ftsprozess ist OMG12 Die wichtigsten Definitionen sei en im Folgenden genannt Von Bider Bid00 stammt die folgende Definition aus dem Jahr 2002 Set of partially order
159. den ERP APIs und haben durch ihre sehr starke Verbreitung eine besonders gro e Relevanz Auch hier zeigt sich wieder dass es immer noch wieder andere technologische und konzeptionelle Ans tze gibt eine API umzu setzen Und auch wenn beide betrachtete APIs prinzipiell sehr hnliche fachliche Funktionen anbieten so sind die Umsetzungen doch extrem unterschiedlich Untersuchung von BPMS bzgl Service Integration Zu den ver schiedenen Konzepten der Service Integration in Gesch ftsprozessmana gementsystemen wurde ebenfalls eine Studie durchgef hrt siehe Kapitel Diese Untersuchungen wurden in Zusammenarbeit mit der studentischen Hilfskraft Dominic Wirkner durchgef hrt 5E Commerce Man kann kaufen verkaufen und andere damit zusammenh ngende Handlungen vollziehen 1 Einleitung 6 Die Konzepte wurden kategorisiert bewertet und untersucht inwie weit die einzelnen Systeme diese Konzepte unterst tzen Dazu wurde jBPM von JBoss in seinen Versionen 4 und 5 untersucht au erdem Ac tiviti Bonita Open Solution AristaFlow YAWL Windows Workflow Foundation und BPEL Diesen L sungen die XMDD basierte L sung des jABC gegen bergestellt siehe Abschnitt 5 1 Es stellte sich heraus dass die meisten BPMS nur eine sehr rudiment re Unterst tzung f r Service Integration bieten was oft zu einer hohen Fehleranf lligkeit f hrte Auch war der Integrationsvorgang meist von extrem technischer Natur so dass der Prozessmodelliere
160. die Implementierung vorgenommen Die Implementierung beginnt da bei mit einer automatische Generierung von Stubs auf Basis von WSDL und XML Schema Im Falle von Java und SOAP bietet sich hier zum Beispiel das JAX WS Maven Plugin an Die Entwicklung von WSDL und XSD muss dabei nicht von Hand erfolgen Hier gibt es heute gu te Tool Unterst tzung so dass auch dies Modell getrieben z B nach dem MDA Konzept der OMG KWBEO03 durchgef hrt werden kann GSS004 BBCT04 FP02 F r die Implementierung bietet sich die Standardtechnologie SOAP Web Services an da diese erprobt ist und sich allgemein durchgesetzt hat Au erdem ist sie Plattform unabh ngig was gerade in der Zeit des Cloud Computing besonders wichtig ist Es gibt auch keinen Grund mehr sich eine propriet re L sung auszudenken Bei propriet ren L sun gen ist jeder Anwender zun chst dazu gezwungen sich in diese spezielle Technologie neu einzuarbeiten Dies widerspricht dem ITSy Gedanken Au erdem sollte man eine Technologie so nutzen wie sie gedacht ist Eine Zweckentfremdung wie bei Apache Ofbiz siehe Abschnitt 3 5 1 ist nicht ratsam Aus gleichen Gr nden sollte auch f r die Authentifizierung und Autorisierung eine Plattform unabh ngige Standardtechnologie ge w hlt werden Bei der Nutzung von SOAP Web Services hat man durch WSDLs eine wohldefinierte Schnittstelle und damit nicht das Problem der Unterspezifikation wie es oft bei REST Schnittstellen der Fall ist sie
161. die jeweils verwendete Technologie im Mittel punkt steht mit der der Service angeboten wird Mit dieser Technolo gie und den damit zusammenh ngenden Begrifflichkeiten muss sich der Anwender genau auskennen um den Service zu integrieren Daraus folgt dass ein typischer Anwendungsexperte ohne technisches Know How nicht in der Lage ist den Prozess so zu modifizieren dass ein neuer Service ein gebunden wird oder dass eine bestimmte Service Integration abge ndert wird Der manuelle Aufwand einen bestimmten Service in einen Prozess zu integrieren ist bei aktuellen BPMS meist extrem aufw ndig Dies liegt oft daran dass bestimmte Handlungen mehrmals durchgef hrt werden m ssen obwohl dies eigentlich nicht n tig w re T4 XMDD und dessen SIB Konzept k nnen Service Integration vereinfachen Das den SIBs zugrundeliegende Konzept ist eine fort schrittliche Art und Weise wie Services eingebunden werden k nnen Dieses Konzept behebt viele der oben genannten Schwachstellen anderer BPMS in Bezug auf das Service Integration Thema T5 Eine Wizard gesteuerte Generierung von SIBs vereinfacht Service Integration weiter besonders bei gro en APIs F r die APIs von ERP Systemen ist eine extreme Gr e und Komplexit t typisch Man hat hier eine gro e Menge von relativ gleichf rmig aufgebauten Ser vices Gerade f r diesen Zweck eignet sich der Einsatz von Codegene rierungstechniken Der Einsatz eines Wizards und die damit verbundene
162. dienst E Mail Zum Versenden von E Mails Twitter Zum Ver ffentlichen eines Tweets oder Versenden einer Direct Message in Twitter Business Aktivit ten Durch die M glichkeit eigene Connectoren zu erstellen ist es m glich Business Funktionen einzubinden Damit ist man konzeptionell sehr nah an den Business Aktivit ten Man k nnte theoretisch f r einen speziellen Service einen Connector erstellen auch wenn dies nicht unbedingt immer konzeptionell vom Hersteller so vorge sehen ist F r das Erstellen eigener Connectoren gibt es den Connector Creation Wizard also einen Wizard der hnlich wie die SIB Creator GUI des jABC ein Code Grundger st generiert Es ist dabei m glich einen ganz neuen Connector zu erstellen oder einen bestehenden als Vor lage zu verwenden Der generierte Stub Code wird nach dem Wizard Durchlauf zur Bearbeitung angezeigt Die eigentliche Funktionalit t wird also nach wie vor von Hand implementiert Ein Connector besitzt die folgende Struktur e Connectorld ein eindeutiger Name e Description ein einzeiliges Feld mit einer kurzen Dokumentation e Category eine von mehreren festen nicht hierarchischen Katego rien e Icon ein graphisches Icon f r den Connector e Java Klassenname ohne das Package e Java Packagename e Pages die Seiten des Konfigurations Wizards von diesem Connector e Outputs die Ausgabevariablen jeweils die Felder name und data type Wie Business Funktio
163. e ratoren kann man sich haupts chlich auf die technische Integration der Services konzentrieren da die Wizard GUI sehr gut wiederverwendbar ist Die Generierung erfolgt mit Hilfe einer Template Sprache Da die Templates sehr leicht zu erstellen sind ist es kaum aufw ndiger ein all gemeines Template f r die SIBs einer API zu generieren als ein SIB f r einen einzelnen Service zu erstellen Voraussetzung daf r ist nat rlich eine einheitlich und konsistent strukturierte API womit man wieder bei den API Untersuchungen aus Kapitel 3 angelangt ist Integrating Business Software KAPITEL 2 Grundlagen In folgendem Kapitel werden grundlegende Begrifflichkeiten definiert die zum Verst ndnis der weiteren Ausf hrungen n tig sind Zun chst wird in Abschnitt 2 1 der Bereich des Gesch ftsprozessmanagement be trachtet Dazu wird definiert was ein Gesch ftsprozess ist darauf basie rend was Gesch ftsprozessmanagement bedeutet und schlie lich was ein Gesch ftsprozessmanagementsystem auszeichnet In Abschnitt 2 2 wird dann auf den Begriff der Service orientierten Architektur eingegangen und dazu Eigenschaften Vorteile sowie Herausforderungen aus diesem Bereich genannt Eng verwandt damit ist der Begriff der Applicati on Programming Interfaces mit dem sich Abschnitt 2 3 befasst An schlie end wird in Abschnitt 2 4 der Cloud Computing Begriff definiert und erl utert wonach in Abschnitt 2 5 ERP Systeme behandelt wer
164. e Rolle Im Februar 2013 ver ffentlichte der ESB Hersteller MuleSoft eine Studie die unter anderem eine Umfrage enthielt bei der Kunden gefragt wurden bei wel chen drei bis f nf Systemen sie es f r besonders wichtig ansehen dass diese integriert werden m ssen Abbildung 3 2 zeigt einen Ausschnitt der Ergebnisse und zwar die meistgenannten Antworten Hier ist zu erken nen dass unter den sechs Top Antworten f nf hier untersuchte Systeme befinden Nat rlich ist hier nur ein grober Trend zu erkennen Die Antworten bezeichnen teilweise kon 56 krete Produkte z B NetSuite teilweise Hersteller spezifische Produktkategorien z B MS Dynamics teilweise die Hersteller selbst z B SAP oder Oracle und teilweise sehr grobe Ka tegorien die nur die Funktion einer Software beschreiben z B HCM worunter auch Workday fallen w rde Somit ist nicht immer klar was gemeint ist und der Vergleich ist manchmal schwierig Trotzdem zeigt die Statistik einen groben Trend auf und best tigt die Richtigkeit der Auswahl der Systeme in dieser Arbeit 3 1 Vergleichskriterien SalesForce SAP Oracle Quickbooks MS Dynamics NetSuite Google Analytics p Outlook WE PeopleSoft Sharepoint WE Sugar CRM 7 m z HCM Abbildung 3 2 Top Antworten auf die Frage What are the top 3 5 applications or systems your customers need to connect to Quelle Mul13b Bevor die Systeme im einzelnen untersucht werden muss eine Reihe
165. e Tochter Sophie haben oft auf mich verzichten m ssen wenn ich Freizeit f r die Erstellung dieser Arbeit geopfert habe Ich m chte mich ganz herzlich f r die viele Geduld und das Verst ndnis bedanken Ich m chte mich auch bei allen bedanken die w hrend meiner Zeit am Lehrstuhl direkt am Entstehen dieser Arbeit mitgewirkt haben Dies sind zum einen die vielen Diplomanden mit ihren Arbeiten zum anderen die studentischen Hilfskr fte die besonders bei Implementierungsaufgaben behilflich waren und auch ganz besonders meine netten Kollegen und Kolleginnen an der TU Dortmund und an der Universit t Potsdam mit denen ich eine sehr sch ne und produktive Zeit verbracht habe Ich be danke mich hier besonders bei Sven J rges der diese Arbeit korrekture gelesen und mir durch seine konstruktive Kritik sehr geholfen hat vi Zusammenfassung Durch die konsequente Anwendung eines durchdachten Gesch ftspro zessmangements kann ein Unternehmen erreichen sich seiner Abl ufe zu n chst bewusst zu werden und diese dann stetig zu verbessern Doch nur wenn diese Gesch ftsprozesse auch automatisiert werden die Prozessde finitionen also direkt auf entsprechenden Engines zur Ausf hrung ge bracht werden erreicht man echte Agilit t mit einem effizienten Zusam menspiel von Business und IT Diese Prozessautomatisierungen bestehen aus Orchestrierungen von Services welche in einer service orientierten Architektur SOA die verschiedenst
166. e also nicht mehr selbst installieren und sich nicht um Updates k mmern Nat rlich kamen die GUIs anfangs bei weitem nicht an die der Desktop Applikationen heran Dies wurde jedoch mit schnelleren Internetanschl ssen und be sonders mit dem Aufkommen der AJAX Technologie immer besser Der ASP Ansatz zeigte schon einen wichtigen Teil von dem was heute Cloud Computing genannt wird dieser Begriff wurde zu dem Zeit punkt jedoch noch nicht genutzt Im Jahr 2006 kam mit Amazon der gro e Durchbruch des Cloud Begriffs Der Online Handel E Commerce erlangte im Vergleich zum klassischen Einzelhandel eine immer gr ere Bedeutung S0105 und Ama zon selbst hatte sich von einem Online Buch Handler zu einem der gr ten Player in diesem Bereich entwickelt fabl1 Um so einen Dienst zu betreiben hatte das Unternehmen ein beachtliches Rechenzentrum auf gebaut welches jedoch nicht immer gleichm ig ausgelastet war Zum Beispiel wurde zu Weihnachten besonders viel Rechenleistung ben tigt 30 Turing Award Gewinner und Erfinder von LISP 31Massachusetts Institute of Technology in Cambridge Massachusetts USA 32 Asynchronous JavaScript and XML eine Kombination der Technologien JavaScript und XML oft auch JSON also JavaScript Object Notation statt XML um einer Webseite asynchron mit dem Webserver zu kommunizieren und dann per DOM Manipulation Document Object Model nur Teile der Seite zu ndern anstatt eine ganze
167. e ein allgemeiner WSDL Parser entwickelt welcher noch nicht spezifisch f r Dynamics NAV angepasst wurde Dieser Parser kann nat rlich immer wieder verwendet werden auch bei anderen ERP APIs die WSDL einsetzen F r Dynamics NAV wurden dann mit einem Page WSDL Parser und einem CodeUnit WSDL Parser zwei Speziali sierungen entwickelt die auf die Eigenheiten von Pages resp CodeUnits besonders eingehen Der Page WSDL Parser bietet nach dem Einlesen des WSDL Dokumentes eine Liste aller Operationen an sowie eine Liste aller Parameter an Au erdem kann gezielt danach gefragt werden ob die Page eine bestimmte Standard Operation auch wirklich anbietet Diese Informationen k nnen genutzt werden um alle verf gbaren Operationen zur Auswahl im Wizard anzuzeigen Der Benutzer muss nur noch die gew nschte Operation ausw hlen Auswahl der Parameter Nachdem die konkrete Operation feststeht k nnen nun alle f r das SIB relevanten Parameter ausgew hlt werden Da die Parameter in Dynamics NAV grunds tzlich einfache also keine komplex verschachtelten Datentypen besitzen ist hier keine Baumdar stellung n tig Stattdessen reicht eine einfache Liste mit entsprechenden Checkboxen Weitere Wizard Schritte Wie schon in Abschnitt 5 3 5 beschrieben und dort in Abbildung 5 2 dargestellt folgen zum Schluss noch drei Schritte im Wizard die Auswahl der Datenquellen f r die Parameter was meistens der Ausf hrungskontext ist die Angabe von Dokumen tati
168. e le 171 SLG Einstellung eines neuen Mitarbeiters 173 SLG Untermodell Mitarbeiter schulen 173 Relative H ufigkeiten der Erw hnungen von Prozessspra chen im WWW nach Google Trends http www google de trends vom 13 022013 22 243 Bir here 197 BPMN 2 0 Ereignisse Quelle BPM11 220 Abbildungsverzeichnis 8 2 BPMN 2 0 Kollaborationsdiagramm Quelle BPM11 221 8 3 Eine Schleife in AristaFlow 222 8 4 Die gleiche Schleife im jABC 223 254 Tabellenverzeichnis 3 1 3 2 3 3 3 4 3 9 3 6 3 7 3 8 6 1 6 2 SAP BAPI Business Objekte 2 2 2222 20 68 SAP eSOA Business Objekte 22 2222 20 73 Dynamics NAV Business Objekte 78 Quickbooks Business Objekte 82 NetSuite Business Objekte 0 93 Workday Business Objekter 99 Ergebnisse der Auswertung traditionelle on premise ERP Systeme 2 403 256 22 3 7 2 ao eat weh 104 Ergebnisse der Auswertung Cloud basierte ERP Systeme 105 BPMS Vergleich Teil 1 von2 204 BPMS Vergleich Teil 2 von2 205 259 Tabellenverzeichnis 256 Listings 2 1 5 1 5 2 5 3 6 1 7 1 12 7 3 7 4 7 5 7 6 T T 7 8 Beispielimplementierung eines einfachen SIBs Java Code zum Aufruf einer BAPI Methode mit JCo BAPI Aufruf mit Abbe Dynamics NAV DISCO Dokument Beispielimpl
169. e on Human Factors in Computing auf englisch Human Computer Interaction HCI 23 2 Grundlagen 24 dazu genutzt werden kann um von Hand Code zu erstellen welche die damit beschriebenen Funktionen nutzt sondern auch um sie automa tisch durch Software auswerten zu lassen um dann Code zu generieren der wiederum die API nutzt Der Mensch kommt also nicht mehr un mittelbar mit der API in Ber hrung sondern nur noch mittelbar Eine maschinenlesbare API ist also wie zum Beispiel im Bereich des Seman tic Web BLHLt01 SHBLO6 das Ziel Unsere Erfahrung hat gezeigt dass sich jedoch die konkreten Technologien des Semantic Web wie zum Beispiel RDF W3C04c RDF Schema W3C04b OWL W3C12 oder OWL S W3C04a im Enterprise Umfeld nicht durchgesetzt haben Kei ne ERP API nutzte eine dieser Technologien Es ist zu vermuten dass dies daran liegt dass der Mehraufwand f r eine solche API Definition ungleich h her ist als bei einer traditionellen Dies ist auch das Hauptar gument in einem Blog Eintrag von Brian Huff Huf09 von 2009 mit dem Titel The Semantic Web Impossible In Theory Impractical in Reality Schon zwei Jahre vorher ver ffentlichte Stephen Downes in seinem Blog den Artikel Why the Semantic Web Will Fail Dow07 Sein Hauptar gument fiir die fehlende Akzeptanz der Semantic Web Technologien und den Misserfolg des Semantic Web im Allgemeinen ist dass das Hauptziel der Service Anbieter welche meist We
170. eased with minimal management effort or service provider interaction Es geht also um Ressourcen die im Netzwerk also normalerweise im Internet bereitgestellt werden und die jeder ohne viel Eigenaufwand 29NIST steht f r National Institute of Standards and Technology und ist Teil des Handelsmi nisteriums der USA 27 2 Grundlagen einfach nutzen kann oder die Nutzung auch wieder beenden kann Da die Software ins Netz ausgelagert wird und somit ein Outsourcing des IT Betriebs vorgenommen wird minimiert man den eigenen Aufwand und die damit zusammenh ngenden Kosten die bei einem eigenen Re chenzentrum oft wesentlich h her ausfallen k nnen Ein Unternehmen welches einen Dienst in die Cloud auslagert muss daf r keinen Admi nistrator mehr besch ftigen keine Hardware einkaufen und betreiben die auch noch gek hlt werden m sste und sich allgemein keine Gedan ken mehr ber technische Details wie Ausfallsicherheit Backups oder Zugriffssicherheit machen Die wichtigen Stichw rter hei en hier Vir tualisierung und Abstraktion Um genauer zu spezifizieren was mit Cloud Computing gemeint ist f hrt das NIST f nf zentrale Eigenschaften von Cloud Computing auf 1 On demand self service Selbstbedienung nach Bedarf Ein Be nutzer kann jederzeit selbst bestimmen welche Ressourcen genutzt oder nicht genutzt werden Dazu ist keine menschliche Interaktion mit dem Service Provider n tig 2 B
171. eben Abbildung 5 2 Die Schritte eines InBuS Wizards lesbar wird In den Templates selbst muss daher nicht auf eine besonders sch ne Formatierung des Resultats geachtet werden und es kann statt dessen eine besonders gute Lesbarkeit des Templates erreicht werden Der Wizard Die einzelnen Schritte des Wizards sind in Abbildung 5 2 dargestellt Zun chst wird dabei das Business Objekt ausgew hlt welches den ge w nschten Service enth lt Die Darstellung der Business Objekte ge schieht dabei im Idealfall in hierarchischen Kategorien Die Business Objekte werden also als Baum dargestellt Die Informationen f r diese Darstellung m ssen aus einem entsprechenden Repository auf Backend Seite gezogen werden Je nach Backend ist dieser Schritt sehr unter schiedlich zu realisieren Existiert kein Repository so besteht f r den Wizard Ersteller die M glichkeit ein lokales Repository anzubieten Da bei wird also bei InBuS selbst eine Sammlung der Business Objekte und deren Kategorien gepflegt F r den Benutzer sieht es dann so aus dass er im ersten Schritt ein Repository sieht welches nur schon benutzte 47in Java Swing demnach als JTree 161 5 Service Integration im jABC 162 Business Objekte enth lt Soll ein zus tzliches Business Objekt ange sprochen werden so muss dies neu eingef gt werden und ist ab dem Zeitpunkt im lokalen Repository vorhanden Kennt das Backend also z B das Repository einer ERP API das Konz
172. eben Tech nisch gesehen handelt es sich dabei um eine Java Properties Datei also eine Textdatei mit Schl ssel Wert Paaren die jeweils in einer Zeile ste hen und bei denen Schl ssel und Wert durch ein Gleichzeichen getrennt sind In dieser Datei stehen sowohl der allgemeine Dokumentationstext des SIBs als auch die erkl renden Texte zu allen Parametern und Bran ches Bei den Parametern ist zu beachten dass auch die Struktur der komplexen Parametern in einer Baumstruktur angegeben werden So ist f r den SIB Benutzer gut zu erkennen wie er diese Daten nutzen oder bereitstellen kann Die generierten Provider SIBs dienen zur Erzeugung der Eingabedaten Da bei Dynamics NAV die komplexen Parameter jeweils wieder nur aus einfachen Datentypen bestehen es auch keine weitere Verschachtelung komplexer Parameter gibt und es pro Service genau einen Parameter gibt entstehen hier also nur ein Provider SIB mit vergleichsweise vie len Parametern einem SIB Parameter pro Bestandteil des komplexen Parameters W rde der komplexe Parameter wieder einen weiteren kom plexen Parameter enthalten so m sste hierf r wieder ein entsprechendes Provider SIB generiert werden Benutzung der generierten SIBs Sind die SIBs fertig generiert so k nnen sie mit dem Taxonomie Editor bersichtlich in einer hierarchi schen Struktur angeboten werden In Abbildung 5 4 ist zu sehen wie diese Taxonomie in der graphischen Benutzeroberfl che des ABC dar gestellt wird
173. ebenfalls vergleichbar mit dem Java Task von jPDL Die dritte Art einen Service Task zu definieren ist eine Kombination aus den beiden obig beschriebenen Ans tzen Dabei werden eine In stanz eines Java Delegates im Kontext und eine einfache so genannte Delegate Expression ben tigt Die Delegate Expression enth lt dabei lediglich den Kontext Schl ssel der Java Delegate als einzige Informati on Eine Service Aktivitat besitzt bei Activiti immer nur eine ausgehende Kante F r Entscheidungen wird das in der Spezifikation von BPMN 2 definierte XOR Gateway verwendet Fazit Zusammenfassend l sst sich sagen dass Activiti keine echte Un terst tzung von Business Aktivit ten bietet Die Java Delegates k nnen h chstens als Zwischending zwischen technischen Service Aktivit ten und Business Aktivit ten angesehen werden Der Benutzer muss Kenntnisse in Java besitzen sowie die Namen der ben tigten Klassen und Methoden kennen Au erdem m ssen ihm noch Interna wie Parameternamen be kannt sein da hierf r keine Tool Unterst tzung gegeben ist Weiterhin existiert keine Unterst tzung f r Dokumentation Icons Validierungsre geln oder die Definition ausgehender Kanten Obwohl Activiti in anderen Belangen als eine stabile und Feature reiche Prozess Engine angesehen werden kann ist die Unterst tzung im Bereich der Service Integration noch eine klare Schw che Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Ver
174. ebenso wichtiger Punkt ist in diesem Zusammenhang auch die Sicherheit also z B eine gut funktionierende Technologie zur Authentifizierung und Autorisie rung Die Untersuchung der Business APIs geschieht vor dem Hintergrund des XMDD Konzeptes Es ist dabei entscheidend dass die API nicht nur wie meist blich von Entwicklern benutzt wird als Grundlage f r eine manuelle Implementierung in einer Programmiersprache sondern dass die API systematisch analysiert wird auf Basis dieser Analyse ein Code Generator entwickelt wird und dieser Generator schlie lich ausf hrbare Prozesskomponenten im Falle von XMDD sind dies SIBs erzeugt die wiederum Teil eines Gesch ftsprozesses sind Die dabei beteiligten Rollen sind in Abbildung 3 1 dargestellt Die Gruppierung der Rollen die durch die Swimlanes dargestellt ist wurde von SM07 bernommen Demnach gibt es bei APIs drei verschiedene Stakeholder 1 API Designer 2 API Benutzer 3 Benutzer resultierender Produkte Traditionell ist ein API Benutzer ein Entwickler und der Benutzer des resultierenden Produktes ist die Person die das Erzeugnis des API Benutzers nutzt Der API Designer ist das Unternehmen oder deren Mitarbeiter dass die API initial definiert und dann bereitstellt Im Kontext von Business APIs und XMDD existieren die gleichen Rol lenkategorien Es gibt jedoch mehrere API Benutzer und mehrere Benut zer der resultierenden Produkte Der API Designer ist der Hersteller de
175. ed activities intended to reach a goal Die Definition ist also sehr allgemein gehalten und sagt nur aus dass eine Menge von Aktivit ten vorhanden ist die auf irgendeine Art geordnet ist es existiert also eine definierte Reihenfolge und die Aktivit tenfolge hat insgesamt ein bestimmtes Ziel Hier wird weder von Informations technologie noch von einer Anwendung in einem Unternehmen gespro chen Jacobson JEJ94 definierte bereits 1995 den Begriff folgenderma en Set of internal activities performed to serve a customer Hier kommt der Aspekt hinzu dass ein bestimmter Kunde custo mer existiert also irgendjemand der Interesse an dem Ausgang des Prozesses hat hnlich definieren Rummler und Branche RB95 den Begriff im gleichen Jahr The series of steps that a business executes to produce a product or service Hier wird anstelle des Kunden das Ergebnis des Prozesses betont pro duct or service Au erdem wird hier explizit das Unternehmen busi ness erw hnt in dem der Prozess ausgef hrt wird Gulla and Lindland stellten bereits 1994 fest dass es eine Verschiebung in der Bedeutung des Begriffes gibt weg von Produktionsprozessen hin zu Koordinationsprozessen also Prozessen im B ro bzw allgemein in 2OMG Object Management Group http www omg org 10 2 1 Gesch ftsprozessmanagement der Verwaltung Wenn heute von Gesch ftsprozessen gesprochen wird sind also
176. ed view of data In ACM Transactions on Database Systems TODS 1 1976 Nr 1 S 9 36 Cla04 CLARKE Steven Measuring API Usability http www drdobbs com windows 184405654 Version 2004 Col10 COLLINS M Beginning WF Windows Workflow in NET 4 0 Apress 2010 Apresspod Series http books google de books id dIPP8nYDVgIC ISBN 9781430224853 Con13 CONSONA CORPORATION Compiere Webseite http www compiere com Version 2013 DATHKB03 DER AALST Wil M TER HOFSTEDE Arthur H KIE PUSZEWSKI Bartek BARROS Alistair P Workflow pat terns In Distributed and parallel databases 14 2003 Nr 1 S 5 51 Dau10 DAUGHTRY J M The Style and Substance of API Na mes In Visual Languages and Human Centric Compu ting VL HCC 2010 IEEE Symposium on IEEE 2010 S 259 260 Dav00 DAVE WINER XML RPC Specification http www xml com pub r 1199 Version 2000 DFMS09 DAUGHTRY J M FAROOQ U MYERS B A STY LOS J API usability report on special interest group 234 Literaturverzeichnis at CHI In ACM SIGSOFT Software Engineering Notes 34 2009 Nr 4 S 27 29 DGBP11 Dumas Marlon GARCIA BANUELOS Luciano POLY VYANYY Artem Unraveling Unstructured Process Mo dels In Business Process Modeling Notation Springer 2011 8 1 7 DGPS12 DOEDT Markus G KE Thomas PARDO Jan STEF FEN Bernhard Reha Sports The Challenge of Small Margin Healthcare Accounting In MARGAR
177. efasst wird Es endet also in Zeile 45 In Zeile 5 wird zum ersten Mal eine Ersetzungs variable benutzt Diese sind in Dollarzeichen eingefasst und tauchen im ganzen Template immer wieder auf Sie sind folgenderma en zu inter pretieren e objectLC object name lower case der Objektname in Klein buchstaben z B salesorder e object1stUC object name first letter upper case der Objektna me beginnend mit einem Gro buchstaben z B SalesOrder e object1stLC object name first letter lower case der Objektna me beginnend mit einem Kleinbuchstaben z B salesOrder e date das aktuelle Datum Listing 7 1 SIB Template NAV Read Operationen vereinfacht group PageReadSIBTemplate PageReadSIBTemplate_Main lt lt package de jabc dynnav sibs objectLC weitere Import Statements ausgelassen Ka oo N O Ki e Ri bo Fa import de jabc dynnav adapters objectLC objectistUC PageReadServiceAdapter m m m SIBClass InBuS MSDynNAV Page object1stUC Read Generated value de jabc inbus date date public class objectistUC PageRead implements Executable m N m Ri A m Eu m D 208 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Al 42 43 public ContextKey objectistLC NumberKey new ContextKey objectistLC Number ContextKey Scope DECLARED tr
178. ei deren Umsetzung der zu Grunde liegende Prozess im Mittel punkt stehen soll Neben Gesch ftsprozessen wurden in der Vergangen heit zum Beispiel auch schon Prozesse f r die Steuerung eingebetteter Systeme z B Roboter JKPM07 oder Mobiltelefone Spi09 f r Strate gien von Computerspielen z B das Spiel Vier Gewinnt BJM09 oder f r Robocode Sto10 f r Algorithmen im Bereich des Automatenler nens RSB05 MSHM11 oder f r die Definition von Code Generatoren JMS08 Jor13 umgesetzt Damit Business Experte und IT Experte reibungslos zusammenarbeiten k nnen ist es nach XMDD wichtig dass sie dasselbe Modell benutzen und zwar genau eines Anders als zum Beispiel bei der UML Unified Modeling Language gibt es bei XMDD nur genau ein Modell Dieser Ansatz wird daher auch One Thing Approach genannt Wo es bei der UML f r jeden Aspekt eine andere Modellart gibt existiert hier nur 43im Kontext von XMDD auch oft Anwendungsexperte genannt 36 2 6 XMDD und jABC der zentrale Prozess der alles steuert Dieses Prozessmodell bleibt der Mittelpunkt der Entwicklung von der ersten Idee bis zur finalen Umset zung Da es sich um ein Prozessmodell handelt handelt es sich bei dem Modell um einen gerichteten Graphen welcher den Kontrollfluss symbo lisiert Alle anderen Daten werden an den Prozessgraphen annotiert Zur Beherrschung von Komplexit t und zur Erzeugung der jeweils passenden Sichten auf das Modell ist
179. ein Service ver ffentlicht wurde muss diese ffentliche Definition stabil bleiben die Schnittstelle des Services darf also nicht ver ndert werden Fow02 Bei einer nderung der Schnittstelle w rden alle Clients welche diesen Service nutzen direkt unbrauchbar werden Der Grundsatz der Unver nderlichkeit von Services w rde also bedeuten dass eine Optimierung der Services unm glich gemacht wird was eben falls nicht gew nscht sein kann Es muss m glich sein auf sich ndernde Anforderungen zu reagieren oder auch Fehler in der existierenden Spezifi kation zu beheben Um dieses Dilemma zu beseitigen ist die Einf hrung einer Versionierung der Services Aga04 WZD07 ABP08 ein proba tes Mittel Das bedeutet dass ein Service nicht ge ndert wird sondern stattdessen ein neuer zus tzlicher Service als Alternative f r den alten eingef hrt wird und der alte Service als veraltet bzw deprecated markiert wird Dieser neue Service besitzt in dem Fall meist die glei che Bezeichnung wie sein Vorg nger jedoch eine neue Versionsnummer Versionierung kann dabei auf unterschiedlichen Ebenen vorgenommen werden Es ist zum Beispiel m glich jede Funktion einzeln zu versionie ren oder jedes Business Objekt oder jede Kategorie von Services oder sogar eine gesamte API 3 1 2 API Design IKB Intuitive und konsistente Benennungen Besonders wenn APls als Eingabedaten f r automatische Generatoren dienen ist es wichtig dass i
180. eine WSDL pro Funktion aus Ein WSDL Dokument besitzt hier grunds tzlich nur einen Porttype mit einer einzigen Funktion Es ist sogar m glich sich pro Funktion drei verschiedene WSDL Dokumente ausliefern zu lassen die dann jeweils nur einen Aspekt einer WSDL bzw der Funktion beinhalten 1 Interface 2 Binding 3 Service Endpoint 3 4 2 Vergleich der APIs Wie man in den Tabellen 3 7 und 3 8 leicht sehen kann sind alle un tersuchten L sungen relativ weit davon entfernt alle Anforderungen zu erf llen Die Ergebnisse spiegeln sehr gut wieder wie die hinter den Pro dukten stehenden Unternehmen jeweils ihr Gesch ftsprofil ausrichten SAP hat mit der Einf hrung der eSOA Technologie gegen ber dem alten BAPI Standard einen deutlichen Schritt nach vorne gemacht Das pro priet re RFC Protokoll wurde durch plattformunabh ngige Web Services ersetzt und die Anzahl der angebotenen Services wuchs gewaltig Nichts destotrotz ist die Abdeckung der Business Objekt Operationen bei bei den SAP L sungen immer noch so schlecht dass Kunden die Service Sammlungen selbst erweitern m ssen meist durch die Hilfe von SAP Beratern Folglich kommt es immer noch zu den SAP typischen oft langdauernden und teuren Customizing Phasen was zeigt dass sich das SAP Business Modell welches haupts chlich auf mittlere bis gro e Un ternehmen als Kunden abzielt kaum ge ndert hat Dennoch erleich tert eSOA das Customizing und kann als ein Schritt auch in R
181. einem tech nischen Standpunkt so f llt auf dass zun chst die Definition sowie die Implementierung der Aktivit ten mit unterschiedlichen Mitteln erfolgen kann Die Implementierung erfolgt hier fast immer in Java Windows Workflow Foundation siehe Abschnitt 6 6 setzt hier als Teil von NET 201 6 Service Integration in anderen BPMS nat rlich auf C Die Definition kann entweder auch in der Program miersprache erfolgen jABC jBPM4 Bonita YAWL oder in einer separaten Definitionsdatei wie die WID in jBPM5 oder durch die Be nutzung der Repository Management GUI wie bei AristaFlow oder im Prozess Editor wie bei Activiti Letzteres hat den gro en Nachteil dass die Definition nicht wiederverwendet werden kann Sie muss bei jeder Nutzung der Aktivit t von neuem angegeben werden Die AristaFlow L sung ist hier schon etwas besser zu bewerten da hier die Definition nur einmal angegeben werden muss Es gibt jedoch auch hier keine Hilfe bei der Vermeidung von Fehlern wie z B Tippfehlern in Parameter namen Das gleiche gilt f r die Benutzung einer Definitionsdatei wie in jBPM 5 Bei den restlichen L sungen die die Programmiersprache selbst zur Definition einsetzen kann die verwendete IDE durch fortschrittliche Syntaxchecks dabei helfen solche Fehler zu vermeiden Ein weiterer Punkt ist die Behandlung ausgehender Kanten Im jABC wird im SIB selbst definiert welche m glichen Resultate der Ausf hrung existieren und damit w
182. eite zur IT zu schlagen Auch in der BPMN Spezifikation OMG11 gibt es ein eigenes Kapitel welches jedoch nur grunds tzliche Parallelen der bei den Sprachen bzgl einzelner Elemente aufzeigt und keine detaillierte Anleitung liefert Das grunds tzlich zu l sende Problem ist in allen Ar beiten das gleiche und zwar die Transformation eines beliebigen Gra phen in eine strukturierte Block orientierte Sprache KMWLO9 Ein gro e Anzahl wissenschaftlicher Arbeiten verfolgen dabei grunds tzlich den gleichen Ansatz die Graphstruktur zu analysieren und dabei die strukturierten Elemente zu identifizieren Whi05 ODTHA06 Gao06 ODBH06 YZZ 07 ODHVDAO08 SKLNO9 GX09 DJB 09 PGBW09 MH11 DGBP11 Diese Strukturen werden dann auf die entsprechen den Elemente der Block orientierten Sprache bertragen Einfach struk turierte Prozesse k nnen so komplett und ohne gro e Transformation bernommen werden Existieren jedoch Elemente die von dieser Struk tur abweichen wie zum Beispiel Spr nge aus eine Schleife heraus so m ssen alternative Wege gefunden werden Hier k nnen entweder Tei le des Prozesses dupliziert werden was zu einer Explosion des Modells f hren kann oder es wird f r solche Zwecke auf eine Art von Ereignisbe handlung gesetzt Man l st sich also an dieser Stelle von der Modellierung durch Prozesse und definiert die Abl ufe stattdessen sehr lose durch das Ausl sen von Ereignissen an der einen Stelle und das Reagieren auf sel
183. elche ausgehenden Kanten erlaubt sind Dies ist eine sehr nat rliche Denkweise da sehr oft eine bestimmte Aktion ver schiedene Resultate liefern kann die jeweils die passende Nachfolgeak tion zur Behandlung dieser Resultate erfordert Die BPMN Tools wie Activiti jBPM 5 oder Bonita erlauben hier immer nur eine ausgehende Kante F r Verzweigungen werden die entsprechenden BPMN Gateways eingesetzt was insgesamt umst ndlicher aufw ndiger und weniger na t rlich ist Das selbe gilt f r die XOR Aktivit t in AristaFlow oder die Aktivit t f r das Exclusive Choice Pattern in YAWL Um dem Business Experten einen intuitiven Zugang zu den vorhandenen Aktivit ten zu bieten ist eine angemessene Dokumentation ein Muss Diese sollte Teil der Aktivit tsdefinition sein und auch direkt im Prozess Editor angezeigt werden wie dies im jABC der Fall ist Ein illustrierendes Icon f r die Business Aktivit t wie bei jBPM 5 AristaFlow WF und jABC kann die Verst ndlichkeit des Prozessmodells weiter verbessern Die Generierung von Service Aktivit ten sei es voll oder halbautoma tisch ist ein wichtiges Thema und wird von AristaFlow und Bonita teilweise unterst tzt vom jABC sehr systematisch und vielf ltig Dies kann dem Business Experten dabei helfen schnell und einfach neue Ser vices zu integrieren Der grunds tzliche Ansatz der Generierung von Business Aktivit ten wie es Kapitel 5 beschrieben wird ist jedoch nicht beschr nkt auf das jAB
184. ell direkt auszuf hren Genau dies ist auch bei XMDD zentraler Bestandteil des Konzeptes 6 8 Vergleich Alle in den Abschnitten 6 1 bis 6 6 untersuchten BPMS unterst tzen wie das in Kapitel 5 behandelte ABC die Erstellung eigener Prozesskompo nenten und damit die Entwicklung von dom nenspezifischen Business Aktivit ten Nur die Sprache BPEL siehe Abschnitt 6 7 und damit die entsprechenden BPMS die diese Sprache einsetzen beschr nkt sich bei der Service Integration darauf eine einzige technische Aktivit t anzu bieten in diesem Fall die Aktivit t lt invoke gt Betrachtet man bei den verschiedenen BPMS jedoch genauer wie komfortabel die Unterst tzung von dom nenspezifischen Business Aktivit ten ist so wird deutlich dass dies jeweils sehr unterschiedlich sein kann So bietet z B Activiti sie he Abschnitt 6 2 nur eine sehr rudiment re Unterst tzung an so dass immer noch ein gewisses Ma an technischem Know How notwendig ist Hier wird nicht vollst ndig von der eingesetzten Programmiersprache Java abstrahiert Andere Systeme wie jBPM 5 siehe Abschnitt 6 1 2 AristaFlow siehe Abschnitt 6 4 oder Bonita Open Solution siehe Ab schnitt 6 3 sind da schon deutlich weiter und erm glichen die komforta ble Erstellung eigener Komponenten die Bereitstellung in Repositories sowie im Falle von AristaFlow und Bonita auch einfache Mechanismen zur Generierung der Komponenten Betrachtet man die verschiedenen Herangehensweisen aus
185. ellt in einer hierarchischen Baumansicht Taxonomie die zur Verf gung stehenden SIBs dar Zu jedem SIB wird auch dessen Dokumenta tion samt Icon als Tooltip angeboten Wenn ein SIB nicht ber die Taxonomie sondern ber seinen Namen gesucht werden soll so kann die Filter Funktion im unteren Bereich des SIB Browsers da zu genutzt werden Hier kann eine Zeichenkette eingegeben werden die Teil des SIB Namens sein soll Auch die Benutzung von Wild cards ist hier m glich Ist der Filter aktiv so werden nur die SIBs angezeigt die zum angegebenen Filter Ausdruck passen 2 Zeichenfl che Der gr te Bereich der jJABC Benutzeroberfl che ist f r die Darstellung und die Bearbeitung des SLG vorgesehen Hier k nnen einfach per Drag and Drop die SIBs aus dem SIB Browser platziert und zu Prozessen verbunden werden 3 Inspektoren Der Bereich unten links beinhaltet die so genannten lnspektoren die jeweils auf einer Registerkarte dargestellt wer den Ein Inspektor ist eine Fl che in der JABC Benutzeroberfl che auf der Informationen zu einem bestimmten Thema dargestellt wer den und in vielen F llen auch bearbeitet werden k nnen Der SIB Inspektor wird zum Beispiel zur Bearbeitung der Parameterwerte 53 gt Wenn der Mauszeiger f r eine kurze Zeit ber ein SIB im SIB Browser positioniert wird so 44 wird tempor r oberhalb der eigentlichen Benutzeroberfl che ein Element angezeigt welches die SIB Dokumentation sam
186. ementierung der Execute Methode SIB Template NAV Read Operationen vereinfacht Generiertes SIB Read Sales Order vereinfacht Template fiir LightweightServiceAdapter Generierter LightweightServiceAdapter Template jBPM WID Definition 22 222 Template jBPM WID Implementierung Template JavaDelegate Template JavaDelegate 2 22 22 00 139 143 164 195 208 209 210 212 212 213 214 215 257 Listings 258 Abk rzungsverzeichnis ABAP ACL AES AJAX AOP API ARIS ASP ASP AZS B1WS BAPI BOR BPEL BPEL4WS BPELJ BPM BPMN Advanced Business Application Programming Access Control List Advanced Encryption Standard Asynchronous JavaScript and XML Aspektorientierte Programmierung Application Programming Interface Architektur Integrierter Informationssysteme Active Server Pages Application Service Provider API Zugriffssicherheit API Anforderung Business One Web Services Business Application Programming Interface Business Object Repository Business Process Execution Language Business Process Execution Language for Web Services BPEL Java Extension Business Process Management Business Process Model and Notation vor Version 2 0 Business Process Modeling Notation 259 Listings 260 BPMS CIM COM COTS CRM CRUD DBMS DCOM DI API DISCO DLL DMS DOM DOP DSL DTD DVA EAI EAM EC2 ECC EDV eEPK
187. en IT Systeme kapseln die wie derum die gesamten Daten des Unternehmens enthalten Das effiziente Zusammenspiel von Gesch ftsprozessmanagement und SOA h ngt stark davon ab wie gut von beiden Seiten auf die andere zugegangen wird Auf der Seite der Prozesse ist es notwendig dass die entsprechenden Modellierungstools und Ausf hrungsengines es erlauben m glichst ein fach schnell und fehlerunanf llig Services einzubinden Auf der Seite der Services m ssen diese gut strukturiert und dokumentiert sein damit sie gefunden und korrekt eingebunden werden k nnen In dieser Arbeit wird analysiert wie sich die Situation heute an beiden Seiten darstellt Ein besonderes Augenmerk wird dabei auf das Thema Cloud Computing gelegt da gut beschriebene Services in diesem Bereich von existenziel ler Wichtigkeit f r die Anbieter sind Weiterhin wird gezeigt wie das Zusammenspiel mit Hilfe der Ideen aus dem Konzept Extreme Model Driven Design XMDD besonders effizient und elegant realisiert wer den kann Einen besonderen Schwerpunkt bildet die Generierung von Prozessaktivit ten f r gro e Servicesammlungen zum Beispiel von ERP Systemen vil viii Inhaltsverzeichnis 1 Einleitung 1 1 1 2 1 3 2 1 22 2 3 2 4 2 9 2 6 SE 3 1 3 2 Thema der Arbeit sa 2 sun e Thesen und Anforderungen Meine Arbeitsschwerpunkte Grundlagen Geschaftsprozessmanagement Service orientierte Arc
188. en Workflows unterscheiden sich wesentlich von den automatisch ablaufenden Prozessen aus dem oben beschriebenen EAI Bereich Heutzutage wachsen unter dem Dach des Gesch ftsprozessma nagements und mit dem Aufkommen von ausf hrbaren Prozesssprachen und entsprechenden Engines diese Arten sehr zusammen BPMN 2 0 seit Je nach Community wird der Workflow Begriff auch manchmal anders definiert z B synonym zu Gesch fts Prozess oder als technischer kleinschrittiger Prozess oder als Automatisierung eines Gesch ftsprozesses 8Die WfMC ist ein Verbund von ber 300 Mitgliedern darunter Tool Hersteller und Nutzer Berater und Wissenschaftler Eine Liste von noch zu erledigenden Aufgaben 13 2 Grundlagen PROCESS DEFINITION TOOLS Interface 1 I Process Definition Import Export Interface 5 OTHER WORKFLOW ENACTMENT SERVICES WORKRUOW ENGINES Interface 4 Interoperability TOOL AGENT TY PICAL WEB SERVICES INVOKED APPLICATIONS WORKFLOW ENACTMENT SERVICE ADMINISTRATION amp MONITORING TOOLS W Interface 2 j Interface 3 WORKLIST HANDLER CLIENT APPS Source Workflow Management Coalition Abbildung 2 2 Workflow Reference Model Quelle WfM95 dieser Version Business Process Model and Notation ist zum Beispiel eine ausf hrbare Gesch ftsprozesssprache und wird von verschiedenen Engines unterst tzt Momentan sieht es so aus
189. en diese Services nun in den Gesch ftsprozessen eingebunden werden so ist zu beobachten dass viele BPMS gerade in diesem Gebiet noch sehr wenig Unterst tzung bieten Auch dies wurde ausf hrlich in dieser Arbeit belegt Weiterhin wurde gezeigt wie die Ideen und Kon zepte des Extreme Model Driven Design und eine Wizard gesteuerte Generierung von Prozessaktivit ten besonders bei gro en APIs wie sie f r ERP Systeme typisch sind die Service Integration stark vereinfachen k nnen Die genannten Punkte wurden durch eine Vielzahl flankierender T tig keiten erg nzt die jeweils ebenfalls mit in diese Arbeit eingeflossen sind 227 9 Fazit und Ausblick 228 Es wurde sich kritisch mit dem Einsatz von Tabellenkalkulations software in Unternehmen befasst Neben eigenen Arbeiten wurde zu dem Thema auch die Projektgruppe Excelerate durchgef hrt Dies wird in Abschnitt 5 2 1 beschrieben Es wurden zahlreiche manuelle SIB Implementierungen durchge f hrt zum Beispiel f r Office Produkte siehe Abschnitt 5 2 1 oder die SAP BAPI siehe Abschnitt 5 2 2 Sowohl die eigene Software zur Generierung von SIBs als auch die APIs der untersuchten Systeme wurden auch durch Studenten der Vorlesung Aktuelle Themen der Dienstleistungsinformatik evalu iert In praktischen Projekten wurden dabei auch Implementierun gen von SIBs f r SAP eSOA und Google Apps durchgef hrt Dies wird in Abschnitt 5 2 3 genauer beschrieben Es wurde
190. en sehr h ufig Gebrauch des Tags lt documentation gt wodurch Dokumentation zu allen Operationen und 23 Alle Fakten dieses Abschnittes k nnen unter http www workday com why_workday technology security php nachgelesen werden 100 3 4 Vergleich all ihren Parametern angeboten wird DVA Bewertung F r Wertevorschlage benutzt Workday ein spezielles lt enumeration gt Element aus dem Workday XML Namensraum WVA Bewertung Es werden Kardinalit ten f r alle Parameter angegeben minOccurs und maxOccurs in der WSDL aber diese ist immer 0 1 oder 0 so dass alle Parameter optional sind Sogar in den get Operationen ist der Referenz Parameter welcher die ID enthalt als optional gekennzeichnet In der gesamten API gibt es nicht einen Eintrag mit minOccurs 1 DOP Bewertung Es gibt Validierungsregeln sowohl in der Dokumentation auf der Workday Homepage als auch in der WSDL Dafiir existiert ein spezieller Tag lt validation gt Die Validierungsregeln sind in normalem Englisch nicht in einer formalen Sprache notiert gt VRA Bewertung 3 4 Vergleich In diesem Abschnitt werden die oben beschriebenen Ergebnisse zusam mengefasst und nebeneinandergestellt Zun chst wird in Abschnitt 3 4 1 erl utert welche allgemeinen Konzepte verfolgt wurden und somit wie sich die verschiedenen L sungen grob klassifizieren lassen Anschlie end werden in Abschnitt 3 4 2 die untersuchten APIs j
191. enen das gesamte Operating an einen ex ternen Dienstleister ausgelagert wird Die untersuchten APIs k nnen als Business APIs bezeichnet werden Diese Art von API zeichnet sich durch vier charakteristische Eigenschaf ten aus die sie von anderen APIs unterscheidet 1 Das Anwendungsgebiet ist Business also die F hrung eines Un ternehmens und die Abl ufe in einem Unternehmen oder genauer in dessen Verwaltung oder in einem bestimmten Markt Die be teiligten Objekte stammen also aus dieser Dom ne Beispiele sind Kunde Mitarbeiter Auftrag oder Artikel 53 3 Untersuchung von Business A PIs 2 Die API ist gro Dies bedeutet dass die Anzahl der angebotenen Services relativ hoch ist Da eine solche API hunderte oder gar tausende von Operationen enthalten kann ist es unerl sslich diese in irgendeiner Art und Weise zu organisieren 3 Die Operationen und dazugeh rigen Datentypen sind komplex Die Operationen enthalten typischerweise eine gro e Anzahl an Para metern und es muss f r jedes Integrationsszenario neu entschieden werden welche Teile des Services relevant sind und welche nicht 4 Die Operationen werden remote in einem Netzwerk angeboten Die ses Netzwerk kann entweder ein lokales Netzwerk oder das Internet sein Folglich kann es Clients f r verschiedene Plattformen und in verschiedenen Programmiersprachen geben weshalb Plattformun abh ngigkeit hier besonders wichtig ist Ein
192. enen ebenfalls Einfachheit im Mittelpunkt steht 8 1 Einfachheit bei der Service Integration Wie in Kapitel 4 beschrieben kann die Einbindung von Services in aus f hrbare Gesch ftsprozesse auf unterschiedliche Arten erfolgen Entspre chend unterschiedlich einfach ist dabei das entsprechende Vorgehen Aus 217 8 Einfachheit als Erfolgsfaktor im BPM Sicht des Prozessmodellierers ist sicherlich die Benutzung der dom nen spezifischen Business Aktivit ten am einfachsten Hier muss er sich keine Gedanken um die zu Grunde liegende Technologie machen und sich ent sprechend mit diesen Details nicht auskennen Er kann einfach aus einer Palette von konkreten fachlichen Services den richtigen ausw hlen und in seinem Prozessmodell platzieren Technische Service Aktivit ten oder Skript Aktivit ten sind dagegen sehr technisch und kaum vom Anwen dungsexperten zu benutzen Damit Business Aktivit ten wirklich einfach zu benutzen sind sollten Sie folgende Eigenschaften besitzen e Sie sollten einen aussagekr ftigen Namen besitzen e Sie sollten in eine passende Kategorie eingeordnet sein damit man sie auch in einer gro en Sammlung gut finden kann e Sie sollten gut und ausf hrlich dokumentiert sein e Sie sollten die richtige Granularit t besitzen Eine l ngere Folge von Aktivit ten f r einen Service Aufruf ist keine gute Granulari t t Ebenso m chte man aber auch nicht eine Aktivit t f r einen ganzen lang dauernden Prozes
193. enge von Parametern zur Konfiguration der SIB Benutzung Ein Parameter hat einen Namen einen Typen aus einer vorgegebenen Menge von m glichen Typen und besitzt immer einen definierten Standardwert e Branches Eine Menge von Branches also beschrifteten ausge henden Kanten Diese repr sentieren die m glichen Ausg nge einer SIB Ausf hrung e Dokumentation Dokumentierende Textbausteine f r SIB allge mein f r jeden Parameter und f r jeden Branch e Icon Ein graphisches Symbol zur Visualisierung des SIBs auf der Zeichenfl che des Prozesses e Label Eine Beschriftung des SIBs die gew hnlich unterhalb des Icons angezeigt wird In Listing 2 1 ist eine einfache SIB Implementierung dargestellt wie dies im jABC umgesetzt wird Auf das jABC als konkrete Implementierung des XMDD Ansatzes wird in Abschnitt 2 6 4 genauer eingegangen In der 45 Dieser Begriff stammt genau wie der SLG Begriff aus dem Telekommunikationsbereich Hier ist also wieder mit Service der gesamte Prozess gemeint MSR05 SIBs sind also unabh ngig von dem Prozess in dem sie benutzt werden sie sind wiederverwendbar Sie sind nicht unabh ngig von dem Service den sie aufrufen 46Ejn POJO ist eine einfache Java Klasse die nicht von einer bestimmten Klasse erben muss oder ein bestimmtes Interface implementieren muss 47UID kurz f r Unique Identifier also eindeutiges Identifizierungszeichen 48also einer konkreten SIB Instanz i
194. ensyntax zu besitzen Das einzige was noch von einem Entwickler hinzugef gt werden muss ist der Implementierungsteil der Aktivit t also der Code der den Service aufruft Die Generierung des Definitionsteils kann auch als Stub Generierung bezeichnet werden da hier nur ein Grundger st erzeugt wird welches noch durch den eigentli chen Ausf hrungscode erg nzt werden muss Dies unterscheidet sich von einer vollst ndigen Generierung bei der auch der Implementierungsteil automatisch erzeugt wird Sehr vorteilhaft ist es wenn die zu integrierenden Services irgendeine Art einer Schnittstellendefinition besitzen Dies kann zum Beispiel ein WSDL Dokument sein Diese Definition kann genutzt werden um voll automatisch komplette Business Aktivit ten also Definitions und Im plementierungsteil zu generieren Die Generate sind in dem Fall also direkt ausf hrbar In diesem Fall konnten also die Vorteile zweier An s tze vereint werden die Einfachheit der Business Aktivit ten und die direkte Verf gbarkeit der technischen Service Aktivit ten Es muss da bei jedoch erw hnt werden dass dieser Ansatz nur bei klaren Eins zu Eins Beziehungen zwischen Aktivit ten und Services funktioniert Die Aktivit t ist also strukturell identisch mit dem Service Dies bedeutet dass m glicherweise komplexe Serviceschnittstellen zu ebenso komplexen Aktivit ten f hren was oft so nicht gewollt ist Eine halbautomatische Generierung mit Hilfe einer W
195. ented Middleware eingesetzt Durch SOA wurde hier die ehemals monolithische EAI Software durch einen ESB Enterprise Ser vice Bus ersetzt welcher sehr modular aufgebaut ist und verschiedenste Aufgaben in der Kommunikation zwischen den einzelnen Applikationen bernimmt Neben dem reinen Datenaustausch ber Nachrichten kom men hier noch Funktionen wie Message Routing Wohin genau muss eine Nachricht bertragen werden Datentransformation z B per XSLT Service Orchestrierung z B ber BPEL Prozesse oder Service Aufrufe ber Adapter z B zum Aufruf der konkreten Endsysteme wie SAP 6WS BPEL Web services Business Process Execution Language 12 2 1 Gesch ftsprozessmanagement ERP einer SQL Datenbank etc hinzu Somit kann SOA heute als eine Weiterentwicklung von EAI gesehen werden wobei Gesch fts Prozesse eine besonders gro e Rolle spielen Ein anderer Bereich der ebenfalls in den 90er Jahren sehr stark wur de ist das Workflow Management Unter Workflows werden hier meist Prozesse verstanden die die Arbeitsabl ufe von Personen beschreiben Sehr oft stehen hier Dokumente im Mittelpunkt so dass es darum geht innerhalb eines DMS Dokumenten Management System die Prozesse zu steuern wie Mitarbeiter mit den Dokumenten umgehen wann also welcher Arbeitsschritt von wem mit einem bestimmten Dokument erle digt werden muss Die 1993 gegr ndete WfMC Workflow Management Coalition besch ftigt sic
196. entierter Architekturen SOA siehe Ab schnitt 2 2 wurden die Prozesse zunehmend als Orchestrierung tech nischer Services gesehen Das bedeutet dass nun die Prozesse direkt ausgef hrt werden sollten und zwar durch eine so genannte Process Engine oft auch Process Server oder Execution Engine genannt Durch das Hinzukommen der direkten Ausf hrung ergaben sich auch di rekt weitere Vorteile wie z B die M glichkeit des Monitoring also der Beobachtung der Prozesse w hrend ihrer Ausf hrung Die Beobachtungs ergebnisse k nnen nun wieder direkt als Grundlage f r die Optimierung der Prozesse benutzt werden Insgesamt ergibt sich so ein Zyklus be stehend aus Modellierung Implementierung Ausf hrung Monitoring Optimierung wieder Modellierung usw Dies ist der so genannte Busi ness Process Management Life Cycle also ein Kreislauf dargestellt in Abbildung 2 1 BPM steht nun also nun f r den umfassenderen Begriff Business Process Management also Gesch ftsprozessmanagement was SARIS Architektur integrierter Informationssysteme 4BPMN Business Process Model and Notation Unter Implementierung fallen hier alle Schritte die evtl noch notwendig sind um den model lierten Prozess ausf hrbar zu machen Oft m ssen noch technische Details hinzugef gt werden um diesen Zustand zu erreichen Im Optimalfall beschr nkt sich dieser Aufwand auf das De ployment auf die Engine 11
197. enutzt werden Die zweite Studie die zu sehr hnlichen Ergebnissen kommt erw hnt ebenfalls die geringe durchschnittliche API Gr e Die einzige komple xe API ist jene der bekannten Verkaufs und Handelsplattform eBay Dies zeigt den typischen Charakter von Business APIs Die Anzahl der Operationen ist relativ hoch und die Datenstrukturen weisen eine kom plexe Struktur auf Die dritte Studie legt seinen Fokus auf die Qualit t der APIs jedoch haupts chlich auf einfache statistische Werte wie die folgenden e Ist der Service wirklich erreichbar e Existiert ein valides WSDL Dokument e Wie gro ist das WSDL Dokument e Welche Programmiersprache wurde f r die Implementierung der Services genutzt 27XML Extensible Markup Language 28 JSON JavaScript Object Notation 26 2 4 Cloud Computing Wenn man das Gebiet der Remote API Untersuchungen noch auf den Business Bereich also im Wesentlichen auf ERP APIs einschr nkt so wird die Zahl der Ver ffentlichungen noch dramatisch kleiner Borovs kiy et al BZKP09 kritisieren das schlechte Design der APIs heutiger ERP Systeme stark Als Alternative schlagen Sie die Benutzung einer Abfragesprache Business Object Query Language vor mit denen auf die Business Objekte des ERP Systems zugegriffen werden soll Die Kri tik an mangelnder Qualit t ist besonders daher sehr bemerkenswert da einer der Co Autoren dieser Ver ffentlichung Hasso Plattner ist Mitbe gr nder und Mitglie
198. ept der Business Objekte nicht kann der Benutzer die angebotenen Funktionen selbst manuell zu Business Objekten zusammenf gen was von da an ebenfalls lokal ge speichert wird Bietet das Backend keine Kategorien an so kann diese Zusatzinformation lokal gespeichert werden Das lokale Repository spei chert also all jene Information die nicht im Repository des Backends vorhanden ist und erweitert das Backend Repository somit zu einem Repository mit in hierarchisch organisierten Business Objekten die wie derum jeweils zugeh rige Methoden also die Services enthalten Im zweiten Schritt muss die konkrete Funktion ausgew hlt werden al so eine Methode des vorher gew hlten Business Objektes Dies ist der konkrete Service der durch ein SIB im Prozessmodell repr sentiert und sp ter zur Laufzeit aufgerufen werden soll In Schritt 3 wird eine bersicht aller Ein und Ausgabeparameter an gezeigt und es muss f r alle optionalen Parameter jeweils ausgew hlt werden ob diese im SIB angeboten werden oder nicht Bei komplexen Datentypen kann es auch optionale Bestandteile des Parameters geben Auch hier muss eine Auswahl durch den Benutzer vorgenommen wer den In dem Fall wird der Parameter samt seiner Bestandteile als Baum dargestellt bei dem jeder Knoten eine Checkbox enth lt Im vierten Schritt ist anzugeben woher die Daten f r die Parameter kommen Dem Benutzer wird hier zun chst die M glichkeit gegeben Default Werte anzugeben Fall
199. er Firma Google So k nnen z B 22http www oracle com technetwork java javamail index html 144 5 2 Manuelle SIB Implementierungen Personendaten in Google Contacts Aufgaben in Google Tasks Termine in Google Calendar und Dokumente in Google Docs bzw Google Drive verwaltet und bearbeitet werden In dem einen Projekt ging es um einen Prozess in dem Kundendaten sukzessive von SAP nach Google Contacts migriert werden und zwar im mer nur nach Bedarf damit keine veralteten Daten blind kopiert werden Dieser Prozess sollte danach noch in zwei weiteren Varianten entwickelt werden und zwar f r Lieferanten sowie f r Mitarbeiter Im zweiten Projekt ging es um Kundenauftr ge die aus SAP herausgele sen und in Tabellenkalkulationen bei Google Spreadsheets transformiert werden sollten In beiden Projekten mussten also sowohl SIBs f r die entsprechenden Google Apps als auch SIBs f r SAP entwickelt werden Google bietet f r seine Apps die so genannten Google Apps Application APIs Dies ist eine Sammlung von APIs f r alle von Google angebotenen We bapplikationen Die API ist REST basiert und bietet zus tzlich Client Bibliotheken mit Namen gdata f r verschiedene Programmierspra chen Java JavaScript NET PHP Python Objective C an In die sem Fall wurde die Java Bibliothek eingesetzt Diese Client Bibliothek deckt in einer gut zu benutzenden Java API das gesamte Leistungsange bot der Google Apps ab Die
200. er Interaction Human Capital Management Hibernate Query Language Human Resource Management Hypertext Markup Language Hyper SQL Hypertext Transfer Protocol Hypertext Transfer Protocol Secure Infrasturcture as a Service International Business Machines Corporation Identifikator Integrated Development Environment International Demonstration and Education System Intuitive und konsistente Benennungen API Anforderung Integration of Business Software Input Output Internet Protocol Internationalisierte Service Namen API Anforderung Informationstechnologie IT Simply works bzw It Simply works Java Application Building Center Java Enterprise Edition Java Standard Edition 261 Listings 262 JAXB JAX WS jBPM JCo JDBC JDO JDOM jETI JIT JNDI JNI JPG JRE JRI JSP jPDL JSON JSR jUEL KES KVD KVS KMU LDAP LTS MDA MDD MDSD MMI Java Architecture for XML Binding Java API for XML Web Services Java Business Process Management Java Connector Java Database Connectivity Java Data Objects Java DOM Java Electronic Tool Integration Just in time Java Naming amp Directory Interface Java Native Interface Joint Photographic Experts Group Java Runtime Environment Java R Interface Java Server Pages Java Process Definition Language Javascript Object Notation Java Specification Requests Java UEL Klare und einfache Struktur API Anforderung Korrekte und vollstandige Dokumentati
201. er eingesetzten Quickbooks Variante QBOE oder QBDE ab Online Edition Die Kommunikation mit Quickbooks Online Edition wird realisiert durch das Senden von qgbXML Dokumenten ber HTTPS Dies ist auf der einen Seite eine plattformunabh ngige und sichere L sung aber auf der ande ren Seite recht umst ndlich da f r jeden Funktionsaufruf wohlgeform te XML Dokumente erzeugt werden m ssen anstatt einfach eine API Funktion aufzurufen PUS Bewertung 0 AZS Bewertung Die Authentifizierung gegen ber QBOE ist u erst umst ndlich Zuerst muss man sich f r das Intuit Developer Network registrieren um ei ne so genannte AppID sowie einen AppLogin zu bekommen Mit die sen Daten kann sich die Client Applikation die mit dem SaaS Angebot 83 3 Untersuchung von Business A PIs 84 kommunizieren will identifizieren Wenn der erste Verbindungsaufbau zu QBOE aufgebaut werden konnte muss ein Connection Ticket erzeugt werden welches diese konkrete Instanz der Applikation identifiziert Um ein ConnectionTicket zu erzeugen muss der Benutzer seinen Benutzer namen und sein Passwort f r die Quickbooks Webseite angeben Dies muss f r jede Sitzung erneut geschehen So wird ein Session Ticket er zeugt welches den Zugriff auf QBOE erm glicht und automatisch aus l uft wenn ber mehr als eine Stunde keine Aktivit t festgestellt wird EAM Bewertung Desktop Edition Auf die Desktop Edition von Quickbooks
202. er traditionell im eigenen Rechenzentrum nichts an der API des Systems ndert war es nicht n tig hier eine separate Evaluation der API vorzunehmen Quickbooks hat mit seiner Online Edition seit jeher eine Cloud L sung im Portfolio Dieses wurde bereits in Abschnitt 3 2 4 behandelt Die API unterscheidet sich im Wesentlichen nicht von der Desktop Variante Le diglich im Bereich der technologischen Aspekte gibt es Unterschiede da die Authentifizierung anders erfolgt Im Folgenden werden drei APIs von Systemen untersucht die man als echte native Cloud Systeme bezeichnen kann Dabei handelt es sich um L sungen die alle urspr nglich direkt f r die Cloud entwickelt wur den Es ist von besonderem Interesse zu untersuchen inwieweit die APIs dieser L sungen qualitativ besser sind als die APIs der traditionellen L sungen Die untersuchten Systeme sind Salesforce Abschnitt 3 3 1 NetSuite Abschnitt 3 3 2 sowie Workday Abschnitt 3 3 3 3 3 1 Salesforce Salesforce sall2a ist ein CRM System Customer Relationship Mana gement welches als SaaS angeboten wird In einer SaaS L sung ist das Web Frontend im besten Falle nicht die einzige Schnittstelle Zus tzlich gibt es fast immer auch eine entsprechende API so dass andere Soft wareprodukte mit diesem System interagieren k nnen Laut Salesforce selbst entstanden schon 2008 57 von deren Datenverkehr durch API Aufrufe Sal08 Besonders durch das starke Wachstum
203. erbung in der Web Oberflache Diese Werbung k nnen dann nat rlich nur die GUI Nutzer sehen Wenn jemand ber Fremdsoftware z B eine App f r ein mobiles Endger t das den Dienst ber dessen API nutzt auf das Angebot zugreift f llt die Werbung nat rlich weg Das wiederum kann dazu f hren dass APIs extrem eingeschr nkt werden Das prominenteste Beispiel hierf r ist wohl die Twitter API Twil3 die es Fremdsoftware immer schwieriger macht auf deren Dienst zuzugreifen Luc12 Insgesamt gibt es beim Cloud Computing noch weitere Herausforderun gen die gemeistert werden m ssen DWC10 Die schwerwiegendste ist wohl das Problem des oft fehlenden Vertrauens gegen ber einem Cloud Anbieter Ein Kunde kann nie ganz sicher sein was ein Cloud Anbieter mit den Daten macht Wichtige und vertrauliche Daten m chten Unter nehmen oft nur ungern in der Cloud platzieren Besonders wenn Daten in den USA gespeichert werden gibt es aufgrund des Patriot Act das Problem dass die US Regierung im Sinne der Terrorismusbek mpfung das Recht hat auf die Daten zuzugreifen Ein weiteres Problem ist die Ausfallsicherheit Es ist schon h ufiger vorgekommen dass technische Probleme dazu gef hrt haben dass ein Cloud Dienst zeitweise nicht zugreifbar war In dem Fall hat man als Kunde keine andere Wahl als zu warten bis der Anbieter das Problem gel st hat Dies kann in unternehmenskritischen Situationen schnell den Verlust von viel Geld oder sog
204. ernommen w rde DVA Bewertung F r Wertevorschlage gibt es drei verschiedene Datentypen Zun chst gibt es die lt picklist gt was einfach eine Menge von Alternativen enth lt Ei ne lt multipicklist gt ist fast das gleiche nur dass mehrere Werte selek tiert werden k nnen Der dritte Datentyp nennt sich lt combobox gt was einer lt picklist gt entspricht bei dem auch ein beliebiger Freitext einge geben werden kann VAA Bewertung Um zu markieren dass ein Parameter optional ist wird das Attribut minOccurs in der WSDL eingesetzt Hier sind mit nur wenigen Ausnah men fast alle Daten optional d h minOccurs 0 Die Taktik fast alle Datenfelder bis auf einige Schliisselfelder als optional zu kennzeichnen ist eine sehr einfache L sung jedoch scheint sie dem Anwender nicht besonders gut zu helfen Hier wird der Benutzer nicht besonders stark gef hrt DOP Bewertung 0 Die API kann befragt werden nach Beschriftungen fiir die GUI die in die jeweils richtige Sprache bersetzt sind Somit ist die gesamte API internationalisiert Zus tzlich gibt es sogar Layout Informationen d h Informationen dar ber wie die Daten in einer externen Applikation am 91 3 Untersuchung von Business A PIs 92 Bildschirm angeordnet werden sollte Diese Funktion kann sehr hilfreich sein besonders wenn man automatisch Benutzeroberfl chen generieren m chte Dann hat man z B die Information dass die Hausnummer in
205. ert hinterlegt werden Business Rule Engines wie z B JBoss Drools k nnen hier eine gute Wahl sein Wenn ein Service Aufruf gegen eine Regel verst t muss dies explizit gemeldet werden In SG06 wird anschaulich dargelegt wie Business Rules einem Unternehmen helfen k nnen eine agile IT auf zubauen Dabei vervollst ndigen sich Business Prozesse und Business Rules gegenseitig Beide zusammen beschreiben sehr gut das Gesamtbild eines Unternehmens Es kann f r den Anbieter einer API sehr sinnvoll sein zus tzlich auch entsprechende Client Bibliotheken in verschiedenen Programmierspra chen anzubieten Damit entf llt schon sehr viel Arbeit f r denjenigen der diese Dienste benutzen m chte Google ist hierf r ein sehr gutes Beispiel Der Anbieter selbst kennt seine API und dessen technische Eigenarten 6http www jboss org drools 117 3 Untersuchung von Business A PIs 118 am besten und ist selbst am besten in der Lage diese zu verstecken Hat die API eine berschaubare Gr e mit einer relativ festen Zahl von Ser vices so kann dies gut gemacht werden Ist die API gr er und m chte man flexibler bei Bedarf konkrete Services einbinden so bietet sich eher ein Ansatz wie bei Salesforce oder bei SAP BAPI und JCo an die zwar eine Client Bibliothek anbieten welche jedoch nur technisch ausgerichtet ist KAPITEL 4 Service Integration in BPMS Die Integration von Services geschieht je nach verwendeter Prozes
206. es keinerlei Gewahrleistung SSD Bewertung 3 2 3 2 API Design Die Struktur der WSDL Dateien ist sehr klar und einfach gehalten Zu jeder Page existiert genau eine WSDL Datei Die gew hlten Benennun gen sind dabei intuitiv und konsistent Um zu veranschaulichen wie die Services Dynamics NAV aufgebaut sind folgen hier zwei Beispiele Der Service zum Lesen von Kundendaten bekommt die Kunden ID als Einga be Diese einfache Zeichenkette ist nicht in berfl ssigen XML Elementen geschachtelt Der R ckgabewert dieses Services ist ein Element des Ty pen customercard welcher als complex type im XML Schema der API definiert ist Der Dienst zum Hinzuf gen eines neuen Kunden ist in der gleichen WSDL Datei definiert Als Eingabe wird hier das gerade schon erw hnte XML Element customercard erwartet Hier kann also die R ckgabe der Lesefunktion direkt wieder als Eingabe der Schreib funktion dienen 3 2 Traditionelle on premise ERP Systeme IKB Bewertung KES Bewertung Leider sind die Page Services nicht dokumentiert Es existiert lediglich eine allgemeine Dokumentation der Standard Operationen create read update etc in den Hilfetexten zu Dynamics NAV jedoch nicht zu den Operationen bezogen auf ein bestimmtes Business Objekt Auch alle vor kommenden Parameter und komplexen Datentypen sind nicht dokumen tiert KVD Bewertung 3 2 3 3 Technologie Die Benutzung von Web Services verspri
207. esch ftsprozessma nagements verschiedene Nutzergruppen mit sehr unterschiedlichen F higkeiten Kenntnissen und Neigungen gibt Der Business oder Anwen dungsexperte kennt die Prozess im Unternehmen oder im Markt wei oft einfache Skript Sprachen wie z B JavaScript oder Groovy Die schnelle Entwicklung einer oft wenig getesteten und nur halb fertigen aber lauff higen L sung die als Basis zur Kommunikation mit dem Kunden dienen kann 121 4 Service Integration in BPMS jedoch nicht wie ein Service implementiert wird Ein IT Experte kennt wiederum den Prozess nicht kann jedoch die Services implementieren die vom Anwendungsexperten verlangt werden Diese beiden Rollen m s sen klar getrennt werden um Prozess Design mit keinem oder geringem technischen Wissen zu erm glichen Skript Aktivit ten sind in dieser Hinsicht sicherlich ungeeignet Kein Anwendungsexperte m chte selbst Programmcode in die Prozesse einf gen Am Misserfolg von BPELJ BGK 04 einer offiziellen Erweiterung f r WS BPEL 2 0 OAS07 kann man gut erkennen wo die Probleme des Ansatzes insgesamt liegen Hier wurde es erlaubt Java Code direkt in den XML Code von BPEL einzuf gen um m glichst flexibel beliebige Funktionalit ten aus BPEL heraus aufzurufen Beide oben erw hnten Nachteile gelten hier so dass es diese Spezifikation nie wirklich in die Praxis geschafft hat Howard Smith Smi04 welcher ebenfalls auf die genannten Nachteile von BPELJ ei
208. et al f gen letztlich noch eine eigene pragmatische Definition hinzu any well defined interface that defines the service that one component module or application provides to other soft ware elements 2 3 Application Programming Interfaces APIs Diese Definition kommt dem heutigen API Begriff im SOA Umfeld wohl am n chsten da hier im Zentrum steht dass ein Software Konstrukt seine Funktionen f r die Au enwelt beschreibt Die Gesamtheit der be schriebenen Funktionen ist also das was die Software anbietet Dieser Angebotscharakter ist ein grundlegendes Konzept von APIs Clarke Cla04 f hrt an dass hierf r in der Psychologie der Begriff Affordanz engl affordance gepr gt wurde Dieser geht zur ck auf James J Gib son Gib77 wonach Objekte eine bestimmte Affordanz besitzen also einen Angebotscharakter Zum Beispiel bietet ein Stuhl an dass man sich darauf setzt und eine T rklinke dass man sie herunter dr ckt um die T r zu ffnen Es ist dabei wichtig dass ein Benutzer auch immer erkennt was angeboten wird Es ist grunds tzlich schlecht wenn ein Angebot existiert es jedoch nicht wahrgenommen wird Clarke Cla04 nennt dazu ein Beispiel aus dem GUI Design und zwar den Start Knopf in Microsoft Windows dem man nicht unbedingt ansieht dass man dar auf klicken muss um das System herunterzufahren Ein gutes konsisten tes m glichst einfaches und intuitives Design
209. et werden oder auf HTTP basic authentication gesetzt werden oder auf die Benutzung von SSL Zertifikaten Das System wel ches von uns evaluiert wurde setzte HTTP basic authentication ein was eine gebr uchliche Technologie ist aber ohne HTTPS relativ unsicher da Benutzername und Passwort unverschl sselt verschickt werden nur Base64 kodiert was so unsicher ist wie Klartext AZS Bewertung 0 EAM Bewertung 3 2 2 4 Zus tzliche Informationen Die Dokumentation der Services ist lediglich ber die Webseite zug ng lich Es ist also nicht vorgesehen diese Informationen direkt per API abzufragen DVA Bewertung Es gibt keine Unterst tzung fiir Wertevorschl ge WVA Bewertung Optionale Parameter sind als solche gekennzeichnet ebenso optionale Teile komplexer Parameter DOP Bewertung 3 2 3 Microsoft Dynamics NAV Dynamics NAV Mic12 ist ein ERP System von Microsoft speziell f r kleine und mittlere Unternehmen Es wurde ehemals unter dem Namen Navision von der gleichnamigen d nischen Firma entwickelt und ver trieben welche 2002 von Microsoft bernommen wurde In Dynamics NAV werden alle Business Objekte durch sogenannte Pages darge stellt welche eine Menge von Standardoperationen enthalten die sich auf 3 2 Traditionelle on premise ERP Systeme das Objekt beziehen Die Pages sind also vergleichbar mit den Business Objekten in SAP Jede Page Operation kann als We
210. ete Cancel nur f r Personal Address RSD Bewertung Die Schnittstellen werden durch WSDL Dateien beschrieben Dies ist zwar eine sehr technische Sicht auf die Services aber sie ist immer kor rekt da die aktuelle Implementierung direkt auf dieser Information ba siert gt KVS Bewertung Die Anzahl der Services ist gewaltig Man sollte meinen dass alles was man sich vorstellen kann auch durch die API abgedeckt wird Leider ist die Abdeckung der berpr ften Business Objekte jedoch nicht vollst n dig 33 von 50 Punkte wie es in Tabelle 3 2 zu sehen ist VZB Bewertung o 73 3 Untersuchung von Business A PIs 74 Bei eSOA wird die Stabilit t der Schnittstellen auf die gleiche Weise erreicht wie bei der oben besprochenen BAPI Versionierung wird erreicht durch die Benutzung entsprechender Suffixe V1 V2 etc f r die Service Namen SSD Bewertung 3 2 2 2 API Design Jeder Service in eSOA hat einen relativ intuitiven Business Namen sowie eine technische Bezeichnung Beide sind eindeutig Zum Beispiel gibt es einen Service namens Create Customer mit dem technischen Be zeichner CustomerERPCreateRequestConfirmation_In Manchmal kann es verwirrend wirken dass das selbe Ziel ber mehrere Wege erreichbar ist Zum Beispiel gibt es einen Service zum ndern von Kundendaten und einen zum Aktualisieren des selbigen Mit beiden Services kann man das gleiche erreichen Die Benen
211. eutet dies demnach dass regelm ig sehr viel Arbeit mehrfach erledigt wird Durch die Gleichf rmigkeit der API bietet es sich also an diesen Prozess zu automatisieren In der Diplomarbeit von David Karla wurde daher ein SIB Generierungstool f r die SAP BAPI entwickelt basierend auf den oben beschriebenen Konzepten n mlich zum einen des Einsatzes eines Wizards zum anderen der Template basierten Code Generierung Als Template Engine wurde hier Apache Velocity eingesetzt Als Grundlage diente hier die in 5 2 2 beschriebene SAP Lib die noch etwas erweitert wurde So musste der Code nicht f r die BAPI also JCo direkt sondern f r die SAP Lib generiert werden was den Code deutlich vereinfacht und k rzer h lt Auf Basis der SAP Lib wurde dann zun chst eine Sammlung statischer manuell implementierter technischer SIBs erstellt die Grundfunktionen bereitstellen z B zum Aufbau und Abbau der Verbindung zu einem SAP ERP Im Unterschied zu z B SOAP Webservices bei denen bei jedem Aufruf einzeln eine Authentifizierung stattfindet muss bei der Benutzung der BAPI ber JCo zun chst eine Verbindung aufgebaut werden dann kann diese Verbindung f r beliebig viele Service Aufrufe genutzt werden und schlie lich muss die Verbindung wieder abgebaut https wizard dev java net bzw https today java net pub a today 2006 02 28 using wizard api html 40http velocity apache org 155 5 Service Integration im jABC 156 werde
212. eweils ganz konkret bewertet und nebeneinandergestellt 3 4 1 Allgemeine Konzepte Eines haben alle L sungen gemeinsam Es wird grunds tzlich ber etwas wie Business Objekte gesprochen Diese Objekte entsprechen ungef hr den Tabellen einer relationalen Datenbank oder um es genauer zu sagen den Entities in einem Entity Relationship Modell Che76 Die Einf h rung des Konzeptes der Business Objekte um Funktionen bzw Services zu gruppieren ist sehr nat rlich und kann auch von Menschen ohne IT Fachwissen verstanden werden Au erdem muss erw hnt werden dass diese Gruppierung keine Einschr nkung der M chtigkeit bedeutet Jeg liche Daten oder Funktionen k nnen durch eine Operation bereitgestellt werden die zu einem Business Objekt geh rt selbst komplexe Abfragen 2 4im propriet ren Workday Namensraum xmins wd urn com workday bsvc 101 3 Untersuchung von Business A PIs 102 die auch Beziehungen zwischen mehreren Datenbank Entities ber ck sichtigen In diesem Fall muss der Designer der API entscheiden zu wel chem Business Objekt diese Funktion am besten passt Alternativ kann auch f r solche Zwecke ein zus tzliches k nstliches Business Objekt eingef hrt werden welches also nicht direkt nur einer Datenbank Tabelle entspricht Obwohl es immer Business Objekte in den APIs der untersuchten Pro dukte gibt kann die Art und Weise sehr unterschiedlich sein wie diese organisiert und technisch
213. f hrung in die IT Landschaft des Unternehmens e Jedem Mitarbeiter muss ein Arbeitsplatz B ro Schreibtisch Stuhl bereitgestellt werden e Jedem Mitarbeiter muss seine entsprechende Computer Hardware ausgeh ndigt werden e Es m ssen Visitenkarten gedruckt werden Ein daf r geeigneter Drucker ist im Unternehmen selbst vorhanden e Der Mitarbeiter muss die korrekten IT Rechte auf allen Servern im Unternehmensnetzwerk bekommen e Die Mitarbeiterdaten m ssen im ERP System eingetragen werden da hier ber z B die monatliche Abrechnung erfolgt Als ERP System ist Microsoft Dynamics NAV im Einsatz 5 4 2 Umsetzung Bei der Umsetzung des in Abschnitt 5 4 1 beschriebenen Szenarios wird nun so vorgegangen dass zun chst analysiert wird welche Aktivit ten ben tigt werden Da hier eine Umsetzung mit dem jABC beschrieben wird bedeutet dies also eine Definition der Menge der SIBs F r jedes SIB muss dann entschieden werden ob es schon vorhanden und in die ser Form direkt benutzbar ist oder ob es noch erstellt werden muss In letzterem Fall muss dann weiter entschieden werden auf welche Art und Weise das SIB erstellt werden soll ob es zum Beispiel automatisch oder halbautomatisch generiert werden kann Um die Menge der ben tigten SIBs zu identifizieren ist es am einfachs ten zun chst den Prozess mit entsprechenden Platzhaltern zu modellie ren also mit SIBs die zun chst einmal keine Funktion haben und erst sp ter durc
214. f r vor genommene manuelle Entwicklungen von Business Aktivit ten als SIBs beschrieben in Abschnitt 5 3 5 geht es dann um die Generierung von SIBs aus APIs mittels des Frameworks InBu 5 2 Manuelle SIB Implementierungen Der gr te Teil der existierenden SIBs wurde manuell erstellt Diese Her angehensweise ist besonders dann zu empfehlen wenn die zu integrie rende API von berschaubarer Gr e ist Auch bei extrem uneinheitlich gestalteten APIs kann dies nach wie vor der geeignetste Weg sein Au tomatische oder halbautomatische Generierungen wie sie in Abschnitt 5 3 beschrieben werden spielen erst dann ihre Vorteile aus wenn sich der Zusatzaufwand f r die Entwicklung der Generatoren durch entspre chend gro e APIs auch auszahlt Und selbst bei sehr gro en APIs ist der erste Schritt zur Einarbeitung und praktischen Analyse der API meist die manuelle Implementierung kleinerer Beispiele Diese Beispiele k n nen dann sehr gut als Grundlage f r die Automatisierung z B mittels der in Abschnitt 5 3 1 beschriebenen Template Engines dienen 133 5 Service Integration im jABC 134 5 2 1 Office SIBs Neben ERP Systemen stellen Ofiice L sungen wie MS Office oder Open Office die wohl wichtigste Kategorie von Anwendungssoftware in Unter nehmen dar Bei Office L sungen handelt es sich dabei um Pakete die typische B ro Software wie eine Textverarbeitung eine Tabellenkalku lation eine Pr sentationssoftware und oft
215. fentliche API des Projektes definiert und bereitstellt Dazu ist folgendes zu lesen 25Konkret werden auf Serverseite die Technologien EJB 3 und JDO 3 eingesetzt 26RMI Remote Method Invocation 27https www jfire org modules phpwiki index php Architecture 2829 107 3 Untersuchung von Business A PIs Lhe idea is to integrate this project in future to ADempiere stable version Demnach ist das Projekt momentan noch nicht in einer stabilen Version verf gbar Das ERP Projekt xTuple xTul3 welches sich in seiner freien Variante Postbooks und in seiner kommerziellen Variante OpenMFG nennt wurde mit C Qt entwickelt und setzt als Datenbank ein PostgreSQL ein Die API des Projektes ist eine technische Besonderheit da hier auf Datenbank Views und SQL aufgesetzt wird In den Dokumentationen ist entsprechend dokumentiert ber welche SQL Statements man an die gew nschten Informationen gelangt oder entsprechende Datenmanipula tionen vornimmt Dieser Integrationsansatz ist dabei u erst kritisch zu betrachten und auch nur mit Abstrichen berhaupt als API zu bezeich nen F r eine einfache Integration wie sie in Abschnitt 5 3 5 beschrieben wird ist diese API ungeeignet Die kleine PHP basierte L sung webERP bietet eine API ber XML RPC Dav00 ant eine sehr einfach gehaltene plattformunabh ngige RPC L sung die wie SOAP XML ber HTTP versendet XML RPC ist quasi als Vorg nger von SOAP
216. fernen oder das Umbenennen von Operationen das ndern von Parametern einer Operation oder das ndern der Struktur eines komple xen Datentyps Operationen werden normalerweise nicht direkt gel scht sondern stattdessen als deprecated markiert Nach einer Weile werden sie dann schlie lich irgendwann gel scht SSD Bewertung o 3 3 3 2 API Design Leider ist das Benennungsschema der Workday API nicht sehr konsis tent Zum Beispiel gibt es zum einen Operationen mit Add_ Update als Pr fix und zum anderen Put Operationen Beide f hren exakt das selbe durch Sie berpr fen zun chst ob ein Objekt existiert Wenn ja wird es aktualisiert wenn nicht neu angelegt Ein anderes Beispiel ist dass es manchmal f r sehr hnliche Aktionen verschieden benannte Ope rationen f r verschiedene Business Objekte gibt So gibt es zum Beispiel sehr viele verschiedene Pr fixe die alle irgendwie mit dem L schen zu tun haben Cancel Dissolve End Inactivate Remove Re scind Terminate Unpost Hier k nnte man nat rlich immer noch argumentieren dass es hier wenn auch manchmal subtile Unterschie de in den Bedeutungen gibt Dies wird jedoch schon schwieriger wenn man auf die Services zum ndern des Datenbestands schaut Adjust 21 Angepasstes Bewertungsschema 28 35 18 27 0 0 17 22https community workday com node 204 98 3 3 Cloud basierte ERP
217. formationssystem existiert also alle Daten an einem Ort vorgehalten werden Vorher war die Situation noch problematischer F r jeden Einzelzweck wurde entsprechende Individualsoftware entwickelt also z B ein System f r das Lager eines f r die Produktion und ei nes f r das Marketing Dies kann schnell zu Dateninkonsistenzen f hren meist einhergehend mit einer unn tigen Dopplung von Arbeit Die Ein f hrung von ERP Systemen als All in One L sung brachte nicht ganz den erhofften Erfolg Nach wie vor existieren nicht alle Daten in diesem System Vieles wird zum Beispiel gerne in Tabellenkalkulationen ver waltet besonders wenn L sungen in sehr kurzer Zeit entwickelt werden sollen und wenn Personen involviert sind die selbst keine IT Fachleute sind Au erdem hat man mit einem ERP System nun einen monolithi schen Block von genau einem Hersteller der den Anspruch erhebt alles in sich zu vereinen auch das gesamte Gesch ftswissen in Form von Ge 1 Einleitung sch ftsprozessen Somit ist man mit einem ERP System sehr festgelegt auf den jeweiligen Hersteller und ein Umstieg auf andere L sungen wird zunehmend schwieriger KVD00 Diese Situation wird meist mit dem Begriff Vendor Lock in beschrieben Mit Verschmelzungen und gegen seitigen bernahmen Merger and Aquisitions kommt es au erdem oft dazu dass mehrere ERP Systeme in einem Unternehmen existieren Diese oft sehr unterschiedlichen und somit inkompatiblen Sy
218. formunabh ngig und sicher und die Authentifizierung geschieht ber ein entsprechendes User Token Die API bietet mehrere Zusatzinformationen an Neben der vorbildlichen https developer amazonservices de http developer ebay com common api und https www x com developers ebay 113 3 Untersuchung von Business A PIs Nutzung der Dokumentations Tags in der WSDL werden auch Werte f r alternative Auswahlen angeboten Optionale Parameter sind entspre chend gekennzeichnet und Fehlermeldungen werden in der gew nschten Sprache zur ckgegeben Insgesamt ist die API von Ebay also sehr positiv zu bewerten Sie ist hn lich vorbildlich gestaltet wie die meisten beschriebenen Cloud Dienste Besonders im Vergleich zur Amazon Marketplace API sticht die Ebay API positiv hervor Die Vermutung die APIs k nnten recht hnlich sein konnte absolut widerlegt werden Die APIs verfolgen grunds tzlich sehr verschiedene Ans tze Au erdem schneidet die Amazon API in fast allen Punkten schlechter ab als die API von Ebay 3 6 Entwicklungsleitfaden f r Business APls Nach der Untersuchung der diversen Business APIs gelangt man als Fa zit zu einer ganzen Sammlung von Ratschl gen wie eine solche API im besten Falle aussehen sollte und auch welche Wege nicht eingeschlagen werden sollten Aus diesen Ratschl gen wurde der nun folgende Entwick lungsleitfaden erarbeitet Dieser ist sowohl anwendbar auf existierende Applikationen ohne API oder ne
219. g o Um es einfacher zu machen den richtigen Service zu finden sind sie in Kategorien einsortiert die jeweils ein WSDL Dokument besitzen Re lativ ungew hnlich ist die Tatsache dass manche Business Objekte auf verschiedene Kategorien aufgeteilt sind Manchmal ist es sogar so dass ein bestimmter Service gleich in mehreren Kategorien auftaucht KES Bewertung 0 Die Dokumentation ist sehr gut und scheint ebenfalls komplett zu sein Fehler konnten nicht gefunden werden KVD Bewertung 3 3 3 3 Technologie Workday setzt die plattformunabh ngigen Standards WSDL und SOAP ein PUS Bewertung Die Sicherheit der Services wird gew hrleistet durch den strikten Einsatz von HTTPS SSLv3 TLS Au erdem wird ein System zur Perimeter level defense and network intrusion prevention eingesetzt Sogar die Werte in der Datenbank werden verschl sselt AES 256 Bit Workday hat ein Benutzerrechtemodell welches sie selbst als konfigurierbar und pr ff hig auditable bezeichnen Es ist zertifiziert durch Audits wie ISO 27001 SAS70 Type II und Safe Harbor AZS Bewertung Leider hatten wir fiir diese Evaluierung kein laufendes Workday System zur Verf gung sondern konnten uns nur auf die Informationen der Do kumentation und die Workday Webseite berufen Daher konnte auch die Authentifizierungsmethode nicht berpr ft werden 3 3 3 4 Zus tzliche Informationen Die Workday WSDL Dokumente mach
220. g DICSO ist auch keine gute Wahl da diese zum einen kaum Featu res bietet zum anderen au erhalb der Microsoft Welt nicht bekannt ist Eine gute Idee k nnen Meta Services sein wie sie in Sch10 beschrieben werden Dies sind Services die Informationen ber Ser vices liefern k nnen Rainer Schmidt Sch10 erweitert dies sogar noch dahingehend dass die Services auch modifizieren k nnen al so neue Services zu deployen alte zu entfernen etc Meta Services sind also Services die mit Service Informationen hantieren Ein Meta Service kann zum Beispiel die Liste aller Services zur ckge ben Meta Services k nnen auch weitere Informationen liefern also alles aus der Kategorie zus tzliche Informationen wie Dokumen tation internationalisierte Strings Regeln etc Manchmal ist es 75Nicht gemeint sind hier Meta Services wie zum Beispiel bei Meta Suchmaschinen oder hnli chen Meta Diensten wie zum Beispiel in LKRP 08 oder LWC07 wo mehrere gleichartige Services zu einem gr eren oder abstrakterem zusammengefasst werden 116 3 6 Entwicklungsleitfaden f r Business A PIs hier alternativ jedoch einfacher Zusatzinformationen strukturiert und einheitlich in den documentation Tags der WSDL zu plat zieren Auch die SAP BAPI enth lt Beispiele f r Meta Services zum Beispiel f r die F1 und F4 Hilfen In beiden F llen sind dies Services die den Namen von anderen Services bergeben bekom men und dementsprechen
221. gen stellte sich heraus dass die Entwicklung eige ner Aktivit ten zur Service Integration und damit die Bereitstellung von Business Aktivit ten sehr wohl m glich ist und weder besonders schwie rig noch aufw ndig ist Wie bei anderen Prozess Frameworks muss zur Realisierung einer Akti vit t eine Java Klasse angelegt werden die ein gegebenes Interface im plementiert Zus tzlich existiert eine abstrakte Implementierung dieser Schnittstelle welche zur Verwendung empfohlen wird da hier viele Din ge fertig implementiert sind die man sonst immer wieder neu erstellen m sste Der auszuf hrende Code muss auch hier wieder in eine bestimm te Methode des Interfaces eingef gt werden Die Oberklasse besitzt ein Feld welches mit protected gekennzeichnet ist und dadurch auch in der Aktivit tenimplementierung benutzt werden kann ber dieses Feld kann auf verschiedene Dinge zugegriffen werden die w hrend der Aus f hrung ben tigt werden z B ein dataContext um Eingabedaten zu lesen oder Ausgabedaten zu schreiben oder das runtimeEnvironment um die Prozess Engine zu informieren dass die Ausf hrung der Aktivi t t beendet ist Eine fertige Aktivit t muss in eine jar Datei gepackt werden welche dann im Activity Repository registriert werden muss Letzteres ist eine ei genst ndige Server Anwendung die ein zentrales Repository f r alle Ak tivit ten bereitstellt Das Deployment wird ber den so genannten Re posi
222. genseitig Die Struktur der APIs beeinflussen wie Teams gebildet werden m ssen und jedes Team definiert wieder f r sich APIs als Schnittstelle zu den anderen Teams Die Gesetzm igkeit dieses Zusammenhangs wird auch Conway s law genannt SRC 04 Par72 172 B Module genannt man k nnte aber auch Teilprojekte oder Unterprojekte sagen 21 2 Grundlagen Neben dem Beherrschen einer Programmiersprache ist die Kenntnis und der richtige Umgang mit APIs heute die Kernkompetenz zur Ent wicklung von Software schlechthin Standardaufgaben m ssen immer sel tener selbst entwickelt werden da es f r sehr viele Anwendungsf lle be reits fertige Bibliotheken Frameworks oder Services z B in der Cloud gibt Diese Elemente werden dabei alle ber ihre APIs benutzt Ohne den Einsatz von Fremdsoftware ist ein Softwareprodukt von relevanter Gr e heute nicht mehr vorstellbar Der Ausspruch auf den Schultern von Riesen stehen der Newton zugeschrieben wird kommt hier voll zum tragen Es w re deutlich aufw ndiger und besonders fehleranf l liger wenn man immer wieder die gleichen Probleme aufs Neue l st Diesen Wandel in der Softwareentwicklung kann man mit Surfen statt Schwimmen umschreiben Anstatt sich abzum hen und trotzdem nur langsam voran zu kommen schwimmen stellt man sich auf ein Surf brett und nutzt die vorhandenen Wellen Nat rlich muss man zun chst einmal lernen wie dies geht Das gi
223. gigkeit von BPMN macht sich hier darin be merkbar dass nur sehr wenig zum Thema Service Integration ausgesagt wird Prozesselemente die einen Vorgang enthalten also irgendetwas was eine bestimmte Zeit in Anspruch nimmt hei en in BPMN Ak tivit ten Dieser Begriff wird im Folgenden auch allgemein d h auch in anderen Prozessbeschreibungssprachen als BPMN verwendet Eine Aktivit t kann in BPMN eine Aufgabe engl Task oder ein Teilpro zess engl sub process sein Eine Aufgabe ist wiederum zum Beispiel eine Benutzeraufgabe engl User Task eine Skript Aufgabe Script Task oder eine Service Aufgabe engl Service Task Da sich die deut schen Bezeichnungen im allgemeinen Sprachgebrauch in der Communi ty nicht durchgesetzt haben werden im Folgenden die englischen Vari anten verwendet Wie der Name suggeriert sind Service Tasks die f r die Service Integration vorgesehenen Elemente Deren Struktur ist sehr einfach gehalten Neben der Notation wird lediglich definiert dass ein Service Task aus folgenden Elementen besteht e name Der Name e inMessageRef Die Eingabedaten e outMessageRef Die R ckgabedaten e errorRef Informationen ber m gliche Fehler e implementationRef Die Angabe der verwendeten Service Technologie Die Ausf hrungssemantik der BPMN Service Tasks wird in einem recht kurzen Abschnitt erkl rt der folgendes aussagt Service Task Upon activation the data in the
224. gkeiten zum eingesetzten Framework dem jABC siehe Abschnitt 2 6 4 mehr Neben den regul ren SIBs die externe Services aufrufen existiert noch eine weitere Art von SIBs die so genannten Control SIBs Diese SIBs dienen zur Beeinflussung des Kontrollflusses steuern also ihre eige ne Ausf hrungsumgebung statt externer Services Control SIBs k nnen demnach mit Kontrollstrukturen von Programmiersprachen verglichen werden Control SIBs werden zum Beispiel f r die Erstellung hierarchi scher Modelle f r die Modellierung paralleler Pfade oder f r die Ausl sung oder die Behandlung von Ereignissen angeboten Das MakroSIB ist ein SIB welches eine Referenz auf ein SLG darstellt Dadurch werden hierarchische Modelle m glich Das GraphSIB ist ei ne Variante des MakroSIBs mit dem Unterschied dass hier ein eigener Ausf hrungskontext f r die Ausf hrung des Untermodells benutzt wird Die Kontexte sind dabei verbunden so dass insgesamt ein hierarchischer Kontext entsteht bei dem Unterprozesse immer auf den aktuell lokalen Kontexte sowie alle bergeordneten Kontexte zugreifen k nnen Da durch MakroSIB und GraphSIB hierarchische SLGs erstellt werden besitzen somit nicht nur SIBs Parameter und Branches sondern auch die SLGs Bei letzteren hei en diese dann Modell Parameter und Modell Branches Dabei werden f r einen gesamten SLG globale Parameter und Branches definiert die jeweils mit Parametern und Branches von S
225. gleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 3 Bonita Open Solution BPMN 2 0 Bonita Open Solution Bon13 ist ein weiteres Open Source BPMS wel ches als Prozesssprache BPMN 2 0 einsetzt Wie bei jBPM und Activiti handelt es sich um ein Paket aus Prozessengine Modellierungstool und zus tzlichen Hilfstools 8oder Expression Language egal ob Skript Aktivit t technische Service Aktivit t oder Business Aktivit t 185 6 Service Integration in anderen BPMS Die Integration von Services wird hier mit mit so genannten Connec toren umgesetzt Ein Connector verbindet einen Task bzw eine Ak tivit t oder einen Prozess bzw einen Pool mit einem externen Infor mationssystem Man kann also f r verschiedenste Situationen definieren dass ein externer Service aufgerufen wird e Beim Betreten eines Tasks e Beim Verlassen eines Tasks e Beim Starten eines Prozesses e Beim Verlassen eines Prozesses Das Connector Prinzip stimmt wieder nicht exakt mit dem berein was in der BPMN Spezifikation zu Service Tasks definiert wird Das liegt wohl daran dass Bonita als Software deutlich lter ist als BPMN Vor BPMN wurde eine eigene propriet re Prozesssprache eingesetzt Ein Connector wird vom Prozessmodellierer benutzt indem er zun chst zu einem Task oder Pool hinzugef gt wird Anschlie end erscheint ein Wi zard zur Konfiguration des Connectors Dieser Wizard entspricht dem nach vo
226. glich dass eine Samm lung von SIBs speziell f r einen Benutzer angeboten wird Genau f r dessen Anforderungen k nnen die SIBs hier in Kategorien und Unter kategorien einsortiert werden Auch die Benennungen der SIBs k nnen hier an das gewohnte Vokabular des Benutzers angepasst werden Es existiert keine Beschr nkung wie oft ein SIB in einer Taxonomie auftau chen darf Daher ist es auch m glich in einer Taxonomie die SIBs nach mehreren Kriterien zu sortieren Es k nnen also mehrere Taxonomien gleichzeitig nebeneinander in einer Taxonomie existieren Um die korrekte Modellierung zu vereinfachen Fehler bei der Benutzung der SIBs also m glichst zu vermeiden gibt es das Plugin LocalChecker Hiermit k nnen f r SIBs lokale Regeln und Constraints definiert werden Diese Regeln k nnen zum Beispiel Wertebereiche f r Parameter oder die zwingend notwendige Nutzung bestimmter Branches sein 45 2 Grundlagen 46 Bei der Bearbeitung von SLGs im jABC ist die Situation denkbar dass die entsprechenden SIB Klassen nicht zur Verf gung stehen man das Modell jedoch trotzdem anschauen und bearbeiten m chte Dies kann zum Beispiel der Fall sein wenn nur die reine SLG Datei ohne das umge bene Projekt mit den projektspezifischen SIBs und Java Bibliotheken zur Begutachtung weiter gegeben wird Dank eines speziellen Mecha nismus dem Proxy SIB ist genau dies m glich Beim Laden eines SLGs im jABC werden alle SIBs deren SIB Klas
227. grunds tzlich direkt im Hintergrund entspre chender Code generiert Hier werden zwei verschiedene Sprachen einge setzt wobei optional eingestellt werden kann ob nur eine von beiden Sprachen oder beide generiert werden Zum einen gibt es hier die XML basierte Beschreibungssprache XAML zum anderen C Soll der Pro zess ausf hrbar sein so muss in jedem Fall C generiert werden Obwohl direkt Code generiert wird ist es trotzdem m glich mit einem graphi schen Debugger vergleichbar mit der Tracer GUI des jABC durch den Prozess zu navigieren Entsprechend notwendige Voraussetzungen daf r werden direkt mit in den Code hinein generiert Jede einzelne Activity in einem Prozess ist wieder in C implementiert Es ist hier also auch m glich eigene Aktivit ten zu implementieren Zur Kommunikation mit externen Services wird haupts chlich auf WCF zur ckgegriffen neben WF einem weiteren integralen Bestandteil von NET in diesem Fall zur Kommunikation ber Web Services Skript Aktivit ten In WF gibt es eine so genannte Code Activity Damit kann C Code direkt in den Workflow eingebettet werden Somit entspricht dies einer Skript Aktivit t Technische Service Aktivit ten Es existiert zwar eine Sammlung von fertigen Activities davon sind jedoch die meisten Kontrollflussaktivi t ten vergleichbar mit den Control SIBs des jABC also zust ndig f r 46X AML Extensible Application Markup Language 47WCF Windows Commun
228. h funktionsf hige SIBs ersetzt werden In Abbildung 5 5 ist der Haupt SLG dargestellt Das zweite SIB Mitarbeiter schulen ist ein GraphSIB referenziert also einen weiteren SLG in diesem Fall den dreischrittigen SLG aus Abbildung 5 6 9 der SLG auf der obersten Ebene der Hierarchie erkennbar am gr nen Punkt 172 9 4 Anwendungsbeispiel Mitarbeiterdaten ein y n Mitarbeiter schulen Arbeitsplatz bereitstellen ae S N Ni b g ES Zugriffsrechte auf ok gt Computer Hardware Visitenkarten In Dynamics NAV t i aush ndigen erstellen und drucken Servern setzen eintragen Abbildung 5 5 SLG Einstellung eines neuen Mitarbeiters amp amp Allgemeine Einf hrung Sicherheitsunterweisung IT Einf hrung Abbildung 5 6 SLG Untermodell Mitarbeiter schulen Das erste SIB Mitarbeiterdaten eingeben bewirkt die Anzeige ei nes Formulars in das die pers nlichen Daten des Mitarbeiters Name Adresse Geburtstag eingetragen werden Das beste Ergebnis wird hier mit einem manuell implementierten Formular erzielt Alternativ kann auch ein GUI Generierungsframework eingesetzt werden Speziell f r Formulare gibt es hier eine ganze Reihe von Tools F r einen ein fachen Prototyp w re hier sogar eine Reihe von einfachen Input SIBs aus den Common SIBs ausreichend die jeweils in einem kleinen Dialog nach einem einzelnen Wert fragen Diese
229. h mit genau diesem Thema Sie definierte 1995 das so genannte Workflow Reference Model H 95 siehe Abbil dung 2 2 eine Standard System Architektur f r Workflow Management Systeme Diese ist so auch heute immer noch g ltig f r alle Gesch ftspro zessmanagementsysteme Da in dieser Arbeit ausschlie lich ausf hrbare Gesch ftsprozesse betrachtet werden k nnen hier demnach die Begrif fe Workflow und Gesch ftsprozess synonym verwendet werden Man hat damit also neben der dynamischen Sicht des BPM Zyklus auch eine statische Sicht auf die beteiligten Systeme und wie diese zusammenh n gen Im Zentrum steht dabei die Engine welche ber verschiedene In terfaces mit anderen Systemen interagiert Definiert werden die Prozesse in einem entsprechenden Modellierungstool der Workflow kommuniziert mit den beteiligten Endnutzern ber entsprechende Clientsoftware bzw eine Worklist der Workflow kann externe Applikationen aufrufen und mit anderen Engines kommunizieren Die WfMC hat mit XPDL XML Process Definition Language auch ihre eigene Prozessdefinitionsspra che definiert welche jedoch heute keine gro e Bedeutung mehr hat Zwi schenzeitlich wurde noch versucht XPDL als Serialisierungsformat f r die sehr erfolgreiche Notation BPMN bis Version 1 2 Business Process Modeling Notation zu etablieren Dies ging jedoch schief da BPMN mit Version 2 0 ein eigenes Serialisierungsformat bekam Die sehr manuell
230. he Abschnitt 2 3 Es ist jedoch auch keine gro e Aufgabe zus tzlich eine REST basierte Schnittstelle mit der gleichen Struktur anzubieten Dies hat Salesforce zum Beispiel vorgemacht Diese kann deutlich ein facher als SOAP von mobilen Apps und HTML Webseiten aus benutzt werden Die API und ihre Implementierung sollte ein eigenes technisches Projekt also ein eigenst ndiges Modul sein So kann man es unabh ngig vom eigentlichen Produkt also dem Service Lieferanten weiterentwickeln und versionieren Nachdem man sich f r eine Technologie entschieden hat und sich dar ber im klaren geworden ist dass diesem Projekt einen hinreichenden Stellenwert beizumessen ist muss nun ein fachliches Konzept angefer tigt werden Dazu geh rt eine intensive Anforderungsanalyse Eine gute API muss immer zum entsprechenden Projekt passen Es existiert nicht das eine Patentrezept nach dem alle APIs gleich aufgebaut sein sollten F r die Aufstellung dieses Konzeptes m ssen diverse Fragen beantwortet werden e Welche Services also Funktionen werden ben tigt Diese Frage 73http jax ws commons java net jaxws maven plugin TAMDA Model driven Architecture 115 3 Untersuchung von Business A PIs kann am besten durch User Stories beantwortet werden User Stories k nnen wiederum durch Gesch ftsprozesse definiert werden zum Beispiel in BPMN oder im jABC Wichtig ist dass man eine voll st ndige API erh lt die wirklich alles n tige erla
231. he Verteilung der Zust ndig keiten different ownership domains Weitere genannte Aspekte sind das Anbieten Auffinden Interagieren und die Benutzung dieser Ressour cen um erw nschte Effekte zu erzielen mit messbaren Vor und Nachbe dingungen Auff llig ist bei beiden Definitionen dass zun chst einmal nichts von Web services oder sogar einer konkreten Technologie z B WSDL oder NOASIS Organization for the Advancement of Structured Information Standards eine inter nationale nicht gewinnorientierte Organisation die sich mit der Weiterentwicklung von E Business und Webservice Standards besch ftigt Der WS BPEL Standard wird z B von der OASIS gepflegt 15 2 Grundlagen SOAP gesagt wird Die Betrachtung der Prozessengines in dieser Arbeit besonders in den Kapiteln 5 und 6 zeigt auch ganz deutlich dass sehr oft service orientierte Architekturen ohne den Einsatz von Web Services existieren Dies ist wichtig und wird auch explizit von der deutschen Gesellschaft f r Informatik GI in ihrem Informatiklexikon RHS05 so erw hnt Dabei wird SOA h ufig gleichgesetzt mit der Verwendung von Web Services und deren assoziierten Technologien SOA sollte aber als fachliches Architekturmuster interpretiert wer den das technologieunabh ngig angewendet werden kann Definiert wird SOA hier folgenderma en SOA ist ein Architekturmuster das den Aufbau einer An wendungslandschaft aus einzelnen
232. he von Servern die sicher verschlossen bedacht und klimatisiert werden m ssen Weiterhin muss durch entspre chende Redundanzen und Notstromversorgungen f r die notwendige Si cherheit und Verf gbarkeit gesorgt werden All dies zusammen bedeutet einen erheblichen Aufwand f r eine IT Abteilung und entsprechend hohe Kosten f r das Unternehmen Oft ist es daher ratsam all dies auszula gern und auch hier auf Cloud Computing zu setzen So muss sich die eigene IT Abteilung um die erw hnten Aufgaben nicht k mmern und die Ressourcen werden im Allgemeinen deutlich besser ausgelastet Das Unternehmen bezahlt in dem Fall nur das was wirklich genutzt wird BPM in der Cloud ist folglich ein Trend der aktuell immer mehr zu einem Hype wird In einer entsprechenden Projektgruppe namens PG PCB Process Cloud for Business wurde evaluiert wie gut es heute m g lich ist existierende Prozess Engines auf verschiedenen IaaS oder PaaS Angeboten auszuf hren Zum einen wurde die Google App Engine be trachtet ein PaaS Angebot von Google welches unter anderem erlaubt Java basierte Web Anwendungen zu deployen Dabei existieren hier eine ganze Reihe von Einschr nkungen f r die Applikationen Als Datenbank f r die NoSQL Datenbank BigTable von Google selbst genutzt ande 87 B einen JavaKE Applikationsserver https developers google com appengine 224 8 3 Einfachheit durch Abstraktion BPM in der Cloud re Datenbanken
233. hen diese Ans tze und analysieren die jeweiligen Vor und Nachteile SAP ist zwar kein Vorreiter im Cloud Computing Umfeld hat jedoch die hier liegenden enormen M glichkeiten erkannt und dementsprechend viel in diese Richtung investiert Mittlerweile ist Cloud einer der Eckpfei ler der aktuellen SAP Strategie Dabei sind sehr verschiedene Produkte entstanden Das erste auch so beworbene Cloud ERP von SAP ist die SaaS L sung Business ByDesign SAP13a Dies wurde 2007 ver ffentlicht und zielt auf kleine und mittlere Unternehmen KMUs mit mindestens 10 Personen ab Die Benutzeroberfl che ist web basiert und wurde mit Microsoft s Silverlight Technologie entwickelt Dies bedeutet dass die Applikation praktisch nur von Clients mit Microsoft Windows benutzt werden kann Es existiert zwar auch eine Linux Implementierung von Silverlight namens Moonlight dessen Entwicklung jedoch mittler 85 3 Untersuchung von Business A PIs weile schon wieder eingestellt wurde Au erdem werden nur der Inter net Explorer sowie Firefox als Browser unterst tzt Die fehlende Plattfor munabh ngigkeit verst t dabei gegen die grundlegenden Prinzipien des Cloud Computings Business ByDesign basiert wie SAP ERP auf der Netweaver Technologie und eSOA Das bedeutet das f r die API die gleiche Technologie eingesetzt wird wie beim traditionellen SAP ERP Daher wurde diese L sung hier nicht separat untersucht Eine weitere SAP L s
234. hen und z B durch eigene Recherchen herausfinden wen er ansprechen muss damit er ein bestimmtes Recht in einem IT System bekommt oder dass ihm ein bestimmtes Arbeitsmaterial z B Computer Hardware ausge h ndigt wird Es war keine Seltenheit dass bestimmte Punkte erst lange Zeit nach der Einstellung oder sogar nie erledigt wurden da sie dem neuen Mitarbeiter schlichtweg unbekannt waren und sich von seinen Kol legen niemand zust ndig f hlte sich darum zu k mmern Nun soll der Einstellungsprozess definiert modelliert und auf einer En gine zur Ausf hrung gebracht werden Der Prozess soll dabei soweit wie m glich automatisiert werden Effizienz und Nachvollziehbarkeit sind da bei von besonderer Wichtigkeit Es soll also keine Mehrfacheingaben von Daten geben und alle involvierten Systeme sollen automatisch die be n tigten Daten bermittelt bekommen Durch den Einsatz einer Engi ne kann au erdem ein Monitoring durchgef hrt werden und somit fest gestellt werden ob die Prozesse z gig durchlaufen oder es doch uner w nschte Verz gerungen gibt Bei Bedarf kann dann der Prozess opti miert werden 171 5 Service Integration im jABC Interviews mit der Unternehmensf hrung der IT Abteilung und zahl reichen Mitarbeitern haben ergeben dass der Prozess folgende Punkte umfassen muss e Jeder neue Mitarbeiter muss folgende Schulungen besuchen Allgemeine Einf hrung in das Unternehmen Sicherheitsunterweisung Ein
235. hitektur SOA Application Programming Interfaces APIs Cloud Computing ads Zeiten Enterprise Resource Planning ERP XMDD und ARCHE 2 6 1 Extreme Model Driven Design XMDD 2 6 2 Service Logic Graph SLG 2 6 3 Service Independent Building Block SIB 2 6 4 Java Application Building Center jABC Einfachheit als Emmerek SE er Untersuchung von Business APIs Vergleichskriterien kat Bea 202 3 24 3 1 1 Zentrale Anforderungen 3 1 2 AP TDs et tn ee 3 1 3 Technologie 2 8 arte Let en 3 1 4 Zus tzliche Informationen Traditionelle on premise ERP Systeme 32 1 EN E EE 3 2 2 EE Me ee De RE Q A GG 20 27 33 35 36 37 38 43 50 53 57 58 61 62 63 65 65 72 Inhaltsverzeichnis 3 3 3 4 3 9 3 6 3 2 3 Microsoft Dynamics NAV 3 2 4 Intuit Quickbooks 4 oo 4 a ens rare Cloud basierte ERP Systeme 4 Sek Salesforce ai tte oi ah Zeus aye 4 SUS dle le 3 3222 NetSuite E na ee Ae Eee he eh 33 3 Workday 25 2 2 san mise aeg men EE 3 4 1 Allgemeine Konzepte 3 4 2 Vergleich der APIS 4 au bok a Schnittstellen weiterer Produkte 3 5 1 OpenSource ERP Systeme 3 5 2 E Commerce APIs 0 4 Entwicklungsleitfaden f r Business APIs 4 Service Integration in BPMS 4 1 4 2 4 3 4 4 4 5 Service Integration in BPMN 2 0 K teg risier np as
236. hmens m glichst gut erf l len und gleichzeitig sehr schnell an neue Gegebenheiten angepasst wer den k nnen Gerade in einer schnelllebigen Zeit wie heute ist diese Agi lit t von besonderer Wichtigkeit Gleichzeitig kann so erreicht werden dass das Customizing au erhalb der Standard Software stattfindet und Migrationen zu neuen Versionen oder ganz neuen Systemen erleichtert werden Die Kombination einzelner Services zu gr eren wird oft auch Orche strierung genannt Technisch umgesetzt wird die Orchestrierung durch eine Prozessbeschreibung die definiert wie sich der gro e Prozess aus den einzelnen kleinen Prozessen zusammensetzt Das bekannteste Bei spiel f r eine Sprache mit der solche Orchestrierungsprozesse beschrie ben werden ist WS BPEL Web Services Business Process Execution Der Begriff Orchestrierung ergibt sich aus der Tatsache dass hier die Services mit den Musikern eines Orchesters verglichen werden und jeweils eine zentrale Instanz existiert der Dirigent bzw eine zentrale Steuerungseinheit welche festlegt wie alles zusammenspielt Language OAS07 Der Name dieser Sprache sagt schon viel dar ber aus welche Aspekte hier eine Rolle spielen Als Technologie f r die Ser vices werden hier Web Services eingesetzt die wohl immer noch am weitest verbreitete Technologie f r Services Weiter deutet der Name dar auf hin dass es hier auch um Business Processes also um Gesch ftsp
237. hre Elemente intuitive und konsistente Be nennungen besitzen Aus diesen Bezeichnern werden potentiell direkt 61 3 Untersuchung von Business A PIs 62 ganze Applikationen mit graphischen Benutzeroberfl chen generiert Sie landen also ohne Umwege beim Endnutzer Aber auch bei der gew hn lichen Benutzung einer API durch einen Programmierer sollte dieser durch gut gew hlte Namen die sich an ein einheitliches Schema halten und nicht unn tig abgek rzt werden so gut es geht in seiner Arbeit un terst tzt werden Permanentes Raten und Ausprobieren Programmie ren durch Versuch und Irrtum sollte nicht vom Entwickler verlangt werden KES Klare und einfache Struktur Aus den gleichen Gr nden wie bei der hier vor genannten Anforderung IKB ist es wichtig dass die Struktur der Funktionen so klar und so einfach wie m glich gehalten wird KVD Korrekte und vollst ndige Dokumentation Eine API ist nur dann gut nutzbar wenn sie gut dokumentiert ist und wenn diese Dokumentation m glichst vollst ndig ist Nicht immer sind die Namen der Funktionen und deren Parameter selbsterkl rend genug gew hlt 3 1 3 Technologie PUS Plattformunabh ngigkeit durch den Einsatz von Standards Es ist wichtig dass Services nicht nur innerhalb einer gleichf rmigen technischen Infrastruktur zug nglich sind Die Beschr nkung auf ein ein ziges Betriebssystem oder eine einzige Programmiersprache stellt einen heute kaum noch zu akzeptiere
238. hrung mit dem Tracer F r die direkte Ausf hrung des SLGs existiert der so genannte Tracer eine leichtgewichtige Ausf h rungsumgebung f r SLGs Der Tracer ist integraler Bestandteil des JABC Frameworks Zur Ansteuerung des Tracers existiert auch eine Tracer GUI also eine graphische Benutzeroberfl che f r den Tracer als JABC Plugin In Abbildung 2 5 ist eine laufende Ausf hrung zu sehen In ei nem entsprechenden Bedienfenster sind alle Steuerelemente des Tracers zug nglich Die Ausf hrung kann gestartet gestoppt und wieder aufge nommen werden Ebenfalls ist eine schrittweise Ausf hrung m glich wo bei man wie man es von Debuggern in modernen IDEs kennt w hlen kann wie man in der Ausf hrungshierarchie weiter navigiert Man hat also die Wahl ob man in ein Graph oder Makro SIB hinein springen und hier jeden Schritt einzeln ausf hren m chte oder den ganzen SLG in ei nem Schritt ausf hrt Es k nnen auch Haltepunkte engl Breakpoints gesetzt werden die den Tracer bei einer Ausf hrung dazu veranlassen an diesem SIB in den schrittweisen Modus zu wechseln W hrend einer schrittweisen Ausf hrung wird das aktuelle SIB mit einem kleinen Pfeil in gr nem Kreis markiert und der zur ckgelegte Weg im SLG wird durch gr n eingef rbte und dicker dargestellte Kanten hervorgehoben Das Tracer Fenster bietet neben der Steuerung der Ausf hrung auch noch Monitoring Funktionalit ten an Durch Bet tigung des Buttons
239. ication Foundation 48http msdn microsoft com en us library vstudio system workflow activities codeactivity v vs 90 aspx 49http msdn microsoft com en us library vstudio ms733615 v vs 90 aspx 194 6 6 Windows Workflow Foundation Schleifen Verzweigungen Parallelit t und hnliches Zur Integration von Services existieren hier lediglich zwei Aktivit ten e CallExternalMethod Activity zum Aufruf eines lokalen Services al so einer C Methode e InvokeWebServiceActivity zum Aufruf von WSDL SOAP Web Services ber WCF Business Aktivit ten Da es m glich ist eigene Aktivit ten zu imple mentieren ist es auch m glich Business Aktivit ten zu entwickeln Unters tzung durch Generatoren oder fertige Implementierungen von Business Aktivit ten gibt es jedoch nicht Die konkrete Integration von Services besonders von Business APIs geht wohl ber den Aufgabenbe reich von WF hinaus und wird eher darauf aufbauenden L sungen wie BizTalk zugeordnet Um eine Aktivit t zu implementieren muss die Klasse Activity erwei tert werden Eine Beispielimplementierung ist in Listing 6 1 zu sehen Hier ist zu erkennen dass der auszuf hrende Code in der daf r vorge sehenen Methode Execute platziert werden muss welche den Ausf h rungskontext bergeben bekommt Listing 6 1 Beispielimplementierung der Execute Methode protected override ActivityExecutionStatus Execute 2 ActivityExecutionContext executionContext a
240. ice Integration in BPMS das SIB hinreichend dokumentiert ist so ist ein SIB auch eine Business Aktivit t Der Name oder eine ID identifiziert die Aktivit t und damit den Ser vice Hierunter ist die Aktivit t in einer Sammlung auffindbar und mit diesem Namen kann der Prozessmodellierer die Aktivit t sowohl im Mo dellierungstool als auch in der Kommunikation mit den Entwicklern ein deutig benennen Die Parameter diesen zur Anpassung der Aktivit t an eine konkrete Nut zung Erst so ist auch eine gewisse Wiederverwendbarkeit gegeben Diese Parameter beinhalten auch die Schnittstellenbeschreibung f r Ein und Ausgaben Hier wird also genau festgelegt woher die Daten kommen und wo die Ergebnisse abgelegt werden sollen Kommunikation zwischen Aktivit ten wird fast immer durch einen entsprechenden Ausf hrungs Kontext bewerkstelligt welcher die Laufzeitdaten enth lt und als Sha red Memory f r die Ausf hrungsumgebung dient Dokumentation ist f r Business Aktivit ten von hoher Bedeutung Nur so k nnen Prozessmodellierer verstehen welche Funktionalit t die Akti vit t und damit der Service bereitstellt Auch genaue Informationen ber m gliche Ausg nge der Ausf hrung und die Parameter sind unerl sslich Bei letzterem z hlen auch genaue Darstellungen der Daten samt Daten typen die von SIB konsumiert und oder produziert werden dazu Gibt es weitere Seiteneffekte durch die Ausf hrung der Aktivit t so sind diese e
241. ice Integration in anderen BPMS SQL Skripte ausf hrt zum anderen eine HQL Aktivitat einer Akti vit t f r die Abfragesprache des ORM Frameworks Hibernate Zus tzlich enth lt jJPDL eine Aktivit t zum Versenden von E Mails Wie bei den anderen technischen Service Aktivit ten in jPDL ist auch diese Aktivit t keine Beispielimplementierung der Custom Aktivit t son dern ein eigenst ndiger Aktivit tentyp und damit ein direkter integraler Bestandteil der Sprache jPDL Business Aktivit ten jBPM besitzt kein echtes Konzept f r die Reali sierung und Nutzung von Business Aktivit ten Nichtsdestotrotz lassen sich die erw hnten Custom Aktivit ten dazu nutzen in diese Richtung zu gehen Diese Aktivit ten werden durch Java Klassen realisiert welche ein bestimmtes Interface implementieren m ssen Das bedeutet dass eine Methode vorhanden ist die den Code enth lt der von der Prozess Engine ausgef hrt wird wenn eine Prozessinstanz bei der entsprechen den Aktivit t angelangt ist Diese Methode bekommt ein Objekt als Argument bergeben welches unter anderem den Zugriff auf den Aus f hrungskontext erlaubt Zur Konfiguration der Nutzung von Custom Aktivit ten existiert die M glichkeit Attribute in die Java Klasse ein zuf gen welche durch Injektion direkt vor der Ausf hrung der Aktivi t t ihre Werte erhalten Alternativ k nnen auch Klassen Eigenschaften verwendet werden In diesem Fall wird die In
242. ice zugreifen zum anderen ist es m glich die Office Dateien zu manipulieren ohne dass die Office Software selbst mit einbezogen wird Ansteuerung ber COM Prinzipiell existiert eine API welche den ge samten Funktionsumfang abdeckt Dies ist allein schon deshalb wichtig da es mit VBA eine integrierte Skriptsprache gibt mit der Makros ver fasst werden k nnen Mit der Hilfe dieser Makros lassen sich alle Vor g nge innerhalb von Microsoft Office automatisieren Technisch setzt diese API dabei auf Microsoft s Technologie COM bzw 6VBA Visual Basic for Applications COM Component Object Model 135 5 Service Integration im jABC dessen verteilte Variante DCOM auf Bei letzterem handelt es sich um eine propriet re objektorientierte RPC L sung Aus mehreren Gr nden ist Benutzung der COM Schnittstelle problema tisch Da es eine propriet re Microsoft L sung ist wird die Technolo gie nicht direkt in Microsoft fremden Umgebungen wie Java unterst tzt M chte man von Java aus auf eine COM API zugreifen so m ssen so genannte Java COM Bridges zum Einsatz kommen Hier existieren zum Beispiel die Implementierungen JaCoB J Interop oder Jawin Eine solche Adaptersoftware kann die L cke jedoch nie ganz schlie en M chte man zum Beispiel ein Office System ansteuern welches auf dem lokalen System l uft so m ssen die Anmeldedaten des entsprechenden Benutzers also Benutzername und Passwort meist angegeben werde
243. ices werden also auf einem dedizierten Server bereitge stellt und dann von der Prozessengine bei Bedarf ber das Netzwerk an gesto en Die Kommunikation erfolgt dabei mittels XML Dokumenten die ber HTTP verschickt werden Das Konzept entspricht dem der Worklets die von Michael Adams in Kapitel 4 seiner Dissertation Ada07 beschrieben werden Durch die bertragung von XML ber HTTP wird eine Unabh ngigkeit sowohl von der eingesetzten Platt form als auch von der Programmiersprache erreicht Ein YAWL Service kann also prinzipiell in jeder beliebigen Programmiersprache implemen tiert werden Dies ist ein wesentlicher Unterschied zu den vorher unter suchten BPMS Einzige Voraussetzung ist dass der YAWL Service auf HTTP Anfragen reagieren und mit XML umgehen kann Beides sollte mit jeder relevanten Programmiersprache m glich sein Es existiert be reits eine fertige Server seitige Implementierung die als Grundlage f r die Entwicklung von YAWL Services benutzt werden kann und zwar ei ne Java Servlet Implementierung Diese ist lauff hig auf allen g ngigen Servlet Engines wie Tomcat oder Jetty Ein YAWL Service hat vier Aufgaben 1 Empfangen der Nachricht von der Engine dass der dazugeh rige Task erreicht wurde der Service also ausgef hrt werden muss 39 Sequence 40 Parallel Split 41 Exklusive Choice 42http tomcat apache org 43http www eclipse org jetty 192 6 6 Windows Workflow Foundation
244. ichtung der mittelgro en Unternehmen gesehen werden Die St rke beider SAP L sungen liegt in der Stabilit t der APIs Sowohl BAPI als auch eSOA besitzen sehr stabile Definitionen ihrer Services Ein Client der eine die ser APIs einsetzt kann sich ziemlich sicher sein dass diese L sung auch noch in ferner Zukunft genau so funktioniert Die API von Dynamics NAV hat einen grunds tzlich anderen Charakter Was zun chst ins Auge f llt ist die besonders gute Abdeckung von einfa 103 3 Untersuchung von Business A PIs Tabelle 3 7 Ergebnisse der Auswertung traditionelle on premise ERP Systeme BAPI eSOA NAV QBDE RSD o o KVS o o VZB o EDV i SSD _ IKB o o KES o KVD o o PUS o o AZS o o o o EAM SE o GLD n u Q DVA o WVA DOP VVA GIS ISN 7 nicht untersucht chen CRUD Operationen f r alle Business Objekte Dies kann f r viele kleine und mittlere Unternehmen schon ausreichen und kann zu einer sehr schnellen und kosteng nstigen Einf hrung dieser Software f hren Au erdem ist die API sehr gut strukturiert was es recht einfach macht mit ihr zu arbeiten Leider wird es in dem Moment schwierig in dem man die Service Sammlung selbst erweitern m chte da die NAV L sung kaum etwas zum Management von neuen Services anbietet Ein weite
245. ie Wiederverwendung ganzer Prozesse erm glicht Dies wurde zum Bei spiel exzessiv von Sven J rges bei der Erstellung von Code Generatoren getan J6r13 Hier wurden Code Generatoren als SLGs beschrieben und neue Generatoren basierten fast immer auf schon bestehenden und ban den diese oft auch einfach komplett oder teilweise ein 2 6 3 Service Independent Building Block SIB Die Knoten eines SLGs sind keine abstrakten Beschreibungen von Aktio nen sondern repr sentieren ausf hrbare Softwarebausteine die Service 2 6 XMDD und jABC Independent Building Blocks SIBs genannt werden Diese repr sen tieren dahinterliegende Services und sind typischerweise so grobgranular dass sie vom Anwendungsexperten verstanden werden k nnen SIBs werden als Java Klasse realisiert Diese enth lt sowohl die Definiti on auch auch die Implementierung des SIBs wobei letztere auch in eine separate Java Klasse ausgelagert werden kann Konkret wird ein simples POJO Plain Old Java Object verwendet welches mit der Anno tation SIBClass versehen ist F r die Realisierung eines SIBs in Java wird auch der Begriff SIB Klasse verwendet Ein SIB besteht aus folgenden Elementen e UID Eine global eindeutige Zeichenkette zur Identifizierung die ser SIB Klasse Diese wird direkt mit der Annotation SIBClass definiert also zum Beispiel mit einer Zeile wie dieser SIBClass de tu dortmund sibs example sib e Parameter Eine M
246. ielle Fehlerquelle darstellt Manche BAPI Funktionen sind im BAPI Explorer als Dialog markiert Das bedeutet dass die Funktion eine graphische Benutzeroberfl che be reitstellt in Tabelle 3 1 durch ein d gekennzeichnet Das hat zur Folge dass diese Funktion nicht von au erhalb des SAP ERP Systems benutzt 3 2 Traditionelle on premise ERP Systeme werden kann VZB Bewertung Die Versionierung der BAPI wird durch eines extrem simples Verfahren realisiert Immer wenn eine neue Version einer Funktion ver ffentlicht werden soll so wird diese einfach als separate neue Funktion hinzuge f gt und der Name der neuen Funktion entspricht der alten nur dass am Ende eine Zahl angef gt wird Bei der n chsten Version geht man dann genauso vor nur dass die Zahl nun einfach um eins erh ht wird Zum Beispiel wird BAPI_CUSTOMER_GETDETAIL ersetzt bzw erg nzt da die alte Version erhalten bleibt durch BAPI_CUSTOMER_GETDETAIL1 wor auf dann BAPI_CUSTOMER_GETDETAIL2 folgt Dieses Schema wird leider nicht immer konsistent durchgehalten Dies ist m glich da dass gan ze lediglich auf Konventionen beruht und nicht vom System verlangt wird Zum Beispiel wurde SalesOrder CreateFromData ersetzt durch SalesOrder CreateFromDat2 das zweite a von Data fehlt nun SSD Bewertung 3 2 1 2 API Design Die Benennungen der BAPI Funktionen sind nicht immer konsistent z B werden bestimmte Begriffe inkonsistent abgek
247. ies ist zwar eine sehr technische Sicht auf die Services aber sie ist immer kor rekt da die aktuelle Implementierung direkt auf dieser Information ba siert KVS Bewertung Alle Pages bieten eine Menge von Standardoperationen an welche es erlauben das entsprechende Business Objekt zu erzeugen zu lesen zu manipulieren oder zu l schen Das f hrt zu einer fast vollst ndigen Ab deckung der Business Objekt Zugriffsmethoden 47 von 50 Punkte wie in Tabelle 3 3 zu sehen VZB Bewertung Es gibt kein Versionierungskonzept durch welches es m glich w re eine Stabilit t der Service Definitionen zu erreichen Es ist jedem Benutzer bzw Administrator selbst berlassen welche Services berhaupt ange boten werden Au erdem kann jeder Service beliebig ver ndert werden 77 3 Untersuchung von Business A PIs Tabelle 3 3 Dynamics NAV Business Objekte Create Read Update Delete Simple Query Customer D D D D D Vendor D D D D D Item D D D d d Sales Quote d d d D D Sales Order D D Sales Invoice D D D D D Purchase Quote d d D D D Purchase Order D D D D D Purchase Invoice D D D D D Employee D D D D D hier Read hier ReadMultiple 78 Weiterhin ist es mit jeder neuen Version von Dynamics NAV m glich dass alle Services in ihrer Standard Konfiguration komplett anders aus sehen Hier gibt
248. ietet Der ES Workplace ist haupt s chlich fir Evaluierungs und Testzwecke gedacht Neben anderen Pro dukten ist dort ein vollst ndiges SAP ERP ECC 6 0 mit IDES Daten verf gbar Dieses System kann per SAP GUI die Web Variante oder per eSOA Web Services benutzt werden 3 2 2 1 Zentrale Anforderungen SAP bietet eine UDDI V3 kompatible Service Registry mit einem kom fortablen Web Interface an womit es recht einfach gemacht wird die richtigen Services zu finden Auf die Registry kann also sowohl per GUI also auch per API zugegriffen werden Zus tzlich k nnen s mtliche UDDI Daten als ein ZIP Archiv heruntergeladen werden 3 2 Traditionelle on premise ERP Systeme Tabelle 3 2 SAP eSOA Business Objekte Create Read Update Delete Simple Query Customer D D v D Vendor D D v Item Zr Sales Quote d d D D Sales Order D D D D D Sales Invoice D D D Purchase Quote Purchase Order D D D D SCH Purchase Invoice NG d vj D Employee D D D D D hier Cancel thier Find hier Find Customer by Name and Address thier Supplier hier Find Supplier by Name and Address fhier Customer Quote Shier Customer Invoice hier Cancel Purchase Order based on Freight Order Invoicing Preparation Cancel Request hier Supplier Invoice Shier Find Supplier Invoice by Elements Update und Del
249. im Bereich der Smartphone Apps ist hier zu erwarten dass der Anteil der API Aufrufe seitdem noch dramatisch angestiegen ist und auch noch weiter wachsen wird Von Salesforce werden verschiedene Arten von APIs angeboten Zu n chst existiert eine SOAP WSDL Web Service API Zus tzlich gibt es eine REST API die dieselbe Funktionalit t anbietet und eine REST basierte so genannte Bulk API speziell f r gro e Datenmengen und eine SOAP WSDL basierte Metadaten API die Zugriff auf Daten erlaubt 87 3 Untersuchung von Business A PIs 88 die das Customizing des Angebots betreffen In dieser Arbeit liegt der Fo kus haupts chlich auf der SOAP WSDL Web Service API da sich diese am besten mit den anderen hier untersuchten APIs vergleichen l sst Aus der Business Sicht ist die Rest API mit der hier untersuchten identisch da hier exakt die gleichen Funktionen und Daten angeboten werden Der Abschnitt ber Technologiebelange Abschnitt 3 3 1 3 wird kurz einige Aspekte der REST API ansprechen Um es einfacher zu machen die API in Java zu nutzen gibt es ein spe zielles Web Service Framework welches von Salesforce selbst entwickelt wird mit Namen WSC Web Service Connector Dieses Framework enth lt ein Tool welches aus den Salesforce WSDLs Java Stubs gene riert sowie eine Laufzeitbibliothek f r die Java Software von der aus die Services aufgerufen werden sollen Dem Client werden zwei verschiedene Arten von WSDL ange
250. inMessage of the Operation is assigned from the data in the Data Input of the Service Task the Operation is invoked On completion of the service the data in the Data Output of the Service Task is assigned from the data in the outMessage of the Operation and the Service Task completes If the invoked service returns a fault that fault is treated as interrupting error and the Activity fails Hier wird also lediglich definiert dass es Ein und Ausgabedaten gibt und dass ein Fehler bei der Ausf hrung auftreten kann der behandelt werden sollte Diese Definition l sst gro en Spielraum f r BPMS Hersteller so dass komplett propriet re L sungen die Folge sind Zum Beispiel auch in den Kapiteln 5 und 6 in denen es um die Service Integration in jABC respektive anderen BPMS geht Service Tasks werden als abgerundete Rechtecke mit zwei berlappenden Zahnr dern dargestellt 3Hier sind durch WSDL beschriebene SOAP Webservices konkret webService der vorgege bene Standard 120 4 2 Kategorisierung 4 2 Kategorisierung Es k nnen drei grunds tzlich unterschiedliche Arten identifiziert werden wie Services in ausf hrbare Prozesse integriert werden F r jede dieser drei Arten soll eine Kategorie definiert werden 1 Skript Aktivit ten 2 Technische Service Aktivit ten 3 Dom nen spezifische Business Aktivit ten Im Folgenden werden die einzelnen Herangehensweisen definiert n her beschrieben und die jeweiligen
251. ing Resources Planning wo es um die Planung der f r die Produktion notwendigen Materialien geht Weitere Module be fassen sich zum Beispiel mit der Finanzbuchhaltung den Kundenbezie hungen CRM Customer Relationship Management der Verwaltung der Mitarbeiter HCM Human Capital Management oder HR Hu man Resources oder der Wertsch pfungskette von Lieferanten bis zum Kunden SCM Supply Chain Management Oft gibt es auch sepa rate Systeme f r genau einen dieser Aspekte Diese sind dann wiederum oft ber Prozesstechnologie service orientiert zu integrieren ERP Systeme bilden heute den Kern einer jeden Unternehmensland schaft und enthalten demnach einen Gro teil aller technischen Funktio nen die in den Gesch ftsprozessen des Unternehmens eine Rolle spielen Um also Gesch ftsprozesse zu automatisieren m ssen vor allem die Ser vices der ERP Systeme orchestriert werden Oft bieten ERP Systeme heute selbst eine L sung zur Prozessautomatisierung Entsprechend des XMDD Ansatzes siehe dazu Abschnitt 2 6 wird jedoch angestrebt den Prozess nicht in der ERP L sung zu platzieren sondern als zen trales Steuerungselement des gesamten Unternehmens ber allen Syste men zu positionieren Es sollte also eine d nne Orchestrierungsschicht au erhalb der angesteuerten Systeme existieren so dass zum Beispiel bei einem Wechsel des ERP Systems die Gesch ftsprozessautomatisie rung nicht komplett neu herges
252. ionsaufruf wird stattdessen ganz nor 0http msdn microsoft com de de library aa260976 VS 60 aspx 212 B getImportParameterList getExportParameterList getTableParameterList 141 5 Service Integration im jABC 142 mal abgearbeitet Nach dem Funktionsaufruf muss nun die Structure RETURN analysiert werden Hier wird wiederum mit entsprechenden Co des gearbeitet die man der SAP Dokumentation entnehmen muss Neben der Missachtung von Java Standards gibt es noch ganz allgemeine Dinge die zu unn tig komplexem Code f hren So wird die Bedeutung des Repository Objektes in Zeile 5 nicht wirklich klar Hier muss ein Repository angelegt werden welches mit einem Namen versehen werden muss Dieser Name ist jedoch beliebig Er hat keine Auswirkung auf die weitere Ausf hrung Es gibt sicherlich einen technischen Grund f r dieses Objekt welcher jedoch offensichtlich nicht in der von SAP verfassten Dokumentation hinreichend erl utert wird F r viele Standardf lle so z B f r alle Funktionsaufrufe die im Rahmen dieser Arbeit get tigt wurde ist diese Angabe berfl ssig Wie schon in Abschnitt 3 1 2 beschrieben sind intuitive Benennungen ein entscheidender Aspekt bei dem Design einer gut benutzbaren API Bei der JCo API sind hier vor allem die Namen IFunctionTemplate und Function zu kritisieren Ein IFunctionTemplate ist das Objekt welches die Funktion repr sentiert man h tte es also auch einfach Function nen nen k
253. ird ist nicht auf das jABC beschr nkt Auch andere Prozesssprachen wie beispielsweise BPMN k nnen so auf ihre Richtigkeit hin berpr ft werden In der Diplomarbeit von Jens Hornung Hor13 wurde genau dies gezeigt Dar in wurden Prozesse BPMN 2 0 in ein Transitionssystem transformiert welches dann wiederum durch GEAR oder alternativ durch den Model Checker NuSMV2 berpr ft wurde Ein besonderer Schwerpunkt war hier die Aufl sung von Parallelit t die durch die Model Checking Software nicht direkt unterst tzt wurde 2 6 4 4 Aufruf entfernter Tools Mit JETI Java Electronic Tool Integration MNS05 Kub13 exis tiert im XMDD Umfeld bereits ein Tool zur Integration entfernter Ser 5 http nusmv fbk eu 49 2 Grundlagen vices Neben einer eigenen propriet ren Remote Execution Technologie zur Bereitstellung von Kommandozeilenprogrammen ber das Internet existieren hier auch viele L sungen zur Einbindung von Services die auf Standards wie WSDL SOAP oder REST basieren So gibt es hier zum Beispiel einen WSDL2SIB Generator also ein Tool welches automatisch aus einem WSDL Dokument ein entsprechendes SIB generiert Dieser Technologie zentrische Ansatz f hrt dazu dass das SIB exakt so wie der Service strukturiert ist Der in dieser Arbeit vorgestellte Ansatz konkret in Abschnitt 5 3 5 beschrieben beinhaltet dagegen Benutzerinteraktion zur Erzeugung der SIBs also eine halbautomatische Generierung Kapi tel
254. isch Der Parametertyp ListBox stellt eine einfache Auswahl konstanter Werte meist Zeichenketten dar In der Benutzeroberfl che zur Bele gung der Parameterwerte erscheint also eine einfache Dropdown Box SIBs k nnen verschiedene Rollen ausf llen Die wichtigste Rolle ist wohl die des ausf hrbaren Bausteins Gleichzeitig kann das SIB aber auch Da ten f r andere Zwecke bereit stellen so zum Beispiel zur berpr fung von Regeln oder Beschr nkungen oder zur Code Generierung f r ver 41 2 Grundlagen 42 schiedene Plattformen Jede Rolle wird dabei durch ein entsprechendes Interface realisiert die von der SIB Klasse implementiert wird Es hat sich mittlerweile etabliert den Ausf hrungsteil eines SIBs in eine separate Java Klasse auszulagern und in der SIB Klasse selbst nur noch diese ausgelagerte Methode aufzurufen Der ausgelagerte Teil wird da bei Service Adapter genannt Die Verwendung eines separaten Service Adapters bietet mehrere Vorteile So ist es so m glich verschiedene Im plementierungen eines SIBs anzubieten Au erdem ist es technisch nun m glich ein SIB zu laden auch wenn die Implementierung oder in der Implementierung benutzte Klassen oder Bibliotheken fehlen Zu guter Letzt ist es bei der Code Generierung vorteilhaft dass nun nur noch der Service Adapter dem Generat beigelegt werden muss Das SIB selbst wird f r die Ausf hrung nicht mehr ben tigt Somit hat der generierte Code keine Abh ngi
255. isses und AddListener registriert einen SLG als Beobachter eines Ereignis ses Nach der Ausf hrung dieses Control SIBs wird also bei Eintritt des spezifizierten Freignisses der angegebene Prozess gestartet 2 6 4 Java Application Building Center jABC Das Java Application Building Center SMNt06 Nag09 meist abge k rzt jABC genannt ist die Referenzimplementierung von XMDD Es handelt sich um ein vielseitiges und erweiterbares Framework zur Ent wicklung komplexer Softwaresysteme Das jABC ist eine Java basierte Neuentwicklung des in C implementierten Agent Building Centers ABC welches seit 1993 entwickelt wurde und ist gleichzeitig kom merzielles Produkt sowie Experimentierplattform f r die Forschung und Lehre am Lehrstuhl f r Programmiersysteme der TU Dortmund Der wichtigste Bestandteil des jABCs ist ein Modellierungstool zur Er stellung von SLGs siehe Abschnitt 2 6 2 aus SIBs siehe Abschnitt 2 6 3 Durch eine modulare Plugin Architektur ist es sehr einfach m g lich dieses Tool zu erweitern und an spezielle Anforderungen anzupassen Eine Reihe existierender Plugins machen das jABC zu einer umfangrei chen Komplettl sung f r die Entwicklung prozessgesteuerter Software Das jABC ist ein extrem vielseitiges Tool zur Modellierung von Pro zessen Die Anwendungsgebiete umfassen dabei unter anderem wissen schaftliche Workflows Steuerungen eingebetteter Systeme Algorithmen des Maschinenlernens Modellierung von Code Gener
256. it spielen Web Services zwar eine gro e Rolle stellen jedoch bei weitem nicht die einzige M glichkeit f r den Aufbau einer SOA dar Ver ffentlichungen aus der Webservice Community stellen bei der Defini tion des SOA Begriffs oft das so genannte SOA Dreieck oder Webservices Dreieck siehe Abbildung 2 3 in den Mittelpunkt Hier existieren drei kommunizierende Parteien 1 Ein Service Provider welcher einen Service anbieten m chte 2 eine Service Registry welche die Menge aller ffentlichen Dienste verwaltet und l4nesonders durch WSDL beschriebene SOAP Web Services 18 2 2 Service orientierte Architektur SOA Service Registry Service Provider Service Consumer Abbildung 2 3 Das so genannte SOA Dreieck 3 ein Service Consumer welcher einen Dienst aufrufen m chte Zwischen diesen Parteien existieren nun drei typische Nachrichtenarten 1 publish ver ffentlichen Der Service Provider registriert den Service in der Service Registry 2 find finden Der Service Consumer sucht in der Service Registry nach dem richtigen Dienst 3 bind interact verbinden interagieren Service Provider und Service Consumer kommen zusammen Der Consumer kann den Service aufrufen d h er kann nun dem Provider eine Anfragenach richt schicken welcher mit einer Antwortnachricht reagiert Um SOA und Webservices auseinanderzuhalten benutzt das W3C bei der Beschreibung dieses Dreieck
257. iterien f r diese Kategorie von APIs besonders zu be achten sind Weitere erw hnte Punkte sind zum Beispiel dass eine API einfach zu lesen zu lernen und zu benutzen sein sollte und falsche Be nutzung m glichst unwahrscheinlich ist die API hinreichend m chtig ist um alle Anforderungen zu erf llen Au erdem sollte die API einfach zu erweitern sein und f r die Zielgruppe also die Benutzer der API an gemessen entworfen worden sein Diese Punkte haben jeweils auch ihre Entsprechungen in Abschnitt 3 1 in dem die Kriterien f r gute ERP APIs genannt werden Die meisten Verfahren um zu ermitteln wie gut eine API entworfen worden ist stammen aus dem Bereich der Mensch Maschine Interaktion MMI GPT12 Die prominenteste Methodik ist hier das Think aloud protocol ES85 also ein schriftliches Protokoll der laut ausge sprochenen Gedanken eines API Benutzers Einer Menge von Proban den wird dazu die Aufgabe gestellt eine kleine Software zu programmie ren die durch die Benutzung der zu untersuchenden API ein vorgege benes Problem l sen soll Durch die Protokollierung der Gedanken kann dann festgehalten werden wo genau die Stolpersteine in der API lie gen In dieser Arbeit werden APIs jedoch nicht nur aus dem Blickwinkel der Mensch Maschine Interaktion sondern auch aus dem der Maschine Maschine Interaktion gesehen Das liegt daran dass eine API nicht nur 22mit dem Namen API usability International Conferenc
258. izard hnlichen Be nutzeroberflache kann diese Probleme beheben Hier kann der Generie rungsvorgang durch Benutzerinteraktion beeinflusst werden indem zum Beispiel die ben tigten Parameter ausgew hlt werden beliebige Elemen te umbenannt werden oder die Struktur ver ndert wird Technologien zur Code Generierung f r Business Aktivit ten funktionie ren am besten wenn eine verh ltnism ig gro e Sammlung gleichartiger Services existiert Dies ist zum Beispiel der Fall bei den APIs von ERP Systemen Hier kann es sich auszahlen einen speziellen Code Generator f r jede Service Sammlung zu erstellen sodass der spezielle Charakter ei nes jeden Systems behandelt werden kann So ist es m glich dass selbst sehr verschieden umgesetzte APIs zu recht einheitlichen Sammlungen von Business Aktivit ten f hren Au erdem m ssen bestimmte techni sche H rden wie zum Beispiel ein kompliziertes Authentifizierungsver fahren nur einmal genommen werden und zwar bei der Erstellung des spezifischen Code Generators und nicht f r jede Business Aktivitat er neut Bei der Variante jeweils einen Code Generator pro Technologie 9 128 manchmal auch Assistent genannt siehe auch Abschnitt 5 3 2 4 5 Business Aktivit ten z B WSDL SOAP einzusetzen entsteht zwar weniger Aufwand f r die Erstellung der Generatoren die spezifischen Eigenarten der Systeme wer den jedoch nicht beachtet Zwei Service Sammlungen die zum Beispiel beide
259. jektion ber die Setter Methode vorgenommen Innerhalb der Implementierung der Aktivit t ist es m glich zu w hlen welche ausgehende Kante nach der Ausf h rung gew hlt werden soll Dazu ist ein entsprechender Methodenaufruf im bergebenen Ausf hrungsobjekt durchzuf hren Die m glichen Werte werden nicht innerhalb der Aktivit t definiert sondern sind frei w hl bar Dies hat zur Folge dass hier ein m glicher Punkt f r Fehler existiert da der Prozessmodellierer und der Aktivit tenentwickler hier exakt die gleichen Bezeichnungen w hlen m ssen Alle Custom Aktivit ten werden im Prozessmodellierungstool neben den vorhandenen Aktivit ten in der Toolbox zur Verf gung gestellt Die Toolbox ist dabei nicht strukturiert oder kategorisiert so dass alle Aktivit ten gleichrangig nebeneinander existieren was bei einer gr eren Anzahl schnell un bersichtlich und schlie lich kaum noch benutzbar werden kann HQL Hibernate Query Language WORM object relational Mapping deutsch objekt relationale Abbildung Unttp www hibernate org activityBehaviour 13 execute l4ein Objekt der Klasse ActivityExecution enelisch Properties also private Attribute mit Getter und Setter Methoden 16also in der Methode execute take 180 6 1 jBPM Fazit Zusammengefasst besitzt jBPM 4 eine extrem einfache Unter st tzung f r Business Aktivit ten was gleichzeitig einen Mangel an vie len wich
260. kann nur von einem Windows System aus zugegriffen werden da die Kommunikation auf Microsoft s COM Technologie basiert Wenn auf QBDE von anderen Systemen aus zugegriffen werden soll muss eine Art Wrapper implementiert und auf dem Windows System installiert werden welcher selbst per COM auf QBDE zugreift und den Service nach au en ber eine plattformunab h ngige Technologie wie z B Web Services oder direkt ber einfache TCP IP Sockets wie in Ack10 anbietet PUS Bewertung Da COM f r die Kommunikation verwendet wird wird die Authentifi zierung tiber die Standard Windows Authentifizierung NTLM durch gef hrt So existieren hier also die gleichen Sicherheitsbedenken wie bei Dynamics NAV AAS Bewertung 0 Wenn eine Verbindung mit QBDE aufgebaut wird erscheint ein Autori sierungsdialog der nach dem Benutzernamen sowie dem Passwort fragt EAM Bewertung o 3 2 4 4 Zus tzliche Informationen Die Dokumentation ist nicht daf r gedacht dass auf sie per API zuge griffen wird Trotzdem ist es m glich aufgrund der Tatsache dass die JSON Dokumente einen Link auf die textuelle Dokumentation enthal ten DVA Bewertung o Genau wie Dynamics NAV benutzt auch Quickbooks den XSD Datentyp enumeration um eine Auswahl aus verschiedenen Alternativen anzubie ten Wenn zum Beispiel jemand einen bestimmten Kunden finden m ch 3 3 Cloud basierte ERP Systeme ten so gibt es den Service CustomerQuery we
261. ktivitat 183 6 Service Integration in anderen BPMS 6 2 Activiti BPMN 2 0 Skript Aktivit ten Der Script Task von Activiti act13 ist dem von jBPM 4 und 5 sehr hnlich Alle JSR 223 kompatiblen Sprachen werden unterst tzt Direkt funktionieren Groovy und JavaScript Technische Service Aktivit ten F r SOAP Web Services existiert ei ne spezielle technische Service Aktivit t Zus tzlich gibt es zwei direkt zu verwendende Aktivit ten eine zum Versand von E Mails und eine f r die Integration mit dem Enterprise Service Bus ESB Mule Business Aktivit ten In Activiti ist keine eindeutige Einordnung der Umsetzung der Service Tasks m glich Sie liegt zwischen den Kategorien der technischen Service Aktivit ten und der Business Aktivit ten Einer seits gibt es wiederverwendbare Software Komponenten namens Java delegates andererseits muss der Prozessmodellierer immer noch auf ei nem technischen Level agieren wie es f r technische Service Aktivit ten typisch ist Zu jedem Zeitpunkt ist ihm sehr bewusst dass er mit Java Klassen hantiert und nicht mit irgendeinem beliebigen Service Es gibt nur einen Service Task in der Aktivit ten Sammlung nicht eine Akti vit t pro Service Ein Service Task kann in Activiti auf drei verschiedene Arten benutzt werden Was der Idee der Business Aktivit t am n chsten kommt ist der Einsatz eines Java Delegates Dies ist wieder eine Java Klasse wel che ein bestimmtes In
262. ktorgrafik wie SVG Dokumentation muss f r das SIB im Allgemeinen sowie f r die ein zelnen Parameter und Branches angegeben werden Es gibt dabei ver schiedene Quellen f r die Dokumentation Falls die zu Grunde liegende API Dokumentationstext ausliefert z B in der WSDL so kann die se als Vorschlag angeboten werden und vom Wizard Benutzer direkt bernommen werden oder entsprechend abgewandelt werden Bei den Parameter Dokumentationen ist es besonders wichtig dass zum einen annotiert wird ob es sich um einen Ein oder Ausgabeparameter han delt zum anderen wie die Struktur des Datentyps aussieht Hier wird also eine Baumdarstellung der komplexen Datentypen mit angegeben So ist es dem Prozessmodellierer besonders einfach m glich zu sehen wie die Daten aussehen m ssen die dem SIB bereitgestellt werden m ssen und wie die Daten aussehen die das SIB produziert Der sechste Schritt bietet schlie lich die M glichkeit Benutzungsregeln anzugeben Im Falle des jABC sind dies Regeln f r den LocalChecker Bestimmte LocalChecker Regeln die immer gelten werden hier nicht be trachtet Diese werden immer in den Quelltext eingef gt Hier geht es stattdessen um spezifische Regeln f r diesen Service also dieses SIB Da LocalChecker Regeln in Java definiert werden w re es denkbar hier einfach nach Java Quellcode zu fragen Dies w rde jedoch den Regeln der Einfachheit widersprechen und die meisten Wizard Benutzer ber fordern Stattdesse
263. lcher unter anderem einen NameFilter erwartet der wiederum aus MatchCriterion und Name be steht Dabei ist MatchCriterion eine enumeration mit den m glichen Werten StartsWith Contains und EndsWith Name ist ein Freitextfeld gt WVA Bewertung Optionale Parameter werden als solche gekennzeichnet Gleiches trifft auf optionale Teile komplexer Parameter zu Au erdem ist klar definiert wenn die Eingabe ein Element aus einer Liste von Alternativen enthalten muss DOP Bewertung 3 3 Cloud basierte ERP Systeme Wie in Abschnitt 2 4 beschrieben handelt es sich bei Cloud Computing um ein aktuelles Hype Thema dem sich auch die ERP Hersteller nicht entziehen k nnen und wollen Die Vorstellung ein fertiges direkt zu be nutzendes ERP System in der Cloud zur Verf gung zu haben scheint zun chst einmal sehr verlockend zu sein So besteht die Chance sich weder um die Aspekte Skalierbarkeit oder Sicherheit noch um die Ad ministration im Allgemeinen k mmern zu m ssen Dies spart Personal Arbeitszeit und somit Kosten Es sind verschiedenste Modelle vorstellbar ein ERP System in der Cloud anzubieten jeweils mit unterschiedlich gelagerten Vor und Nachteilen Eine offensichtliche L sung ist ein ERP System als SaaS Dies ist f r existierende Produkte wie beispielsweise ein SAP ERP schwierig zu rea lisieren Hier bietet sich eher ein Deployment des Produktes auf eine laaS an Kiadehi und Mohammadi KM12 vergleic
264. lgemeinen und Open Source ERPs im Speziellen ist schon seit langem steigend Car06 Mittlerweile exis tiert eine ganze Reihe unterschiedlicher L sungen so dass eine gewisse Auswahl vorhanden ist Diese L sungen unterscheiden sich untereinan der erheblich und auch bez glich des Themas Service Integration wer den sehr unterschiedliche Konzepte verfolgt In diesem Abschnitt wird zun chst kurz auf eine Reihe unterschiedlicher Systeme eingegangen und dann etwas ausf hrlicher auf die Systeme OpenERP und Apache Ofbiz Die Untersuchungen zu den zuletzt genannten Systemen wurden mit der Unterst tzung des Studenten Dominic Wirkner durchgef hrt JFire Nig13 ist eine auf Java EE basierende L sung die als Client auf die Eclipse Plattform aufsetzt Eine API f r JFire wird ber Java RMI und SOAP angeboten Leider ist zum Zeitpunkt der Fertigstellung die ser Arbeit keine Dokumentation der API online verf gbar was gerade f r ein Open Source Projekt besonders nachteilig ist und auf ernstzu nehmende Probleme bei diesem Projekt hindeutet Compiere Con13 ist zwar ebenfalls eine Open Source L sung sie bietet eine Web Service API jedoch nicht in der freien Version sondern nur in einer Enterprise Edition an welche 995 Dollar pro Person und Jahr kostet Hier wird das Thema Integration also als Kaufanreiz genutzt Der Compiere Fork ADempiere A Del 3 besitzt ein Unterprojekt namens ADempiere Web Services welches die f
265. lierungsoberfl che display name ein Icon und die Parameter mit ihren Datentypen Im Prozess Editor k nnen die Parameterwerte entweder mit konstan ten Werten belegt werden oder durch die Definition eines Parameter Mappings an Kontext Variablen gebunden werden Bei letzterer Vari ante werden vor der Ausf hrung der Aktivit t die Werte vom Kontext in die Aktivit t kopiert Die Parameter werden auch f r R ckgabewer te benutzt wobei es beliebig viele R ckgabewerte geben kann Zu dem Zweck kann ein so genanntes Result Mapping definiert werden was ein exakt spiegelbildliches Verhalten zum Parameter Mapping besitzt Nach der Ausf hrung der Aktivit t werden also die Werte aus der Akti 6 1 jBPM vit t in den Kontext kopiert Leider wird in der wid Datei nicht zwischen Eingabe und Ausgabeparametern unterschieden Dies muss also aus der Dokumentation der Aktivit t hervorgehen Zus tzlich zur haupts chlichen Implementierung der Aktivit t k nnen auch noch Aktionen definiert werden die bei Eintritt in eine Aktivit t oder bei Austritt aus einer Aktivit t ausgef hrt werden Diese Aktio nen k nnen f r einzelne Instanzen der Aktivit ten also f r bestimmte Knoten im Prozessmodell definiert werden Die Java Klasse muss wie bei der Custom Aktivit t von jBPM 4 ein bestimmtes Interface implementieren Die Methode mit dem Service Code bekommt zwei Argumente bergeben ein Objekt welches Zugriff auf die Parameter
266. lt sowohl f r das Surfen als auch f r die Einarbeitung in fremde APIs Es existiert mittlerweile eine wissenschaftliche Community beachtlicher Gr e die sich mit den Themenbereichen API Usability bzw API Design besch ftigen Diese Gebiete h ngen naturgem stark zusam men und lassen sich nicht immer scharf trennen Burns et al BFHM12 f hrten eine Meta Studie ber zahlreiche Ver ffentlichungen in diesem Gebiet durch Sie kategorisierten diese folgenderma en 1 Design Papers Ver ffentlichungen ber Entwurfsregeln von APIs Daul0 ESM07 HRH08 RKS10 SK11 SC07 SM07 2 Framework Papers Ver ffentlichungen ber Methoden zur Eva luierung von API Qualit t Cla04 BB05 FZ10 GJZ 11 O C10 RJO8 RJO7 SBO9 3 Tools Papers Ver ffentlichungen ber Tools welche die Be nutzbarkeit von APIs verbessern DH09 ESM10 PH09 DH09 Wat09 WMJ10 4 Examination Papers Ver ffentlichungen die eine spezielle Ka tegorie von APIs untersuchen BJX 08 HL11 MPD10 MRTS98 NM10 Rob09 SGBT08 Die in Kapitel 3 beschriebene Evaluation von ERP APIs w rde demnach in die zuletzt genannte Kategorie passen 18 nd nat rlich analytisches und logisches Denken sowie die F higkeit zur Abstraktion etc 19 Zitat Prof Dr Bernhard Steffen regelm ig in pers nlicher Kommunikation z B in der Ab schlussbesprechung der Projektgruppe PCB Process Cloud for Business am 27 11 2012
267. ltkonzerne sind Gewinnmaximie rung und nicht Interoperabilit t ist Daher sei es meist gar nicht gewollt dass sich alle Anbieter auf einen Standard einigen und hinreichend In formationen mit ihrer API ver ffentlichen so dass sich alles m glichst automatisch integrieren l sst Um eine API zu benutzen ist es nat rlich unabdingbar dass dem Benut zer die zu Grunde liegenden Konzepte bekannt sind dass er also wei wie die einzelnen Funktionen zusammenh ngen und was man berhaupt damit machen kann Ko und Riche KR11 schrieben ber die Wichtig keit des konzeptuellen Wissens f r das Verst ndnis und die Benutzung einer API Sie fordern dass eine API Dokumentation nicht nur Beschrei bungen aller Klassen Methoden und Parameter sondern auch eine allge meinere Einf hrung mit fundamentalen Grundlagen enthalten soll F r die APIs die in Kapitel 3 untersucht werden w rde dies bedeuten dass grundlegende kaufm nnische Kenntnisse sowie Wissen ber das jeweilige ERP System und dessen Struktur in der API Dokumentation thematisch behandelt werden In einem sehr eingeschr nkten Ma e k nnte dies na t rlich in manchen Punkten helfen der Aufwand w rde jedoch schnell in keinem vern nftigen Verh ltnis zum Nutzen stehen Man sollte nicht versuchen ganze ERP Handb cher oder sogar komplette Studieninhalte in einer API Dokumentation unterzubringen Oft ist die Benutzung einer ffentlichen API nicht der einzige Weg um an ein System von
268. lung auftauchen und somit direkt von Modellierern benutzt werden k nnen Leider ist es hier genau wie bei jBPM 4 so dass die Sammlung schnell un bersichtlich und somit schwer zu handhaben wird da es keine Kategorien von Aktivit ten und keine Suchfunktion gibt Obwohl sie meist externe Services aufrufen werden die dom nenspezifi schen Business Aktivit ten nicht als Service Tasks realisiert Hier weicht jBPM also von der Spezifikation zu BPMN 2 ab Stattdessen wird das sehr allgemeine Element Task verwendet Dieses wird dann durch pro priet re Erweiterungen zu einem Element was so in BPMN 2 nicht vor gesehen ist Ein Unterschied zum Service Task aus dem Standard ist es hier auch erlaubt eigene Icons f r die Aktivit t zu definieren was prinzipiell zu bef rworten ist F r Service Tasks ist in der Spezifikation vorgegeben dass zwei berlappende Zahnr der in der oberen linken Ecke des abgerundeten Rechtecks dargestellt werden Eine Business Aktivit t wird definiert in einer Konfigurationsdatei work item definition eine Datei mit der Endung wid welche die MVEL Syntax benutzt Die Implementierung der Funktionalit t geschieht in einer dazugeh rigen Java Klasse Die wid Datei ist alles was der Mo dellierer ben tigt Wenn der Prozess ausgef hrt werden soll muss jede Aktivit t zus tzlich eine Implementierung besitzen Die wid Datei de finiert einen eindeutigen Namen name eine Beschriftung f r die Mo del
269. mal kann ein SLG als Kripke Transitionssystem definiert werden Dies ist eine Kombination aus Kripke Struktur und beschriftetem Transitions system englisch LTS labelled transition system in dem Sinne dass sowohl die Knoten als auch die Kanten beschriftet sind Eine formale 44n diesem Kontext ist mit dem Begriff Service das gesamte durch den Prozess beschriebene Konstrukt gemeint nicht eine einzelne Funktion die von einem Servicebaustein aufgerufen wird Ein SLG beschreibt also die Logik des gesamten Prozesses Dieser Begriff stammt urspr nglich aus dem Telekommunikationsbereich Details zur Geschichte sind in MSR05 nachzulesen 37 2 Grundlagen 38 Definition ist in J r13 nachzulesen Eine beschriftete Kante also ein Branch stellt die Transitionsrelation zwischen zwei Aktionen dar Da bei ist auch der bersichtlichkeit halber m glich und blich mehrere parallele Branches also solche mit identischem Quell und Zielknoten zusammenzufassen und als eine Kante mit mehreren Beschriftungen dar zustellen Jeder Branch stellt ein m gliches Ausf hrungsergebnis einer Aktion dar Die Ausf hrungssemantik eines SLGs sieht demnach so aus dass zun chst der Startknoten ausgef hrt wird die Ausf hrung dieses Knotens dann die Wahl des entsprechenden Branches bewirkt dann der Zielknoten des Branches ausgef hrt wird und so weiter Existiert kein Nachfolgeknoten so ist die Ausf hrung beendet Es sei hier noch
270. men da der Client nie in die Situation ger t das richtige WSDL Dokument aus einer gro en Menge zu identifizieren Nat rlich existiert weiterhin die Notwendigkeit innerhalb der WSDL die richtigen Services zu finden Dazu gibt es mehrere Operationen deren 3 3 Cloud basierte ERP Systeme Namen jeweils mit describe beginnen Diese bieten Zugriff auf die Meta daten der Services Zum Beispiel liefert describeGlobal eine Liste aller verf gbaren Business Objekte und describeSObject gibt die Informa tionen zu einem speziellen Business Objekt zur ck z B welche Felder es beinhaltet RSD Bewertung Da WSDL Dokumente und die automatische Generierung von Java Stubs aus selbigen eingesetzt werden besteht nicht die Gefahr dass die API Beschreibung nicht aktuell ist Sie ist nat rlicher Bestandteil der Imple mentation KVS Bewertung Auf alle Business Objekte der Salesforce Software kann per API zuge griffen werden Es existiert nichts in der GUI was nicht auch von der WSDL angeboten wird Nat rlich muss auch hier wieder beachtet wer den dass dies fiir Salesforce einfacher ist als f r eine deutlich umfang reichere Software Suite wie SAP ERP Auf jedes Objekt kann tiber jede CRUD Operation zugegriffen werden bei entsprechenden Rechten des Clients F r komplexe Abfragen wird die propriet re Abfragesprache SOQL Salesforce Object Query Language eingesetzt wobei es sich um eine vereinfachte Variante von
271. mentes 151 5 Service Integration im jABC zer pr sentiert werden welcher dann entscheiden kann ob er diese Do kumentation unver ndert als SIB Dokumentation beh lt oder was meis tens besser ist noch Teile hinzuf gt und l scht so dass es genau auf das SIB passt Eine vollautomatische Generierung der SIB Dokumentation wird hier nicht versucht zu erreichen In verschiedenen Projekten wurden mit den genannten Mitteln verschie dene SIB Generierungstools erstellt die allesamt Wizards f r die Daten eingabe und Templates f r die Generierung einsetzten Die Diplomarbeit von David Karla ist Gegenstand von Abschnitt 5 3 3 eine hnliche Di plomarbeit zur Integration von Intuit Quickbooks wird in Abschnitt 5 3 4 behandelt Die Erfahrungen die in beiden Diplomarbeiten gewonnen wurden wur den genutzt zur Entwicklung eines allgemeinen einheitlichen Frame works zur Generierung von SIBs f r Business APIs Dieses Framework mit dem Namen InBuS wird in Abschnitt 5 3 5 behandelt In Abschnitt 5 3 6 wird die konkrete Integration von Microsoft Dynamics NAV mit tels InBuS beschrieben und in Abschnitt 5 4 wird die Verwendung von InBuS schlie lich an einem Beispiel illustriert 5 3 1 Template basierte Code Generierung Es existieren diverse unterschiedliche Technologien zur Generierung von Quelltext oder Text im Allgemeinen Eine naive M glichkeit w re die manuelle Implementierung in einer beliebigen Programmiersprache mit Hilfe
272. mentierung der Spezifikation S und eine Programmiersprache f r statistische Aufgaben 277 B ein Biologe der die Ergebnisse seiner Analysen oder Experimente statistisch auswerten m chte selbst jedoch kein Statistiker ist kurz JRI zum Aufruf lokaler R Skripte 29eine Client Server L sung zum Aufruf entfernt deployter R Skripte 30 Java Electronic Tool Integration siehe dazu auch Abschnitt 2 6 4 4 31 Axis http axis apache org axis Axis2 http axis apache org axis2 java core und die Refe renzimplementierung von JAX WS https jax ws java net 149 5 Service Integration im jABC 150 Alternative eingesetzt werden kann Das Problem wurde so jedoch h chs tens vermindert nicht beseitigt In vielen F llen f hrte dies dazu dass letztendlich doch auf den Einsatz von WSDL2SIB verzichtet wurde und das SIB von Hand entwickelt wurde SIB Generierung f r ERP APlIs Bei der Generierung von SIBs f r die APIs von ERP Systemen ist es besonders wichtig dass diese SIBs einfach zu benutzen sind Dazu m ssen sie die richtige Granularit t besitzen gut organisiert und strukturiert sein und eine gute und vollst ndige Doku mentation besitzen Eine vollautomatische Generierung von SIBs kommt hier nicht in Frage da dies bedeuten w rde dass die entstehende SIB Sammlung eine exakte Kopie der dahinterliegeden API darstellen w rde Bei sehr unterschied lich und unterschiedlich gut erfolgten Umsetzungen der APIs ist dies nicht gew ns
273. mit gut gew hlten Begrif fen und einer klaren Struktur ist also unbedingte Voraussetzung daf r dass Benutzer das Angebot der Funktionen richtig und vollst ndig wahr nehmen Dies ist ein wichtiger Grundgedanke bei einer Untersuchung von APIs wie sie in Kapitel 3 beschrieben wird Wichtig ist bei APIs dass sie Informationen verstecken Das Prinzip der Kapselung oder auch Black Box Prinzip ist das Mittel der Wahl wenn gro e komplexe Systeme kreiert werden sollen Par72 Nur durch Modularisierung und die damit zusammenh ngende Einf hrung von Schnittstellen zwischen den Modulen k nnen gro e Systeme be herrscht werden Heutige service orientierte Architekturen gerade im Enterprise Umfeld sind dabei gute Beispiele f r extrem komplexe Sys teme Aber auch schon bei der Einf hrung von Subroutinen oder Funk tionen Prozeduren und sp ter der Klassen und Objekte in der ob jektorientierten Programmierung war Kapselung und damit Abstraktion ein entscheidender Faktor Die Aufteilung einer Software in bestimmte Einzelteile 17 f hrt auch dazu dass eine gewisse Arbeitsteilung innerhalb einer Gruppe von Entwicklern m glich ist Erst so k nnen wirklich gro e Gruppen von Personen an einem Produkt gemeinsam arbeiten APIs die nen demnach nicht nur als Strukturierungs und Beschreibungsmittel der Software sondern auch als Organisationsmittel unter Softwareentwicklern SRC 04 Teambildung und API Struktur beeinflussen sich ge
274. mote Procedure Call 263 Listings 264 RSD SAAJ SaaS SAP SCM SDK SDN SFTP SIB SLA SLG SOA SOAP SOQL SOSL SQL SP SPNEGO SSD SSL SVG TCP TLS UCC UDDI UEL UID UML Registry f r Service Discovery API Anforderung SOAP with Attachments API for Java Software as a Service Systeme Anwendungen und Produkte in der Datenverarbeitung Supply Chain Management Software Development Kit SAP Developer Network Secure FTP Service Indepedent Building Block Service Level A greement Service Logic Graph Service orientierte Architektur Simple Object Access Protocol veraltet heute kein Akronym mehr Salesforce Object Query Language Salesforce Object Search Language Structured Query Language Servicepack Simple and Protected GSSAPI Negotiation Mechanism Stabilitat der Service Definitionen API Anforderung Secure Sockets Layer Scalable Vector Graphics Transmission Control Protocol Transport Layer Security University Competence Center Universal Description Discovery and Integration nified Expression Language U Unique Identifier Unified Modeling Language URL VBA VVA VZB WCF WE WID WS BPEL WSC WSDL WSIF www WVA XAML XMDD XML XOR XP XPDL XSL XSLT YAWL Listings Uniform Resource Locator Visual Basic for Applications Validierungsregeln verfiigbar per API Voller Zugriff auf Business Objekte API Anforderung Windows Communication Foundation Window
275. mplates f r Read Operationen in Microsoft Dynamics NAV dargestellt Es handelt sich in dem Sinne um eine vereinfachte Version dass hier zum einen lediglich die SIB Klasse selbst dargestellt wird nicht der dazugeh rige Service Adapter zum anderen dass hier viele Features ausgelassen wurden wie zum Beispiel Dokumentation Referenzierung des Icons LocalChecker oder auch einem Template f r beliebige andere Prozesskomponenten 207 7 bertragung des InBuS Konzeptes auf andere BPMS Regeln und die Unterst tzung von Code Generierung durch Genesys F r die prinzipielle Erkl rung des Prinzips und im Sinne der Einfach heit reicht dieses Beispiel jedoch vollkommen aus Als Template Sprache kommt hier wie in Abschnitt 5 3 5 beschrieben StringTemplate zum Einsatz In der ersten Zeile ist zu sehen dass in dieser Datei nicht nur ein Template sondern eine Template Gruppe definiert wird Durch die Verwendung von Template Gruppen ist es m glich innerhalb einer Da tei verschachtelte Templates einzusetzen also Templates die in ihrem In nern wieder andere Templates aufrufen die in der selben Datei definiert sind Der Einfachheit halber werden bei InBuS grunds tzlich immer Template Gruppen eingesetzt auch wenn keine weitere Verschachtelung notwendig ist So ist es m glich alle Templates bzw hier Template Gruppen einheitlich anzusprechen In Zeile 3 beginnt die Definition des Haupt Templates welches in doppelte Spitze Klammern eing
276. mployee Bei zehn Business Objekten und 5 Operationen pro Objekt ergibt sich demnach eine maximal m gliche Anzahl von 50 Operationen Eine Abde ckung von mindestens 40 bewerten wir mit einem eine Abdeckung zwischen 25 und 40 mit einem o und eine Abdeckung von 25 oder weniger wird mit einem bewertet EDV Eingabedatenvalidierung Die Existenz einer Eingabedatenvalidierung stellt das wichtigste Argu ment f r die Benutzung einer API dar im Vergleich zum direkten Zu griff auf die zugrunde liegenden Daten in der Datenbank per SQL Ohne 3 1 Vergleichskriterien Eingabedatenvalidierung w re es unm glich konsistente Transaktionen zu gew hrleisten und besch digte Daten zu vermeiden Die Validierung kann zum Beispiel einen einfachen Syntaxcheck auf einer gegebenen Zei chenkette enthalten z B ob eine E Mail Adresse das Zeichen ent h lt oder die berpr fung einer komplexen Gesch ftsregel oft auch Business Rule genannt Diese Anforderung wird im Wesentlichen von allen untersuchten Systemen zufriedenstellend und insgesamt recht hn lich erf llt Daher wird dieser Punkt in den einzelnen Besprechungen der Systeme nicht weiter erw hnt SSD Stabilit t der Service Definitionen Um sicher zu gehen dass eine Applikation welche die ERP API als Client nutzt auch langfristig in der Zukunft noch funktionsf hig ist ist es von besonderer Wichtigkeit dass sich die Definitionen der API nicht beliebig ndern Sobald
277. n 4 5 1 Struktur Eine Business Aktivit t stellt das Verbindungsglied zwischen Prozess und Service dar Die technische Ansteuerung des Service muss daher Teil der Aktivit t sein jedoch f r den Prozessmodellierer versteckt und somit unsichtbar Er sieht nur die Definition der Aktivit t Wenn man also die grobe Struktur einer Business Aktivit t betrachtet so hat man zwei Teile 1 Definition 2 Implementierung Die Implementierung besteht aus Programmcode z B in Java Dieser f llt nat rlich nicht vom Himmel und muss irgendwie erstellt werden Darauf wird in Abschnitt 4 5 2 n her eingegangen Die Definition besteht aus einer ganzen Reihe von Elementen 1 Name ID Parameter Dokumentation Ausg nge als beschriftete ausgehende Kanten optional Icon optional Oak ww Benutzungsregeln optional m Die mit optional gekennzeichneten Bestandteile sind nicht unbedingt notwendig um als Business Aktivit t zu gelten erh hen jedoch die Qua lit t der Aktivit t enorm Die beschriebene Struktur der Business Aktivit ten entspricht exakt der in Abschnitt 2 6 SIB Struktur SIBs sind also ein perfektes Mittel f r die Umsetzung von Business Aktivit ten Dabei ist zu beachten dass ein SIB nicht automatisch eine Business Aktivit t ist Nur wenn beim Entwurf der SIBs die richtige Granularit t gew hlt wurde das SIB alle oben genannten Kriterien erf llt um Teil einer Business DSL zu sein und 125 4 Serv
278. n Auch ist hier zu sehen dass keine weitere Kategorisierung der Pages vorgenommen wird Dies ist aufgrund der relativ geringen Anzahl der Pages auch nicht unbedingt n tig Neben Pages und dem SystemService existieren in Dy namics NAV noch so genannte CodeUnits die ebenfalls als Webservice ver ffentlicht werden k nnen Dabei handelt es sich um Skripte die nicht mit einer bestimmten Page verbunden sind Im Beispiel sind keine Co deUnits vorhanden F r die meisten Integrationszwecke sind die Pages auch die deutlich elegantere L sung Mit CodeUnits kann der Benutzer eigene Skripte in Dynamics NAV implementieren die dann intern sowie extern verf gbar gemacht werden k nnen Diese Form des Customizings f hrt jedoch oft zu einer schweren Wartbarkeit in der Zukunft Aus die sem Grund werden CodeUnits im Folgenden nicht so intensiv wie Pages betrachtet Listing 5 3 Dynamics NAV DISCO Dokument lt discovery xmlns http schemas xmlsoap org disco xmlns xsi http www w3 org 2001 XMLSchema instance D D A4 om ep Co 10 12 13 14 15 16 17 18 19 20 21 22 xmlns xsd http www lt contractRef ref http localhost xmlns http schemas lt contractRef ref http localhost xmlns http schemas lt contractRef ref http localhost xmlns http schemas lt contractRef ref http localhost xmlns http schemas lt contractRef ref http localhost xmlns http schemas lt cont
279. n Ein alternativer Ansatz zur Bereitstellung expliziter SIBs zum Aufbau und Abbau der Verbindung w re es gewesen in jedem SIB die Verbindung auf und wieder abzubauen Dies w re zwar sehr ineffizient w rde jedoch zu einem einfacheren Prozessmodell f hren Ein Kompro miss zwischen beiden Ans tzen ist es dass ein SIB pr ft ob eine Ver bindung vorhanden ist und bei bestehender Verbindung diese nutzt und danach bestehen l sst Ist keine Verbindung vorhanden so baut das SIB seine eigene Verbindung auf Pro Wizard Durchlauf also pro zu integrierendem Service werden bis zu drei SIBs generiert e Ein SIB welches eine Eingabe GUI anzeigt optional e Ein SIB welches den Service aufruft verpflichtend e Ein SIB welches eine Ausgabe GUI anzeigt optional Diese drei SIBs kommunizieren miteinander ber den Ausf hrungskon text Dazu werden spezielle Klassen des SAP Plugins benutzt Nach dem Service Aufruf werden z B Objekte der Klasse ReturnParameter in den Kontext gelegt welche die R ckgabedaten der BAPI Funktion enth lt Diese Klasse hat verschiedene Unterklassen f r die einzelnen Datentypen wie z B Char Table Structure oder Table Ein vom Diplomanden selbst erkanntes Manko des Wizards ist dass im mer wieder die Situation vorliegt bei der eine manuelle Implementierung einfacher w re da verschiedene Eingabeparameter den gleichen Wert be kommen m ssen oder mit einem konstanten Wert belegt werden m ssen Diese F lle w
280. n chsth heren Verantwortlichen Bedingung Reaktion auf ver nderte Bedingungen und Bezug auf Gesch ftsregeln Link Zwei zusammengeh rige Link Ereignisse repr sentieren einen Sequenzfluss Fehler Ausl sen und behandeln von definierten Fehlern Abbruch Reaktion auf abgebrochene Transaktionen amp oder Ausl sen von Abbr chen Kompensation Behandeln oder Ausl sen einer Kompensation Signal Signal ber mehrere ER RN Prozesse Auf ein Signal kann S A A FAN mehrfach reagiert werden Nat ae Mehrfach Eintreten eines von nn ios 1 4 mehreren Ereignissen QO O er RR D Wy Ausl sen aller Ereignisse Kg Mehrfach Parallel Eintreten en TEN oo V d aller Ereignisse GO CG a ar Terminierung L st die sofortige Beendigung des Prozesses aus OOO EHS BE Gi Abbildung 8 1 BPMN 2 0 Ereignisse Quelle Ende Ausgel st Standard O O 0990 BPM11 e Der Empfang bzw der Versand von Nachrichten kann durch ent sprechende Events oder durch entsprechend markierte Tasks mo delliert werden Das Prozessmodell von AristaFlow kann schon bei relativ einfachen Prozessen zu komplexen Darstellungen f hren Abbildung 8 3 stammt aus einem AristaFlow Workshop der von den Herstellern selbst angeboten wurde Dargestellt ist ein Prozess bei dem eingangs nach einer Zahl gefragt wird und anschlie end in einer einfachen Schleife diese Zahl
281. n obwohl der aufrufende Java Prozess schon als Windows Benutzer angemeldet ist Ein weiterer Nachteil dieses Verfahrens ist im Unterschied zum Doku mentenverfahren in folgendem Abschnitt dass eine Instanz der Office Software gestartet und gesteuert werden muss Man muss also zum einen ein Windows System mit installiertem Office Paket zur Verf gung ha ben zum anderen muss die Software f r jede Benutzung gestartet wer den Dieser Vorgang kann manchmal recht langsam sein da es sich bei der Office Suite um ein recht umfangreiches Softwarepaket handelt Weiterhin ist es ganz besonders zu erw hnen dass die Office API sich von einer Office Version zur n chsten erheblich ndern kann So ist man nie sicher dass ein API Aufruf nach einem Versionswechsel immer noch funktioniert Vorteilhaft an dieser Art der Ansteuerung ist die Verf gbarkeit einer vollst ndigen API die die Gesamtheit aller Funktionen der Office Suite abdeckt Auch gibt es einen recht einfachen Weg herauszufinden welche konkreten Aufrufe n tig sind um ein bestimmtes Verhalten zu bewirken Dazu kann sehr gut die Makro Rekorder Funktion verwendet werden Dabei wird einfach ein Aufnahme Vorgang in der GUI von Office gest artet man klickt sich durch den gesamten Vorgang und stoppt anschlie Bend die Aufnahme Im Hintergrund wurde nun w hrend der Aufnahme VBA Code erzeugt welcher genau diesen Vorgang durchf hrt Man hat also eine sehr intuitive und einfache Methode der
282. n alternatives BPMS wiederverwendet werden kann Das Ergebnis der Generierung des LightweightServiceAdapters ist in Lis ting 7 4 zu sehen 211 7 bertragung des InBuS Konzeptes auf andere BPMS 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 212 Listing 7 4 Generierter LightweightServiceAdapter package de jabc sibs dynnav adapters salesorder import de jabc sibs dynnav Business bject weitere Import Statements ausgelassen Generated value de jabc inbus date date public class SalesOrderPageReadLWServiceAdapter public static String read LightweightExecutionEnvironment env ContextKeyFoundation salesOrderNumberKey ContextKeyFoundation salesOrderKey String salesOrderNumber String env getLocalContext get salesOrderNumberKey BusinessObject salesOrderObject SalesOrderJavaService readSalesOrder salesOrderNumber environment getLocalContext put salesOrderKey salesOrderObject return default In Abschnitt 7 1 wird gezeigt wie entsprechende Templates fiir jBPM 5 aussehen in Abschnitt 7 2 wird auf Activiti eingegangen 7 1 jBPM ab Version 5 x In Listing 7 5 ist das Template f r die WID Datei zu sehen Man kann er kennen dass auch hier wieder nur die gleichen Variablen benutzt werden und ausschlie lich Variablenersetzung eingesetzt wird Listing 7 5 Template jBPM WID Definition import org drools process core dataty
283. n einem SLG 49 Zu Gunsten der bersichtlichkeit wurden die Package Angabe sowie die Import Anweisungen in diesem Beispiel ausgelassen 39 2 Grundlagen 11 12 13 14 15 16 de 18 ersten Zeile wird durch die Annotation SIBClass und die damit defi nierte UID erreicht dass diese Klasse als SIB interpretiert wird In Zeile zwei erkennt man an der Implementierung der Schnittstelle Executable dass dieses SIB durch den so genannten Tracer ausf hrbar ist Mit der Ausf hrung durch Tracer besch ftigt sich Abschnitt 2 6 4 2 In den Zeilen vier und f nf ist zu erkennen dass dieses SIB zwei feste Branches besitzt default und error f r eine erfolgreiche Ausf hrung respektive eine fehlerhafte Ausf hrung In Zeile sieben beginnt die Implementierung der Methode execute die von der Schnittstelle Executable vorgeschrieben wird In diesem Fall wird in Zeile 9 ein String aus dem Kontext gelesen mit dem Schl ssel x und in Zeile 10 ein Service aufgerufen wobei der vorher aus dem Kontext gelesene String als Parameter bergeben wird In Zeile 11 wird das Ergebnis des Service Aufrufs unter dem Schl ssel y wieder in den Kontext geschrieben Falls ein Fehler bei der Ausf hrung auftritt wird in Zeile 14 der Branch error gew hlt Ist die Ausf hrung erfolgreich wird dagegen in Zeile 16 der Branch default gew hlt Listing 2 1 Beispielimplementierung eines einfachen SIBs eSIBClass 1s5 test example public class
284. n seiner Aufgabe her in etwa dem SIB Inspektor des jABC Ein Connector ist in Java implementiert so dass der vom Task auszu f hrende Code auch in Java definiert ist Dies ist hnlich wie bei SIBs nur dass hier ein Connector an einen beliebigen Task oder Prozess auf verschiedene Arten angeh ngt werden kann Ein SIB im jABC ist immer ein eigenes spezielles Prozesselement Die Eingabedaten f r Connectoren k nnen entweder Konstanten sein oder Expressions bei denen auf den Kontext zugegriffen werden kann Die Ausgabedaten werden ebenfalls wieder in den Ausf hrungskontext geschrieben Es existiert bereits eine Sammlung an Connectoren und es ist auch m glich eigene Connectoren zu erstellen Connectoren werden in verschiedenen Kategorien angebo ten Diese Kategorien sind jedoch fest vom Hersteller vorgegeben und sind nicht hierarchisch Skript Aktivit ten Es existieren fertige Connectoren f r die Ausf h rung von Shell Skripten sowie f r die Skriptsprache Groovy Technische Service Aktivit ten Die Sammlung der fertigen Connec toren enth lt auch einige technische Service Aktivit ten Dies sind unter anderem die folgenden e Java Zur Ausf hrung einer Java Methode e Web Services Zum Aufruf eines SOAP Web Services 30http www bonitasoft com resources documentation bos 56 connectivity 186 6 3 Bonita Open Solution BPMN 2 0 e Datenbankzugriff H2 HSQL Oracle JDBC Access e LDAP Zum Zugriff auf einen LDAP Verzeichnis
285. n technischen Sicht kei ne weiteren Gruppierungen oder Kategorisierungen der Services mehr Auch das Konzept von Business Objekten gibt es aus technischer Sicht hier nicht Die richtige Funktion kann hier dadurch gefunden werden dass sich die Service Namen an ein konsistentes Namensschema halten Alle Service Namen beginnen mit einem Pr fix wobei es sich immer um ein Verb handelt welches angibt was mit einem Business Objekt getan wird z B Get zum Lesen von Daten oder Add zum Hinzuf gen Mactivities scheduling xsd platform core xsd und plaform massages xsd 96 3 3 Cloud basierte ERP Systeme von Daten Nach einem Unterstrich als Trennsymbol folgt der Name des Business Objektes Die WSDL Dateien sind recht gro da es eine spezifische Funktion f r jeden Service gibt z B Find_ Employee oder Get_Job_ Profiles Die Kategorien gruppieren nicht wirklich die Business Objekte sondern die Funktionen Das bedeutet dass ein Business Objekt mit mehreren seiner Methoden in der einen Kategorie und mit einigen anderen Me thoden in einer zweiten Kategorie vertreten sein kann Dies macht es manchmal schwieriger den richtigen Service zu finden Zum Beispiel sind die Services Hire_Employee und Terminate _ Employee in der Ka tegorie Staffing einsortiert Get Employee und Find_ Employee jedoch unter Human Ressources Methoden von Applicant k nnen teilweise in Recruiting und
286. n und auch umgekehrt diese Java Objekte als XML speichern kann Ein Problem bei der Verwendung von Apache Castor waren Namenskon flikte innerhalb der XSD Dateien Diese waren jedoch mit vertretbarem Aufwand manuell zu beheben Aber auch das um Namenskonflikte be reinigte XSD enthielt immer noch wie die DTD Fehler und Unvollst n digkeiten Um diese zu Beheben wurde eine weitere Informationsquelle herangezogen Die On Screen Reference also die Webseite mit der API Dokumentation erh lt ihre Informationen aus Dateien im JSON Format Diese erwiesen sich als qualitativ gut Sie enthielten also keine Fehler und waren auch vollst ndig Sie wurden also benutzt um die XSD Definition entsprechend zu erweitern Da die Kommunikation mit Quickbooks relativ schwierig ist aufgrund der propriet ren COM Technologie wurden verschiedene Connection Manager und auch ein QBDE Server entwickelt eine Windows spezifische 4lin Zusammenarbeit mit der TU Dortmund 157 5 Service Integration im jABC 158 Java Anwendung mit der von au en ber TCP IP kommuniziert wer den kann und die alle Anfragen an Quickbooks weiter leitet Somit hat man plattformunabh ngigen Zugriff Die grunds tzliche Art der generierten SIBs unterscheidet sich in dieser Diplomarbeit deutlich von den im Abschnitt 5 3 3 beschriebenen SAP BAPI SIBs Hier ist f r ein SIB welches f r einen speziellen Funkti onsaufruf ben tigt wird lediglich der entsprechende Name der qbX
287. n werden bestimmte vorgefertigte Regelarten ange boten die genutzt werden k nnen So ist es grunds tzlich m glich zu verbieten dass bei einem SIB der Default Wert einfach beibehalten wird Wenn der Default Wert zum Beispiel den Text Nicht spezifiziert ent h lt so kann durch diese Regel erreicht werden dass auf keinen Fall vom Prozessmodellierer vergessen wird hier einen g ltigen Wert bergeben zu lassen Bei Zahlen sind Regeln zum Wertebereich wie ein Minimum ein Maximum oder Nicht 0 m glich bei Zeichenketten einfache Regeln wie Nicht leer oder eine minimale L nge oder eine maximale L nge Auch mittels regul rer Ausdr cke kann eine Zeichenkette berpr ft werden Dies erfordert schon deutlich mehr Kenntnisse vom Wizard Benutzer ist auf der anderen Seite jedoch auch sehr m chtig 5 3 6 Integration von Microsoft Dynamics NAV Am Beispiel von Microsoft Dynamics NAV wird im Folgenden beschrie ben wie mit dem InBuS Framework SIBs f r das jJABC generiert werden Wie in Abschnitt 3 2 3 beschrieben existiert in Dynamics NAV f r je 163 5 Service Integration im jABC 1 2 164 des Business Objekt eine so genannte Page welche das Objekt samt seiner Daten sowie einer Reihe von Standardmethoden anbietet Pages sind das Hauptmittel zur Organisation und zur Darstellung von Daten in Dynamics NAV Jede Page bietet eine Reihe von Standardmethoden an ber die Daten erzeugt gelesen ver ndert und gel
288. nannten Wizard erfolgen Der Benutzer wird dabei durch einen strikt vorgege benen Prozess gef hrt Hierauf wird in Abschnitt 5 3 2 genauer einge gangen Von besonderer Wichtigkeit ist Dokumentation der Services und SIBs Nur mit einer guten und vollst ndigen Dokumentation in ein SIB auch gut benutzbar Dokumentationstext sollte dabei immer m glichst ber all zug nglich sein wo Interesse daran bestehen k nnte diese zu lesen Das kann zum Beispiel in einer bersicht der SIBs in einem Repository oder auch direkt im Prozessmodell der Fall sein Ist Dokumentation bei einem Service vorhanden so muss beim Generierungsprozess unbedingt darauf geachtet werden dass diese Information nicht verloren geht Oft existiert Dokumentation und das Problem besteht lediglich darin dass man diese nicht oder nur schlecht findet Ist die Dokumentation zum Beispiel nur auf einer bestimmten Webseite oder gar nur in speziellen Handb chern als PDF oder sogar gedruckt vorhanden so ist sie nur schwer zug nglich Ist sie jedoch Teil der API so kann dieser Text direkt weiter benutzt werden Bei Java Stub Generatoren wie wsimport von JAX WS oder wsdl2java von Apache Axis w re es ein leichtes diese Texte auszulesen und sie als JavaDoc an die generierten Methoden zu h ngen Leider wird dies nicht getan Im SIB Generierungs Wizard muss vorhandene und zug ngliche Dokumentation grunds tzlich dem Benut 322 B in den documentation Tags eines WSDL Doku
289. nd wie sie also gestaltet werden sollten 12 Jaut Erl selbst ist ein Entwurfsprinzip ein in einer Branche generalisierte allgemein anerkannte Vorgehensweise oder Praxis Erl08 S 41 16 2 2 Service orientierte Architektur SOA Servicevertr ge Dazu geh rt die technische Schnittstellenbeschrei bung im Falle von Web Services z B Dokumente in den Formaten WSDL XSD und oder WS Policy sowie nicht technische Verein barungen wie SLAs Service Level Agreements Kopplung von Services Zwischen den Services ist eine m glichst lose Kopplung gew nscht Dies bedeutet eine Minimierung der Abh ngigkeiten zwischen den Services und zwischen einem Service und dessen Consumer Abstraktion von Services Das Verstecken von Informationen z B der Implementierung auch Kapselung genannt ist ein wichtiger Punkt bei Services Jeder Service ist eine Blackbox nur die Schnittstelle also die API siehe Abschnitt 2 3 ist ffentlich Wiederverwendbarkeit von Services Ein Service ist grund s tzlich wiederverwendbar Dabei wird nicht nur ein bestimmter Code wiederverwendbar gemacht wie bei der Objektorientierung sondern eine konkrete deployte Instanz einer Softwarekomponente Autonomie von Services Jeder Service ist ein selbstst ndiger Baustein Zustandslosigkeit von Services Die Services selbst haben kei nen Zustand behalten also keine Daten bzw Informationen Auffindbarkeit
290. nd einer gegebenen Wertebelegung f r die Variablen also die Platzhalter ein Zieldokument generiert Aus name strasse plz ort wird also durch Anwendung der Template Engine und einer entsprechenden Wertebelegung die Adresse Max Mustermann Hauptstra e 1 12345 Musterstadt Meist bieten Template Engines deutlich mehr Features an als die rei ne Ersetzung von Platzhaltern Zu diesen geh ren Bedingungen und da mit verbundene Entscheidungen Schleifen oder sogar Wertezuweisungen oder Berechnungen Manche Template Sprachen sind so komplex dass sie sogar Turing vollst ndig sind Neben bekannten Template Engines die zur Generierung von Webseiten eingesetzt werden z B ASP oder JSP ist zum Beispiel Apache Velocity eine Template Engine mit ent sprechend m chtiger Template Sprache F r jemanden der es gewohnt ist zu programmieren ist eine solche Sprache recht einfach zu erlernen Velocity wurde zum Beispiel in der Diplomarbeit von David Karla ein gesetzt um SIBs f r die SAP BAPI zu generieren Auf diese Arbeit wird in Abschnitt 5 3 3 genauer eingegangen 5 3 2 Wizards Sowohl die Arbeiten von David Karla siehe Abschnitt 5 3 3 und And re Ackermann siehe Abschnitt 5 3 4 also auch das InBuS Framework siehe Abschnitt 5 3 5 setzten auf den Einsatz eines Wizards zur Kom munikation mit dem User vor der SIB Generierung Ein Wizard ist eine bestimmte Art der graphischen Benutzeroberfl che bei der ein Benutzer dur
291. nden Nachteil dar Durch den Einsatz aktueller Standards wie z B SOAP Web Services oder REST ist es m g lich komplett unabh ngig von Betriebssystem oder Programmiersprache die Services anzubieten und zu nutzen AZS API Zugriffssicherheit Wenn wichtige und sensible Daten wie Gesch ftsdaten durch eine API ffentlich zug nglich gemacht werden z B im ganzen Unternehmen oder sogar im Internet ist es besonders wichtig zu beachten dass die API ein zus tzliches Risiko f r externe Attacken bedeutet Um die Daten zu sch tzen muss eine sichere Authentifizierung und eine damit verbundene Autorisierung gew hrleistet werden Ebenso muss es m glich sein die 3 1 Vergleichskriterien sensiblen Daten nur verschl sselt ber das Netzwerk zu senden z B mit SSL Res01 EAM Einfacher Authentifizierungsmechanismus Die Authentifizierung muss auf der einen Seite sicher sein sollte auf der anderen Seite jedoch keine unn tigen H rde auf dem Weg zum Daten zugriff darstellen Komplexe Authentifizierungsverfahren die den An wender immer wieder dazu zwingen die immer gleiche manchmal recht lange Folge von Schritten durchzuf hren ohne dass dabei die Proze dur an Sicherheit gewinnt sind nicht w nschenswert Im einfachsten Fall werden einfach bei jedem API Aufruf ein Benutzername mit dem entsprechenden Passwort verlangt Eine immer noch einfache Alterna tive ist ein Login Service welcher einen Benutzernamen und Passwort als Eingabe ve
292. nders an den zentralen Anforderungen einer Business API sowie den vielen zus tzlichen Informationen die es vereinfachen w rden automa tisiert mit der API zu arbeiten Au erdem ist zu bem ngeln dass die API nicht kostenlos getestet werden kann Ebay Trading API Anders als bei Amazon ist f r den Zugriff auf die Ebay Trading API lediglich ein kostenloser Developer Account notwen dig Es existiert eine ausf hrliche Dokumentation als PDF Dateien sowie viele Hilfestellungen und Code Beispiele Zum Testen der API steht eine Sandbox zu Verf gung wobei es sich um eine vollwertige Kopie des ech ten Ebay Datenbestands handelt F r Java Python und NET werden SDKs angeboten Technisch setzt die Ebay API auf durch WSDL be schriebene SOAP Webservices Die API von Ebay ist in mehrere Sub APIs unterteilt wobei jede durch eine WSDL beschrieben wird ber die hier angebotenen Funktionen sind alle Aktionen m glich die man auch ber die Ebay Webseite durchf hren kann Lediglich das Anlegen neuer User ist eine Ausnahme Die API besitzt eine Versionierung wobei eine Abw rtskompatibilit t von mindestens 18 Monaten gew hrleistet wird Zu jedem Release sind detaillierte Informationen online einsehbar Die API ist insgesamt sehr gut zu benutzen Die Namen sind intuitiv und konsistent gew hlt die Struktur ist klar und einfach und die Do kumentation sehr umfangreich korrekt und auf dem neuesten Stand Die verwendeten Technologien sind platt
293. ne Aktivit t bereits im Prozessmodell platziert wurde ist die Doku mentation einsehbar Die Konfiguration des Prozesses und dessen Akti vit ten wird durch Wizards geleitet welche den Benutzer nacheinander durch alle ben tigten Schritte leitet Eine Service Aktivit t hat in AristaFlow grunds tzlich nur eine ausge hende Kante F r Entscheidungen wird die spezielle XOR Aktivit t be nutzt Fazit Zusammenfassend l sst sich sagen dass AristaFlow mit der aus gereiften Unterst tzung der Entwicklung eigener Aktivit ten punktet und dies obwohl dieser Aspekt eigentlich nicht dem prim ren Konzept von AristaFlow entspricht Besonders das Repository mit dem Repository Editor sind hier positiv hervorzuheben Die Aktivit ten besitzen ihr eige nes Icon es existiert Unterst tzung f r Dokumentation und es gibt sogar einfache Generierungstools z B der direkte Import von Java Methoden oder SOAP Web Services in den Repository Editor Auf der anderen Seite k nnte der Prozess Editor noch dahingehend ver bessert werden dass die Dokumentation der Aktivit ten auch in der Aktivit ten bersicht einsehbar ist Au erdem gibt es keine Unterst t zung f r beschriftete ausgehende Kanten oder Validierungscode Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Ver gleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 5 YAWL YAWL Thel3c HAAR10 steht f r Yet Another Workflow Langua
294. ne SOA aufgebaut hat Eine m glichst kurze Lime to market wird dabei immer prim r angestrebt Immer schneller muss ein Unternehmen auf sich ndernde Marktverh ltnisse reagieren k nnen Dazu muss SOA Faktoren wie Organisation des Unternehmens die Regeln und nat rlich die Prozesse siehe Abschnitt 2 1 mit einbezie hen Weiter charakterisiert er SOA als ein Konzept welches eine verteil te heterogene Systemlandschaft mit ebenso verteilten Zust ndigkeiten und Besitzverh ltnissen beinhaltet Die zentralen technischen Konzepte innerhalb von SOA sind bei ihm 1 die Services selbst 2 eine hohe In teroperabilit t der Services und 3 eine lose Kopplung der Services Mit loser Kopplung ist hier gemeint dass besonders die Punkte Flexibilit t Skalierbarkeit und Fehlertoleranz zu beachten sind Papazoglou Pap07 definiert SOA is a logical way of designing a software system to provide services to either end user applications or to other ser vices distributed over a network via published and discovera ble interfaces Hier wird also das Netzwerk betont und dass es ver ffentlichte Schnitt stellen gibt die aufgefunden werden k nnen Dies sind typische Eigen schaften von Web Services Tats chlich l sst sich Papazoglou der Web Service Community zuordnen Er selbst schreibt im oben referenzierten Paper in einer Fu note In this paper we shall use the terms Web service and service interchangeably In dieser Arbe
295. nen hier konzeptionell eingebunden werden kann man am besten an bestehenden Connectoren sehen So existiert ein Connector fiir die SAP BAPI Dieser ist sehr technisch und daher eher in die Kategorie der technischen Service Aktivit ten einzuordnen Der Grund f r diese Einordnung ist dass es hier nur genau eine Aktivit t gibt und zwar die zum Aufruf einer Funktion Die Benutzung hnelt also eher der Programmierung mit JCo oder dem Umgang mit Java Re flection 187 6 Service Integration in anderen BPMS Mehrere Connectoren existieren f r das CRM System Salesforce Diese sind ebenfalls relativ technisch Immerhin existieren hier mehrere also speziellere Connectoren F r jede CRUD Operation existiert ein Connec tor Man kann also Salesforce Objekte erzeugen auslesen manipulieren und l schen Eine relativ gro e Sammlung von Connectoren existiert f r das DMS Alfresco Mit 13 verschiedenen Connectoren k nnen hier Dateien hoch und heruntergeladen werden Ordner erstellt werden und viele andere DMS typische Aktionen durchgef hrt werden Diese Connectoren sind schon so speziell dass man von Business Aktivit ten sprechen kann Insgesamt l sst sich also sagen dass die Einbindung der verschiede nen Systeme sehr unterschiedlich vollzogen wurde was wohl vor allem auch an der Komplexit t der Aufgabe liegt Ein vollst ndiger fachlicher Connector f r die SAP BAPI wo f r jede Funktion ein Connector exis tiert w rde einen immensen
296. ng von Business A PIs 58 ZS Chnolof Abbildung 3 3 Kategorisierung der API Anforderungen F r jede Anforderung wurde ausgewertet ob ein bestimmtes System die se Anforderung erf llt oder nicht Im Folgenden wird eine erf llte Anfor derung mit einem Plus Symbol bewertet wenn sie voll erf llt wird mit einem Kreis o wenn sie zum Teil erf llt wird und mit einem Minus Symbol falls die Anforderung absolut gar nicht erf llt wird Schlie lich werden in zwei bersichtstabellen die Ergebnisse gegen bergestellt Dabei enth lt Tabelle 3 7 die eher traditionellen ERP Systeme die bei den Unternehmen selbst in Betrieb genommen werden on premise im Englischen und Tabelle 3 7 die Systeme die als SaaS L sung in der Cloud angeboten werden 3 1 1 Zentrale Anforderungen Zu den zentralen Anforderungen geh ren diejenigen die eigentlich jede ERP API erf llen sollte Werden diese Anforderungen nicht erf llt so ist dies ein deutliches Zeichen f r die allgemeine Schw che der API RSD Registry f r Service Discovery Um sich einen berblick ber alle Services zu verschaffen muss ein Ver zeichnis auch Registry genannt existieren in dem alle einzelnen an gebotenen Dienste aufgelistet werden Dieses Verzeichnis kann dann zur Service Discovery genutzt werden also zum Lokalisieren des richtigen also des geeigneten Services Jeder Eintrag im Verzeichnis muss neben dem Namen mindestens n
297. nging wies darauf hin dass eine klare Trennlinie zwischen dem Prozess und den zugrunde liegenden Services geben muss Business people understand that when their pure program ming requirements exceed that of tools like BPMS they ask IT developers to create or find additional code for them that can be included as participants in business processes Skript Aktivit ten sollten also nicht benutzt werden um Services in einen Prozess einzubinden Stattdessen m ssen sich Services unter dem Pro zess befinden wobei die Implementierungen f r den Prozess Designer so gar komplett versteckt also unsichtbar sein m ssen Aus dem Beispiel BPELJ k nnte man sogar so weit gehen und Skript Aktivit ten ganz verbieten In produktiv laufenden Prozessen ist deren Abwesenheit wohl der Wunschzustand Obwohl Skript Aktivit ten nicht die erste Wahl f r die Aufgabe der Service Integration darstellen ist es nichtsdestotrotz sinnvoll diese in diesem Kontext zu betrachten Zum einen werden sie in der Praxis zu diesem Zweck genutzt zumindest f r das Rapid Prototyping Zum ande ren ist es oft nicht ganz klar zu welcher Kategorie eine Aktivit t geh rt Zum Beispiel kann eine Aktivit t die eine Expression als Parameter enth lt schon als Skript Aktivit t gesehen werden mit allen oben ge nannten Nachteilen Dies gilt nicht nur f r Expressions Alle komplexen technischen Zeichenketten die auf irgendeine Art und Weise ausgewer tet werden z B
298. nigen 28 2 4 Cloud Computing des Wassers in der Kl ranlage die Gewinnung von elektrischem Strom durch Kohle Gas Wind Sonne etc oder die F rderung von Erdgas Diese Idee ist bei weitem nicht neu Schon 1961 sagte John McCarthy bei der Einhunderjahrfeier des MIT Abe99 If computers of the kind I have advocated become the com puters of the future then computing may someday be or ganized as a public utility just as the telephone system is a public utility The computer utility could become the basis of anew and important industry Zu der Zeit war es blich dass man gro e Mainframes einsetzte auf die man mit schlanken Clients meist so genannte Terminals zugriff Auch hier teilten sich viele Nutzer eine gemeinsame Ressource im Netzwerk Als die Rechner immer kleiner und leistungsst rker wurden kam es dann irgendwann zur PC ra in der es f r jeden m glich war seine eige nen Computer zu benutzen Somit wurde die Vision von John McCarthy zun chst einmal immer unwahrscheinlicher Auch in den Anfangsjahren des Internet in den 90er Jahren war aufgrund geringer Daten bertra gungsraten noch nicht an Cloud Computing zu denken In den 2000ern kam dann zuerst das Prinzip der Application Service Provider ASP auf Dabei wurden Applikationen nicht mehr lokal auf einem Desktop Rechner installiert und ausgef hrt sondern liefen als Web Applikation und somit in jedem Browser Man musste die Softwar
299. nnen Das was bei JCo Function hei t ist das Objekt welches die konkreten Eingabe und Ausgabedaten eines Funktionsaufrufs ent h lt Eine passendere Benennung w re hier also FunctionCall gewesen All die genannten Probleme und Optimierungsm glichkeiten im Umgang mit JCo f hrten dazu dass im Rahmen dieser Arbeit eine neue zus tzli che Bibliothek als Wrapper um JCo entwickelt wurde die die technischen Eigenheiten von JCo versteckt Der erste Schritt bestand dabei daraus aus JCo eine Java typische Library machen Dabei wurde nat rlich auch auf grunds tzliche Anforderungen an gutes API Design gedacht Einfa che Dinge sollten einfach und mit wenig Code beschreibbar sein Auf der Basis dieser technischen Bibliothek konnte anschlie end eine Sammlung fachlicher Java Services entwickelt werden Diese stellen also das technische Backend f r die in Abschnitt 4 5 beschriebenen Business Aktivit ten dar Anstatt also bei der Benutzung der Bibliothek mit Funktionen Parametern und Werten zu arbeiten stehen nun stattdessen Objekte wie Kunden Materialien oder Mitarbeiter im Mittelpunkt Beide genannten Schichten zum einen die Java typischen Wrapper zum anderen Business Funktionen werden in der so genannten SAP Lib zusammengefasst Mit dieser Java Bibliothek kann also sehr einfach von Java aus auf ein SAP ERP zugegriffen werden und zwar weitesgehend ohne tiefgehende SAP Kenntnisse Diese Bibliothek ist komplett unab h ngig vom jABC
300. noch weitere Anwendungen b ndeln Besonders Tabellenkalkulationen wie Microsoft Excel bilden dabei oft den Kern einer Unternehmens IT und das nicht nur in kleinen Unter nehmen Der Vorteil einer solchen L sung ist dass auch Personen ohne besondere IT Kenntnisse f hig sind auf der Basis eigene Softwarel sun gen zu erstellen Werden jedoch auch zentrale Gesch ftsprozesse ad hoc mit einer Tabellenkalkulation umgesetzt und zwar von Personen au er halb einer IT Abteilung so spricht man auch von Shadow IT Rad05 Genau so wie die Schattenwirtschaft unerkannt von der Steuer existiert gibt es auch eine Art Schatten IT im Unternehmen die unerkannt von der IT Abteilung und somit auch oft unerkannt f r die Unterneh mensleitung existiert Gesch ftsprozesse werden dann nicht wie es das Gesch ftsprozessmanagement vorschreibt graphisch modelliert zentral vorgehalten und zum zentralen Element der IT Umsetzung Stattdessen werden auf die Schnelle oft relativ prototypisch anmutende L sungen entwickelt die meist nicht dokumentiert und somit nur vom Ersteller selbst bedienbar sind Dies hat eine Reihe von Problemen zur Folge Da der Ersteller meist keine IT Kenntnisse hat sind die L sungen oft sehr unfachm nnisch erstellt und enthalten viele kleine Programmiertricks die sich der Ersteller oft selbst ausgedacht hat Somit sind sie extrem feh leranf llig Da eine Tabellenkalkulation keine Prozesssteuerung enth lt
301. nologien wie z B der Expression Language Mail SIBs Eine gro e Rolle im Technologieumfeld von Unternehmen spielt die E Mail Zu diesem Thema wurde eine Diplomarbeit angefertigt Sa 07 Dennis Sa mannshausen entwickelte daf r eine Sammlung von entsprechenden Mail SIBs zum einen zum Versenden von E Mails zum anderen zur Verwaltung eingehender E Mails Zur Implementierung dieser SIBs wurde die Java Bibliothek JavaMail eingesetzt welche Teil der Java Enterprise Edition ist Integration von SAP eSOA und Google Apps Im Rahmen der Vor lesung Aktuelle Themen der Dienstleistungsinformatik wurden in den Wintersemestern 2010 2011 2011 2012 sowie 2012 2013 in Kleingrup pen bestehend aus jeweils zwei bis vier Studenten praktische Projekte mit dem jABC umgesetzt in denen auch SIBs entwickelt und damit Prozes se erstellt wurden Zwei dieser Projekte sind dabei einem identischen fiktiven Szenario zugeordnet Dieses ist wie folgt beschrieben Die Firma IDES AG verwaltet alle Daten des Unterneh mens mittels SAP Software konkret mit einem SAP ERP Die ses System hat sich auf der einen Seite als sehr komplex in der Bedienung erwiesen auf der anderen Seite bedeutet der Ein satz von SAP ERP einen erheblichen Kostenaufwand Um in Zukunft Kosten zu senken sich weniger abh ngig von SAP zu machen und eine einfacher zu bedienende Software zu ha ben plant die IDES AG nun eine schrittweise Migration auf kostenlose Cloud Dienste d
302. nt env 27 try 28 return 29 SalesOrderPageReadServiceAdapter 30 read env 31 salesOrderNumberKey 32 salesOrderKey 33 catch Throwable e 34 e printStackTrace 35 return error 36 37 38 Die eigentliche Implementierung des SIBs ist in andere Klassen ausge lagert Direkt referenziert ist der Service Adapter Das entsprechende Template ist relativ einfach da der Aufruf einfach an den so genann ten LightweightServiceAdapter weitergegeben wird Dieser enth lt nun die eigentliche jJABC spezifische Implementierung Hier wird also die Objektnummer aus dem Kontext gelesen der Service aufgerufen und anschlie end das Ergebnis wieder in den Kontext geschrieben Listing 7 3 Template f r LightweightServiceAdapter group PageReadLWServiceAdapterTemplate 3 PageReadLWServiceAdapterTemplate_Main lt lt 5 package de jabc dynnav adapters objectLC 7 import de jabc sibs dynnav BusinessObject 2 SalesOrderPageReadServiceAdapter 3ein Konstrukt welches fiir die Genesys Code Generierung ben tigt wird 210 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 weitere Import Statements ausgelassen Generated value de jabc inbus date date public class objectistUC PageReadLWServiceAdapter public static String read LightweightExecutionEnvironment env ContextKeyFoundation objectistLC NumberKey Contex
303. nung der Services Operationen und Parameter sind nicht im mer ganz konsistent So gibt es zum Beispiel die Business Objekte custo mer inquiry customer quote und customer invoice die sich alle auf den Kunden customer beziehen Kundenanfrage Kundenangebot Kundenrechnung der Kundenauftrag hei t hier jedoch sales order Lediglich in der Dokumentation des Business Objektes sales order ist zu lesen dass es sich hierbei um ein Synonym zu customer order han delt IKB Bewertung o Die Services werden durch sehr komplexe WSDL Dokumente beschrie ben Besonders die verwendeten Datenstrukturen weisen eine extrem hohe Komplexit t auf Es existiert genau ein WSDL Dokument pro Ser vice Bei Bedarf k nnen auch vereinfachte Sichten der WSDL Dokumente also bestimmte Ausschnitte daraus abgerufen werden z B nur der Service Definition Teil oder nur das Binding Die folgenden Beispiele sol len verdeutlichen wie ein eSOA Service aussieht Mit Hilfe der Funktion CustomerBasicDataByIdQuery werden Kunden daten ausgelesen Der SOAP Request ist in Abbildung 3 7 dargestellt Hier kann man besonders gut erkennen wie gro der Overhead durch die Benutzung von XML und SOAP und besonders durch die gro e Ver schachtelungstiefe ist Auch wenn man die API ber einen automatisch generierten Java Proxy Stub benutzt ist die Sicht auf die API nicht ver einfacht F r jedes XML Element wird eine eigene Java Klasse
304. nvoke gt eingesetzt Diese ruft SOAP basierte Web Services auf F r die Benutzung dieser Aktivit t sind auf Seiten des Modellierers Kenntnisse aller beteiligten Technologien notwendig al so XML XML Schema WSDL evtl XSLT und bei Bedarf verschiedene andere WS Sprachen wie WS Security oder WS Policy Die Invoke Aktivit t ist also eine technische Service Aktivit t Business Aktivit ten Business Aktivit ten gibt es nicht direkt als Be standteil der Sprache BPEL selbst ist immer sehr technisch Au er dem ist die Menge der Aktivit ten fest in der Spezifikation der Spra che vorgegeben Erst durch eine gute Integration mit zum Beispiel einer ESB Software k nnte eine gute Integration m glich sein Dabei m sste 6 8 Vergleich das BPEL Modellierungstool den eigentlichen BPEL Code gut verste cken und eine eigene Business Sicht dar ber aufbauen Wie schon oben bei IBM beschrieben ist dies jedoch keine einfache Aufgabe Es ist auch kein BPEL Tool bekannt welches diese Aufgabe wirklich erfolgreich ge meistert hat Fazit Die Ergebnisse der Diplomarbeiten sowie die Betrachtung des Service Integrations Aspektes f hren zu der Erkenntnis dass BPEL kei ne gute Wahl zur Definition ausf hrbarer Gesch ftsprozesse darstellt besonders dann nicht wenn Einfachheit und ein gutes Business IT Alignment gefordert sind Zu Recht ist der BPEL Hype abgeebbt und durch die Herangehensweise von BPMN 2 0 ersetzt worden das fachli che Mod
305. o gut wie jede API Technologie irgendeinen Mechanismus an dies zu deklarieren Trotzdem kann es hier bei einer schlecht entworfenen API zu Problemen kommen Es gibt zum Beispiel ein Problem wenn mehrere Parameter als optio nal gekennzeichnet sind in Wirklichkeit jedoch genau einer von beiden belegt sein muss Entweder muss die API Technologie hier so etwas wie eine Auswahl erlauben was nicht bei jeder Technologie existiert oder aus dem einen Service m ssen zwei separate Services gemacht werden VVA Validierungsregeln verf gbar per API Da Validierung eine essentielle Anforderung an eine API ist w re es gut wenn die entsprechenden Regeln oder Bedingungen transparent ge halten werden so dass der Benutzer des Services die Regeln kennt bevor der Dienst genutzt wird und nicht erst nach vielen erfolglosen Aufruf versuchen Diese Information w rde auch dabei helfen bessere grafische Benutzerschnittstellen zu generieren Zum Beispiel k nnte man sich ein restriktives Textfeld vorstellen welches nur bestimmte Eingaben erlaubt 3 2 Traditionelle on premise ERP Systeme wie zum Beispiel eine Material ID die immer mit einem Buchstaben beginnen muss gefolgt von einer bestimmten Anzahl an Ziffern GIS Graphische Icons die Services symbolisieren Wenn eine API f r die verschiedenen Services graphische Icons anbieten w rde so k nnte man diese direkt f r die Darstellung von Prozessbau steinen im Gesch ftsprozessmodellierung
306. oad Util implementiert welches eine URL bergeben bekommt und den entsprechenden Inhalt der dahinter liegen den Datei als String zur ckgibt Dieses Tool kann dabei auch mit dem Microsoft spezifischen NTLM Protokoll zur Authentifizierung umgehen und wurde auch schon im ersten Schritt eingesetzt um an das DISCO Dokument zu gelangen Importieren des Webservices Nach dem Herunterladen des WSDL Dokumentes kann dies nun zur Generierung von Java Stubs genutzt wer den In diesem Fall wurde daf r die Java Referenzimplementierung von http www jdom org 165 5 Service Integration im jABC 166 Create SIB for Microsoft Dynamics NAV oe Choose Business Object type name imported page customer no page employee no page item no page purchaseinvoice no page purchasequote no page salesinvoice no page salesorder no page vendor no Page Codeunit item Import WS You have to import the web service lt Prev Next gt Finish Cancel Abbildung 5 3 Auswahl der Page im InBuS Wizard JAX WS eingesetzt JAX WS bietet fiir diesen Zweck das Kommandozei lentool wsimport an Dieses ist in InBuS direkt eingebunden und wird vom Wizard direkt nach der Auswahl der Page und dem Herunterla den der WSDL ausgef hrt Die Bereitstellung der entsprechenden Java Klassen wird hier als Importieren des Webservices bezeichnet
307. och die Information enthalten wo der Service 3 1 Vergleichskriterien deployt ist also zum Beispiel die URL einer WSDL Datei damit man auf den Service zugreifen kann Service Verzeichnisse k nnen sehr unterschiedlich aussehen und tech nisch sehr unterschiedlich realisiert sein Oft gibt es diese Informatio nen nur als reine Dokumentation also z B als Webseite als PDF oder gar als Druckwerk Diese Dokumentation ist so konzipiert dass sie von Programmierern als Hilfe beim Programmieren benutzt wird Schwierig wird es wenn eine Software das Verzeichnis automatisch auswerten soll und die Informationen richtig extrahieren soll Bei einer gut strukturier ten Webseite ist vielleicht noch mit der Technik des Screen Scraping Cha03 zu erreichen dass man an alle ben tigten Informationen gelangt Bei dieser Technik wird versucht gezielt Informationen aus Texten zu ex trahieren die am Bildschirm angezeigt werden Heutzutage bezieht sich dies fast ausschlie lich auf Webseiten Ist die Seite weniger gut struk turiert wird diese Technik jedoch immer schwieriger einzusetzen Bei PDF Seiten oder gar gedrucktem Text sind die H rden entsprechend noch h her Die automatische Auswertung ist z B dann wichtig wenn die angebotenen Dienste direkt im Prozessmodellierungstool importiert werden sollen z B als automatisch generierte Prozess Bausteine siehe Kapitel 5 3 5 Ein weiterer Nachteil an frei formulierten Webseiten die als Service
308. och nicht durch entsprechende Software unter st tzt Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Vergleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 6 Windows Workflow Foundation Die Microsoft Software Windows Workflow Foundation Col10 oft auch als WF abgek rzt wird selbst nicht als BPMS vermarktet 44WSIF Web Services Invocation Framework nicht WWF 193 6 Service Integration in anderen BPMS besitzt jedoch viele Eigenschaften eines BPMS so dass es gut vergleich bar mit den anderen untersuchten BPMS ist WF ist teil der NET Bibliothek und wir auch entsprechend von der Entwicklungsumgebung Visual Studio unterst tzt Es handelt sich im Wesentlichen um eine all gemeine Bibliothek zur Umsetzung ausf hrbarer Workflows Workflows k nnen in Visual Studio graphisch modelliert werden und anschlie end direkt ausgef hrt werden WF ist damit also gut vergleichbar mit Bi bliotheken wie jBPM Activiti oder jJABC Obwohl es selbst nicht als BPMS beworben wird ist es jedoch technische Grundlage anderer pro zessorientierter Microsoft Produkte wie dem ESB BizTalk oder der Unternehmens Webanwendung Sharepoint Ein WF Prozess besteht aus einzelnen Aktivit ten die hier auch Acti vity genannt werden Ein Prozess selbst ist dabei wieder eine Activity Somit existiert ein hierarchisches Prozessmodell wie beim jABC Bei der Prozessmodellierung wird
309. ollte m glichst vollst ndig sein Das bedeutet dass alle Funk tionalit ten die ber andere Wege wie z B die graphische Benutze roberfl che m glich sind auch ber die API angeboten werden Zum einen muss es zu jedem Business Objekt wie z B Kunde Rechnung oder Kaufauftrag eine entsprechende Sammlung von Methoden ge ben Diese Methoden sollten dabei mindestens die Standardoperationen zum Erzeugen Lesen ndern und L schen enthalten englisch Create Read Update Delete kurz CRUD Eine Leseoperation kann dabei noch dahingehend unterschieden werden ob sie sehr einfach gehalten ist gibt zu einer ID den dazugeh rigen Datensatz zur ck oder ob es sich um eine komplexe Abfrage englisch Query handelt Im letzteren Fall kann es zum Beispiel eine komplexe Eingabe zur Filterung der Ergebnisse geben vergleichbar mit dem WHERE Teil einer SQL Abfrage und die Ausga be kann aus ein oder mehreren Datens tzen bestehen In den hier dargestellen Untersuchungen wird die Abdeckung bzgl zehn verschiedener Business Objekte betrachtet die jeweils zentrale Rollen in ERP Systemen spielen Kunde customer Lieferant vendor Artikel item Angebot an Kunden sales quote Auftrag vom Kunden sales order Kundenrechnung sales invoice Angebot vom Lieferanten purchase quote Auftrag an Lieferanten Einkaufsauftrag purchase order e Rechnung vom Lieferanten purchase invoice e Mitarbeiter Angestellter e
310. ompliance also der Einhaltung von Gesetzen und Richtlinien immer wichtiger Gerade in Zeiten von Basel II bzw Basel III oder dem Sarbanes Oxley Act wird deutlich dass die Zahl der zu beachtenden Vorschriften stetig w chst Die Prozesse eines Unternehmens m ssen sich sowohl entsprechend dieser allgemeinen Regeln wie auch entsprechend der Unternehmensinternen Regeln Business Rules verhalten Die Einhaltung solcher Gesetze Richtlinien und Regeln kann mit Hilfe von Model Checking berpr ft werden GEAR Game based Easy and Reverse Model Checking BMRS07 BMRSO09 ist ein Model Checker welcher durch ein entsprechendes Plu gin in das JABC eingebunden werden kann So ist es also m glich mathe matisch zu verifizieren dass ein SLG korrekt nach entsprechenden Regeln modelliert ist dass also der modellierte Prozess sich so verh lt wie es in einer Menge mathematischer Regeln beschrieben wird Diese Regeln werden wie beim Model Checking blich als temporallogische Formeln notiert Um den Umgang mit diesen Formeln auch jemandem zu erm gli chen der keine vertieften mathematischen Kenntnisse in diesem Bereich hat gibt es hier L sungen die h ufig vorkommende Patterns als ferti ge Eigenschaften ausw hlbar machen LNMS10 oder Formeln graphisch aus vorgefertigten Bl cken zusammenbauen lassen JMS06 Die Grundidee der berpr fung von Gesch ftsprozessen durch Model Checking wie es im jABC mit GEAR durchgef hrt w
311. on API Anforderung Korrekte und vollst ndige Service Definitionen API Anforderung Kleine und mittlere Unternehmen Lightweight Directory Access Protocol Labelled Transition System Model driven Architecture Model driven Development Modellgetriebene Entwicklung Model driven Software Development Modellgetriebene Softwareentwicklung Mensch Maschine Interaktion MPC MRP MRP II MVEL NAV NIST NT NTML OMG ORM OTA PaaS PDF PHP PNG POI POJO PPS PUS QBDE QBFC QBOE qbXML RDBMS REST RFC RFID RMI RPC Listings Manufacturing Planning and Control Material Requirements Planing Manufacturing Resources Planing MVFLEX Expression Language Navision National Institute of Standards and Technology New Technology Microsoft Windows Produktreihe NT Lan Manager Object Management Group Object relational Mapping objekt relationale Abbildung One Thing Approach Platform as a Service Portable Document Format PHP Hypertext Preprocessor Portable Network Graphics Poor Obfuscation Implementation veraltet heute kein Akronym mehr Plain Old Java Object Produktionsplanung und steuerung Plattformunabhangigkeit durch den Einsatz von Standards API Anforderung Quickbooks Desktop Edition Quickbooks Foundation Classes Quickbooks Online Edition Quickbooks XML Relationales DBMS Restful State Transfer Remote Function Call Radio Frequency Identification Remote Method Invocation Re
312. on gro en und sehr erfolgreichen Unternehmen im Bereich des E Commerce stammen ist anzunehmen dass die APIs recht vergleich bar und evtl sogar sehr hnlich sind Ob dem so ist wird im Folgenden untersucht D EAM DVA 65WVA S6VVA 67GIS 68DOP 0 69ISN 0 112 3 5 Schnittstellen weiterer Produkte Amazon Marketplace API F r die Nutzung der Amazon Marketplace API ist ein so genannter Pro Merchant Account erforderlich ein kos tenpflichtiger Account f r H ndler Ein kostenloses Testen der API ist also nicht m glich Technisch basiert die API auf dem REST Prinzip wobei hier XML ber HTTP bertragen wird Au erdem sind Client Bibliotheken f r Java C und PHP vorhanden Eine Registry ist hier nicht vorhanden Informationen ber geforderte Eingabedaten sind le diglich den Dokumentationen im PDF Format zu entnehmen und eine Versionierung der API ist nicht erkennbar In den zentralen Punkten schneidet die API demnach recht schlecht ab Durch eine konsistente Na mensgebung und klare und einfache Strukturen ist die API immerhin von der Usability Seite recht gut gemacht Technisch gibt es nichts auszuset zen Die Technologie ist plattformunabh ngig und eine Verschl sselung ist durch die Nutzung von HTTPS gegeben Von den in Abschnitt 3 1 4 aufgez hlten zus tzlichen Informationen werden gar keine angeboten Insgesamt ist die API also noch an vielen Punkten verbesserungsw rdig beso
313. on und Icon sowie die Definition von Benutzungsregeln SIB Generierung Die Generierung des SIBs und aller damit zusam menh ngenden Klassen z B die Service Adapter wird im so genann ten Finisher des Wizards angesto en also in der Prozedur die durch die Bet tigung des Fertig Buttons gestartet wird Da hier ein mehrschrit tiger Prozess abgearbeitet wird und jeder Schritt eine gewisse Zeit in Anspruch nimmt wird w hrend dieser Prozedur ein Fortschrittsbalken angezeigt Die einzelnen Schritte des Finishers sind die Folgenden 1 Generate PortUtil 2 Copy BusinessObject 3 Generate JavaService 167 5 Service Integration im jABC 168 Generate LightweightServiceAdapter Generate ServiceAdapter Generate SIB Generate Provider SIBs Generate SIB Documentation Compile PortUtil I BR OE E 10 Compile JavaService 11 Compile LightweightServiceAdapter 12 Compile ServiceAdapter 13 Compile SIB 14 Create Summary Die ersten Schritte generieren Quelltext danach wird dieser entsprechend compiliert und zum Schluss wir eine kurzer zusammenfassender Text erzeugt der dem Wizard Benutzer als Ergebnis angezeigt wird Schritt 2 ist eine triviale Sonderform der Generierung Da hier quasi ein Template ohne dynamische Inhalte existiert das Ergebnis demnach also immer gleich aussieht reicht es hier einen fertigen Quelltext einfach in das Zielverzeichnis zu kopieren anstatt etwas zu generieren Es handelt sich dabei um die
314. oovy codehaus org 3http velocity apache org http www stringtemplate org http freemarker sourceforge net 132 5 2 Manuelle SIB Implementierungen e E Mail SIBs Verschicken von E Mails sowie Verwaltung eingehen der E Mails Die genannten SIBs k nnen als technische Service Aktivit ten aufgefasst werden Sie besitzen insgesamt ein recht allgemeines Anwendungsfeld und sind somit besonders gut wiederverwendbar Auf der anderen Seite sind sie oft zu kleinschrittig und technisch f r einen Business Experten 5 1 3 Business Aktivit ten SIBs sind daf r gedacht grobgranulare Arbeitseinheiten zu repr sen tieren die direkt und intuitiv von Business Experten verstanden und eingesetzt werden k nnen Oft dienen sie sehr speziellen Zwecken z B das Hinzuf gen eines neuen Kunden zu einer CRM Software was sie zu idealen Kandidaten f r die Umsetzung von dom nenspezifischen Business Aktivit ten macht Durch ihre strukturierte Dokumentation ihre illus trierenden Icons und ihre Validierungsregeln k nnen Sammlungen von taxonomisch organisierten SIBs als eine graphische dom nenspezifische Business Sprache verstanden werden Da die Benutzung von SIBs als Business Aktivit ten besonders im Kontext der Integration von ERP Systemen die fortschrittlichste und geeignetste Variante der Service Integration darstellt befassen sich die folgenden Abschnitte im Wesent lichen mit diesem Konzept In Abschnitt 5 2 werden Beispiele
315. ote is a non posted record of estimated charges to a customer Das Business Objekt Estimate wird hier also synonym zu Sales Quo te verwendet VZB Bewertung Die gesamte API besitzt eine einzige Versionsnummer Die einzelnen Services sind nicht versioniert R ckw rtskompatibilit t wird versucht so gut wie m glich zu gew hrleisten Hinzuf gungen wie neue Opera tionen oder record types also Business Objekte bewirkten eine neue minor revision Der Namensraum wird dabei nicht ver ndert Neue minor Versionen unterst tzen immer alle Funktionen der Vorg ngerver sion Wenn nderungen vorgenommen werden die dazu f hren dass R ckw rtskompatibilit t nicht mehr gew hrleistet werden kann z B durch Hinzuf gen eines neuen Pflichtfeldes wird die Versionsnummer im Namensraum ge ndert und alle Applikationen die die API benutzen m ssen entsprechend angepasst werden Es gibt keine Garantie dass ein neues major release alle vorherigen Versionen unterst tzt SDD Bewertung 0 3 3 2 2 API Design Die Benennungen in der API sind zwar im Allgemeinen relativ intuitiv gew hlt aber leider nicht immer konsistent Ein Beispiel f r eine In konsistenz ist die Benennung eines Artikels engl Item In der API wird dieses Inventoryltem genannt wohingegen es in der GUI ein fach Item hei t Die weiter oben schon erw hnten estimates sind ein weiteres Beispiel Eigentlich sind
316. oud Die Cloud Anwendung steht exklusiv einem Un ternehmen zur Verf gung e Community cloud Die Cloud Anwendung steht einem Zusam menschluss verschiedener Unternehmen mit einem gemeinsamen In teresse zur Verf gung e Public cloud Die Cloud Anwendung steht der gesamten ffent lichkeit zur Verf gung Dies ist wohl die bekannteste und am wei testen verbreitete Variante e Hybrid cloud Alle m glichen Kombinationen aus den drei obigen Deployment Modellen fallen unter die Kategorie Hybrid cloud Mit dem Aufkommen des Cloud Computings w chst sowohl insgesamt die Anzahl der existierenden APIs siehe Abschnitt 2 3 gewaltig als auch deren Bedeutung In einer Einladung zu einem Web basierten Seminar des ESB Herstellers MuleSoft Mull3a mit dem Titel Hybrid Cloud Architecture is Coming Are You Ready wird hierf r der treffende Be griff API Explosion gebraucht Eine Software die in der Cloud z B als SaaS angeboten wird ist quasi verpflichtet neben der Web GUI auch eine API anzubieten und diese sollte m glichst von hoher Qua lit t sein Nasser Nas betont die zentrale Rolle von APIs im Bereich des Cloud Computing und fordert eine agile Herangehensweise bei deren Entwicklung wobei also nicht die API von vornherein geplant sein sollte sondern sich iterativ aus Benutzerbed rfnissen heraus entwickeln sollte Dies steht nat rlich teilweise im Widerspruch zu der in Abschnitt 2 3 geforderten Eigenschaft dass
317. pe impl type IntegerDataType import org drools process core w 7 1 jBPM ab Version 5 x datatype impl type ObjectDataType name Read objecti1stUC parameters SobjectistLC Number new IntegerDataType objectistLC new ObjectDataType ie displayName Read objectistUC I come se relonis diynnavsspneu In Listing 7 6 ist das Template f r die Implementierung eines JjBPM WID dargestellt Dies ist aus Sicht der Template Engine ebenso einfach wie alle obigen Templates Es hnelt vom Inhalt der ausf hrenden Methode her auch sehr stark dem Template des LightweightServiceAdapters in Listing 7 3 Auch hier wird wieder die gleichen drei Schritte vollzogen 1 Nummer aus dem Kontext lesen 2 JavaService aufrufen 3 Ergebnis in den Kontext schreiben Schritt 2 ist dabei sogar identisch zum LightweightServiceAdapter F r die bertragung der Templates auf alternative BPMS sind also lediglich die BPMS spezifischen Eigenheiten anzupassen Listing 7 6 Template jBPM WID Implementierung package de example jbpm dynnav objectLC import java util HashMap import org drools runtime process Workltenm import org drools runtime process WorkItemHandler import org drools runtime process WorkItemManager public class Read object1stUC Nodelmpl implements WorkItemHandler Override public void abortWorkItem WorkItem wi WorkItemManager wim Override public void executeWorkI
318. piel f r eine erfolgreiche SaaS L sung ist Salesfor ce eine Cloud CRM L sung Amazon und Salesforce sind zusam men die Vorreiter im Bereich Cloud Computing die diesen Begriff wesentlich gepr gt haben e IaaS In diese Kategorie geh ren z B die Dienste von Amazon Hier werden Ressourcen wie Rechenleistung oder Speicherplatz in der Cloud angeboten Dies sieht zum Beispiel so aus dass man beliebige virtuelle Maschinen deployen kann auf denen man dann selbst wieder beliebige Software installieren kann e PaaS Zwischen den beiden schon genannten Kategorien entwickel te sich etwas sp ter mit PaaS eine weitere Kategorie bei der nicht die nackte Infrastruktur angeboten wurde aber auch keine fertige Anwendung sondern eine bestimmte Platform auf deren Basis ei gene Applikationen entwickelt und deployt werden k nnen Ein be kanntes Beispiel hierf r ist die Google App Engine auf der man eigene Software deployen kann ohne sich Gedanken ber ein Be triebssystem oder andere technische Hintergr nde zu machen Auch Salesforce hat mit Force com ein PaaS Angebot 33oder kurz Amazon WS 34CRM Customer Relationship Management Verwaltung von Kundenbeziehungen 35in Python Java oder Go implementiert 30 2 4 Cloud Computing Es existiert noch eine weitere Dimension wie man Cloud Dienste kate gorisieren kann und zwar das Deployment Modell Auch dies wird vom NIST aufgegriffen MG11 e Private cl
319. plementie ren Nun ist es jedoch wichtig welchen Charakter dieses SIB haben soll Eine M glichkeit ist eine technische Service Aktivit t also ein generi sches LDAP SIB welches haupts chlich von Technikern parametrisiert werden kann da man LDAP und dessen Eigenheiten kennen muss Die zweite M glichkeit ist ein spezielleres SIB welches zwar in seiner Imple mentierung auch LDAP anspricht nach au en hin jedoch eine dom nen spezifische Business Aktivit t darstellt In diesem Fall w re das ein SIB welches bestimmte IT Rechte an Rollen oder Personen vergibt Dieses gt 4LDAP Lightweight Directory Access Protocol 55 JNDI Java Naming and Directory Interface 56 Java SE Java Standard Edition 57jn den Packages javax naming directory und java naming ldap Shttp www springsource org Idap 174 5 4 Anwendungsbeispiel SIB kann einfach auch von Nicht Technikern benutzt werden Das letzte SIB dieses Prozesses ist besonders interessant da hier ein ERP System angesprochen wird konkret Microsoft Dynamics NAV sie he Abschnitt 5 3 6 Dieses SIB kann also mit InBuS siehe Abschnitt 5 3 5 halbautomatisch generiert werden Dazu wird der Wizard entspre chend ausgef hrt in dem man die Page Employee und dann dort die Operation Create Anschlie end k nnen die gew nschten Datenfelder ausgew hlt werden wonach festgelegt wird dass die Daten aus dem Kontext gelesen wer den sollen Hier ist zu bedenken dass im Kontext
320. r 1z D einer Twitter App f r das iPhone z B der Nutzer der Twitter App 37 B das Unternehmen Twitter Inc 54 Business API Rollen Business API Durch Wizard gesteuerte Generator Software Prozess komponenten SIBs Ausf hrbares Prozessmodell Abbildung 3 1 Rollen im Umgang mit Business APIs Business Software Dies kann also z B SAP oder Microsoft sein Dieser erzeugt die Business API welche wiederum nicht von einem Menschen sondern durch Software benutzt wird Diese Software kann also quasi als ein Stakeholder gesehen werden auch wenn es sich nicht um einen Menschen handelt Dies impliziert dass die API m glichst maschinen lesbar sein sollte Die Code Generator Software liest und nutzt die API Informationen Bei InBuS siehe Abschnitt 5 3 5 wird dieser durch einen Wizard konfiguriert Es existieren in dieser Rollen Kategorie also noch zwei menschliche Rollen zum einen den Benutzer des Wizards zum an deren den oder die Entwickler des Wizards und des Code Generators Die generierten Prozesskomponenten werden wiederum vom Prozessmodel lierer genutzt um ausf hrbare Prozesse zu erstellen Diese Person geh rt demnach in die Kategorie Benutzer resultierender Produkte denn eine einzelne Prozesskomponente kann schon als resultierendes Produkt gese hen werden Der entstandene Prozess ist auch wieder ein resultierendes Produkt welches wiederum durch Personen genutzt wird Die Untersuchung be
321. r Business APIs wie in Abschnitt 3 beschrieben im Mittelpunkt steht Das Kapitel schlie t mit einem kon kreten Anwendungsbeispiel in Abschnitt 5 4 5 1 Service Integration mit SIBs Die in Abschnitt 2 6 3 eingef hrten SIBs bieten eine einfache und gute M glichkeit der Umsetzung von dom nen spezifischen Business Aktivit ten siehe dazu Abschnitt 4 5 Durch ihre Vielseitigkeit ist es aber ebenso m glich Skript Aktivit ten siehe Abschnitt 4 3 oder technische Service Aktivit ten siehe Abschnitt 4 4 mit ihnen umzusetzen Das jABC enth lt eine kontinuierlich wachsende Sammlung h ufig be nutzter SIBs Diese Sammlung tr gt den Namen Common SIBs und ist taxonomisch organisiert Hier existiert eine gro e Anzahl von SIBs aus sehr unterschiedlichen Anwendungsfeldern Dadurch dass viele SIBs be reits fertig zur Verf gung stehen und die Sammlung durch neue Projekte 131 5 Service Integration im jABC immer weiter w chst wird die Entwicklung neuer ausf hrbarer Prozesse zunehmend beschleunigt 5 1 1 Skript Aktivit ten Eine Kategorie der Common SIBs hei t Script SIBs Wie der Na me schon andeutet entspricht dies einer Sammlung von Realisierungen der in Abschnitt 4 3 beschriebenen Skript Aktivit ten So gibt es bei spielsweise ein SIB zur Ausf hrung von BeanShell Skripten und eines f r Groovy Skripte Au erdem existieren noch einige SIBs f r verschiede ne Template Engines Velocity S
322. r JavaDelegates Automatische Erkennung der Attribute der JavaDelegates e Anzeige von Dokumentation zu JavaDelegates im Prozess Editor fso dass der Prozess Modellierer nicht in die Implementierung des JavaDelegates hinein sehen muss 5Dazu m sste auch noch eine Stelle definiert werden an der die Dokumentation hinterlegt werden kann 216 KAPITEL 8 Einfachheit als Erfolgsfaktor im BPM Wie schon in Abschnitt 2 7 beschrieben spielt Einfachheit im Bereich des Gesch ftsprozessmanagements eine wichtige Rolle Die Forderung nach Einfachheit betrifft hier verschiedenste Bereiche Im Folgenden wird auf drei verschiedene Bereiche eingegangen e Einfachheit bei der Service Integration e Einfachheit der Prozesssprachen e Einfachheit durch Abstraktion BPM in der Cloud Der erste Bereich Abschnitt 8 1 betrifft das zentrale Thema dieser Ar beit die Service Integration Dabei wird noch einmal kurz zusammenge fasst wie hier Einfachheit erreicht wird In Abschnitt 8 2 wird aufgezeigt dass auch die Prozessbeschreibungssprachen einfach sein sollten und Bei spiele aufgezeigt in denen dies nicht der Fall ist Abschnitt 8 3 befasst sich schlie lich damit wie die Prozessmanagementsoftware m glichst oh ne Administrationsaufwand und eigenes Rechenzentrum betrieben wird es geht um Cloud Computing BPM in der Cloud ist ein aktueller Trend der sehr vielversprechend ist Gerade hier entstehen im Moment Produkte bei d
323. r Service Sammlungen hei en APIs Application Programming Interfaces und erreichen gerade bei Enterprise Systemen oft einen erheblichen Um fang Der API Begriff ist dabei nat rlich lter als das SOA Thema Ei ne API existiert immer dann wenn Schnittstellenbeschreibungen vorlie gen so dass verschiedene Softwarekomponenten miteinander interagieren k nnen Genau in diese Richtung geht eine Definition aus einem Paper von de Souza et al SRC 04 bei der sie sich auf Aussagen aus einer Pr sentation von des Rivieres Riv04 beziehen An APl is a well defined interface usually supported by the underlying programming language that allows one software component to access programmatically another component De Souza et al setzen dem die etwas formalere Definition des Carnegie Mellon Software Engineering Institute entgegen Car03 Application Programming Interface API is an older tech nology that facilitates exchanging messages or data between two or more different software applications API is the virtual interface between two interworking software functions such as a word processor and a spreadsheet An API is the softwa re that is used to support system level integration of multiple commercial off the shelf COTS software products or newly developed software into existing or new applications Hier wird betont dass eine API die Schnittstelle zwischen zwei oder mehr Software Systemen darstellt De Souza
324. r selbst nicht in der Lage war die Services an zusprechen Lediglich das jABC und die in dieser Arbeit vorgestellten Konzepte zur halbautomatischen Generierung von Prozesskomponenten erm glichen es die Zusammenarbeit zwischen Business und IT so zu or ganisieren dass die IT mit geringem Aufwand einmal eine ganze API in Form eines Wizard gesteuerten Komponentengenerators integriert und anschlie end die Businessseite ohne technisches Know How direkt aus f hrbare Prozesse modelliert Entwicklung eines Service Integration Frameworks f r ERP Systeme durch Wizard gesteuerte Generierung von Prozessbausteinen Um die Erstellung von Prozessbausteinen in JABC so genannten SIBs zu vereinfachen wurde ein Framework mit dem Titel InBuS entwickelt welches dem Benutzer erlaubt ohne technisches Know How Services von ERP Systemen in die Prozesse einzubinden siehe Abschnitt 5 3 5 Dazu wird dem Benutzer ein Wizard angeboten ber den er die Generierung der SIBs beeinflussen kann die wiederum die ERP Services kapseln So m ssen die technischen Probleme der Service Integration nur noch ein mal und zwar bei der Erstellung der Generatoren gel st werden und nicht immer wieder bei jeder einzelnen Service Integration Die Wizards werden so entworfen dass sie trotz unterschiedlicher zu Grunde liegender APIs sehr einheitlich gestaltet sind so dass der Benutzer damit m glichst schnell zurecht kommt Bei der Entwicklung neuer Wizards und Gen
325. ractRef ref http localhost xmlns http schemas w3 org 2001 XMLSchema gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 7047 DynamicsNAV WS CRONUS xmlsoap org disco scl gt 5 3 SIB Generierung AG SystemService AG Page customer AG Page employee AG Page itemcard AG Page salesorder AG Page vendorcard lt discovery gt Um das DISCO Dokument einzulesen musste fiir InBuS ein entsprechen der Parser entwickelt werden Da DISCO auf XML basiert und eine sehr einfache Struktur besitzt wurde dies mittels JOOM implementiert ei ner Java Implementierung eines DOM Parsers Der DISCO Parser liest das Dokument ein und bietet im Wesentlichen folgende Informationen e Eine Liste aller enthaltenen URLs Die SystemService URL Eine Liste der Namen aller Pages Eine Liste aller Page URLs Eine Liste der Namen aller CodeUnits e Eine Liste aller CodeUnit URLs Mit der Hilfe dieses Parsers stehen nun also die Namen aller Pages zur Verf gung und k nnen auf der ersten Seite des Wizards zur Auswahl angezeigt werden Wird eine Page ausgew hlt so steht die dazugeh rige WSDL fest Diese kann nun also heruntergeladen werden Dazu wur de ein entsprechendes Downl
326. rch eine Engine ausgef hrt werden soll ist ein korrektes Verst ndnis der Semantik unerl sslich Aktuelle Prozessbeschreibungs sprachen sind hier bez glich der Einfachheit nicht immer vorbildlich Im Folgenden wird betrachtet wo konkrete Probleme bei BPMN Ari staFlow YAWL und BPEL liegen BPMN BPMN ist eine sehr komplexe Sprache mit einer gro en An zahl unterschiedlicher Elemente Ein gutes Beispiel ist der Vorrat an unterschiedlichen Ereignistypen Diese sind in einer Matrix in Abbil dung 8 1 dargestellt Viele dieser Ereignistypen werden kaum oder gar nicht in der Modellierung verwendet Bei den Engines ist die Situati on sogar so dass aktuell meist nur ein kleiner Bruchteil der Events unterst tzt wird Wird die Sprache in ihrer gesamten Komplexit t ge nutzt ist der Prozess kaum noch zu verstehen In Abbildung 8 2 ist ein BPMN Kollaborationsdiagramm zu sehen welches die Verwendung unterschiedlicher Elemente demonstrieren soll Diese Abbildung stammt wie Abbildung 8 1 aus einem Poster von mehreren Herstellern von BPMN 2 0 Tools In beiden Abbildungen wird sehr gut deutlich wie komplex die Aufgabe f r den Modellierer ist zu jedem Element die richtige Semantik zu kennen Ein weiteres Problem bei BPMN ist dass der gleiche Sachverhalt oft auf sehr unterschiedliche Arten dargestellt werden kann Wenn man BPMN verwendet ist es daher oft blich sich zun chst innerhalb der Spra che auf Konventionen zu einigen auf welche Art
327. ren f r stark eingeschr nkte Ausf hrungs umgebungen am Beispiel der iPhone Plattform Techni sche Universit t Dortmund Diplomarbeit 2009 249 Literaturverzeichnis SRCt04 Souza C R B de REDMILES D CHENG L T MIL LEN D PATTERSON J Sometimes you need to see through walls a field study of application programming interfaces In Computer Supported Cooperative Work Proceedings of the 2004 ACM conference on Computer supported cooperative work Bd 6 2004 S 63 71 SS06 SCHEER August Wilhelm SCHNEIDER Kristof ARIS Architecture of Integrated Information Sys tems Version 2006 http dx doi org 10 1007 3 540 26661 5_25 In BERNUS Peter Hrsg MER TINS Kai Hrsg SCHMIDT G nter Hrsg Handbook on Architectures of Information Systems Springer Berlin Heidelberg 2006 International Handbooks on Information Systems ISBN 978 3 540 26661 7 605 623 10 1007 3 540 26661 5_ 25 STA05 SCHEER August Wilhelm THOMAS Oliver ADAM Otmar Process Modeling using Event Driven Pro cess Chains Version 2005 http dx doi org 10 1002 0471741442 ch6 In Process Aware Informati on Systems John Wiley amp Sons Inc 2005 DOI 10 1002 0471741442 ch6 ISBN 9780471741442 119 145 Sto10 STORZ Dominic Intuitive und experimentelle Modellie rung von Strategien am Beispiel von Robocode Technische Universitat Dortmund Diplomarbeit 2010 Syn13 SYNERPY GMBH Synerpy AvERP Web
328. rer Produkte Business Objekte zur Verf gung wie z B das OR Mapping oder die ty pischen CRUD Funktionen Auf die Business Objekte kann ber XML RPC Dav00 oder alternativ ber das Python spezifische NET RPC von au en zugegriffen werden Hier wird OpenERP in Version 7 betrach tet Eine Registry ist bei OpenERP nicht vorhanden F r den korrekten Aufruf eines Services m ssen der Name des Business Objektes und die Bezeichnung der gew nschten CRUD Operation bekannt sein Manche Parameter sind immer gleich und fest vorgegeben Die Namen der Daten felder lassen sich ber die Methode fields_get auslesen Grunds tz lich stehen f r alle Business Objekte alle CRUD Operationen zur Verf gung Eine Validierung der Eingabedaten wird nur sehr begrenzt vorge nommen Zum Beispiel werden Zeichenketten bei der berschreitung der zul ssigen L nge einfach abgeschnitten und Daten die als read only gekennzeichnet sind k nnen zwar nicht ver ndert werden ein Schreib versuch f hrt jedoch nicht zu einer Fehlermeldung Eine Versionierung der API ist nicht vorhanden Die Namensgebung ist intuitiv und die Strukturen sind mit den immer gleichen CRUD Operationen und bersichtlich aufgebauten Business Objekten insgesamt klar einfach und konsistent Die Dokumentation ist zwar recht umfangreich leider ist sie jedoch stellenweise veraltet be schreibt also nicht die aktuelle Version Auch ist hier keine vollst ndige Li
329. ressen erhalten so ist im einen Fall nur ein Aufruf n tig im anderen 101 Aufrufe Da letzteres zu einer sehr tr gen Benutzeroberfl che mit nicht akzeptablen Wartezeiten f hren w rde haben sich die Studenten dazu entschieden hier die graphische Benutzeroberfl che entsprechend anzupassen Hier werden zun chst lediglich die Namen der Personen angezeigt und erst bei einer konkreten Auswahl per Mausklick wird die entsprechende Adresse angefragt und angezeigt Es zeigt sich also dass das Design einer API auch gravierende Auswirkungen bis zum Endbenutzer haben kann 5 3 SIB Generierung Liegt eine gro e Sammlung relativ gleichf rmig strukturierter Services vor wie es zum Beispiel bei den APIs der ERP Systeme der Fall ist so 5 3 SIB Generierung ist es sinnvoll die Integration nicht g nzlich manuell vorzunehmen son dern sich durch Generierungstechniken unterst tzen zu lassen Die Au tomatisierung der Service Integration f hrt so zum einen dazu dass ein einzelner Service mit viel weniger Aufwand also viel schneller vorgenom men werden kann Dies f hrt somit direkt zu schnellen Reaktionszeiten der IT Prozesse k nnen also sehr agil an sich ndernde Bed rfnisse an gepasst werden Zum anderen ist die Integration eines einzelnen Services von technischen Details befreit wodurch es auch Nicht IT Experten er moglicht wird die Integration vorzunehmen Im Kontext von XMDD und jABC bedeutet eine Automatisierung der Service Integra
330. rg 10 1007 3 540 44895 0_1 In WESKE Mathias Hrsg Business Process Management Bd 2678 Springer Berlin Heidelberg 2003 ISBN 978 3 540 40318 0 1019 1019 10 1007 3 540 44895 0_ 1 Hai07 HAIDASCH Robert Get ready for the next generati on of SAP business applications based on the Enterprise Service Oriented Architecture Enterprise SOA In SAP Professional Journal July August 2007 S 103 128 Hes09 HESSELER Martin Customizing von ERP Systemen In Controlling amp Management 53 2009 S 48 55 HL11 Hou D Li L Obstacles in Using Frameworks and APIs An Exploratory Study of Programmers Newsgroup Discussions In Program Comprehension ICPC 2011 IEEE 19th International Conference on IEEE 2011 S 91 100 Hor13 HORNUNG Jens Model Checking im Kontext von Ge sch ftsprozessen Technische Universit t Dortmund Di plomarbeit 2013 HRHO8 Hou D RUPAKHETI C R HOOVER H J Docu menting and evaluating scattered concerns for framework usability A case study In Software Engineering Con ference 2008 APSEC 08 15th Asia Pacific IEEE 2008 S 213 220 HS09 HAI H SAKODA S SaaS and Integration best practi ces In Fujitsu Sci Tech J 45 2009 Nr 3 S 257 264 Huf09 HUFF Biran The Semantic Web Impossible In Theory Impractical in Reality http bexhuff com 2009 01 the semantic web impossible in theory impractical in reality Version 2009 JEJ94 JACOBSO
331. ringFormat kann eine Zeichenkette mittels eines gegebenen Patterns formatieren e Die Aktivit t AxisWS ruft einen SOAP Webservice auf e Die XSLT Aktivit t transformiert ein XML Dokument durch die Ausf hrung eines XSLT Skripts Diese Aktivit t kann demnach also auch als Skript Aktivit t eingeordnet werden e Die Aktivit t ResultSet enth lt mehrere Services zum Umgang mit einem JDBC Result Set 32http www beanshell org 33also eine mit den Schl sselwort static deklarierte Methode 34 JDBC Java Database Connectivity http www oracle com technetwork java javase jdbe index html 189 6 Service Integration in anderen BPMS Business Aktivit ten In AristaFlow ist es prinzipiell m glich eigene Aktivit ten zu erstellen Diese Vorgehensweise wird jedoch nicht von Herstellerseite beworben Das Konzept sieht hier eher die Nutzung der zahlreichen technischen Service Aktivit ten vor In pers nlicher Kom munikation mit dem Hersteller stellt sich heraus dass die Aktivit ten im Normalfall vom Hersteller selbst oder durch unterst tzende Studen ten implementiert werden Eine Entwicklung durch Kunden selbst ist eher un blich Es wurde jedoch angeboten dass man in entsprechenden Schulungen durch den Hersteller die Erstellung lernen kann Sp ter wur de mir dann doch ein Dokument bereitgestellt in dem recht ausf hrlich dargelegt wurde wie eigene Aktivit ten entwickelt werden k nnen Beim Studium dieser Unterla
332. rk im Fokus stehen welche im Wesentlichen Sammlungen von Interfaces sind kann diese Definition hier sehr gut verwendet wer den Gartner merkt auch selbst an dass der Begriff interface oriented Architecture besser passen w rde Der Begriff Service wird hier so definiert Services are software modules that are accessed by name via an interface typically in a request reply mode Ein Service besitzt also immer einen Namen durch den er referenziert wird sowie eine Schnittstelle interface und antwortet auf Anfragenach richten request mit Antwortnachrichten reply Genau das ist es was bei einem Aufruf eines Services von einem Gesch ftsprozess aus pas siert Insgesamt ist die Definition von Gartner noch recht wage gehalten und konzentriert sich auf das wesentliche Merkmal der Existenz von Services H ufig zitiert wird auch eine Definition der OASIS von 2006 OAS06 die sogar noch vager gehalten ist A paradigm for organizing and utilizing distributed capabi lities that may be under the control of different ownership do mains It provides a uniform means to offer discover interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations Diese Definition ist sehr technologie neutral Betont wird der verteilte Charakter distributed capabilities der Ressourcen oder F higkeiten capabilities besonders auch die m glic
333. rlangt und bei erfolgreicher Authentifizierung einen zeit begrenzten Schl ssel erzeugt und zur ckliefert der bei jedem weiteren API Zugriff mit angegeben werden muss GLD Geschwindigkeit resultierend aus Latenz und Durchsatz Die Geschwindigkeit einer API Technologie kann gemessen werden durch die Betrachtung der Zeit die das System ben tigt f r eine Anfrage eine entsprechende Antwort zu liefern Diese Zeit besteht typischerweise aus einem konstanten Teil der Latenz die Reaktionszeit eines Funktionsauf rufs und einem dynamischen Teil wessen L nge von der Datenmenge abh ngt Datendurchsatz Die Latenz wird z B durch Authentifizie rungs und Autorisierungsbelange beeinflusst und der Durchsatz durch den Anteil des Overheads bei der Datenkodierung Ein hoher Overhead ist z B typisch f r SOAP oder XML im allgemeinen In dieser Arbeit wurde die konkrete Untersuchung Messung von Zeiten nicht durchge f hrt da die analysierten Systeme an sehr unterschiedlichen Orten de ployt waren lokal gleiches Land bersee so dass ein fairer Vergleich nicht m glich war 3 1 4 Zus tzliche Informationen DVA Dokumentation verf gbar per API Automatisch generierte Benutzeroberfl chen sind nicht sehr gut nutzbar wenn sie nicht ein gewisses Ma an Hilfe anbieten z B in Tooltips nach Klicken auf das obligatorische Fragezeichensymbol oder durch die Bet tigung der F1 Taste Gleiches gilt f r automatisch generierte Prozes
334. rn nur ein HCM System ist w re es nicht richtig und fair die gleiche Menge an Business Objekten wie z B bei SAP f r die Untersuchungen zu benutzen Die Untersuchung auf Basis einer alternativen Menge von Business Objekten ist in Tabelle 3 6 zu sehen Bei 23 von 35 erreichten Punkten ist diese 97 3 Untersuchung von Business A PIs Abdeckung noch positiv zu bewerten VZB Bewertung Wie bei Salesforce besitzt die gesamte API eine Versionsnummer Ob wohl die Workday L sung immer noch sehr jung ist 2005 im Ver gleich zu z B SAP ERP steht die aktuelle Versionsnummer bereits bei v15 Jede WSDL also jede Kategorie wird separat versioniert es ist also m glich eine Versionsnummer f r die eine Kategorie und eine andere f r eine andere Kategorie zu nehmen Bei jedem Request muss die API Versionsnummer mitgesendet werden Workday nennt dies das Version Parameter Design Pattern Es ist ebenfalls m glich die Versi onsnummer in den URL des Services mit aufzunehmen Dies wird Ver sion Endpoint Design Pattern genannt Die Wahl welches Design Pat tern man nehmen sollte ist recht technischer Natur In beiden F llen nennt der Client dem Server welche Version zu benutzen ist Neue Ver sionen werden eingef hrt wenn nderungen nicht r ckw rtskompatibel sind R ckw rtskompatible nderungen sind z B das Hinzuf gen neu er Operationen oder neue Datentypen r ckw rtsinkompatibel sind z B das Ent
335. ro zesse geht Wie diese mit der Orchestrierung von Web Services zusam menh ngen wird vielleicht nicht auf den ersten Blick klar Bei genauerer Betrachtung erkennt man dass die Orchestrierungsprozesse genau den Prozessen in einem Unternehmen also den Gesch ftsprozessen ent sprechen Der letzte Teil des Namens der Sprache besagt Execution Lan guage also Ausf hrungssprache Dass man Gesch ftsprozesse wirk lich ausf hrt war in der Geschichte des Gesch ftsprozess Managements BPM Business Prozess Management HAHW03 nicht immer so An fangs wurden hier eher Betriebsabl ufe in Flussdiagramm hnlichen Struk turen dokumentiert Ein bekanntes Beispiel daf r sind die Ereignisge steuerten Prozessketten EPKs STA05 des ARIS Konzepts Architek tur integrierter Informationssysteme SS06 von August Wilhelm Scheer Durch die Ausf hrbarkeit der Gesch ftsprozesse hat man nun den Vor teil dass Modell und Wirklichkeit nicht einfach auseinander driften k n nen da die Modellierung gleichzeitig Teil der Implementierung ist und man gleichzeitig ein erh htes Ma an Agilitat erreicht Durch die Einf hrung von SOA und BPM ist es nun auch m glich den ausf hrbaren Gesch ftsprozess als oberste Instanz anzusehen der ber allen anderen Systemen also auch dem ERP System liegt So ist der Prozess nicht mehr Teil des Customizings im ERP System sondern ober halb davon angesiedelt Der Prozess bleibt allein geistiges
336. road network access Breitbandiger Netzwerkzugang Der Dienst wird im Netz typischerweise das Internet angeboten und zwar ber Standard Technologien 3 Resource pooling Zusammenlegung der Ressourcen in Pools Die physikalischen Ressourcen Rechner Speicherplatz etc wer den nicht direkt einem Benutzer zugewiesen sondern in einem Pool verwaltet der von allen Benutzern gemeinsam genutzt wird Von der realen Hardware wird abstrahiert Ein Benutzer wei nicht und muss auch nicht wissen auf welcher Hardware sein Anwendungsfall im Moment ausgef hrt wird 4 Rapid elasticity Sofortige Elastizit t Alle Cloud Angebote k n nen sofort d h ohne Verz gerung bereitgestellt und auch wieder heruntergefahren werden F r den Benutzer sollte das Angebot so mit unbegrenzt erscheinen 5 Measured service Gemessene Dienstnutzung Es wird immer genau gemessen wie viel jeder Dienst von welchem Benutzer einge fordert wurde Dadurch ist es m glich dass ein Kunde immer nur genau das zahlt was er auch verbraucht hat Man kann Cloud Computing also als Rechen und Speicherleistung aus der Steckdose bezeichnen da es vergleichbar ist mit der heutigen h us lichen Versorgung mit Strom Wasser und Gas Alles ist prinzipiell un beschr nkt verf gbar man bezahlt genau das was man verbraucht hat und es funktioniert einfach ohne dass man sich selbst um die dahinter liegende Technologie k mmert in dem Beispiel also z B das Rei
337. rt Insgesamt kommen sie zu der Erkenntnis dass bei REST APIs oft das Problem der Unterspezifizierung vorliegt dass also zu wenige Infor mationen ber den Service nach au en kommuniziert werden So wird oft nicht einmal genau ersichtlich was genau an Eingabedaten verlangt wird oder was als Ausgabedaten produziert wird So extrem kann dieses Problem bei SOAP basierten APIs nicht auftreten da in einer WSDL die Schnittstelle immer mit der Hilfe von XSD genau definiert werden muss Weiterhin kritisieren sie APIs die zwar direkt HTTP benutzen sich jedoch nicht an das REST Paradigma halten Zum Beispiel ndert die GET Methode in manchen F llen Daten oder die POST Methode wird benutzt um Daten zu holen In dieser Studie wurden viele APIs untersucht ohne sich auf ein bestimmtes Gebiet zu fokussieren der Gro teil der APIs sind jedoch kleine APIs mit sehr wenigen Operatio nen Dies ist ein wesentlicher Unterschied zu den ERP APIs die in dieser Arbeit im Mittelpunkt stehen Es existieren noch drei recht hnliche etwas ltere Studien ber Web APIs die 2005 von Fan und Kambhampati FK05 2007 von Li et al LLZ 07 und 2008 von Al Masri und Mahmoud AMMO08 ver ffent licht wurden Die erste betont haupts chlich die geringe Gr e der APIs more than 77 of the services have less than 5 operations die feh lende Dokumentation besonders in den WSDL Dokumenten und dass die meisten Services lediglich zum Auslesen von Daten b
338. s der eigentlich noch viele entschei dende Zwischenzust nde besitzt e Ein gutes illustrierendes Icon ist von Vorteil e Sinnvolle Benutzungsregeln die w hrend der Modellierung automa tisch ausgewertet werden k nnen helfen bei der korrekten Verwen dung Da Business Aktivit ten immer f r konkrete Services erstellt werden ist hier besonders zu beachten dass es ratsam ist diese erst bei Bedarf zu erstellen Dabei ist es egal ob sie durch einen Generator oder von Hand erstellt werden In jedem Fall f hrt eine Produktion auf Halde zu viel berfl ssiger Arbeit Bei der Erstellung der Business Aktivit ten ist eine intensive Kommunikation zwischen Anwendungsexperten und IT Experten unerl sslich 8 2 Einfachheit der Prozesssprachen Bei der Auswahl einer Prozessbeschreibungssprache ist von enormer Wich tigkeit dass diese m glichst einfach zu verstehen ist Nur so kann der Mo dellierer gute Ergebnisse erzielen Die Prozessmodelle sind immer auch Diskussionsgrundlage f r die verschiedenen involvierten Parteien wie Management IT Abteilung Anwender Kunden wobei wichtig ist dass das Modell alle gleich verstehen Oft ist es jedoch aufgrund der Komple xit t der Sprachen der Fall dass entweder kaum jemand das Modell 218 8 2 Einfachheit der Prozesssprachen versteht oder zwar alle der Meinung sind es zu verstehen es jedoch er hebliche Abweichungen in der Interpretation gibt Besonders wenn das Prozessmodell du
339. s Workflow Foundation Work Item Definition Web Services Business Process Execution Language Web Service Connector Web Services Descripion Language Web Service Invocation Framework World Wide Web Wertevorschl ge verf gbar per API API Anforderung Extensible Application Markup Language eXtreme Model Driven Design eXtensible Markup Language eXclusive Or exklusives Oder eXtreme Programming XML Process Definition Language eXtensible Stylesheet Language XSL Transformation Yet Another Workflow Language 265
340. s den Begriff Web Services Architec ture W3C02 und nicht SOA Obwohl beide Begriffe nicht deckungs gleich so ist es doch so dass Webservices die dominierende Technologie zur Umsetzung serviceorientierter Architekturen darstellen Dabei wird f r die Service Definition beim Service Provider WSDL eingesetzt f r das Ver ffentlichen bei einer Registry UDDI und f r die Kommunikati on zwischen Consumer und Provider SOAP Der Registry Teil f llt heute oft weg oder wird anders gel st UDDI hat sich vor allem aufgrund sei ner Komplexit t nicht durchsetzen k nnen ffentliche UDDI Server im Internet existierten nur f r eine sehr kurze Zeit und die aktuelle Version der W3C Spezifikation enth lt nur noch den Consumer und den Pro vider das Dreieck wurde also zu einer Zwei Parteien Kommunikation 15WSDL Web Services Description Language 1SUDDI Universal Description Discovery and Integration 19 2 Grundlagen 20 W3C04d Trotzdem sind Registrys immer noch wichtig wenn auch oft nur innerhalb eines Produktes oder innerhalb eines Unternehmens In Kapitel 3 wird f r die untersuchten Service Sammlungen genau darge legt ob und wie eine Registry jeweils umgesetzt wurde 2 3 Application Programming Interfaces APIs In Abschnitt 2 2 wurde erl utert was Services sind und was eine SOA ist Services treten dabei selten allein auf sondern sind meist Teil ganzer Service Sammlungen Die Schnittstellenbeschreibungen diese
341. s in einer Prozessausf hrung hier keine anderen Daten durch den Kontext geliefert werden werden einfach diese Werte herangezogen Der Standardweg der Datenquelle ist also der Aus f hrungskontext Es wird also f r Eingabeparameter ein entsprechendes Objekt im Kontext erwartet Oft ist es jedoch auch so dass man an be stimmte Parameter immer den gleichen Wert bergeben m chte der also aus Sicht des Prozesses konstant ist Dieser Wert kann also direkt vom Benutzer des Wizards festgelegt werden Dieser Parameter taucht also im SIB gar nicht mehr auf Ein Beispiel w re ein Service ber den man Kontaktadressen anlegen kann und der ber einen bestimmten Parame ter erf hrt ob es sich dabei um einen Kunden einen Lieferanten oder einen Partner handelt Nun k nnen ber diesen Mechanismus drei ver schiedene SIBs erzeugt werden einen f r jede Art von Kontaktadresse Manchmal ist es auch gew nscht dass ein Wert an mehrere Parameter bergeben werden soll Dies kann sowohl f r einen konstanten Wert als auch f r ein variables Objekt aus dem Kontext gelten In dem Fall kann definiert werden dass ein Eingabeparameter einfach seinen Wert von einem weiteren bernimmt 5 3 SIB Generierung In Schritt 5 ist die Angabe der Dokumentation und die Definition ei nes SIB Icons m glich Die Auswahl des Icons geschieht einfach ber einen Standard Filechooser Es ist dabei m glich sowohl Pixelgrafiken wie JPG PNG oder GIF zu verwenden als auch Ve
342. s k nnen zum Beispiel sehr gut als einfache M glichkeit der Report Generierung benutzt werden Dazu k nnen Vor lagen als OpenOffice Dokumente erstellt werden wobei an bestimmten 18http www openoffice org api bzw http api libreoffice org 138 5 2 Manuelle SIB Implementierungen Stellen entsprechend gekennzeichnete Platzhalter eingef gt werden Die se Platzhalter sollten eindeutig gekennzeichnet sein zum Beispiel durch eine Einfassung in jeweils zwei aufeinander folgende Dollarzeichen wie in folgendem Beispiel Die Gesamtpreis betr gt GESAMTPREIS Euro Nun kann durch die Benutzung des SIBs Replace Text dieses Dokument mit Daten gef llt werden Die Erzeugung des Endresultats ist demnach vergleichbar mit einer sehr einfachen Variante der Template basierten Generierung siehe dazu Abschnitt 5 3 1 5 2 2 SAP SIBs Wie in Abschnitt 2 5 beschrieben bilden ERP Systeme oft das R ck grat einer Unternehmens IT Infrastruktur Daher ist es von besonderer Wichtigkeit diese Systeme in den Gesch ftsprozessen zu ber cksichtigen und die von den ERP Systemen bereitgestellten Services in die Automa tisierungen der Gesch ftsprozesse zu integrieren SAP ERP ist dabei als weltweit f hrende L sung ein besonders interessantes Studienobjekt In Abschnitt 3 2 1 wurde die BAPI Technologie vorgestellt und untersucht wie damit auf das SAP System zugegriffen werden kann In Abschnitt 3 2 2 folgte eine Untersuchung der Web Service
343. s komplexe Transformationen oft durch manu ell implementierte SIBs am einfachsten zu realisieren sind F r einfache Zwecke wie z B die Extraktion eines Elementes aus einem Business Objekt bietet sich die Verwendung der erw hnten Common SIBs an die auf die Verwendung der Expression Language setzen F r die Erzeugung der Daten z B f r die Eingabedaten des Services kann ein Konzept wiederverwendet werden welches durch das jETI Framework Kub13 eingef hrt wurde Die Generierung so genannter Provider SIBs Dabei handelt es sich um SIBs die die ben tigten Datenobjekte zusammenset zen und in den Kontext legen Dazu muss ihnen als Eingabe die Menge aller Bestandteile bergeben werden Ein Provider SIB f r das erw hn te Kundenobjekt w rde demnach jeweils einen Namen und eine Stadt an definierten Stellen im Kontext erwarten das Kunden Objekt daraus erzeugen und es danach in den Kontext legen Die Klasse JavaService ist der Wrapper um den von JAX WS gene rierten Web Service Aufruf der den Service als Java Methode anbietet Zusammen mit den JAX WS Klassen und der Klasse BusinessObject bildet sie das Backend also den Teil der spezifisch f r die zu Grunde liegende Business API ist Alle anderen Generate also der ServiceAd apter der LightweightServiceAdapter und das SIB bilden das Frontend Sie sind spezifisch f r das JABC 169 5 Service Integration im jABC 170 Die SIB Dokumentation wird in eine separate Datei geschri
344. s mit Benutzerinteraktion im jABC das ffnen eines Dialogs bewirken und im Produktivbetrieb die Navigation zu einer entsprechenden Webseite Ein anderes Beispiel w re die Nutzung einer Testinstallation eines ERP Systems im jABC und der Produktivinstallation im echten Betrieb Mit dem Tracer hat man also ein Tool zur Simulation von Gesch ftsprozessen Code Generierung mit Genesys Bei Genesys JMS08 handelt es sich um ein umfangreiches Framework zur Code Generierung also zur automatischen Erzeugung von Programmcode aus graphischen Modellen Kern von Genesys bildet eine gro e Sammlung von Code Generatoren die aus SLGs Code in verschiedenen Programmiersprachen und f r ver schiedene Plattformen erzeugen Dazu existiert auch ein entsprechen des jABC Plugin welches Genesys in die Benutzeroberfl che des jJABC Editors integriert Somit kann ein SLG direkt in lauff hige Software bersetzt werden z B in ein JavaSE Programm in ein Java Servlet ein C Programm oder ein BPEL Prozess Das besondere an Genesys ist dass die Code Generatoren selbst wieder als SLGs beschrieben sind 56 zum Beispiel ein Java Swing Dialog 57ein Java Programm welches ber seine Main Methode gestartet wird 48 2 6 XMDD und jABC so dass der erste ausf hrbare Code Generator durch Selbstanwendung Bootstrapping mit Hilfe des Tracers erzeugt werden konnte 2 6 4 3 Model Checking Im Umfeld des Gesch ftsprozessmanagements wird C
345. sbau steine im BPMS Auch hier erwartet der Prozessmodellierer Hilfetexte 63 3 Untersuchung von Business A PIs 64 die ihm erkl ren welcher Service durch den Prozessbaustein repr sen tiert und sp ter aufgerufen wird was die Parameter bedeuten welche Daten als Eingabe erwartet werden und was schlie lich an Daten erzeugt wird Um all dies m glich zu machen ist es f r eine API nicht ausreichend wenn die Dokumentation in einer speziellen graphischen Benutzerober fl che oder einem Handbuch im PDF Format vorliegt Stattdessen muss die API selbst eine M glichkeit anbieten auf die passenden Hilfetexte zuzugreifen WVA Wertevorschl ge verf gbar per API Generierte Benutzeroberl chen sind deutlich einfacher zu bedienen wenn die Felder der Formulare nicht nur Freitextfelder sondern ebenfalls ein fache Auswahlfelder anbieten z B Dropdown oder Combobox ge nannt Damit so etwas m glich ist muss die API f r entsprechende Eingabefelder Wertevorschl ge liefern Diese sollten direkt vor Ort ver f gbar sein dass hei t ohne den Aufruf eines weiteren Services bei dem der Benutzer der API zun chst einmal umst ndlich herausfinden muss welcher Service hier der richtige ist DOP Deklaration optionaler Parameter Es ist wichtig zu wissen ob bestimmte Parameter einer Funktion optio nal oder verpflichtend sind Ebenso k nnen Teile komplexer Datentypen optional oder verpflichtend sein Im Grunde bietet s
346. sbe schreibungssprache und auch abh ngig vom konkret verwendeten Tool auf sehr unterschiedliche Wege Im Folgenden wird zun chst beschrie ben was hier die Spezifikation von BPMN 2 0 beschreibt was im Zuge des aktuellen Hypes viele heute wohl als neue Lingua Franca des BPM sehen w rden Anschlie end wird eine Kategorisierung der grunds tz lichen Vorgehensweisen zur Service Integration vorgenommen wonach auf jede einzelne Kategorie eingegangen wird Zuletzt wird noch auf die Struktur die Erstellung und die Organisation so genannter Business Aktivit ten eingegangen deren Einsatz die heute fortschrittlichste Art der Service Integration darstellt 4 1 Service Integration in BPMN 2 0 Im Unterschied zur ersten Version hat BPMN in seiner Version 2 0 den Anspruch eine ausf hrbare Gesch ftsprozessnotation zu sein Gleich zeitig ist BPMN jedoch neutral gegen ber konkreten Technologien zur Bereitstellung Nutzung und Implementierung von Services Dies ist ein Spagat der nur schwerlich zu realisieren ist Wenn in der Spezifikation nicht ber Technologien gesprochen werden darf bleibt es den Tool Herstellern berlassen wie genau Services eingebunden werden sollen Das bedeutet wiederum dass jeder Hersteller hier potentiell einen ande ren Weg w hlt und ein Austausch ausf hrbarer Prozessbeschreibungen zwischen Tools verschiedener Hersteller nicht m glich ist 119 4 Service Integration in BPMS Die Technologieunabh n
347. se nicht gefunden wer den kann durch ein so genanntes Proxy SIB ersetzt Dieses dient als Platzhalter f r das eigentliche SIB Es besitzt die gleiche Beschriftung die gleichen Parameter samt Werte und die gleichen Branches wie das Original SIB nderungen an Parameterwerten werden beim Speichern in die SLG Datei bernommen Da die Implementierung des SIBs fehlt ist der SLG an der Stelle eines Proxy SIBs nat rlich nicht ausf hrbar Entsprechend des One Thing Approaches siehe Abschnitt 2 6 1 stellt der Prozess also der SLG das eine zentrale Konstrukt der gesamten Sys temdefinition dar Andere Aspekte werden entsprechend an den Prozess annotiert Auf technischer Seite existiert hierzu die M glichkeit belie bige Daten an einen SLG einen SIB oder einen Branch zu annotieren Diese Daten werden User Objekte genannt Dabei gibt es persistente User Objekte die mit dem SLG in der entsprechenden Datei gespeichert werden und fl chtige User Objekte die nur tempor r f r die aktuelle Sitzung gelten Besonders die JABC Plugins machen starken Gebrauch von dieser Technik Beispiele f r persistente User Objekte sind atoma re Propositionen f r den ModelChecker GEAR siehe Abschnitt 2 6 4 3 oder Angaben zu Benutzerrollen und rechten Beispiele f r fl chtige User Objekte sind die Breakpoints des Tracers siehe Abschnitt 2 6 4 2 dessen Markierung f r die aktuelle Position einer Ausf hrung oder ver schiedenste Markierungen die Algori
348. seite http www synerpy de Version 2013 The13al THE YAWL FOUNDATION YAWL Technical Ma nual http www yawlfoundation org manuals YAWLTechnicalManual2 1 pdf Version 2013 The13b THE YAWL FOUNDATION YAWL User Manu al http www yawlfoundation org manuals YAWLUserManual2 3 pdf Version 2013 Thel3c THE YAWL FOUNDATION YAWL Webseite http yawlfoundation org Version 2013 Twil3 TWITTER Twitter Website http www twitter com Version 2013 VDKVO0 VAN DEURSEN A KLINT P VISSER J Domain specific languages An annotated bibliography In ACM Sigplan Notices 35 2000 Nr 6 S 26 36 250 VR03 W3C02 W3C04al W3C04b W3C04c W3C04d W3C12 Wat09 WDGWos WEM95 Whi05 Win06 WMJ10 Literaturverzeichnis VAN REES Reinout Clarity in the usage of the terms ontology taxonomy and classification In CIB REPORT 284 2003 S 432 W3C Web Services Architecture W3C Working Draft 14 November 2002 http www w3 org TR 2002 WD ws arch 20021114 Version 2002 W3C OWL S Semantic Markup for Web Ser vices http www w3 org Submission OWL S Version 2004 W3C RDF Vocabulary Description Language 1 0 RDF Schema http www w3 org TR rdf schema Version 2004 W3C Resource Description Framework RDF http www w3 org RDF Version 2004 W3C Web Services Architecture http www w3 org TR ws arch Version 2004 W3C OWL
349. siehe Ab schnitt 2 7 da es grunds tzlich nicht einfach ist entgegen seiner Ge 5 2 Manuelle SIB Implementierungen wohnheiten und Erfahrungen zu arbeiten Was zun chst auff llt z B in Zeile 2 des Beispiels ist dass fast die gesamte Klassenbibliothek inner halb einer Klasse die Klasse JCO organisiert ist Die einzelnen Klassen sind also jeweils Unterklassen dieser Hauptklasse In Zeile 7 sieht man dass ein Interface den Namen IFunctionTemplate tr gt Das Pr fix I steht hier f r Interface Diese Art der Namensgebung wird auch als ungarische Notation bezeichnet und ist im Java Umfeld eher un b lich Gel ufiger ist diese Notation z B im Windows Umfeld also z B in der NET Klassenbibliothek In den Zeilen 14 16 19 20 und 23 24 wer den jeweils Schl sselworten Werte zugewiesen es werden also Key Value Paare definiert Wie die Bezeichnung Key Value schon suggeriert ist hier die Reihenfolge Key Value blich JCo nutzt jedoch grunds tzlich die Reihenfolge Value Key Der eigentliche Funktionsaufruf findet in Zei le 32 statt Hier wird die Methode execute aufgerufen welche weder Werte bergeben bekommt noch Werte zur ckgibt Der Umgang mit Da ten wird vorher bzw nachher durch entsprechende mit get beginnende Methoden explizit durchgef hrt Im Java Umfeld z B bei durch JAX WS generierte SOAP Web Service Stubs ist es eher blich der aufru fenden Methode die Werte zu bergeben und den R
350. sorgt dass bei einem Einf gen eines neuen Knotens dieser immer an der glei chen daf r vorgesehenen Stelle eingef gt wird Somit hat der Modellie rer diesbez glich keine Freiheiten Sequenzen werden hier immer in einer Reihe von links nach rechts dargestellt In dieser Abbildung wurde hier lediglich am Anfang und am Ende des Prozesses davon abgewichen um eine kompaktere Darstellung zu gewinnen Es gibt mehrere Aspekte welche die Darstellung der Schleife komplex machen e Schleifen sind nur durch die Benutzung einer entsprechenden Akti vit t erlaubt Dabei gibt nur Repeat Until Schleifen In Abbildung 8 3 ist die Schleifen Aktivit t mit fertig beschriftet Der R ck 3Der Prozess im Original Layout w re im Ganzen so breit gewesen dass die Beschriftungen nicht zu lesen w ren Eine Schleife wird also immer mindestens einmal durchlaufen und die berpr fung der Schlei fenbedingung erfolgt immer am Ende einer Iteration 5Die Schleifen Aktivit t ist an dem Kreis an der ausgehenden Kante zu erkennen 221 8 Einfachheit als Erfolgsfaktor im BPM Start End Eingabe Anzahl o 0 Anzeige Wert S j nochmals gt Schleifenindex H Herunterz hlen gt fertig 4 Anzahl gt 0 i 1 1 Abbildung 8 3 Eine Schleife in AristaFlow sprung nach der Uberpriifung der Schleifenvariable erfolgt hier zu einer Aktivit t die selbst nichts ausf hrt hier mit nochmals beschriftet
351. st Instanz von Workday zur Verf gung so dass wir selbst keine Experimente durchf hren konnten So ist es uns nicht m glich ein abschlie endes Urteil ber die Software zu f llen 3 5 Schnittstellen weiterer Produkte Neben den oben beschriebenen Business A PIs gibt es noch weitere APIs die im Business Kontext eine Rolle spielen interessante Eigenschaften und Eigenheiten aufweisen und somit Wert sind in diesem Zusammen hang betrachtet zu werden Zum einen gibt es immer mehr Open Source Implementierungen von ERP Systemen deren APIs in Abschnitt 3 2 behandelt werden Da es sich um ERP APIs handelt fallen diese APIs auch in die Kategorie der 3 5 Schnittstellen weiterer Produkte Business APIs In Abschnitt 3 5 2 folgt dann noch eine Betrachtung der APIs der E Commerce Plattformen Amazon und EBay welche durch ih re Dom ne und ihre Komplexit t ebenfalls als Business A PIs bezeichnet werden k nnen Weitere Systeme und deren APIs werden im Kapitel 5 behandelt wo es um die Service Integration im jABC geht Dort wird unter anderem gezeigt wie Office Suiten oder die Web Applikationen von Google ein gebunden wurden und wo dort die jeweiligen Besonderheiten liegen 3 5 1 OpenSource ERP Systeme Open Source L sungen f hren im ERP Bereich eher ein Nischendasein Aber gerade f r kleine und mittlere Unternehmen mit begrenzter Ka pitalmacht bieten diese Systeme eine gro e Chance Die Akzeptanz in Unternehmen von Open Source im Al
352. ste der Business Objekte enthalten Mit XML RPC ber HTTP wurde eine plattformunabh ngige Techno logie gew hlt eine Verschl sselung ist durch die Nutzung von HTTPS m glich Dabei wird jeder Aufruf authentifiziert Dazu ist die Anga be von Benutzername und Passwort n tig Zugriffsrechte werden dem User anhand seiner zugewiesenen Rollen zugeteilt ber spezielle Methoden werden nicht nur die Namen der Datenfelder verf gbar gemacht sondern auch die dazugeh rige Dokumentation Bei Eingabedaten mit Auswahlm glichkeiten werden die Alternativen expli 109 3 Untersuchung von Business A PIs zit angeboten Optionale Parameter sind zwar entsprechend markiert jedoch sind fast alle Parameter optional so dass dies keinen gro en Mehrwert darstellt F r bestimmte Datentypen sind einfache Regeln verf gbar so z B die L nge von Zeichenketten oder die Anzahl von Nachkommastellen bei Zahlen Komplexere Regeln sind hier jedoch nicht moglich Icons werden f r die Services nicht angeboten Bei jedem Funktionsaufruf k nnen Sprache und Zeitzone mit angegeben werden so dass die Ausgabe entsprechend angepasst wirdt Insgesamt l sst sich sagen dass OpenERP eine solide API bereitstellt und damit gerade im Vergleich zu anderen OpenSource L sungen weit vorne liegt Was Umfang und Dokumentation angeht ist es jedoch nicht vergleichbar mit den gro en kommerziellen L sungen wie zum Beispiel von SAP F r
353. steme zu in tegrieren oder durch ein neues System abzul sen stellt grunds tzlich eine gro e Herausforderung dar Aber nicht nur der Wechsel von bestimmten ERP Systemen auf andere kann problematisch sein selbst eine einfa che Migration auf eine neue Version des gleichen ERP Systems kann die IT Abteilung mit gro en Problemen konfrontieren Das liegt meist dar an dass das ERP System nicht in seinem nackten Auslieferungszustand als Standard Software eingesetzt wird sondern customized also durch eigene Erweiterungen an die Bed rfnisse des Unternehmens angepasst Hes09 M chte man nun das ERP System auf die neue Version brin gen ist es manchmal n tig das Customizing f r die neue Version erneut durchzuf hren da es so sehr in die alte L sung vergraben wurde dass es auf die neue Version nicht anwendbar ist Um solche komplexen und heterogenen Systemlandschaften zu integrie ren und dieser irgendwie Herr zu werden bietet es sich an eine Service orientierte Architektur SOA Erl05 aufzubauen Hier werden die Funk tionalit ten und Daten der einzelnen Systeme durch so genannte Services gekapselt und nach au en einheitlich angeboten Diese Services k nnen nun wiederum zu gr eren Services kombiniert werden und letztlich ma geschneiderte zusammengesetzte Applikationen custom composite ap plications BZKP09 bilden Diese k nnen so entwickelt werden dass sie die speziellen Anforderungen des Unterne
354. stool verwenden So kann der Prozessmodellierer die Bausteine einfacher erkennen verstehen und wie derfinden Au erdem kann durch die Benutzung von Icons der gesamte Prozess verst ndlicher dargestellt werden ISN Internationalisierte Servicenamen Eine API kann in verschiedenen Sprachen existieren Dazu k nnten f r alle in der API benutzten Bezeichner Namen von Business Objekten Parametern etc bersetzungen angeboten werden Eine internationa lisierte API ist deshalb sehr vorteilhaft da es in dem Fall besonders f r die Business User einfacher wird die API und die daraus generierten Prozessbausteine und Benutzeroberfl chen zu verstehen und zu benut zen Nicht alle Nutzer sind zu 100 firm in der heutigen Linua franca Englisch 3 2 Traditionelle on premise ERP Systeme 3 2 1 SAP BAPI SAP SAP12b ist ein deutscher Software Hersteller und der weltweit gr te Hersteller so genannter Enterprise Software also Software f r die kaufm nnischen Belange eines Unternehmens Gleichzeitig ist SAP das weltweit viertgr te Softwareunternehmen im Allgemeinen Deren Hauptprodukt ist ein ERP System mit dem Namen SAP ERP SAP 12al welcher vorher als SAP R 3 vertrieben wurde Unter dem zuletzt genann ten Namen ist das Produkt auch heute noch am bekanntesten SAP ERP z hlt haupts chlich mittlere bis gro e Unternehmen zu ihrer Zielgruppe BAPI SAP05b SAPO5a steht f r Business Application Programming
355. t die Lesbarkeit und Wartung bleibt jedoch schwierig Fazit Windows Workflow Foundation ist ein Prozess Framework bei dem Service Integration keine gro e Rolle spielt Dies wird bei Micro soft eher darauf aufbauender Software wie BizTalk berlassen Windows Workflow Foundation besitzt jedoch mit der M glichkeit der Entwick lung eigener Aktivit ten das Potential zur Realisierung von Business Aktivit ten Direkte Unterst tzung durch Generierungstools oder fertige Business Aktivit ten gibt es nicht Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Vergleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 7 BPEL BPEL OAS07 steht f r Business Process Execution Language und war die erste weit verbreitete Definitionssprache f r ausf hrbare Ge sch ftsprozesse Dabei werden in BPEL die Prozesse als Orchestrierun gen von Web Services in einer XML basierten Syntax verfasst Die Spezi fikation beinhaltet keine Vorgaben f r eine entsprechende graphische No tation BPEL ist demnach durch den Fokus auf XML und Web Services sehr technisch und kann nicht direkt von fachlichen Prozessmodellierern benutzt werden die keine IT Fachleute sind BPEL stellte einen gro en Hype dar der mittlerweile abgeklungen ist Heutzutage wird BPEL stark von BPMN 2 0 verdr ngt Dieser Trend ist auch in Abbildung 6 1 zu erkennen Da BPEL selbst keine graphische Notation besa wurde lange versucht BPEL aus vers
356. t Icon enth lt 2 6 XMDD und jABC Datei Bearbeiten Projekt SIB Kante Graph Ansicht Modus Extras Plugins Hilfe Bae Bl Bale BEE FT BB al el dail Projects SIBs Beschaffung 8 amp Rechnungswesen i er S S co Eh Logistik SG MM O Neues Material anlegen O Bestand pr fen Bestellung vornehmen Wareneingang buchen O Rechnungspr fung durchf hren i e PP Si me SD E SER H L sche A default gt WU default gt SIB Graph Draw LocalChecker Bestellung vornehmen Wareneingang buchen Rechnungsprufung durchf hren Label Taxo JalaWeled sayauesa Wert zisme 46 SHIFT_CTRL Developer 100 S N 7062507343 0 Cells selected Abbildung 2 4 JABC Benutzeroberfl che und Branches von SIBs benutzt der Graph Inspektor f r alle Da ten die den ganzen SLG betreffen z B der Name des Modells die Modell Parameter oder die Modell Branches Inspektoren k nnen auch von Plugins genutzt werden um eigene Informationen darzu stellen So gibt es zum Beispiel einen Inspektor f r den LocalChe cker ein Plugin welches die korrekte Benutzung der SIBs im SLG anhand lokaler Regeln berpr ft Die Darstellung der SIBs in einer Taxonomie im Browser ist durch den Benutzer beliebig anpassbar Zur Bearbeitung der Taxonomie existiert das Plugin Taxonomie Editor Somit ist es m
357. t naturgem deutlich technischer und komplexer als die der GUI Erst nach eini ger Einarbeitungszeit kennt man die Aufgaben der diversen Wrapper Klassen und Factory Klassen Der Benutzer sollte sich au erdem mit Java Reflection auskennen Zur Ausf hrung der Generierung wird die Klasse HWTQueueExecutor eingesetzt deren Benutzung ebenfalls beherrscht werden muss Aufgrund dieser recht komplexen Benutzung wurde in dieser Arbeit auf die Benutzung der SIB Creator API verzichtet Stattdessen wurde ein Ansatz gew hlt der rein auf den Einsatz von Templates der Template 148 5 3 SIB Generierung Engine StringTemplate setzt Darauf wird in Abschnitt 5 3 1 genauer eingegangen Mit der SIB Creator API w re au erdem eine bertragung des Konzeptes vom jABC auf andere Prozessframeworks nicht oder nur schwer m glich gewesen Diese wird in Kapitel 7 beschrieben Generierung von R SIBs Ein Beispiel f r die Anwendung der SIB Creator API ist die Diplomarbeit von Clemens von Musil Mus09 Hier geht es um die Integration der Statistiksprache R in das jJABC Dazu m ssen direkt ausf hrbare SIBs generiert werden welche wiederum R Code aufrufen Diese SIBs sollen dabei direkt durch den Anwendungsex perten benutzbar sein Die Generierung der SIBs erfolgt hier nicht auf Vorrat sondern immer nur bei Bedarf Zur Anbindung von R aus Java heraus existiert bereits das Java R Interface sowie die Technologie Rser ve Rserve besteht aus
358. tKeyFoundation objectistLC Key String objectistLC Number String env getLocalContext get 0bjectistLC NumberKey BusinessObject objectistLC 0bject objectistUC JavaService read object1stUC objectistLC Number environment getLocalContext put objectistLC Key objectistLC 0bject return default Auch in diesem Template werden wieder nur die gleichen wenigen Va riablen benutzt und au er der einfachen Variablenersetzung keine wei teren Features der Template Engine Die eigentliche Komplexit t steckt im Template des JavaServices Diese Klasse die vom Lightweight ServiceAdapter in diesem Beispiel in den Zeilen 23 bis 25 aufgerufen wird enth lt den Code der den eigentlichen Webservice aufruft die von JAX WS generierten Klassen benutzt und aus den Ergebnissen des Service Aufrufs das BusinessObject zusammenbaut Hier werden also noch einige weitere Variablen zum Beispiel fiir die Bestandteile des Busi nessObjects ben tigt Au erdem werden hier komplexere Mechanismen der Template Engine bedingte Ausf hrungen und Schleifen eingesetzt um die Menge der Parameter zu behandeln und je nach Komplexit ts grad der Datenstrukturen und nach den Vorgaben die bei der Benutzung des Wizards definiert worden sind die Daten korrekt zu transformieren Sehr vorteilhaft ist hier dass die JavaService Klasse zur Backend Seite der generierten Klassen geh rt also bei einem Umstieg von jABC auf ei
359. te Sales Order Sales Invoice Purchase Quote Purchase Order Purchase Invoice Employee Create NG NG Read Simple Query d d d kein L schen sondern per Update isActive auf false setzen thier Invoice hier Bill 82 Update d d Delete vt 3 2 Traditionelle on premise ERP Systeme 3 2 4 2 API Design Die Namen f r Business Objekte Operationen und Parameter sind in tuitiv verst ndlich und konsistent gew hlt IKB Bewertung Die Struktur der qbXML Dokumente ist meistens klar und einfach ge halten F r jeden Service ist eine Anfragenachricht Request sowie eine dazugeh rige Antwortnachricht Response definiert Zum Bei spiel existiert zum Hinzuf gen eines neuen Kundendatensatzes das Ele ment lt CustomerAddRq gt als Request und lt CustomerAddRs gt als Respon se Der Request enth lt das Element lt CustomerAdd gt welches wiederum alle Elemente eines Kunden enth lt was z B der Name die Adresse und Kommunikationsdaten w ren Der Response enth lt das Element lt CustomerRet gt welches ebenfalls die neu angelegten Kundendaten ent h lt und zus tzlich die automatisch erzeugte ID des Kunden KES Bewertung Die Dokumentation ist relativ detailliert aber leider nicht an allen Stellen komplett KVD Bewertung 0 3 2 4 3 Technologie Die Art und Weise wie qbXML Dokumente an das System bertragen werden h ngt von d
360. teht f r Extreme Model Driven Design und ist ein Ansatz der das Ziel hat es dem Business Experten zu erm glichen selbst direkt ausf hrbare Prozesse zu modellieren Zum einen ist es also wichtig dass Klarheit dar ber herrscht dass es mit dem Business Experten und dem IT Experten verschiedene Rollen gibt die jeweils sehr unterschiedliche Kenntnisse und F higkeiten besitzen zum anderen muss daf r gesorgt werden dass diese Rollen permanent w h rend des ganzen Entwicklungsprozesses miteinander kommunizieren Es ist gerade nicht gewollt dass zuerst die Management Abteilung ein fach liches Modell entwirft welches lediglich eine lose Spezifikation bestehend aus einer Sammlung von Abbildungen darstellt und anschlie end die IT Abteilung diese Spezifikation f r die Grundlage manueller Implementie rungen heranzieht Stattdessen arbeiten die Rollen permanent zusammen und werden durch die Elemente von XMDD in ihrer Kommunikation be sonders Unterst tzt XMDD beinhaltet dabei ein konkretes Meta Modell f r die Prozesse und ein Komponentenmodell f r die Prozessbausteine Bei XMDD handelt es sich also gleichzeitig um ein Vorgehensmodell und um ein konkretes technisches Modell zur Entwicklung prozessgesteuerter Applikationen XMDD ist bez glich der Anwendungsgebiete ein sehr allgemeiner Ansatz und beschr nkt sich nicht auf das Gesch ftsprozessmanagement im en geren Sinne Vielmehr k nnen damit beliebige Applikationen entwickelt werden b
361. teilweise in Staffing gefunden werden gt RSD Bewertung 0 Die Schnittstellen werden durch WSDL Dateien beschrieben Dies ist zwar eine sehr technische Sicht auf die Services aber sie ist immer kor rekt da die aktuelle Implementierung direkt auf dieser Information ba siert KVS Bewertung Die allgemeine Situation bzgl der Abdeckung von Business Objekten ist sehr vergleichbar zu Salesforce Alle Business Objekte der Workday Software k nnen per API erreicht werden Es gibt kein Objekt in der GUI welches nicht in einer WSDL auftaucht Dies ist in Anbetracht des limitierten Anwendungsgebietes der Software vergleichsweise einfach zu erreichen Auf jedes Objekt kann durch eine bestimmte Menge an Ope rationen zugegriffen werden Anders als bei Salesforce kann hier nicht einfach jede Operation mit jedem beliebigen Business Objekt kombiniert werden Stattdessen besitzt jedes Business Objekt seine ganz spezifische Menge an Operationen Leider gibt es keine Funktion also kein spezieller Pr fix f r komplexe Abfragen Manchmal stellen Funktionen mit get einfache Leseopera tionen dar und manchmal weisen sie Eigenschaften komplexer Abfragen auf So ist es im Allgemeinen nicht einfach m glich f r eine bestimmte Abfrage eine Liste von Objekten zu bekommen Wenn der Client nach einem bestimmten Objekt sucht kann eine Funktion mit dem Pr fix find benutzt werden Da Workday kein vollst ndiges ERP System sonde
362. tellt werden muss Gerade in der heutigen Zeit in der Unternehmenszusammenschl sse und bernahmen h ufige Ereignisse darstellen sollte man m gliche Systemmigrationen im Auge 38oder englisch MPC Manufacturing Planning and Control 392 B SAP Business Workflow 40oft auch unter dem englischen Schlagwort Mergers and Acquisitions gef hrt 34 2 6 XMDD und jABC behalten ERP Systeme bieten meist umfangreiche APIs an siehe dazu auch Ab schnitt 2 3 Diese APIs haben folgende typische Eigenschaften e Gr e Die Anzahl der Services ist meist sehr gro e Komplexit t Die Struktur der Services und verwendeten Daten strukturen ist meist u erst komplex e Einheitliches Konzept Die ganze API folgt einem m glichst ein heitlichen Konzept wie die Services aufgebaut sind und organisiert werden Aufgrund dieser Eigenschaften die ERP APIs von anderen APIs wie z B den meisten Web APIs siehe 2 3 abheben und der hohen Bedeu tung von ERP Systemen ist es sinnvoll sich konkret mit der Integration von ERP Systemen zu befassen und hier spezielle m glichst gut passen de Wege zu gehen Diese Wege werden in Kapitel 5 behandelt Sehr typisch f r ERP Systeme ist es auch dass sich hier ein eigenes tech nologisches kosystem mit eigener Programmiersprache eigener Ent wicklungsumgebung usw entwickelt hat Bei SAP existiert zum Bei spiel ABAP bei Microsoft Dynamics NAV C SIDE und bei Salesfor ce Apex
363. tem WorkItem wi 213 7 bertragung des InBuS Konzeptes auf andere BPMS 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 10 11 12 13 14 15 16 17 18 19 20 214 WorkItemManager wim Integer objectistLC Number Integer wi getParameter objectistLC Number BusinessObject objectistLC Object objectistLC JavaService read objectistUC objectistLC Number HashMap lt String Object gt results new HashMap lt String Object gt BE SMES put Gus ODE LEE SITES numb ames wim completeWorkItem wi getId results 7 2 Activiti Die JavaDelegates von Activiti sind ebenso einfach mit entsprechenden Templates zu generieren Ein Beispiel Template ist in Listing 7 7 darge stellt das generierte Ergebnis in Listing 7 8 Listing 7 7 Template JavaDelegate package de activiti test import org activiti engine delegate DelegateExecution import org activiti engine delegate Expression import org activiti engine delegate JavaDelegate public class objectistUC CustomService implements JavaDelegate private Expression objectistLC NumberKey private Expression objectistLC Key Override public void execute DelegateExecution exec throws Exception Integer objectistLC Number Integer exec getVariable String objectistLC NumberKey getValue exec 21 22 23 24 25 26 27 28 29 30 20 21 22 23 24 25 26
364. tem selbst installiert und gewartet werden muss Die Angebote von Amazon wurden in der Bachelorarbeit von Moussa Oumarou Oum12 untersucht Hier wurde jBPM sowohl direkt auf EC2 als auch auf das darauf basierende Java PaaS Elastic Beanstalk de ployt Beides funktionierte ohne Probleme In umfangreichen Tests wur de gezeigt dass die Nutzung von Cloud Computing Technologien hier insbesondere von Amazon eine gute technische Basis f r die Ausf hrung von Gesch ftsprozessen sein kann Das Deployment existierender Prozess Engines auf IaaS oder PaaS ist zwar schon ein guter Schritt wenn von der darunter liegenden Technolo gie abstrahiert werden soll noch besser ist es jedoch eine fertige SaaS Prozess Engine einzusetzen Prozess Modellierungstools existieren schon l nger als SaaS das bekannteste Beispiel hierf r ist wohl das auch von Activiti eingesetzte Signavio Doch in letzter Zeit beginnt auch die Zeit der SaaS Engines Amazon bietet hier zum Beispiel mit seinem Dienst SWF eine vielversprechende L sung an Ein weiteres interessantes 1Ohttps www heroku com Hnttp aws amazon com de elasticbeanstalk 2http www signavio com de 13SWF Simple Workflow Service l4nttp www allthingsdistributed com 2012 02 Amazon Simple Workflow Service html und http aws amazon com de swf 225 8 Einfachheit als Erfolgsfaktor im BPM Projekt stammt von Tom Baeyens der schon Gr nder und Hauptent wickler der Projekte jBPM
365. ten Diagramme in BPMN 2 demnach ausf hrbar und zwischen verschiedenen Produkten austauschbar sein Unsere praktische Erfahrung mit verschiedenen BPMN 2 Produkten hat gezeigt dass diese sich nicht wirklich immer an den Standard halten Typischerweise wird immer nur eine Untermenge von BPMN 2 unterst tzt welche dann wie derum durch propriet re Erweiterungen erg nzt wird Auch die in der Spezifikation angestrebte Art der Service Integration wird nicht immer genau so durchgef hrt 3DMS Document Management System http www alfresco com Shttp www jboss org drools 178 6 1 jBPM 6 1 1 jBPM 4 x jPDL Wie schon weiter oben erw hnt nutzt jBPM 4 jPDL als Prozessbeschrei bungssprache Es existieren zwei Kategorien von Aktivit ten in jPDL 1 Control Flow Activities und 2 Automatic Activities Control Flow Activities sind Aktivit ten die den Kontrollfluss defi nieren oder beeinflussen wie z B Start End oder Decision Die einzige Control Flow Activity welche f r den Aspekt der Service Integration von Belang ist ist die Custom Activity Eine solche Aktivit t beein flusst zwar nicht zwingend den Kontrollfluss da dies jedoch m glich ist wird diese Aktivit t zur ersten Kategorie gez hlt Die Automatic Activities sind einfache Aktivit ten die lediglich ausge f hrt werden den Kontrollfluss jedoch nicht beeinflussen Hier enthalten sind zum Beispiel eine Skript Aktivit t so
366. terface implementiert so dass sichergestellt ist dass eine execute Methode vorhanden ist Diese Methode bekommt wie der ein Objekt bergeben ber das auf den Kontext zugegriffen werden kann Im Modellierungstool muss der vollst ndige Klassenname des Java Delegates incl Package angegeben werden Der Prozessmodellie rer muss also den Klassennamen kennen und muss ihn eingeben anstatt einfach einen Service auszuw hlen aus einer fertigen Liste in der GUI des Modellierungstools Es kann exakt eine R ckgabevariable existie ren welche im Modellierungstool definiert werden muss F r Eingabe Parameter hier fields genannt muss ein Name sowie eine Expression angegeben werden Letztere kann auch eine konstante Zeichenkette sein Der bergabemechanismus der Parameterwerte ist Call by value die Werte werden also kopiert Der zweite Weg einen Service Task zu definieren ist die Angabe einer Expression Diese Expression kann ein Objekt im Kontext referenzieren 25http www ecma international org publications standards Ecma 262 htm 26 JavaDelegate TDelegat eExecution 184 6 3 Bonita Open Solution BPMN 2 0 darauf Methoden ausf hren und diesen Methoden wiederum andere Ob jekte aus dem Kontext als Parameter bergeben In diesem Fall kann ein Service Task mit einer einfachen Skript Aktivit t verglichen werden da eine Ausdruckssprache als eine einfache Skript Sprache gesehen werden kann Dieser Ansatz ist also
367. tet 71 3 Untersuchung von Business A PIs 72 BAPI_CUSTOMER_CREATEFROMDATA1 import PI_COPYREFERENCE Structure 4 fields PI_PERSONALDATA Structure 31 fields PI_COMPANYDATA optional Structure 33 fields PI_CONSUMEREN optional String PI_CREDIT_CONTROL_FLAG optional String PI_OPT_COMPANYDATA optional Structure 8 fields PI_OPT_PERSONALDATA optional Structure 8 fields export CUSTOMERNO String RETURN Structure 10 fields table Abbildung 3 6 Struktur der BAPI zum Anlegen eines Kunden diese komplexeren Zusammenh nge nach au en kenntlich zu machen Die Schnittstellendefinition dieser BAPI Funktion ist in Abbildung 3 6 zu sehen DOP Bewertung 3 2 2 SAP eSOA Mit der Technologie Netweaver hat SAP im Jahr 2004 eine neue tech nologische Grundlage seiner Produkte eingef hrt Es wird beworben als eine service orientierte Integrationsplattform basierend auf Standards wie JEE Java Enterprise Edition und Web Services Die propriet re Programmiersprache ABAP wird nach wie vor unterst tzt es existiert also ein Applikationsserver mit zwei separaten Technologie Stacks Java und ABAP SAP nennt seine Umsetzung einer serivce orientierten Archi tektur eSOA enterprise SOA Hai07 SAP10 Wir testeten die eSOA Technologie mit dem sogenannten ES Workplace eine von SAP selbst bereitgestellte Webseite die Zugriff auf verschiedene SAP Produkte zu sammen mit sehr viel Dokumentation b
368. teuert und schlie lich den Quelltext generiert Die Erstellung die ser Software stellt nat rlich einen gewissen Aufwand dar Dieser lohnt 5 3 SIB Generierung sich immer dann wenn die APl eine gewisse Gr e besitzt was bei ERP APIs typischerweise der Fall ist Bei einer gro en API spart man beson ders deshalb viel Arbeit durch den Einsatz von Generierungstechniken da immer wiederkehrende Aufgaben nur einmal bei der Erstellung des Generators erledigt werden m ssen Diese Aufgaben beziehen sich da bei oft auf technische Eigenheiten der APIs Man muss also nur einmal mit bestimmten technischen Problemen k mpfen nicht bei jedem SIB neu Auch ist entscheidend dass das Wissen ber diese technischen De tails beim Generator Ersteller bleiben kann und nicht an all diejenigen kommuniziert werden muss welche die Services mittels SIBs integrieren m chten Die SIB Generatoren f r ERP APIs sind also System spezifisch und nicht technologiespezifisch wie z B beim WSDL2SIB Generator des jETI Plugins Als technische Grundlage zur SIB Generierung kann sehr gut die Template basierte Code Generierung eingesetzt werden Templates sind relativ ein fach zu erstellen und zu manipulieren Au erdem sind sie sehr gut wieder verwendbar In Abschnitt 5 3 1 wird darauf eingegangen welche Vorz ge dieser Ansatz konkret hat und welche spezifische Technologien f r diese Arbeit gew hlt wurden Die Kommunikation mit dem Benutzer kann durch einen so ge
369. thmen auf SLG an selbigen tempo r r hinterlassen Neben der M glichkeit f r die Plugins ber die JABC API Daten an SLGs anzuh ngen ist es auch f r den Benutzer direkt m glich beliebi ge strukturierte Daten an das Modell zu annotieren Zu diesem Zweck existiert der ContentEditor Dieser erlaubt es Daten mit einer vorge gebenen Struktur an beliebige Elemente eines SLGs zu annotieren Die Struktur wird dabei durch eine Grammatik vorgegeben die durch ein Railroad Diagramm definiert werden welches selbst wiederum als SLG mit speziellen ContentEditor SIBs erstellt wird Der ContentEditor ist sehr vielseitig einsetzbar Er kann unter anderem zur Vergabe von Rol len und Rechten zur Definition von Deployment Informationen oder zur Hinterlegung strukturierter Dokumentationstexten benutzt werden 2 6 XMDD und jABC 2 6 4 2 Ausf hrung Entsprechend des agilen Ansatzes von XMDD ist die direkte Ausf hrbar keit von SLGs von entscheidender Bedeutung So bekommt der Prozess modellierer immer direktes Feedback dar ber ob sich das Modellierte genau so verh lt wie er oder sie es sich gedacht hat Neben der direkten Ausf hrung in der Modellierungsumgebung ist es auch m glich die glei che Ausf hrungsumgebung dazu zu nutzen den Prozess ohne GUI z B auf einem Server auszuf hren oder aus dem SLG ausf hrbaren Pro grammcode zu generieren der anschlie end ausgef hrt und bei Bedarf vorher kompiliert werden kann Direkte Ausf
370. tigen und interessanten Features bedeutet Weder Dokumen tation noch Icons noch die Definition ausgehender Kanten noch Va lidierungsregeln werden unterst tzt Weiterhin gibt es keine Tools zur Generierung der Aktivit ten kein Repository und die Aktivit ten wer den nicht auf irgendeine Art und Weise kategorisiert Nichtsdestotrotz k nnen die Custom Aktivit ten schnell erstellt und direkt verwendet werden Eine strukturierte Zusammenfassung der Evaluationsergebnisse und ein Vergleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 6 1 2 jBPM 5 x BPMN 2 0 Skript Aktivit ten In Version 5 wird bei jBPM nach wie vor eine Skript Aktivit t angeboten Der Spezifikation von BPMN 2 folgend wird diese hier Script Task genannt Verschiedene Sprachen werden unter st tzt z B Java und MVEL Das jBPM Benutzerhandbuch enth lt dazu die folgende Warnung You should try to avoid contacting external services through a script node It is interacting with external services without the knowledge of the engine which can be proble matic especially when using persistance and transactions In general it is probably wiser to model communication with an external service using a service task Es wird also davor gewarnt Skript Aktivit ten zur Service Integration zu benutzen Andererseits tendieren auch andere Aktivit ten oft dazu wie Skript Aktivit ten benutzt zu werden z B wenn komplexe Ausdr cke
371. tion eine automatische oder halbautomatische Generie rung von SIBs Dazu gibt es bereits seit langem unterschiedliche Ans t ze die jeweils in unterschiedlichen Szenarien ihre Daseinsberechtigung besitzen SIB Creator Plugin Das jABC Plugin SIB Creator dient zur auto matischen Generierung von SIBs Dabei werden hier zwei ganz unter schiedliche Bedienkonzepte und damit verbundene Vorgehensweisen an geboten 1 SIB Creator GUI 2 SIB Creator API Die graphische Benutzeroberfl che des Plugins erm glicht die Definition von SIBs direkt in einem entsprechenden Dialog im jABC In Abbil dung 5 1 ist ein entsprechender Screenshot zu sehen Im oberen Bereich gibt man den gew nschten Java Package Namen sowie den Klassenna men an Die Schaltfl che rechts daneben dient zur Auswahl eines Icons Darunter befinden sich Bereiche zur Angabe der Parameter und Bran ches F r alle angegebenen Elemente kann ber das Kontextmen ein Text Editor Fenster zum Verfassen der Dokumentation ge ffnet werden ber die Schaltfl che Interfaces k nnen die zu implementierenden In terfaces angegeben werden Das Ergebnis der Generierung ist kein aus f hrbares SIB sondern lediglich eine Art Stub welcher noch mit einer Implementierung versehen werden muss Zus tzlich existiert auch noch ein Dialog zur Auswahl einer Java Methode zur welcher ein entsprechender Service Adapter generiert wird Somit kann also auf der einen Seite ein SIB Stub
372. tory Editor vorgenommen einer Client Software f r die Verwaltung des Activity Repositorys Der Benutzer muss hier eine neue Komponen te anlegen und anschlie end darin eine neue Operation Anschlie end erscheint ein Wizard in dem unter anderem die Parameter der Akti vit t definiert werden F r jeden Parameter m ssen Name Datentyp und Datenflussrichtung Eingabe oder Ausgabe definiert werden Hier 35hjer ExecutableComponent 36mit Namen ExecutionEnvironment 8Thier run 38 mit Namen sessionContext 190 6 5 YAWL ist es sehr wichtig exakt die Namen Typen und Datenflussrichtungen anzugeben die auch in der Implementierung der Aktivit t benutzt wur den Es existiert kein unterst tzender Mechanismus der sicherstellt dass man hier keine fehlerhaften Referenzen verwendet Weichen die Angaben von der Implementierung ab ist die Aktivit t nicht oder nur fehlerhaft ausf hrbar Es ist auch m glich dokumentierenden Text zur Aktivit t und zu den Parametern hinzuzuf gen Alle im Repository vorgehaltenen Aktivit ten k nnen direkt im so genannten Template Editor also dem Tool zur graphischen Modellierung der Prozessgraphen benutzt werden Hier ist es angenehm dass es m glich ist den Aktivit ten individuelle Icons zuzuweisen die ihre Semantik symbolisieren Leider wird die Dokumentation der Aktivit ten nicht in der baumarti gen bersicht aller Aktivit ten im Template Editor angezeigt Erst wenn ei
373. trachtet in Abschnitt 3 2 zun chst vier verschiedene Schnittstellen von traditionellen ERP Systemen Die Ergebnisse dieser Untersuchung wurden bereits in DS11 ver ffentlicht Die betrachteten 55 3 Untersuchung von Business A PIs Systeme sind dabei im einzelnen e SAP BAPI e SAP eSOA e Microsoft Dynamics NAV e Intuit Quickbooks Intuit Quickbooks ist dabei schon eine L sung die es sowohl traditionell als auch als Cloud L sung in dem Fall Online Edition genannt gibt Hier wird diese Untersuchung nun noch um mehrere Cloud Systeme er weitert Dies sind im einzelnen e Salesforce e NetSuite e Workday Durch die Hinzunahme dieser Systeme kann untersucht werden inwie weit ein Trend hinsichtlich der API Qualitat von traditionellen zu Cloud basierten Systemen zu erkennen ist In Abschnitt 3 5 wird zum Schluss noch auf weitere APIs unter anderem aus dem OpenSource Umfeld eingegangen Die Auswahl der Systeme wurde durch verschiedene Faktoren motiviert Zun chst sollte ein m glichst breites Spektrum verschiedener L sungen abgedeckt werden Daher wurde darauf geachtet L sungen aus allen Gr enordnungen zu betrachten Au erdem sollten nur Systeme betrach tet werden die in ihrem Marktsegment eine relevante Rolle spielen also einen gewissen Marktanteil haben Weiterhin spielten auch praktische Gr nde wie der m gliche Zugriff auf reale Systeme in Kooperationen mit den Herstellern oder in Industrieprojekten ein
374. tringTemplate FreeMarker welche auch als spezielle technische Service Aktivit ten gesehen werden k nnen aber aufgrund der Tatsache dass sie ein Skript das Template ausf h ren in der Kategorie Skript Aktivit ten fallen Die Template Engine SIBs kommen alle aus dem Genesys Projekt siehe Abschnitt 2 6 4 2 5 1 2 Technische Service Aktivit ten Das jABC ist nicht nur ein Tool f r Gesch ftsprozesse im engeren Sinne ist sondern umfasst ein erheblich weiteres Anwendungsspektrum Wie in Abschnitt 2 6 4 beschrieben handelt es sich um ein allgemeines Prozess framework welches in den unterschiedlichsten Szenarien Gesch ftspro zesse eingebettete Systeme Code Generierung Anwendung findet Dies f hrt dazu dass die Common SIBs Sammlung neben den oben er w hnten Script SIBs noch eine Reihe weiterer Kategorien enth lt e Basic SIBs einfache Funktionalit ten wie z B ein einfaches if SIB oder zur Platzierung von Datenobjekten im Ausf hrungskontext e IO SIBs Eingabe und Ausgabe ber Bildschirm Tastatur Netz werk Dateisystem etc e GULSIBs Darstellung von Dialogen Interaktion mit Benutzern e Collection SIBs Umgang mit Collection Datentypen wie List Map etc e Java SIBs sehr technische SIBs f r Java spezifische Aufgaben e MSOffice SIBs Manipulation von Word und Excel Dokumenten e OpenOffice SIBs Manipulation von OpenOffice Dokumenten http www beanshell org http gr
375. tuhl f r Programmiersysteme Dort mund Deutschland Diss 2009 NASSER V H The Central Role of APIs in Mashup and Cloud Platforms and Need for an Agile API Development Method 243 Literaturverzeichnis Nat03 NATIS Y V Service oriented architecture scenario 2003 net 12a NetSuite API documentation SuiteTalk http www netsuite com portal developers resources suitetalk archives shtml Version 2012 net12b NetSuite Website http www netsuite com Version 2012 Nig13 NIGHTLABS CONSULTING GMBH JFire Webseite https www jfire org Version 2013 NM10 NASEHI S M MAURER F Unit tests as API usage examples In Software Maintenance ICSM 2010 IEEE International Conference on IEEE 2010 S 1 10 Nun07 NUNEZ Di Croce M Exploiting SAP Internals A security analysis of the RFC Interface Implementa tion http www blackhat com presentations bh europe 07 Nunez Di Croce Whitepaper bh eu 07 nunez_di_croce WP apr19 pdf Version 2007 OAS06 OASIS SOA Reference Model TC Reference model for Service Oriented Architecture 1 0 2006 OASO7 OASIS Web Services Business Process Ezre cution Language Version 2 0 Specification http docs oasis open org wsbpel 2 0 0S wsbpel v2 0 O0S html Version 2007 0 C10 O CALLAGHAM Portia The API Walkthrough Method A lightweight method for getting early feedback about an API In PLATEAU ACM 2010 ODBH06 OUYANG Chun DUMAS Marlon BRE
376. ubt e Wie gro ist die API Die Anzahl der Services hat entscheidenden Einfluss auf die Art und Weise wie die API strukturiert wird e Wie kann die API strukturiert werden Gibt es Kategorien Wenn ja gibt es hierarchische Kategorien Kann man die Funktionen zu Business Objekten zusammenfassen Sind die Business Objekte re lativ gleichartig oder sehr verschieden Kann man also die gleichen Operationen z B CRUD auf alle Business Objekte anwenden Es muss hier entschieden werden ob der algebraische Ansatz gewahlt wird oder der Funktionen zentrische mit individuellen Operationen e Wie wird die Versionierung vorgenommen F r die ganze API Pro Kategorie auf oberster Ebene Pro Business Objekt Pro Funkti on Wichtig ist dabei auch die M glichkeit Services als veraltet also als deprecated zu markieren Dabei muss dann auch immer angegeben werden welcher Service stattdessen benutzt werden soll e Wie werden die WSDL Dokumente aufgeteilt Kommt die gesamte API in eine WSDL Gibt es eine WSDL pro Kategorie oder sogar eine WSDL pro Business Objekt oder eine WSDL pro Service Sind vielleicht sogar mehrere WSDLs pro Service n tig f r die verschie dene Aspekte jeweils eine e Wie wird die Registry umgesetzt Bei nur einer WSDL ist diese nicht n tig Ansonsten k nnte man ber UDDI nachdenken Die ses hat sich jedoch in der Geschichte als zu komplex dargestellt und wird daher kaum eingesetzt Die propriet re Microsoft L sun
377. ue public ContextKey objectistLC Key new ContextKey objectistLC ContextKey Scope DECLARED true public static String BRANCHES st Hecke eer ell Memes erer e t k public String trace ExecutionEnvironment env teya return objectistUC PageReadServiceAdapter read env objectistLC NumberKey objectistLC Key catch Throwable e e printStackTrace return error Werden nun die Variablen von der Template Engine durch ihre Werte ersetzt sieht das Ergebnis wie in Listing 7 2 aus Dieses SIB liest einen Verkaufsauftrag Sales Order passend zu einer vorgegebenen Auftrags nummer Listing 7 2 Generiertes SIB Read Sales Order vereinfacht package de jabc dynnav sibs salesorder weitere Import Statements ausgelassen import de jabc dynnav adapters salesorder SalesOrderPageReadServiceAdapter SIBClass InBuS MSDynNAV Page SalesOrder Read Generated value de jabc inbus date 06 30 2013 public class SalesOrderPageRead implements Executable 209 7 bertragung des InBuS Konzeptes auf andere BPMS 13 public ContextKey salesOrderNumberKey 14 new ContextKey salesOrderNumber 15 ContextKey Scope DECLARED 16 true 17 18 public ContextKey salesOrderKey 19 new ContextKey salesOrder 20 ContextKey Scope DECLARED 21 true 22 23 public static String BRANCHES 24 default rere ciel ps 25 26 public String trace ExecutionEnvironme
378. ue Applikationen die eine API anbieten sollen Der wichtigste Grundgedanke ist zun chst dass der Entwicklung der API eine entsprechende Bedeutung beigemessen wird Die API ist heutzuta ge mindestens genauso wichtig wie die GUI Auch bei der API m ssen demnach Usability Test z B mit Think Aloud Protokollen durchge f hrt werden und es muss kontinuierlich versucht werden den Status Quo zu verbessern Ein erster naiver Gedanke zur Bereitstellung einer API k nnte sein dass es mit heutigen Technologien wie JAX WS sehr einfach m glich ist ei nige Annotationen an die entsprechenden Methoden zu heften und den Rest z B das WSDL Dokument durch automatische Generierung zu erzeugen Dieser Weg wird ausdr cklich nicht empfohlen Auf diese Weise besteht keine Chance ein wohldefiniertes einheitliches Konzept zu ver folgen Stattdessen werden einfach die internen Methoden wie sie sind nach au en freigegeben Eventuell ist es jedoch gew nscht dass die f fentliche API ganz anders strukturiert ist Besonders eine gewisse Ein heitlichkeit und Konsistenz kann so nicht erreicht werden Besser als eine automatische WSDL Generierung ist hier der Ansatz Contract First Dabei wird im Falle von SOAP Web Services zuerst das WSDL Dokument und das XML Schema erstellt und anschlie end T2http rphgoossens wordpress com 2011 02 20 developing a contract first jax ws webservice 114 3 6 Entwicklungsleitfaden f r Business A PIs
379. umgesetzt werden Im allgemeinen k nnen hier zwei grunds tzliche Herangehensweisen unterschieden werden 1 Funktionen als Hauptordnungselemente 2 Business Objekte als Hauptordnungselemente SAP und Workday benutzen zum Beispiel die erste Herangehensweise Hier sind Business Objekte lediglich in der Dokumentation existent Au Berdem k nnen die Benennungen der Business Objekte noch Auswirkun gen auf das Benennungsschema der Funktionen haben Die API selbst ist aus rein technischer Sicht eine gro e aber flach strukturierte Sammlung von Funktionen Dynamics NAV und NetSuite w hlen den zweiten Ansatz Diesen k nnte man auch als algebraisch bezeichnen da es auf der einen Seite Mengen von Elementen gibt hier also die Business Objekte wie Kunden oder Mitarbeiter und auf der anderen Seite eine Menge von Operationen die auf die Business Objekte angewandt werden k nnen z B Create Read Update Delete Beide Ans tze haben ihre Vor und Nachteile Der Funktionen Ansatz macht es m glich individuelle Namen f r alle Funktionen zu vergeben Somit kann die Benennung nah am Business Vokabular sein Zum Bei spiel kann ein Mitarbeiter eigentlich nur eingestellt hire und nicht erzeugt create werden hire_employee ist demnach eine treffendere Bezeichnung als create_employee Weiterhin ist die Versionierung der APl einfacher da jede einzelne Funktion f r sich einzeln versioniert wer den kann
380. und bersichtlicher Weise dargestellt 203 6 Service Integration in anderen BPMS uell0oSeyey ssnyuayeq Uor uoT e USUIN AO y yyotu opd mt ef Lioysodoy wt YSNIOPIOFIO osstuyUUSy eaer pun uoryegusumyol au tae wo4skg ne 49419391Z kemoyey NN dg UOssopyyegs uoryeyuoumyoc Suey y Z uy Me Joyy9L oB aTZ oO 910750785 TqVA dVS PIHAL AVATIn yt 6 p p ZUNIIOMIAJUTBSIH yg uoa Sunzyny A A oy sodayy 940w A A A Aroytsoday satt USLIOZIYEM SyOSTy9TeIoTy A 7 BET UdL1089 V Y vg oa uonestue3Io SZ 3UNIOLIOUIH ISOA LZ 3UNIOLWUIN YST OA PIeZI A Iopu ZUNILIUIH ANIS vg uoa SunJoLIoues POY Payy ujeseisSunzynusg qn qn qn Hatt Hop yUATY Ul MV A MV uoyuey opusyossny A A uoj soypstydesyy A AGO SOA OOISFUNIOTTOPON Wt qY zany A CV uoneyuounyo q Aay A _ oqe8sny oqeSurq yorrepyop ssnguogeq A A A A Joyourereg apop eaer JONPT SS9ZOLT CIM Pyepsuoryeinsyuoy OPOJ eARL uormupq Jap KO yg woyeWAyV ssoursng ota Omn Uo YeISeyuy qgy aa aropue A _ A plusnzyuequsyeq A SUIS30 T E E E A TENH A A SODTAIOG GoM A A A RARE UOFEAALINY opsturpay ordrrgs pug ao gt gez USl ydtrogeaee anon A THAW ot A eez ast Tan gt moar lu uonnpog u do ema ATV S Ndg v waqg Z UOA T TBL WIOISPA SINIE T9 MPL 204 6 8 Vergleich ToyooyO eI07T sU09
381. ung der Service Schnittstellen genutzt Diese Information bleibt in den propriet ren XML Dateien Au erdem ist sie noch in den Dokumentations Tags der WSDL vorhanden Ansonsten sieht in der WSDL jeder Service WVA 48DO P 0 49VVA SOGIS SIISN 110 3 5 Schnittstellen weiterer Produkte gleich aus Sowohl f r die Eingabedaten als auch f r die Ausgabedaten existiert jeweils eine Map mit beliebigem Inhalt Eine Generierung von Java Stubs mit z B dem Tool wsimport von JAX WS liefert hier also keine wirkliche Hilfestellung Eine einfache Registry ist dadurch vorhanden dass eine Liste der URLs der WSDL Dokumente aller verf gbaren Services unter einer festen URL verf gbar gemacht wird Die Definitionen der Services sind technisch korrekt Dies wird durch die Entwickler allein schon dadurch sehr regel m ig getestet dass diese Services auch intern in der Software benutzt werden Die Abdeckung der CRUD Funktionen f r Business Objekte ist sehr gut Create Read und Update wird grunds tzlich angeboten Delete Services gibt es nur f r Personen Customer Employee Sup plier Eingabedaten werden vor der Ausf hrung berpr ft eine Ver sionierung der API existiert nicht Die Namen der Services und Objekte sind zwar einigerma en intuitiv jedoch nicht immer konsistent gew hlt Zum Beispiel wird ein Kunde mal ber customer mal ber person und an einer anderen Stelle als party
382. ung nennt sich SAP Business One Diese sehr einfache ERP Software f r kleine Unternehmen schon ab einem Mit arbeiter wird seit kurzem auch unter der Bezeichnung SAP Business One OnDemand als Cloud L sung angeboten SAP13bl Das bedeutet in diesem Fall dass die Software einfach ber einen ActiveX basierten Remote Desktop angeboten wird Die Installation befindet sich auf ei nem Windows Server auf den man per Remote Desktop zugreifen kann der wiederum im Browser dargestellt wird Es ist geplant die Benutze roberfl che Schritt f r Schritt in eine Web basierte L sung zu migrieren Diese L sung funktioniert also ebenfalls lediglich unter Microsoft Win dows Business One wurde bereits 2002 ver ffentlicht zwei Jahre vor Netweaver und eSOA basiert also nicht auf diesen Technologien F r In tegrationszwecke gibt es eine so genannte DI API data integration deren Implementierung als Windows DLL vorliegt und auf Microsoft s COM Technologie basiert F r Zwecke bei denen von Nicht Windows Systemen auf die Services zugegriffen werden muss existiert zus tzlich ein Web Service Wrapper namens B1WS Diese Software ist unter der SDN Lizenz ver ffentlicht was bedeutet dass der Quelltext ffent lich zug nglich ist es jedoch keinen Support und keine Garantien jegli cher Art gibt Dieser sehr inoffizielle Charakter der Web Service API ist der Grund warum diese Technologie hier nicht weiter betrachtet
383. uoryeguswunyoq USIWOUOXEL yy uslioZeyey outey K oy sodoy uty Got uoryeyuoumyoq usl10Sayey auto Aroy sodayg urey uoo uty vogue not ssnyusyeq Ioy z dxa su09 reqyesule 1oyIPyY mt IJyoru uoryeyqusumyoq K oysoday wut 12 A a A u A reen A ch yos ewomegfey sangur _ PstyeuognefoAa TISZTASM Bette ken _ TOPI9UITEIOT Ba s Fa ee A A Da A A 2 Teuorydo A A A SPOJ eARL P00 0 PM A A F BE oo ya 2 a Ileysueeg Kaoo y A 0 A ogy IM Fa pop esef PPPU SS TIMVA ANALIOV YOX Uossopzyeys usfurouoxey pun sgIs ur A10z1soday NAS seyoejute Joyoueried INJ Jyaru Sunqloiyposeg ouloures e orp MU wieyskg Me ppu Zy 2WO SUOP NOD IND OI E aIZopouyoay Fne 494y2L103 91Z LISX rewaog3uragg OPT IND AXA 2 U19448 q OOfOYH OAISNOXG INJ FEHAIBIV UOssopgyegs us yoydurs usssopyyeIs 10 e190U945 GISTIGSMy ct 3ungrom qgqueso y yg Go Sunz nn A Aroyisodey oyoures A A oysodoy sofeyol U9LIOZINEN IOS TLIO A UOLIOZOYEM yg oA uoryestuwdig ySZ 3UNIOLISUON 4STTOA Joypy Aropisodey u 617 BUNIAN ISOA JONPFT AIoNsodey mt ZUNIILIIUIH ANIG vg uoa Sunnu OPOIY POUJ upsoissunzynuog a Hamon PANAY Ul MV My UoyuRyy opucyossny woo seypstyderry gt IeqSnj10a 009SFunIo opoMN WI qY CY UOegIOUMJOq USIeBHALIIY oqeSsny oqesurg Lampion ssnguoyeq E S N Jopurereg Ioypy Ar1OpIsoday uormugoq op yo yg uwpanyy ssoung
384. urde hnlich verfah ren Dies resultierte in einer sehr unintuitiven und komplizierten Model lierung der SLGs Au erdem war es hier nicht m glich beliebige SIBs zu benutzen Stattdessen war die Modellierung auf die BPEL SIBs be schr nkt Als Res mee l sst sich sagen dass dieser Ansatz eine Br cke zwischen Modellierung und ausf hrbaren Prozessen nicht den erw nsch ten Erfolg gebracht hat In einer zweiten Diplomarbeit wurde ein anderer Weg evaluiert Norman Bra besch ftigte sich mit der Nutzung von BPEL f r durch RFID Technologie unterst tzte Logistikprozesse Die gew hlte Software war dabei der WebSphere Process Server eine BPEL Engine von IBM Zu der Engine liefert IBM auch die entsprechenden Modellierungstools unter anderen den WebSphere Business Modeler und den WebShere Integration Developer Der Business Modeler erm glicht die graphische Modellierung der fachlichen Gesch ftsprozesse Das Tool ist dabei f r den Anwendungsexperten also f r einen Nicht IT Fachmann gedacht Das Modell ist dabei graph orientiert Aus diesem Modell wird anschlie end BPEL Code generiert Der Integration Developer ist dann der Editor f r den BPEL Prozess Hier k nnen nun technische Details hinzugef gt werden bis der Prozess wirklich ausf hrbar ist Zum Schluss kann der Prozess auf den Process Server deployt werden Diese Herangehenswei se funktioniert schon etwas besser als die in der Arbeit von J rn Gaeb Trotzdem gi
385. urden hier nicht vorgesehen Das f hrt also zu generierten GUIs in denen bei jedem Prozessdurchlauf der gleiche Wert eingetra gen werden muss In neueren Implementierungen siehe Abschnitt 5 3 5 wurde dies entsprechend ber cksichtigt Das SAP Plugin wurde auch im Rahmen der schon in Abschnitt 5 2 3 er w hnten Projekte zur Vorlesung Aktuelle Themen der Dienstleistungs informatik eingesetzt so dass dessen Bedienbarkeit und Nutzen durch Studenten evaluiert wurde Die Erfahrungen hier haben gezeigt dass das komplexe Object ReturnParameter im Kontext schwierig zu benutzen ist M chte man weiter mit den Daten arbeiten muss man genau wissen wie dieses Objekt aussieht also quasi den Quelltext lesen Besser w re es wenn erstens ein einfacheres Objekt im Kontext liegen w rde und zwei tens in der SIB Dokumentation stehen wie dieses Objekt strukturiert ist Im Projekt hat dieser Missstand dazu gef hrt dass die Studenten f r ein bestimmtes Laufzeitdatum eine Material ID nicht den Kontext benutzt haben sondern die GUI als Anzeige wo dann der Wert abgelesen und auf einen Zettel handschriftlich notiert wurde wonach sp ter dann diese ID wieder in ein Formular eingetragen wurde Dies widerspricht 5 3 SIB Generierung einem Grundgedanken von BPM Prozesse m glichst zu automatisieren In weiteren Wizards siehe Abschnitt 5 3 5 wurde dies ber cksichtigt 5 3 4 Integration von Intuit Quickbooks Nachdem mit der SAP BAPI ein System
386. verschiedene Zwecke jeweils eigene Softwareprodukte eingesetzt wurden So existierte zum Beispiel eine kaufm nnische Softwarel sung f r die Buchf hrung eine weitere f r die Lagerverwaltung noch eine weitere f r den Ein kauf usw Diese L sungen waren meist nicht miteinander kompatibel 37http www apics org dictionary dictionary information ID 1294 33 2 Grundlagen und tauschten direkt keine Daten miteinander aus Das bedeutete dass bestimmte Daten redundant in mehreren Systemen vorlagen was schnell zu Dateninkonsistenzen f hrte und einen hohen manuellen Aufwand f r die Pflege der einzelnen Daten zur Folge hatte Mit ERP Systemen exis tiert eine gemeinsame Datenbank f r das ganze Unternehmen so dass zum Beispiel nicht nur die Lagerverwaltung genau wei welche G ter vorr tig sind sondern auch der Vertrieb direkt Aussagen dar ber treffen kann was lieferbar ist und bei Bedarf einen Produktionsauftrag ansto Den kann Dabei k nnen alle diese Schritte in einem System durchgef hrt werden ERP Systeme bestehen aus vielen verschiedenen Bestandteilen oft Mo dule genannt Den Kern bildet meist ein PPS System Produktions planung und steuerung also ein System zur Planung von Termi nen Durchlaufzeiten Best nden und Nutzung von Betriebsmitteln in der Produktion In diesen Bereich fallen auch die Begriffe MRP Mate rial Requirements Planning bzw dessen erweiterter Nachfolger MRP II Manufactur
387. vit t also einen Service re pr sentiert Jede solche Aktivit t bezieht sich also auf genau einen Ser vice Es kann auch mehrere Aktivit ten pro Service geben wenn der Service jeweils unterschiedlich genutzt wird oder eine Aktivit t die wie derum einen gesamten Prozess aufruft der darunterliegende Services or chestriert Der gro e Unterschied zu den technischen Service Aktivit ten ist dass eine feste Relation zwischen den Aktivit ten und den dazugeh rigen Ser vices existiert Man hat als Prozessmodellierer nun also einen Werkzeug kasten mit Aktivit ten wie Auftrag anlegen oder Mitarbeiter einstel len und nicht mehr Webservice aufrufen oder Datenbank Abfrage ausf hren Solche Aktivit ten werden im folgenden Business Aktivit ten genannt Ebenso zutreffend ist der Begriff Dom nen spezifische Aktivi t ten Prozesssprachen die also haupts chlich die Verwendung solcher Aktivit ten vorsehen k nnen als Business DSL bezeichnet werden So 124 4 5 Business Aktivit ten k nnen diese Aktivit ten und damit auch die Prozesssprachen ohne tech nisches Wissen benutzt werden Au erdem sind diese Aktivit ten sehr gut wiederverwendbar Business Aktivit ten stellen die fortschrittlichste Technik zur Integra tion von Services dar und deren Benutzung wird hiermit ausdr cklich empfohlen Im Folgenden wird die Struktur deren Erstellung und die Organisation von Business Aktivit ten beschriebe
388. vom Hersteller Intuit Es existieren zwei Varianten dieser Software Quickbooks Online Edition QBOE und Quickbooks Desktop Edition QBDE QBOE ist eine Webapplikation die von Intuit selbst gehostet wird und somit dem SaaS Paradigma folgt QBDE ist eine tra ditionelle Desktop Applikation f r Microsoft Windows Wir testeten die Quickbooks API mit der aktuellen Version von QBOE und einer aktuellen Demoversion 11 0 von QBDE Enterprise Soluti ons 12http msdn microsoft com en us library cc236715 PROT 10 aspx 80 3 2 Traditionelle on premise ERP Systeme 3 2 4 1 Zentrale Anforderungen Quickbooks bietet seine Services nach au en an indem ein Postein gang inbox f r Nachrichten im qbXML Format Quickbooks XML angeboten wird Dieses Format ist ein XML basiertes Nachrichtenfor mat welches durch ein entsprechendes XML Schema definiert wird Es gibt keine echte Registry von Services Stattdessen kann der Client die Informationen ber m gliche Services dem XML Schema entnehmen Zu s tzlich zu dem Schema gibt es die Onscreen Reference eine Webseite die alle Elemente der API beschreibt durch das Bereitstellen textuel ler Dokumentation f r alle Elemente Da es sich hier um eine Webseite handelt ist sie offensichtlich prim r dazu gedacht als graphische Be nutzeroberfl che von Menschen benutzt zu werden Trotzdem gibt es Wege auch programmatisch an diese Informationen zu gelangen Dies ist recht einf
389. von String Konkatenationen Dieser Ansatz sehr m chtig da die g ngigen Programmiersprachen Turing vollst ndig sind Andererseits ist der resultierende Code nur sehr schwer wartbar und voller technischer Fallstricke z B beim so genannten Escaping von Sonderzeichen die in der verwendeten Programmiersprache nicht innerhalb von Strings ange geben werden d rfen Neben diesem sehr einfachen Ansatz existieren noch viele weitere z B Regel basierte Ans tze bei denen die Generierung durch die Angabe ei ner Menge von Transformationsregeln definiert wird Dieser Ansatz wird zum Beispiel von XSLT verfolgt Dabei werden Regeln angegeben wie aus einem XML Dokument ein Textdokument eines beliebigen Zielfor mats generiert wird Ein weiterer Ansatz ist der Einsatz von Templates und einer dazu geh rigen Template Engine Ein Template ist vergleichbar mit einem L ckentext also einem Text bei dem bestimmte Begriffe durch Platz halter ersetzt wurden Dieses Prinzip ist ebenfalls von der Erstellung von 33X SLT Extensible Stylesheet Language Transformation 347 deutsch Vorlage 152 5 3 SIB Generierung Serienbriefen bekannt wie es zum Beispiel die Textverarbeitung Micro soft Word anbietet M chte man ein Zieldokument erstellen so m ssen diese Platzhalter wie beim Serienbrief durch entsprechende Werte er setzt werden Dies wird durch die Template Engine bernommen einer Software die aus einem Template u
390. w bonitasoft com products bonita open solution open source bpn Version 2013 BPM11 BPM OFFENSIVE BERLIN BPMN 2 0 Poster http wow bpmb de images BPMN2_0_Poster_DE pdf Version 2011 BSB12 BUSINGE J SEREBRENIK A BRAND MGJ van d Eclipse API usage the good and the bad In SQM CEUR WS 2012 S 55 63 BZKP09 BOROVSKIY Vadym ZEIER Alexander KOCH Wolf gang PLATTNER Hasso Enabling enterprise compo site applications on top of ERP systems In KIRCH BERG Markus Hrsg HUNG Patrick C K Hrsg 233 Literaturverzeichnis CARMINATI Barbara Hrsg CHI Chi Hung Hrsg KANAGASABAI Rajaraman Hrsg VALLE Emanue le D Hrsg LAN Kun Chan Hrsg CHEN Ling Jyh Hrsg APSCC IEEE 2009 ISBN 978 1 4244 5336 8 S 492 497 Car03 CARNEGIE MELLON SOFTWARE ENGINEERING INSTI TUTE Application Programming Interfaces 2003 Car06 CARVALHO RogerioAtem Issues on Evaluating Free O pen Source ERP Systems Version 2006 http dx doi org 10 1007 0 387 34456 X_72 In Tyoa A Min Hrsg Xu Li Hrsg CHAUDHRY SohailS Hrsg Research and Practical Issues of Enterprise Information Systems Bd 205 Springer US 2006 DOI 10 1007 0 387 34456 X_72 ISBN 978 0 387 34345 7 667 675 Cha03 CHAKRABARTI S Mining the Web discovering know ledge from hypertext data Morgan Kaufmann Pub 2003 Che76 CHEN P P S The entity relationship model toward a unifi
391. werte liefert und zus tzlich er WorkItemManager wel cher zum einen dar ber informiert werden muss wenn die Arbeit der Aktivit t erledigt ist zum anderen explizit aufgefordert werden muss die Parameterwerte anhand des Result Mappings in den Kontext zu ko pieren Jede Service Aktivit t hat bei jBPM grunds tzlich nur eine ausgehen de Kante F r Entscheidungen wird das XOR Gateway von BPMN 2 benutzt Die Aktivit ten k nnen in einem zentralen Repository bereitgestellt wer den auf das per Netzwerk zugegriffen werden kann Sie werden in Kate gorien eingeordnet und k nnen in den Prozess Editor importiert werden wo sie in der lokalen Aktivit ten Sammlung auftauchen Fazit Zusammengefasst l sst sich sagen dass jBPM 5 besonders durch die Unterst tzung seiner dom nenspezifischen Aktivit ten punktet Sie besitzen ein graphisches Icon und sind wie bei jBPM 4 in das Mo dellierungstool integriert Es gibt ein Repository in welchem die Aktivi t ten kategorisiert vorgehalten werden Auf der anderen Seite existiert keine Unterst tzung f r Dokumentation keine Validierungsregeln und keine Generierungstools Eine strukturierte Zusammenfassung der Eva luationsergebnisse und ein Vergleich mit den anderen BPMS ist in den Tabellen 6 1 und 6 2 dargestellt 19 on entry action 20 on exit action lWorkItemHandler 22 executeWorkItem 3WorkItem egal ob Skript Aktivit t technische Service Aktivit t oder Business A
392. wie mehrere Aktivit ten die in dieser Arbeit in die Kategorie der technischen Aktivit ten fallen Skript Aktivit ten Die Skript Aktivit t in jJPDL interpretiert ein gege benes Skript einer beliebigen Skript Sprache mit einer zu JSR 223 kom patiblen Scripting Engine Die Standardsprache ist hier jUEL eine Im plementierung der Unified Expression Language einer recht einfach gehaltenen Ausdruckssprache die im JavaEE Standard definiert wird Technische Service Aktivitaten In jBPM kann auf eine Auswahl meh rerer technischer Service Aktivitaten zugegriffen werden Die wahrschein lich wichtigste ist die Java Aktivitat welche eine externe Java Methode aufruft Hier kann entweder ein vollst ndiger Java Klassenname incl Package oder eine Expression definiert werden Zus tzlich muss der Na me der aufzurufenden Methode eine Liste der Parameterwerte und ein Kontextvariablenname f r den R ckgabewert der Methode angegeben werden Falls ein Klassenname definiert ist wird die dazugeh rige Klas se instantiiert und die Methode wird aufgerufen Die Expression wird zu einem Objekt im Kontext ausgewertet wonach die Methode auf diesem Objekt aufgerufen wird F r die Kommunikation mit relationalen Datenbanken existieren zwei spezielle Aktivit ten Zum einen ist dies eine SQL Aktivit t welche http www jep org en jsr detail id 223 http uel java net die hier Felder bzw fields genannt werden 179 6 Serv
393. zess kann mit der Ausf hrung fortfahren Es existieren zahlreiche Implementierungen von Aufgabenlis ten Eine bekannte Cloud L sung ist hier Google Tasks eine einfache SaaS L sung aus der Sammlung Google Apps die auch schon in Ab schnitt 5 2 3 wurden Diese Cloud L sung besitzt eine Java Bibliothek so dass sie sehr einfach von einem SIB aus angesprochen werden kann F r den Druck der Visitenkarten sind im Unternehmen bereits Vorlagen im Format der Textverarbeitung von OpenOffice vorhanden Es k nnen hier also die fertigen OpenOffice SIBs verwendet werden In diesem Fall w rden SIBs verwendet werden welche OpenOffice starten die Vorlage laden und entsprechende Platzhalter durch die echten Werte ersetzen Auch das Speichern der Datei und der direkte Ansto eines Druckauf trags ist mit den SIBs m glich F r die Realisierung w rde man also das Platzhalter SIB durch ein GraphSIB ersetzen welches die beschriebenen OpenOffice SIBs enth lt F r die zentrale Vergabe von IT Rechten f r alle Server im Unterneh mensnetzwerk bietet sich der Einsatz eines Verzeichnisdienstes an Dies kann zum Beispiel ein LDAP Server sein Der Zugriff auf LDAP von Java aus geschieht ber die JNDI Schnittstelle Die ben tigten Klas sen sind in Java SET enthalten Einen vereinfachten Zugang zu LDAP verspricht Spring LDAP Man kann hier also das Fazit ziehen dass es gut m glich ist ein SIB f r den Zugriff auf LDAP zu im
394. zessmodellierer eine gro e Sammlung von Business Aktivit ten zur Verf gung Dies f hrt einerseits zu enormen M glichkei ten bei der Modellierung und es kann auch die Neu Generierung weiterer Aktivit ten berfl ssig machen Andererseits kann ein Modellierer nur die Elemente einsetzen die ihm auch bekannt sind Es ist also wichtig den Modellierer bei der Beherrschung gro er Aktivit tensammlungen zu unterst tzen Genau genommen muss ihm bei der Suche nach den pas senden Aktivit ten geholfen werden Als eine sehr geeignete Form der Organisation von Aktivit ten haben sich so genannte Taxonomien VR03 erwiesen Hier werden die Aktivit ten nach semantischen Kriterien kategorisiert Taxonomien sind hierarchisch d h jede Kategorie kann wieder Kategorien beinhalten Au erdem kann 129 4 Service Integration in BPMS 130 jede Aktivit t auch in mehreren Kategorien vorkommen evtl auch un ter verschiedenen Bezeichnungen In seltenen F llen werden Taxonomien noch erweitert durch spezielle Beziehungen die ber die reine Klassifizie rung hinausgehen In dem Fall spricht man nicht mehr von einer Taxo nomie sondern von einer Ontologie In der Praxis hat sich herausge stellt dass Taxonomien einen sehr guten Kompromiss zur Organisation von Business Aktivit ten darstellen da sie sehr einfach zu verstehen zu benutzen und zu pflegen sind Eine Taxonomie von Business Aktivit ten ist genau das was als Business DSL
Download Pdf Manuals
Related Search
Related Contents
Nikon 600MM User's Manual Operating Instructions User Manual for Protein Decision Service Manual - TriTech Innovations SBC84620 User Manual VA3_2-1 Copyright © All rights reserved.
Failed to retrieve file