Service Oriented Architecture (SOA) is an architecture style for business applications. SOA aims at aligning software with business processes of a company. Therefore, systems are divided into services. Services are small, loosely coupled software components. By combining those services a system is created which is easily adaptable and modifiable. To that, software engineering processes and the culture have to be flexible, too. Hence, our research focuses on software engineering aspects. Primary interests are user integration and interaction, testing and project management.
Generierung von Software aus Geschäftsprozessbeschreibungen.
Generating User Interfacese
A central part of a SOA is the flexibility: Every time a business process is changed the modification can be adopted to the software. However, Service are only able to provide functionality. But user need to work with the systems, which means user interfaces have to be implemented and maintained. This increases the change effort and reduces the speed of reaction significantly.
To tackle this problem, we aim at generating user interfaces at runtime based on the business processes. Therefore, business process need a simple annotation only which contains the semantic of the user interface. The client generates suitable user interfaces at runtime when ever they are needed. This approach has has major advantages:
- User interfaces can be created and maintained easy and fast,
- User interfaces are consistent and
- client software does not need to be updated after process modifications.
Figure 1: Integration von Benutzerfeedback in SOA-Projekten
Especially, if systems are developed with a large and distributed user base, getting feedback is difficult. To lead the project to success, it is important that developers understand the users' requirements and way of working. To solve that problem we propose to integrate an experience forum into the client application which can be used to exchange experience and information. Additionally, the experience forum can provide a basis for a Community of Practice. Taken as whole, ideas can be exchanged easier and faster. The fundamental structure is illustrated in Figure 1.
Services are combined in compositions. A composition is a business process having additional technical details: For instance, which services are when invoked. Hence, a composition is a program written in a very high programming language. As a software product it has to be tested to ensure the fulfilment of the requirements. Because compositions address many distributed systems, namely the services, test suites need much time for execution. Additionally, it has to be ensured that the test suites cover all relevant functions. BPELUnit as an open source unit testing framework for BPEL compositions provides the technical foundations and is the foundation of our ongoing research. BPELUnit provides a front-end for eclipse and is able to interact with different BPEL server.
Service oriented architecture is an area where much research is done. All big companies offer SOA products. Nevertheless, SOA is a relatively new phenomena and many questions are still open. We would therefore be pleased to address such questions together with industrial partners and to use our research results.