view-based; business process modeling; model-driven; process-driven SOA; model traceability; reverse engineering
en
Abstract:
Service-oriented Computing ist ein aufkommendes Paradigma, das eine wichtige Veränderung von traditioneller, stark gekoppelter und schwer zu adaptierender Software-Entwicklung hin zu plattformneutraler und lose gekoppelter Software-Entwicklung mit sich bringt. Services sind interoperabel und plattformunabhängig und unterstützen daher einen Ansatz zur Entwicklung von Geschäftsprozessen, welche in einer Prozess-Engine ablaufen um existierende Prozesse und Services aus den Prozessaktivitäten heraus aufzurufen. Wir nennen diese Art der Architektur prozessgetriebene, service-orientierte Architectur (SOA).<br />Wenn die Anzahl der Elemente in der Geschäftsprozessarchitektur, wie Prozesse, Prozessaktivitäten und Services, ansteigt, nimmt auch die Komplexität der Entwicklung und Wartung von Prozessen zusammen mit der Anzahl der Beziehungen, Interaktionen und dem Austausch von Daten dieser Elemente zu -- und wird schnell schwer handzuhaben. Das geschieht, weil die Ansätze für prozessgetriebene SOA bislang zwei Hauptprobleme noch nicht gelöst haben. Zum einen umfassen die Prozessbeschreibungen diverse, untereinander verwobene Belange, wie Kontrollfluss, Datenabhängigkeiten, Service-Aufrufe, Sicherheit, Compliance, etc. Diese Verwobenheit hat einen negativen Einfluss auf die Software-Qualität, wie Verstehbarkeit, Adaptierbarkeit und Wartbarkeit. Zum anderen verhindern die Unterschiede der Sprachsyntaxen und -semantiken, die Unterschiede in der Granularität auf verschiedenen Abstraktionsebenen und das Fehlen expliziter Bindeglieder zwischen Prozessentwurfssprachen und Prozessimplementierungssprachen die Interoperabilität, Wiederverwendbarkeit, Verstehbarkeit und Nachvollziehbarkeit von Software-Komponenten oder Systemen, die mit diesen Sprachen erstellt werden oder von ihnen abhängig sind.<br />Die vorliegende Dissertation präsentiert einen neuen Ansatz, um diese Herausforderungen zu meistern. Dieser Ansatz nutzt eine Kombination von Architektursichten -- als eine Realisierung des Separation-of-Concern-Prinzips -- und von modellgetriebener Entwicklung aus, um die folgenden Hauptbeiträge zu leisten. Erstens werden verschiedene Perspektiven eines Geschäftsprozessmodells in separaten, (semi-)formalen Sichtenmodellen festgehalten, um sich den Interessen verschiedener Beteiligter am Prozess anzupassen. Zweitens werden verschiedene Abstraktionsebenen in einer Geschäftsprozessarchitektur separiert. Drittens wird eine übergangslose und erweiterbare Integrationslösung zur Verbesserung von Interoperabilität und Wiederverwendbarkeit präsentiert. Zu guter Letzt wird die Komplexität des Abhängigkeitsmanagement reduziert und die Nachvollziehbarkeit in der Prozessentwicklung erhöht.<br />Als Realisierung der Konzepte wird das View-based Modeling Framework, das ein erweiterbares Rahmenwerk für process-driven SOAs darstellt, vorgestellt. Der Ansatz wurde in einer Reihe von Forschungs- und Industriefallstudien evaluiert. Zusätzlich wurden verschiedene qualitative Vergleiche angestellt, um den Ansatz zu bewerten und ihn mit anderen Arbeiten zu vergleichen.<br />
de
Service-oriented computing is an emerging paradigm that made an important shift from traditional tightly coupled, hard-to-adapt software development to more platform neutral, loosely coupled software development. The interoperable and platform independent nature of services supports an approach to business process development by using processes, running in a process engine, to invoke existing processes or services from their process activities (aka process tasks). We call this kind of architecture process-driven, service-oriented architecture (SOA).<br />As the number of elements involved in a business process architecture, for instance, processes, process activities and services, grows, the complexity of process development and maintenance also extremely increases along with the number of the elements' relationships, interactions, and data exchanges -- and becomes hardly manageable. This occurs because of two major issues that have not been solved yet in existing approaches for process-driven SOA. On the one hand, the process descriptions comprise various tangled concerns, such as the control flow, data dependencies, service invocations, security, compliance, etc.<br />This entanglement seriously reduces many aspects of software quality such as the understandability, adaptability, and maintainability. On the other hand, the differences of language syntaxes and semantics, the difference of granularity at different abstraction levels, and the lack of explicit links between process design and implementation languages hinder the interoperability, reusability, understandability, and traceability of software components or systems being built upon or relying on such languages.<br />This dissertation presents a novel approach for addressing aforementioned challenges. Our approach exploits a combination of the concept of architectural views -- a realization of the separation of concerns principle -- and the model-driven development paradigm -- a realization of the separation of abstraction levels -- to achieve the following major contributions: first, it captures different perspectives of a business process model in separated, (semi-)formalized view models in order to adapt to various stakeholders' interests; second, it separates different abstraction levels in a business process architecture; third, it provides a seamless, extensible integration solutions for improving interoperability and reusability of process descriptions; finally, it reduces the complexity of dependency management and enhances traceability in process development.<br />As a proof-of-concept, the aforementioned concepts has been realized in the View-based Modeling Framework, which is an extensible development framework for process-driven SOAs. This approach has been evaluated on a number of research- and industry-based case studies. In addition, a number of qualitative comparisons have been conducted to assess our approach and compare it with existing related approaches for process-driven SOA development.