Service-Orientierte Architektur

Service-Orientierte Architektur (SOA) ist ein Architekturstil für Geschäftsanwendungen. In SOA wird versucht die Software direkt an den Geschäftsprozessen einer Firma auszurichten. Dazu wird das System in so genannte Dienste (Services) unterteilt. Dienste sind kleine, lose-gekoppelte und eigenständige Softwarekomponenten. Durch das Kombinieren dieser Dienste entsteht ein Anwendungssystem, welches leicht anpassbar und änderbar bleiben soll. Dazu müssen jedoch auch die Entwicklungsprozesse und die Kultur in der Softwareentwicklung flexibel sein. Unsere Forschung konzentriert sich daher auf die Software Engineering-Aspekte. Im Hauptinteresse stehen dabei Benutzerintegration und -interaktion, Tests und Projektmanagement.

Generierung von Software aus Geschäftsprozessbeschreibungen.
Generierung von Software aus Geschäftsprozessbeschreibungen.

Generierung von Benutzeroberflächen

Ein zentraler Punkt einer SOA ist die Flexibilität: Immer wenn eine Änderung an den Geschäftsabläufen vorgenommen wird, kann diese schnell in der Software übernommen werden. Jedoch können Dienste nur Funktionalität anbieten. Benutzer müssen jedoch mit dem System arbeiten können, d.h. es müssen Benutzeroberflächen entwickelt und gewartet werden. Dies erhöht den Änderungsaufwand und senkt die Reaktionsgeschwindigkeit erheblich.

Um diesem Problem zu begegnen, ist unser Ziel die Benutzeroberflächen auf Basis der Geschäftsprozesse zur Laufzeit zu generieren. Dazu benötigen die Geschäftsprozesse lediglich eine einfache Anotation, die die Semantik für die Benutzeroberflächen enthält. Der Client erstellt daraus zur Laufzeit passende Benutzeroberflächen, wann immer diese benötigt werden. Dieses Vorgehen bietet deutliche Vorteile:

Benutzerfeedback

Abbildung 1: Integration von Benutzerfeedback in SOA-Projekten
Abbildung 1: Integration von Benutzerfeedback in SOA-Projekten

Insbesondere, wenn Systeme mit einer großen und verteilten Benutzerbasis entwickelt werden, ist es schwierig Feedback zu bekommen. Um das Projekt zum Erfolg zu führen, ist es jedoch wichtig, dass die Entwickler die Anforderungen der Benutzer und ihre Arbeitsweise verstehen. Um dieses Problem zu beheben, schlagen wir vor ein Erfahrungsforum in die Clientanwendung zu integrieren, welches zum Erfahrungs- und Informationsaustausch verwendet werden kann. Zusätzlich kann das Erfahrungsforum die Basis für eine Community of Practice bilden. Ingesamt werden dadurch einfacher und schneller Ideen in Feedbackzyklen ausgetauscht. Die Grundstruktur ist in Abbildung 1 illustriert.

Testen

Services werden in Kompositionen zusammengefasst. Eine Komposition ist ein Geschäftsprozess mit zusätzlichen technischen Details: Welche Services werden z.B. wann aufgerufen etc. Daher ist eine Komposition ein Programm in einer sehr hohen Programmiersprache. Als Stück Software muss es aber auch getestet werden, um sicherzustellen, dass die Anforderungen erfüllt werden. Weil Kompositionen viele verteilte Systeme, eben die Services, ansprechen, benötigen Testsuiten viel Zeit zur Ausführung. Zusätzlich muss sichergestellt werden, dass die Testsuiten alle relevanten Funktionen abtesten. BPELUnit als quelloffenes Unit Testing Framework für BPEL Kompositionen bietet dafür die technischen Grundlagen an und ist die Grundlage unserer weiteren Forschung. BPELUnit bietet ein Front-End für Eclipse an und kann verschiedene BPEL Server ansprechen.

Service-Orientierte Architekturen ist zurzeit ein Thema, an dem viel geforscht wird. Alle großen Firmen haben SOA-Produkte im Angebot. Jedoch ist SOA ein relativ neues Phänomen und viele Fragen sind noch offen. Wir würden uns daher freuen zusammen mit industriellen Partnern solche Fragen anzugehen und unsere Forschungsergebnisse einzusetzen.

Publikationen

  • 2004
  • [1] Jorge Marx Gómez, Oliver Krüger, Daniel Lübke: An ERP system based on Peer-to-Peer-Networks and Web Services, In IRMA International Conference - Innovations Through Information Technology, 2004, Bibtex.
  • 2005
  • [2] Daniel Lübke, Jorge Marx Gómez, Kurt Schneider: Serviceorientierte Architekturen und Prozessmanagement - Chancen durch die Verbindung zweier Welten, In ERP Management, volume 1, pages 42-47, 2005, Bibtex.
  • 2006
  • [3] Daniel Lübke: Transformation of Use Cases to EPC Models, In Proceedings of the EPK 2006 Workshop, Vienna, Austria, 2006, Bibtex.
  • [4] Lübke, Daniel, Schneider, Kurt: Leveraging Feedback on Processes in SOA Projects, In EuroSPI, pages 194-205, Joensuu. Springer-Verlag Berlin-Heidelberg, 2006, Bibtex.
  • [5] Jorge Marx Gómez, Nico Brehm, Björn Sönnichsen, Daniel Lübke: Generierung von ERP-Bedienoberflächen aus erweiterten Prozessbeschreibungen, In ERP Management, volume 3/2006, pages 25-30, 2006, Bibtex.
  • [6] Daniel Lübke, Tim Lüecke: Using Event-Driven Process Chains for Model-Driven Development of Business Applications, In Multikonferenz Wirtschaftsinformatik 2006, Workshop XML4BPM, 2006, Bibtex.
  • [7] Daniel Lübke, Tim Lüecke, Kurt Schneider, Jorge Marx Gómez: Model-driven Development of Business Applications using Event-driven Process Chains, In 2006 GITMA International Conference, 2006, Bibtex. Abstract.
  • [8] Mayer, Philip, Lübke, Daniel: Towards a BPEL unit testing framework, In Workshop on testing, analysis and verification of web services and applications, 2006, Bibtex. Link
  • 2007
  • [9] Daniel Lübke: Unit Testing BPEL Compositions, In Luciano Baresi and Elisabetta Di Nitto, Test and Analysis of Service-oriented Systems. Springer, 2007, Bibtex. Abstract. Link
  • [10] Nico Brehm, Daniel Lübke, Jorge Marx Gómez: Federated Enterprise Resource Planning (FERP) Systems, Pallab Saha: Handbook of Enterprise Systems Architecture in Practice. Idea Group Inc., Hershey, USA, 290-305, 2007, Bibtex.
  • 2008
  • [11] Eric Knauss, Daniel Lübke: Using the Friction between Business Processes and Use Cases in SOA Requirements, In Proceedings of the 32nd Annual IEEE International Computer Software and Applications Conference (COMPSAC), Workshop on Requirements Engineering For Services, pages 601-606, Turku, Finland, 2008, Bibtex. Abstract.
  • [12] Daniel Lübke, Matthias Weidlich, Kurt Schneider: Visualizing Use Case Sets as BPMN Processes, In REV'08: Requirements Engineering Visualization Workshop, 2008, Bibtex.
  • [13] Jorge Marx Gómez, Daniel Lübke: Konzept und Support für das Testen von Services, In ERP Management, GITO Verlag, volume 1, pages 2008, 2008, Bibtex. Link
  • 2009
  • [14] Matthias Weidlich, Alexander Grosskopf, Daniel Lübke, Kurt Schneider, Eric Knauss, Leif Singer: Verzahnung von Requirements Engineering und Geschäftsprozessdesign, In Workshop Proceedings of the SE 2009 - REBPM, Kaiserslautern, Germany, 2009, Bibtex. Abstract. PDF herunterladen
  • [15] Daniel Lübke, Leif Singer, Alex Salnikow: Calculating BPEL Test Coverage through Instrumentation, In Workshop on Automated Software Testing (AST 2009), ICSE 2009, 2009, Bibtex. Abstract. PDF herunterladen