Service-oriented Architectures are tailored and used for business applications across several enterprises. Services provide access to business data and allow managing business workflows. They flexibly integrate functionality across platforms and providers by using web service technology. However, these services are not directly used by end users. User interfaces together with complex control logic must be developed as an additional layer on top of services. This development step is insufficiently supported by existing methodologies and tools. Instead, user interfaces are designed manually for service interfaces and business processes.
The ServFace project aims at creating a model-driven service engineering methodology for an integrated development process for service-based applications. ServFace looks at this process from two different perspectives: First, the annotation of services with corresponding user interface annotations that are developed in the ServFace project, and, second, the composition of annotated services to build interactive service-based applications from annotated services.
The set of Service Annotations identified in the ServFace project are captured in the ServFace Annotation Model. Together with technical service descriptions like WSDL, it provides the necessary input for an automated user interface inference mechanism that generates high quality user interfaces for the interaction between human users and annotated web services. The Annotation Tool that is being developed in ServFace will provide tool support for defining service annotations. Service annotations will be published in an annotation repository, from where they are globally available.
For the composition of annotated services to complex applications, two alternative modeling approaches are investigated in ServFace. The first approach, presentation-oriented service composition, uses a novel mashup-oriented integration of annotated services. In presentation-oriented service composition, the application is modeled visually by composing the application’s UI from parts which are generated using the service annotations. The composition is supported by the ServFace Builder, an online tool that is being developed in the project. The ServFace Builder integrates an inference engine to generate user interfaces from annotated services. The presentation-oriented composition approach and the ServFace builder will be designed to support end-user development, enabling non-programmers to build service-based applications.
The second approach is supported by the MARIAE tool and provides a novel solution able to exploit task models (represented in the ConcurTaskTrees notation) and user interface models (in the MARIA language) for the design and development of interactive applications based on Web services for various types of platforms (desktop, smartphones, vocal, multmodal, …). In this process the tool is able to automatically import service and annotation descriptions and support interactive association of basic system tasks with Web services operations. Then, a number of semi-automatic transformations are able to exploit the information in such service and annotation descriptions to derive usable multi-device service front ends.
Four primary objectives have been identified for ServFace:
Service Engineering Methodology. The objective of ServFace is to design a methodology enabling the development of interactive applications involving the annotation of web services, the presentation-oriented (or, alternatively, task-oriented) composition of annotated services to complex applications, and the generation of executables from these composites.
- Model-driven development approach. Platform-independent models are foreseen to describe service annotations and composition models. Using appropriate inference rules and model-to-code transformations, these models are mapped to various technological platforms like Google Android and Microsoft® Silverlight™.
- Service composition. From the perspective of user interfaces, ServFace directly adopts concepts and technologies developed in the areas of user interfaces design, task-driven software development and end-user development for the composition of annotated services to complex applications.
- Integrated development environment. An integrated tool environment is being created to support all development phases of interactive applications that build upon annotated services. This comprises the annotation tool and authoring tools supporting presentation-oriented and task-based composition approaches for annotated services. Model-to-code transformations map these technology-independent models to executables for concrete runtime environments.