Toward a Guidance Framework for Service Orientation Engineering Method Gherib Boutheina, RIADI. Ecole National des Sciences de l’Informatique gh.boutheina@gmail.com Youcef Baghdadi Department of Computer Science, Sultan Qaboos University, Muscat, Oman ybaghdadi@squ.edu.om RIADI. Ecole National des Sciences de l’Informatique & Department of Computer Science, Sultan Qaboos University, Muscat naoufel@squ.edu.om Naoufel Kraim Oman compositions of services as composites, (iii) the management of services and compositions [1], (iv) the quality of both services and compositions [3], and (v) the engineering of business services for, at least, a defined SOA maturity [4]. SOSE has entailed, as expected, provision of new methods in both academia and industry. Most of the well-known methods such as SOAD [5], SDLC [6], Sensoria [7], SOAF [8], SOMA[9], Erl’s methodology[10], and WS-SOAR [11] claim their compliance with SOSE, namely a delivery Keywords—Service Orientation, Service Oriented Software strategy from diverse alternatives in order to comply with Engineering, Engineering Methods; Comparison Frameworks SO and SOA. I. INTRODUCTION These methods have been engineered by using: Service Orientation (SO) is a new paradigm in software 1. One of the following method engineering (ME) engineering that utilizes service as the main block to build approaches that are proven for other paradigms than SO Service-based Applications (SBA) with respect to an such as function, object, or component as main building architectural style that is Service Oriented Architecture blocks: SOA. SOA is a logical way of designing a software system Consolidation and integration of concepts, rules to provide services to either end-user applications or to and practices, which has required a summarization other services distributed in a network, via published and of methods with respect to best practices, and discoverable interfaces [1]. comparison frameworks [1] [12]. SBAs are built by compositing loosely coupled, interoperable service, having separate concerns. Loosely Extension of existing methods, from different coupled services, often designed under open-world paradigms, that have proven robust, namely such as assumptions, distributed across organizational boundaries, UML such as in Sensoria project [7] or SOMA [9]. and executed remotely at their service providers’ Product line, i.e., reuse of fragments of methods environment [2]. Developing SBAs requires identifying, [13]. discovering, and composing services in addition to Evolution uses a model or initial meta-model (astraditional software engineering (TSE) activities such as is) as a basis for development to achieve the coding, testing, and deployment. Therefore, existing desired model (to-be) [14] [15]. software development methods no longer fulfill the needs 2. Comparison frameworks (e.g., Baghdadi [16], Gu and for developing SBAs. Consequently, principles known from Lago [1], or Kohlborn et al. [12]) that summarize to TSE need to be tailored to service-oriented development. what extent the output of a method, when applied, Systematic, disciplined, and quantifiable approaches for complies with SO and SOA. designing, developing, and maintaining SBAs are needed. However, neither the existing ME nor the frameworks have These approaches are generalized as Service-oriented covered all the pertinent perspectives and aspects of SOSE, Software Engineering (SOSE) [2]. SOSE mainly concerns namely, the foundations and principles of the building with developing methods that encompass (i) the engineering block, the most relevant aggregate of a method. Indeed, the of the services as basic components, (ii) the engineering of Abstract— the emergence of the paradigms Service Orientation (SO) and Service Oriented Computing (SOC) has resulted in new type of applications, referred to as Service Based Applications. This has entailed many service oriented methods for developing such kinds of applications. In this paper, we first present most of the well-known methods from academia and industry, focusing on their engineering approaches and comparison frameworks. Then we highlight their strengths and weaknesses. Finally, we introduce the elements of a comprehensive framework to guide the engineering of new methods or benchmarking the existing ones. construct service, in SOA, has different abstractions, namely as IT-component and business component. This is mainly owing to a lack of a framework (abstract model) that captures the relevant elements of SOSE environment, the relationships between the elements, and the constraints (if any). Because the ME approaches and the comparison frameworks are relevant to move toward a comprehensive framework that will guide methods to develop SBAs, we propose to first start by comparing the existing methods against four SOSE perspectives: 1. The existing ME approaches 2. The aggregates of a method 3. The building block service from IT and perspective 4. The level of maturity of a SOA adoption process In this paper, we limit to the three first perspectives and do not cover SOA maturity model (or orientation ) for SOA adoption process. The rest of this paper is organized as follow: section 2 introduces the ME approaches. Section 3 presents the aggregates of a method. Section 4 summarizes the most popular existing SOSE methods in literature. In section 5, we focus in the comparison of these existing methods to highlight their strengths and their weaknesses. Section 6 discusses our findings. Finally a conclusion section presents further development. II. METHOD ENGINEERING APPROACHES A large number of ME approaches have been proposed in the literature. These approaches provide guidance for the creation of a new method and for the adaptation of an existing method to some change or to a specific project situation. A large number of ME approaches have been proposed in the literature. These are referred to as Ad-Hoc, Paradigm-Based, Extension- Based and Assembly-Based [14] as shown in Fig1. Ad-Hoc approaches: These approaches deal with the construction of a new method ‘from scratch’. There are different reasons that can initiate a decision to construct a new method. The appearance of a new application domain that is not yet supported by a specific method is an example. Paradigm-Based ME : These type of approaches use some initial paradigm model or meta-model as a baseline As-Is model which is instantiated, abstracted or adapted according to the current ME objective to develop the new To-Be model. Extension-Based ME: Different kinds of extension can be realized on an existing method. Their objective is to enhance a method with new concepts and properties. For example, a static method such the one for construction of an E/R schema can be extended to deal more systematically with the representation of time through a calendar of time points, intervals etc. and temporal aspects such as the histories of entities. Assembly-Based ME: These approaches propose to construct new methods or to enhance existing ones by reusing parts of other methods. The core concept in these approaches is one of reusable method component (aka method chunk, method fragment or method block). An Assembly-Based method construction consists in defining method requirements for a current situation, selecting method components satisfying this situation and assembling them. Association and integration are two kinds of assembly that can be applied on the selected method components. Association concerns assembly of method components with different purposes and objectives, whereas integration deals with overlapping method components having the same or similar objective, but providing different manners to satisfy it. Fig. 1.Typology of ME Approaches In addition to these approaches, we also found the following techniques: Using a CAME tool: Significant growth in the number of engineering methods systems and their environments support influenced the emergence of a new technical engineering methods called CAME (Computer Aided Method Engineering). The engineering practice in this area is defined by as a disciplined process to build, evaluate or modify a method by means of component specification method and the relationship between them [17]. Using generic patterns: The essence of a pattern is the fact that it provides a reusable solution in any situation where the problem concerned with the pattern appears. With its ability to reuse, this concept has recently been introduced in the field of engineering methods [17]. Product Line: Instead of continually "reinventing the wheel", or incorporating parts of "old" systems in an ad-hoc manner, organizations following a product line approach can consolidate their key software assets within a highquality, reusable software core, and concentrate their resources on adapting this core to meet the changing needs of customers [18]. III. METHOD AGGREGATES Most the methods have a sound set of invariant aggregates that we can represent in a meta-model, where each distinct instantiation of the meta-model produces a method. These aggregates are summarized in Table 1. TABLE 1: AGGREGATES OF A METHOD Aggregates Description Building block The main construct used by the method to build a solution. In our case, the building blocks are services of different abstractions, having fundamental properties and design principles provided by service science and SO respectively. The architecture of the solution (or the view) is made up of a set of components along with their relationships, and the mechanisms of their interaction. SOA shapes the architecture of the produced service-oriented solution as a composition of services. A set of coordinated engineering activities that produce solutions made up of (a) views (artifacts) of the solution at different levels of abstraction/refinement with respect to different types of stakeholders. Each view is either a level of abstraction/refinement or a facet of the solution, and (b) documentation of the product, including documentation of all the views (artifacts). Models, formalisms, or languages, along with notations and diagrams, used to represent and express the views in order to reduce their complexity and make them understandable by their respective stakeholders. From the perspective of complexity, a view is a level of abstraction of the solution, whereby the problem is the highest level of abstraction, and the solution is the lowest one. CASE tools assist in producing the views of the solutions and managing these views Techniques used to asses and evaluate the quality of each view of the solution. These are metrics that concern with the quality of: services, views, and solutions Any method can reuse patterns from the existing methods. Patterns may be wellknown aggregates such as process, representation techniques, or inspection techniques. Architecture Process Representation techniques Tools Inspection techniques Pattern IV. EXISTING SOSE METHODS In this section we present the most popular methods that are used to develop SBAs. a. Service Oriented Modeling and Architecture (SOMA) [9] SOMA is a software development life-cycle method invented and initially developed in IBM for designing and building SOA-based solutions. It consists of three steps: identification, specification, and realization of services, flows, and components realizing services. b. Service Oriented Architecture Framework (SOAF) [8] SOAF provides a systematic approach and a well defined process to guide the design, evaluation and development of a SOA. It consists of five main phases: information elicitation, service identification, service definition, service realization, and roadmap and planning. c. Service-Oriented Analysis and Design (SOAD) [5] Existing modeling disciplines such as Object-Oriented Analysis and Design (OOAD), Enterprise Architecture (EA) frameworks, and Business Process Modeling (BPM) fall short when being applied independently of each other. For that, we need for a hybrid approach that combines elements of all of the disciplines, with a number of distinct, new elements. The resulting, interdisciplinary OOAD method facilitating successful SOA deployments is ServiceOriented Analysis and Design (SOAD). d. Service-Oriented Unified Process (SOUP) [19] As the name suggests, this approach is primarily based on the Rational Unified Process. Its lifecycle consists of six phases: incept, define, design, construct, deploy, and support. e. Papazoglou's Method [6] It is based on an iterative and incremental process that comprises one preparatory and eight distinct main phases. These are planning, analysis and design (A&D), construction and testing, provisioning, deployment, execution and monitoring. f. Thomas Erl’s [10] This methodology is a step by step guide through the two main phases: analysis and design. Service candidates are identified in the analysis phase. These serve as input for the next phase where the service candidates are specified. g. SENSORIA Development Approach (SDA) [7] The aim of the project SENSORIA is the development of a novel comprehensive approach to the engineering of service-oriented software systems where foundational theories, techniques and methods are fully integrated into pragmatic software engineering process. h. Identification and Analysis of Business and Software Services—A Consolidated Approach [12] Based on a review, analysis, and evaluation of the 30 existing service oriented approaches it has shown that a comprehensive approach is missing. Based on this evaluation, an integrated, consolidated approach is emerged and it is called Identification and Analysis of Business and Software Services. i. The CBDI-SAE Process [20]: The SAE Reference Framework is designed to provide a comprehensive Framework of all components necessary to support the migration to and subsequent upkeep of a service oriented enterprise. V. COMPARISON OF EXISTING SOSE METHODS In this section we compare the above-mentioned service oriented methods according to three perspectives: P1. The ME approaches, where we identify the method engineering technique used by the service oriented method as summarized in Table 2. P2. Method aggregates, where we classify the service oriented method according to the different aggregates of method used, namely process, product, tool, model, and pattern as summarized in Table 3. P3. Aspects of service engineering, where we show which is the way used by the service oriented method to describe the relative services as summarized in Table 4. A. ME approaches used in SOSE The method SOMA is created from scratch since this SOA method was harvested from hundreds of successful experiences and lessons learned from the difficulties and challenges encountered in early SOA design and implementation projects. So the developers of SOMA have not started from a model or an existing method but from the initial experiences in different domains to apply the SOA design and implementation in their projects. SOAF method also use an ad hoc approach since it offers the best practices and guidelines to follow, in the aim to obtain a service based application and it does not rely on any existing paradigm or method. While the method SOUP uses the best elements from RUP and XP to build and manage a SOA project, so it is clear to conclude that this method uses an extension technique. Then the method SOAD not only combines existing elements such as Object-Oriented Analysis and Design (OOAD), Enterprise Architecture (EA) frameworks, and Business Process Modeling (BPM) but also add new elements to obtain a method so it uses the technique of Product Line. As the SOAD method, the Papazoglou's method use a Product Line approach also since it is partly based on other successful related development models such as the Rational Unified Process (RUP), Component-based Development (CBD) and Business Process Modeling (BPM). Concerning the Erl’s method, we note that is a step by step guide through the two main phases: service-oriented analysis and design; and it does not use any existing paradigm or method so the method engineering approach used in is ad hoc one. Regarding SENSORIA method, it uses the Paradigm-Based ME technique since The SENSORIA Development Approach (SDA) follows the patterns described in the OMG’s Model Driven Architecture (MDA), which is “an approach that uses models in software development”. So this method is based on the paradigm of SDA, which is a variation of MDA that is why we have chosen the paradigm based ME. As we have shown, consolidated approach to business and software service analysis evaluates 30 existing service oriented methods to investigate their weaknesses and their strengths and then combines and extends the strengths of the different examined methods so it is clear that this method have used the assembly technique. Finally the CBDI-SAE process method have used an ad hoc approach as it does not use any existing method or paradigm but it uses a Framework that guides the developer to obtain SBA. TABLE 2: ME APPROACHES USED BY SOSE METHODS SOMA SOAF SOAD SOUP Papazoglou's method Thomas Erl’s SENSORIA Consolidated Approach CBDI-SAE Process Ad hoc X X ParadigmBased ME ExtensionBased ME AssemblyBased ME Product line X X X X X X X B. Aggregates of method used in SOSE SOMA is proprietary to IBM and its full specification is not available. But recently, the Rational Unified Process has been combined with SOMA to result in what is called IBM RUP for SOMA. So SOMA provides developers with a process that can be followed to obtain SBA. However it does not provide any tool or model that makes SOMA more understandable for developers. SOAF method does not use any of the aggregate of method cited below since it does not employ any process model and also any tools or techniques are involved in it. As we have shown, SOAD is a method that combines several existing techniques which are OOAD, BPM and EA. In addition it also uses the Unified Modeling Language (UML) since the Object Oriented Analysis and Design (OOAD) relies on it and SOAD method uses UML in the application level to extract the different classes and objects that will be then transformed to services in SBAs. As its name suggests, the SOUP method is based on two processes which are RUP and XP. However it does not use any technique, model or tool that guides the engineer in developing a service based application. Papazoglou’s method is based on RUP process and it uses the two techniques which are Component Based development (CBD) and BPM. The methodology of Erl uses also the Business Process Modeling in extracting the candidate services from the business process of application wanted to be a SBA. SENSORIA method is based on the SDA, which is an approach like MDA (Model Driven Architecture). In addition, SENSORIA utilizes several tools and techniques to obtain the service based application desired. SENSORIA uses the UML4SOA which is a variant of UML that supports the characteristics of service oriented development. Also SENSORIA employ Pepa tool that captures the non functional proprieties, in particular performance aspects. WS-Engineer is a tool for analyzing the problem of engineering software components as services and the interaction behavior between them in a qualitative fashion. It worth noting that SENSORIA development approach is tool-assisted, which means that all tools are integrated into a common integration platform that is SENSORIA development environment (SDE). The consolidated method is a result of an analysis of 30 existing service oriented method and it is obtained in combining their strengths and overcoming their weaknesses or limits so this method does not follow any process and does not use any technique or tools. Finally the CBDI-SAE Process provides a Framework which allows the developers to obtain the SBA. This Framework helps the engineer by providing the best practices and guidelines to obtain the desired result. But this method does not use any of the aggregate of method. TABLE 3: AGGREGATES OF METHOD USED IN SOSE METHODS Proce Produ Tool Mod Patte Techniq ss ct el rn ue RUP NO NO NO NO NO SOMA NO NO NO NO NO NO SOAF OOAD NO NO UML NO NO BPM SOAD EA RUP, NO NO NO NO NO SOUP XP NO NO NO NO CBD Papazoglo RUP BPM u's method NO NO NO NO NO BPM Erl’s UML4S SENSORI NO NO OA NO NO NO A Pepa WSEngineer NO NO NO NO NO NO Consolida ted NO NO NO NO NO NO CBDI- C. aspects of service engineering In this section, we present the way used by the service oriented methods to describe the construct services. The concept service may be seen as IT-component, a composite, business services, or a business process proving value. SOMA method has three phases which are identification, specification and realization. The aim of the phase of identification is to identify the fundamental construct of SOA which is service. However, during the phase of information election of the SOAF method the as-is and the to-be business process models are defined so business services can be properly identified. To obtain services with the SOAD method, we start from the legacy application to extract from it the future services. Doing that, we obtain services that are generated from the reusable functional components and business services generated from the business process of application. The SOUP method contains six phases. The definition of services is done in the define phase. During this phase the services are identified based on business process and the existing uses cases of the application that can be transformed to services. To obtain the services in Papazoglou’s method, it is necessary to explore the as-is model to understand the available services and the business process. According to this, the analysts decide what are the required changes to obtain the to-be model. So the services are created based on the business process. Also the identification of services in Thomas Erl’s method is based on the explore of as-is model which states the current situation and allows stakeholders to understand which business processes are already in place and which has to be introduced and automated, which application components can be reused. The SENSORIA method, the consolidated method and the CBDI process use business process as a start to obtain the services desired in the service based application. VI. DISCUSSION According to the comparison made above, we note that most of SOSE methods studied extract their services from the business process of the application, i.e., the actual application is analyzed to extract the business process that will be transformed to services in the future SBA solution. We note also that the most of studied SOSE methods do not use any process (some methods used RUP or XP process). In addition, these methods suffer from the absence of models since no one of the examined methods uses a model. They just use some tools such as UML and some techniques such as BPM, CBD and OOAD. So it is clear that these methods suffer from the lack of the notation, tools and models that make the SOSE method more employed and understandable by developers. TABLE 4: ASPECTS OF SERVICE USED IN SOSE METHODS Service Composition Service and Business Composition services SOMA SOAF X X X X SOAD SOUP Papazoglou's method Thomas Erl’s Business processes as services X X X X SENSORIA X Consolidated Approach CBDI-SAE Process X X VII. CONCLUSION In this paper, we have provided a new framework that compare existing SOSE methods according to three characteristics: the ME approach used to produce a new method, the aggregates any method should embody, and the type of main building blocks used to build SBA. This has implication in completing the existing frameworks, by taking into account more relevant perspectives of SOSE, toward a comprehensive framework that be a meta-model for SOSE methods. In further development we will show how to consider a SOA maturity adoption process and propose a comprehensive framework to generate or benchmark new methods. REFERENCES [1] Papazoglou, M.P., Andrikopoulos, V. and Benbernou:, B. (2011) ‘Managing Evolving Services. IEEE Software, 28(3), pp. 49-55 [2] Gu, Q. and Lago, P. (2011) ‘Guiding the selection of service-oriented software engineering methodologies’, Service Oriented Computing and Applications, 5(4), pp. 203-223. [3] Bianco, P., Kotermanski, R., and Merson, P. (2007) ‘Evaluating a Service-Oriented Architecture’, Technical Report CMU/SEI-2007TR-015, Software Architecture Technology Initiative, Carnegie Mellon. [4] Welke, R., Hirschheim, R. and Andrew Schwarz, A. (2011) ‘ ServiceOriented Architecture Maturity’, IEEE Computer, 56(1), pp. 61 – 67. [5] Zimmermann, O., Krogdahl, P. and Gee, C. (2004) ‘Elements of service oriented analysis and design. An interdisciplinary modeling approach for SOA projects’. Onlinee at: http://www.ibm.com/developerworks/webservices/library/ws-soad1/ last accessed 2012. [6] Papazoglou, M. P. and van den Heuvel, W. J. (2006) ‘Service-Oriented Design and Development Methodology’, International Journal of Web Engineering and Technology, 2(4), pp. 412-442. [7] Wirsing, M., Hoelzl, M., Koch, N., Mayer, P., and Schroeder, A. (2008) ’Service engineering: the sensoria model driven approach’, in: Proceedings of Software Engineering Research, Management and Applications (SERA 2008), Prague, Czech Republic, pp. XIV–XVI. [8] Erradi, A. Anand, S. and Kulkarni, N. (2006) ‘SOAF: An architectural framework for service definition and realization’, In Proc. of Services Computing, SCC'06. IEEE International Conference, pp. 151-158. [9] Arsanjani, A., Ghosh, S., Allam, A., Abdollah, T, Ganapathy, S. and Holley, K. (2008) ‘Service-oriented modeling and architecture’, IBM Systems Journal, 47(3), pp. 377-396. [10] Erl, T. (2009) ‘SOA design patterns’, Prentice Hall. [11] Baghdadi, Y. (2012)‘A Methodology for Web services-based SOA realization’, Int. Journal of Business Information Systems, 10(3), pp. 264-297, 2012 [12] Kohlborn, T., Korthaus, A., Chan, T., and Rosemann, M. (2009), ‘Identification and analysis of business and software services—a consolidated approach’, IEEE Transactions on Services Computing, 2(1), pp. 50–64. [13] Mazo, R., Salinesi, C., Djebbi, O., Diaz, D. and Lora-Michiels A., (2012), Constraints: the Heart of Domain and Application Engineering in the Product [14] Ralyté, J., Rolland, C., & Deneckère, R. (2004). Towards a meta-tool for change-centric method engineering: A typology of generic operators. In: Advanced Information Systems Engineering (pp. 202218). Springer Berlin Heidelberg. [15] Rolland, C. (2005) ‘L’ingénierie des méthodes: une visite guide, Lines Engineering Strategy, Int. Journal of Information System Modeling and Design, 3(2) [16] Baghdadi, Y. (2013) ‘A comparison framework for service-oriented software engineering approaches: issues and solutions’, Int. Journal of Web Information Systems, 9(4), pp. 279-316 [17] Ralyté, J. (2001) ‘ Vue stratégique sur l’ingénierie des méthodes’, pp. 43-66 [18] CAtkinson, C., Bayer, J. and Muthig, D. (2000) ‘Component-Based Product Line Development: The KobrA Approach’, pp 289-309 [19]. Mittal, K. (2006) ‘Service Oriented Unified Process (SOUP)’, available from http://www.ibm.com/developerworks/library/ws-soamethod3/index.html#initial [20] Allen, P. (2007) ‘The service-oriented process’, CBDi Journal, at http://www.cbdiforum.com/reportsummary.php3?page=/secure/interact /20007-02/service oriented process.php&area=silve