Service-oriented computing (SOC) is an emerging paradigm utilizing services as core elements in software development. However, the service design of SOC oftentimes fails to capture various service-specific concerns required for delivering high-quality and user-friendly services. This is because those concerns are intrinsically tangled within a service. If such concerns, often crosscutting the system, are not satisfactorily treated, a service design result will be inadequate to reflect all facets of a service. The objective of this research, thus, is to provide a systematic, comprehensive, but generic and formal service-oriented design approach that helps to effectively and efficiently develop services in service-oriented systems in the design process.
Our approach is to provide a service-oriented design approach integrated with the concept of aspects and supported by Petri net formalism. Recently, the aspect-oriented programming (AOP) has gained growing interest and its "aspect" concept has received attention as the newly found solution to the early stages of software development as an abstraction and encapsulation mechanism with the purpose of enhancing separation of concerns. We integrate the concept of aspect into the service-oriented design process that consists of the decomposition of a service-oriented system, the structural and behavioral representations of services, and the extension of the semantic annotations on services for the analysis purpose.
In our approach, a service-oriented system is decomposed as a set of primitive services that contain only essential functional features and aspects methodically defined and used to capture pertinent service-specific or domain-specific concerns. Using primitive services and aspects, our method delineates a service-oriented system in two views, the structural view and the behavioral view, based on an extended UML2 and Petri net representations, respectively. In particular, our method supports an automatic weaving xi process to generate an integrated Petri net for each distinct service from the behavioral perspective of both a primitive service and a set of aspects related to it, and the relationships between them. As a result, the integrated Petri nets obtained through the weaving process facilitate the verification and evaluation of service design results. To exploit these integrated Petri nets that correspond to composed services, our method supports an aspect-oriented extension mechanism to help comparative evaluation of the service design results, for example, in terms of performance or platform-specific resource interferences.
Finally, such a formal representation and extension method with a standardized description in XML makes it possible to evolve and analyze service-oriented designs in existence or construct varying versions of a service design with reduced development effort by replacing or reusing existing design elements, especially aspects. Simulation results provide convincing data as proof although further experiments with real-life system development are still desirable, as our future work.