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