A Method for Bridging the Gap between Business Process Models and Services

Many proposals in the literature are consensual in making business processes as the starting point of a Service-Oriented system development lifecycle. However, there is no systematic approach that can be easily applied in practice. We argue that an effective SOA approach requires an integrated view of organizational business processes, where services are explicitly related to business models components. Accomplishing these requirements is vital for bridging the gap between business needs and their supporting services. This work proposes a top-down method for service identification and analysis from business process models. Each step of the method implements a set of heuristics that are also specified. The method is presented in detail, and constitutes a systematic guide for service identification and analysis. A case study is conducted to demonstrate the use of the method in practice.


Introduction
SOA (Service-Oriented Architecture) is a paradigm for the development and maintenance of business processes that span large distributed systems (Josuttis 2007).Service is the core concept in SOA.Papazoglou et al. (2007) define services as autonomous, platform-independent entities that can be described, published, discovered, and loosely coupled in novel ways.A service may perform functions that range from simple requests to sophisticated business process.Any piece of code and any application component deployed on a system can be reused and transformed into a networkavailable service.
Service orientation promises to significantly improve the manageability and changeability of increasingly complex information systems (Aier et al. 2011).In addition, SOA has been advertised as an answer to enable a flexible alignment of AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol. 6, No. 1, p. 62-98, 2013.business needs and IT capabilities (Trkman et al. 2011).Despite its enormous technical promises, the deployment of SOA in an organization poses a series of challenges, such as the introduction of new architectural roles and development tasks and the need for specifying a service development approach that explicitly takes organizational business needs and their corresponding process models into account (ARIS Paper 2007, Arsanjani 2004, Erl 2005, Fareghzadeh 2008, Gu and Lago 2007, Josuttis 2007, Klose et al. 2007, Kohlborn et al. 2009, Scheer 2000).
Within the service development life-cycle, service identification and analysis are the first and the most important phases to foster business/IT alignment.Many works address the derivation of services from fully-automated business processes; however, real processes typically mix system-intensive and human-intensive activities, which should also be considered for service derivation.Moreover, the same activity may appear in several processes throughout the organization, supported by several information systems in different areas or departments.Hence, it rais the need for an integrated view of organizational business processes, where each process is related to the organizational key-value chain.In this integrated view, the relationships among processes, and among elements within the same process, are explicit.This paper proposes a top-down method for service identification and analysis, which are the first and the most important phases of the service development life-cycle in fostering business/IT alignment.The method works on top of a common repository of inter-related business process models following the EPC notation, and is composed by a set of systematic steps that are presented in a rich detail level to enable its application in practice.The method returns a list of the proper services to be further designed and implemented.An important advantage of this phase is that it follows a top-down approach by making explicit links from the elements of business process models to intermediary results, and then to the final candidate services.Those explicit links are useful for traceability purposes, for example to track changes and quantify the impacts produced by a new business requirement.The resulting set of services is inherently aligned to the set of organizational business processes, thus reducing the Business/IT gap.The proposed method was evaluated in a case study to exemplify the application of each step and provide a better understanding of the whole approach.
The rest of the paper is organized as follows: Section 2 discusses related work (life-cycle approaches); Section 3 presents a proposal for Service Life Cycle; Section 4 describes the details of a case study used to evaluate the proposal; and, Section 6 concludes the paper and points future research perspectives.

Related Work
Typical activities in software development process are: requirement elicitation, requirement analysis, design, implementation, testing and deployment.Roles that usually perform those activities are project managers, analysts, designers, software architects, developers, customers and quality assurance.A life-cycle model corresponds to the definition of a specific thread of activities for software development.Examples of traditional software development life-cycle models are cascade, iterative, incremental, component-based, spiral, and Rapid Application Development (Pressman 2006).
Business process models may support the development of an information system and present approaches to derive requirements from such models (De la Vara González and Sánches Díaz 2007).However, conventional software engineering life-cycle models are not directly applicable to SOA.New roles and architectural development tasks and new challenges are introduced due to service-oriented development characteristics (Gu and Lago 2007).For example, a life-cycle model should consider service provider, service consumer and service broker architectural roles.Examples of new challenges are: how to deal with conflicting requirements; how to align business requirements to IT solutions; how to distribute services across organizational boundaries in a secure manner.Thus, an specific life-cycle model is vital for proper SOA implementation (Pulier and Taylor 2006).Gu and Lago (2007) and Kohlborn et al. (2009) evaluated a large number of service life-cycle supporting methodologies proposed by different research approaches from both academia and industry.They concluded that there is no consensus on how life cycle should be conducted.Proposals vary widely in scope and details.Kohlborn et al. (2009) state that the evaluated proposals do not cover business services and software services in a comprehensible and integrated manner.Gu and Lago (2007) analyzed some models (McBride 2007, Papazoglou and Heuvel 2006, Sun 2006, Systinet 2006, Tsai et al. 2007, Wall 2006), and proposed a service development life-cycle as a sequence of steps grouped into three phases: design time, run time and change time.The design phase occurs before a service is made available for use.During the implementation phase, services are available to run.The change phase deals with new requirements and errors found after the implementation stage.In their approach, service identification is not handled explicitly, even though it is essential for service modeling.Kohlborn et al. (2009) propose a method to support service life-cycle.Their approach is structured as follows: (1) Derivation of business services (Preparation Phase; Identification Phase; Detail Phase; Prioritization Phase); (ii) Derivation of software services (Preparation Phase; Identification Phase; Identify corresponding entities; Analyze and visibility takeover; Identify potential service operations; Extract process logic; Define logical contexts; Define service compositions).The method is a good guideline for organizations and practitioners, including dealing with various issues relevant to service identification.However, they do not provide enough details to conduct this step.Inaganti and Behara (2007) suggest the identification as the first step of the lifecycle of service-oriented development.Service identification is often a challenging activity for application development teams, because there is no business process documentation, and expertise is necessary to identify service characteristics.These authors warn mistakes in identification may lead to errors in design and implementation activities.Consequently, multiple iterations may be required, especially in composing services to be used by applications.Arsanjani (2004) proposes business process modeling using SOMA method -a top-down strategy.SOA is more strategic and business-aligned, while web services are a strategic implementation.Although modeling steps are presented in his approach, AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol.6, No. 1, p. 62-98, 2013.
activities are not described in detail and there is no systematic approach for identifying services from business processes models.Jamshidi et al. (2008) address aspects of initial steps in building service-based solutions -mainly service modeling, considering business models models.This approach assumes the business process model is highly detailed (up to the level of Elementary Business Process -EBP) and the granularity of each business entity is the same as the EBP which creates it.Process models at such a level of abstraction are not easy to accomplish.Also, this proposal does not consider other process model elements (e.g., business rules, business requirements, process flows).Adam et al. (2008) propose a method for deriving web services systematically based on the business processes of a representative sample of organization's partners.Service identification takes place at an appropriate level of abstraction at which a precise set of functions is stipulated."Set of functions" refers to the number of different operations provided by the service, while the "level of abstraction" describes whether a transaction executes a more business-oriented feature or a more technical functionality.Birkmeier et al. (2013) propose a method for web services identification based on business process models.Eventhough they present a systematic approach, the initial set of functionalities identified from the business process to be considered in the services definition is highly dependent on the analysts definition.The business analyst identifies which activities of the business process should be automated.In addition, s/he groups those process activities which belong together in a logical perspective.As a result, an initial list of functionalities representing the before-mentioned activity groups is provided.The list summarizes all functionalities that should be examined for implementation.To generate this list, business analysts use existing business process models to identify the functionalities that are relevant in the specific project context; however, this relevance criteria are not detailed in their proposal.Bianchini et al. (2013) proposed a well detailed and systematic method for web services identification based on business process models.The proposed method is very similar to the method proposed in our previous works (Azevedo et al., 2009a) (Azevedo et al., 2011), which is being improved and revised in this work.Bianchini et al. (2013) uses CRUD (Create, Retrieve, Update, Delete) operations and workflow patterns, but they do not consider important information present on process models that is useful to identify candidate services, such as business rules and business requirement.
We conclude the related work is highly dependent on the expertise of the SOA analyst to find a suitable set of services meeting specific business requirement.There are very few systematic methods for service identification during business analysis.The proposals presenting a step in this direction pose some limitations, since they are not detailed enough, do not provide specific guidelines for their execution or leave out important aspects of business process models.
Our proposal complements the approach of Gu and Lago (2007) by providing a method to address two crucial steps of the service development life-cycle: service identification and analysis.

A Proposal for Service Identification and Analysis based on Business Process Models
We present a method based on business process models designed using EPC notation (Keller and Teufel, 1998;Scheer, 2000) to support service identification and analysis in software organizations that implement SOA.Our recommendation is to derive services from business process models considering their particular characteristics in accordance to SOA principles.The method makes use of several important concepts defined below.
We classify services into candidate services versus physical services.A physical service is a functionality that is implemented in a programming language, while a candidate service is an abstract (not implemented) service which, during the design phase of a service life-cycle, can be chosen to be implemented as a service or as an traditional application function (Erl 2005).
We define two types of candidate services, namely candidate data service and candidate logic service.A candidate data service only performs CRUD (Create, Retrieve, Update and Delete) operations on data.A candidate logic service implements a behavioral business rule, such as a mathematical formula or a condition test.Business rule defines or restricts some aspect of an organization (BRG 2001).It aims to establish the structure of a business, control or influence its behavior.Structural business rules are responsible for defining domain concepts and constrain how these concepts may be related to each other, thus regulating how organization systems should handle data sources (Crerie et al. 2009).Behavioral business rules restricts business behavior by limiting actions that may take place in a specific scenario, or stating formulae and inference rules to derive knowledge from existing concepts.
The proposed method is divided into service identification and service analysis steps.Both steps explicitly take information from business process models into account, which fosters Business-IT alignment.The present work considerably improves preliminary and partial versions of each step, which were respectively proposed by Azevedo et al. (2009a) and Azevedo et al. (2011), by adding new heuristics and revising previous ones.
For each step, we precisely specify a set of heuristics to be executed systematically for service identification and analysis.The proposed service identification heuristics cover all workflow patterns specified by Russel et al. (2004) and Van der Aalst et al. (2003).Service analysis heuristics follow principles of highquality service implementation (ARIS Paper 2007, Arsanjani 2004, Erl 2005, Jamshidi et al. 2008, Josuttis 2007, Klose et al. 2007, Marks and Bell 2006).The result from those steps is a list of services at the most appropriate granularity level, defining the degree of reuse and specifying development prioritization aligned to business needs.In addition, groups of services are defined.They are divided into data service groups and logical service groups.
Service Identification Phase generates a list of candidate services and information about them.This information serves as input for Service Analysis Phase, in which the candidate services are prioritized, grouped and designed.These two phases are presented in Section 3.1 and Section 3.2.Section 4 presents a case study that exemplifies the use of the heuristics and demonstrates the effectiveness of the approach.Heuristics were developed using EPC notation (Keller and Teufel, 1998;Scheer, 2000) for business process modeling.This notation is presented in Appendix 1.However, the majority of heuristics can be directly applied on business process models designed using other notation, such as BPMN (Ko et al. 2009), which was developed and standardized by the Object Management Group (OMG 2011).

Service Identification Phase
The first phase of our proposed service life-cycle is the identification of candidate services from a set of business process models.The main steps are: (i) Selection of Activities; (ii) Identification and classification of candidate services; (iii) Consolidation of candidate services .
Service identification starts when a demand for software development is received.Demands comprise set of requirements to be implemented (either as services or application functions).Other inputs for the method are: "to-be" business process models (re-designed processes in which the new software requirements are proposed and represented), and a set of business requirements already implemented in existing applications.Figure 1 presents the input and output information of service identification phase.To-Be business process models are used for identification and classification of candidate services, while business requirements of existing systems and business requirements of the demand are used for candidate services consolidation.The outcome of the method is a list of candidate services along with a set of elements (tables, charts, service dependency graphs) that should assist the Service Analyst in making decisions as to the most suitable implementation for each identified candidate service.The list of candidate services serves as input for the next steps in a service life-cycle model (analysis and design)."Selection of activities" step (Figure 2) elects a set of business activities of To-Be business process models for possible service support.The classification of Le Clair and Teubner (2007) was used.It divides all business processes into either humanintensive or system-intensive.Human-intensive processes require people to get work done while relying on and interacting extensively with business applications, databases, documents and other people via collaboration tools.They require human intuition or judgment for decision-making during individual steps in the business process.Systemintensive processes typically involve a large number of transactions with minimal or no human intervention.All activities of system-intensive processes are selected.Activities of a humanintensive process not considered for automation are discarded, while those which may be system-supported are selected.

Figure 2. Selection of Activities step
In the second step (Figure 3), candidate services are identified by applying a set of heuristics to the set of activities selected in step 1.The proposed heuristics were defined to address both syntactic and semantic analysis of the business process model.

Figure 3. Identification and Classification step
Semantic analysis of business process models should consider the intended meaning of each element represented in the process model.Some elements denote useful information for providing a (service-based) computational support for the process.Considering all possible business process elements (Sharp and McDermott 2001), three semantic element types are addressed: (i) "activity input and output data"; (ii) "business requirement"; and (iii) "business rule".Three service identification heuristics are proposed (Heuristic 1 to 3).Each heuristic must be applied to business process models in which the corresponding element type appears related to one of the process activities selected in the "Selection of activities" step.
Syntactic analysis of business process models is carried out by considering the process model structure, i.e., from each workflow pattern specification proposed by Russel et al. (2004) and Van der Aalst et al. (2003) (Heuristics 4 to 10).The goal is to assure coverage of the flows that may be represented within a process model.

• Semantic analysis heuristics
o Heuristic 1 (Business Rule): A candidate service must be identified from a business rule.
o Heuristic 2 (Business Requirement): A candidate service must be identified from a business requirement.
o Heuristic 3 (Input/Output Information): A candidate service must be identified from input and output information that are linked to information support element.
An exemplary application of semantic analysis heuristics is presented in Figure 4.This model corresponds to a Function Allocation Diagram of activity "Determine interest tax".The activity has three business rules: "Outdated client data"; "New client"; "Client identification"".Three candidate services are identified from for these elements using heuristic H1.Two candidate services are identified from the business requirements "Consult client's information" and "Consult credit proposal" using heuristic H2.Finally, two candidate service are identified from "Client register" and "Credit proposal" input information using heuristic H3. • Syntactic analysis heuristics o Heuristic 4 (Sequence of Activities): A candidate service must be identified from a series of sequential activities.
o Heuristic 5 (AND): A candidate service must be identified from an ANDpattern.
o Heuristic 6 (XOR): A candidate service must be identified from a XORpattern o Heuristic 7 (OR): A candidate service must be identified from an ORpattern.
o Heuristic 8 (Loop): A candidate service must be identified from a Looppattern.
o Heuristic 9 (Process Interface): Candidate services must be identified from the automated interaction between two processes: one candidate service to pass the information to the other process, and another candidate service to receive that information.
o Heuristic 10 (Multi-Instance Activity): Candidate services must be identified from a multi-instance activity: one candidate service to send the information to each instance of the multi-instance activity; one candidate service to perform each instance of the multi-instance activity; and one candidate service to consolidate the outputs of the instances and to pass the result to the next step.
The syntactic analysis heuristics identify candidate services based on workflow patterns.The candidate service can encompasses more than one activity from the business process.Each logic candidate service encompasses the activity that starts the logical operator (AND, XOR, OR, loop) and all the activities inside the control block.Samples of candidate service identification from workflow patterns are presented in Figure 5. Candidate services (1), ( 2) and (3), identified by Heuristics 5, 6, and 7, respectively.Candidate services are identified by conducting both semantic and syntactic analyses (that is, by applying Heuristics 1 to 10) on top of business processes models selected previously.Heuristics may be applied in any order, since the information processed by each heuristic is independent.However, for automation purposes, we indicate handling together heuristics that identifies candidate services from activity elements, which are concerned to semantic analysis.In other words, we suggest implementing a loop that applies all semantic heuristics for each activity.Syntactic analysis heuristics may be applied in any order.
Once identified, each candidate service is classified as a candidate data service or a candidate logic service, according to the previous definition.Each candidate service identified by the heuristics is described by the following attributes: • Identifier: a sequential unique number that may be generated automatically.
• Name: candidate service name, e.g., "Verify if customer data corresponds to a new registration".
• Type: "candidate logic service" or "candidate data service", e.g., Verify if customer data corresponds to a new registration" could be classified as data candidate service.
• Heuristics: name of the heuristics that discovered the candidate service, e.g., "Business Rule Heuristic".
• Output: output information generated by the service, e.g., "indication that customer is already registered".
• Activities: name of all business activities that are somehow related to this service.There are two possible scenarios to define this set of activities: (a) when the candidate service was identified by a semantic analysis heuristic (in this case, there is an element that originated the candidate service), this set is composed by all activities to which this element is related to; (b) when the candidate service was identified by a syntactic analysis heuristic (in this case, a set of activities instantiated the workflow pattern that originated the candidate service), this set is composed by all activities that are part of this workflow pattern.For example, if the candidate service "Verify if customer data corresponds to a new registration" was identified from a business rule associated to two activities in the process repository ("Register client" and "Verify client data"), then its "Activities" includes both.If a candidate service "Generate credit proposal" was identified from a sequence of activities "Compromise credit limit"; "Calculate tax rate"; "Determine interest rate to be charged"; "Generate contract proposal"; "Analyze contract", they are all included into its "Activities" set.
• Figure 6 exemplifies an algorithm for Heuristic 4, which identifies a candidate service from a sequence of activities.A sequence of activities is composed by two or more activities that are executed sequentially, that is, with no logical operators (OR, XOR or AND) among them (van der Aalst et al., 2003).The algorithm in Figure 6 invokes a method that returns all sequences of activities in a business process model.For each sequence, if all its activities are supported or executed by a system, then a candidate service is created and described using the attributes identifier, name, type, heuristic name, input/output parameters, list of activities of the sequence.In the third step, candidate services information is consolidated by applying a set of service consolidation heuristics (Heuristics 11 to 16).Service consolidation aims at gathering information for each candidate service about pre-defined criteria that helps a Service Analyst to decide upon its implementation.Services that are not selected for implementation are removed, resulting in a refined list of candidate services.
The proposed service consolidation heuristics were based on high-quality service implementation principles widely-known in the literature (ARIS Paper 2007, Arsanjani 2004, Erl 2005, Jamshidi et al. 2008, Josuttis 2007, Klose et al. 2007, Marks and Bell 2006).Thus, they reflect the most important technical issues that should be considered by analysts.In addition, information regarding candidate service usage (by process activities or other candidate services) and existing implementations is also considered.o Heuristic 16 (Identify Candidate Utility Service): A candidate utility service must be identified from observation of recurrent patterns (Thom et al. 2007).
Association among business requirements and systems (Heuristic 12) allows the analyst to identify candidate services identified from developed requirements and to prioritize the service development according system's demand priorities.As a business requirement can be implemented by more than one system, it is not ease to identify the association among business requirements and systems visually.Thus, the association is identified by Heuristic 12 from the system business requirement model.The association among candidate services and demand requirements (Heuristic 13) allows the analyst to identify the set of services that are necessary to meet the initial demand.Moreover, the association among candidate services and process activities (Heuristic 14) eases the understanding of the service context.In this case, it is possible to identify candidate services that encompass more than one process activity.Services identified from FAD model presented in Figure 4 would be related to the activity "Verify client data".
The final result from the identification phase is the refined list of candidate services with their corresponding attributes, as well as tables, charts, and dependency graphs including reuse information for service analysts.The information gathered by these heuristics is summarized in a table, such as, for example Table 1.

Service Analysis Phase
This section details the service analysis.Input is a set of candidate services resulting from service identification phase described in Section 3.1.Output is a set of services at the most appropriate granularity.They will be designed for implementation (the next phase of the method).The service analysis phase consists of the following steps: (i) Prioritize candidate services; (ii) Define granularity of candidate services; (iii) Group candidate services.

Prioritize candidate services
The goal of candidate service prioritization is to identify which candidate services may contribute most to the organization and, therefore, should initially be considered for analysis.Candidate service prioritization is achieved by automatically analyzing the components of the business process models, thus reducing the possible subjectivity of this process.Just as the identification phase is based on business process models, this prioritization phase prioritizes services according to business characteristics, i.e., which system is more important or can achieve greater ROI for the company or which services decrease redundancy.Therefore, according to one heuristic one candidate service could have a high score, and according to another one it could have a minor value.At the end, the order reflects the best choices.The heuristics are presented below, and are illustrated in the exploratory case study.Without automatic prioritization, SOA analyst must examine hundreds of services to determine which it is most important to implement.We try to support the analyst by providing heuristics that scan the BPM repository and calculate priority based on weights that can be set by the analyst, as follows.
• Heuristic 17 (Candidate service reuse level): Group candidate services by level of reuse: list reuse level and number of services at each reuse level, and then define grades for each level.Afterwards, assign a weight to each candidate service.
The higher is the candidate service reuse level, the greater is the gain from implementing the service, since it reduces code replication and keeps functionalities in a central place.For example, the implementation of a candidate service with reuse level of 1 as a physical service does not add much gain to the organization (note, however, that in specific scenarios in which this precise service is used only in one process but that process is critical for the organization, or if it presents a high maintenance cost, the SOA designer may further decide for its implementation).Therefore, the weight for this service would be zero.However, services with a reuse level of 8 will probably bring major gain to the organization.Thus, for instance, on a scale of weights from 1 to 5, one could assign weight 5 to services at reuse level 7 and 8.An example of weights associated by analysts for each reuse level is presented in Table 2.

Table 2. Example of weights by reuse level
• Heuristic 18 (Association of candidate services with systems): Group each candidate service linking to the system that implements it: list systems and the number of candidate services related to each one, and then define grades for each system.Afterwards, assign weights to each candidate service.
In this case, setting the weights depends more on the importance of the system to the organization than on the number of services associated with the system.In addition, during the identification phase, the candidate service should be marked as implemented.
• Heuristic 19 (Association of candidate services with systems they rely on): Group candidate services that could potentially be invoked by systems: list systems and number of candidate services related to each system, and then define grades for each system.Afterwards, assign weights to each candidate service.
Following the reuse principle, it is important to identify the potential use of candidate services by systems, as well those existing systems in the business processes studied, and others that were not considered before.In this particular case, the analysis should also include services that are no longer used by any system, since systems could be changed to use them.Furthermore, it is also important to make a broader analysis, including other potential systems that may use the services.An example of weights associated by analysts for each system is presented in Table 3.

• Heuristic 20 (Increase candidate service weights according to multiple instantiation activities):
Increase the weight of candidate services identified from multiple instantiation activities.
Services identified from multiple instantiation activities tend to be used much more than others, since they are reused by each instance of the activity.Therefore, these services should have greater weight.For instance, the priority of services identified from multiple instances activities could be increased by 1. • Heuristic 21 (Association of candidate services with demand): Increase the weight of candidate services that are associated with the client demand requirements.
Candidate services identified from business process models are not necessarily directly related to the client demand requirements, because demand may bear on only a part of the process model.Thus, different weights should be assigned to each of these cases.
• Heuristic 22 (Association of candidate services with roles): Group candidate services that are associated with each business role: list business roles and number of candidate services related to each one, and then define grades for each role.Afterwards, assign weights to each service.
Associating candidate services with business roles highlights the importance of the service in terms of the importance of the roles.Candidate services performed by systems should have greater weight, because implementation of the feature will be fully automated, without human intervention or need for GUI development.Services that require human intervention entail a user interface.These services should have lower weight.Table 4 contains an example of business role group weights.After defining the weights, service priority is calculated by consolidating produced values as stated by Heuristic 23.The sum of priorities helps to indicate which are the most important services to the business, regarding several perspectives.For example, after summing the weights, a service with a reuse level of 1 may have higher priority than a service with a reuse level of 5.This may happen if the service relates to a very critical application, is executed in a multiple instance activity and/or is executed by important roles in the organization.
• Heuristic 23 (Calculation of candidate service prioritization): Sum the weights produced by each prioritization heuristic (Heuristics 17 to 22) to define service priorities.
An example of service prioritization is presented in Table 5.The last column is calculated using Heuristic 23.An important concept in SOA is service composition.Papazoglou et al. (2007) presents that service composition aggregates multiple services into a single composite service.Resulting composite services can be used as basic services in further service compositions or offered as complete applications and solutions to service consumers.Besides, Papazoglou et al. (2007) emphasize that "orchestration" and "choreography" are the most used terms to describe business interaction protocols that coordinate and control collaborating services.Orchestration describes how services interact at the message level, including the business logic and execution order of interactions under control of a single end point.It is an executable business process that can result in a long-lived, transactional, multistep process model.Choreography is typically associated with message exchanges, rules of interaction, and agreements that occur between multiple business process end points rather than a specific business process executed by a single party.
We propose heuristics for service composition identification from business process workflows (Heuristics 4 to 8), and we propose the following heuristic to prioritize this sort of candidate service.
• Heuristic 24 (workflow candidate service prioritization): Prioritize workflow services by: number of activities that compose the workflow; number of models where the same workflow is reused; number of entities handled by the workflow; number of different lanes; and number of subworkflows.For each case, weight should be assigned according to a priority range to demonstrate priority.Afterwards, sum the weights produced by each prioritization in order to produce a consolidated value.
For example, knowing that the number of activities that make up the flow ranges from 2 to 25, we define the following weights: (i) 0 for 0-2 activities; (ii) 1 for 3-5 activities; 2 for 6-10 activities; 3 for 11-15 activities; 4 for 16-20 activities; and 5 for 21-25 activities.An example of workflow candidate service prioritization is presented in Table 6.

Service granularity
After prioritizing the candidate services, the next step is to analyze their granularity.We propose to develop a granularity map similar to the one proposed by Marks and Bell (2006), in which services are located on a map according to their granularity.The dependency graph produced in the service identification step (Heuristic 15) is used to place services on this map.The dependency information was derived from the relationships among the business processes elements from which the candidate services were identified.For example, business requirements often refer to business rules.So, a dependency relationship is created between candidate services identified from business rules (which are finer-grained) and candidate services identified from business requirements (which are coarser-grained).Another example is that the (coarser-grained) services identified from flows are directly related to the (finer-grained) candidate services identified from the elements in each activity.These dependencies can be identified automatically, if there are explicit relationships among the process model elements, which is a premise of this work.The heuristic for candidate service granularity is: • Heuristic 25 (Candidate service granularity): Develop a granularity map for candidate services and place services on that map so that coarser-grained services are at the top and finer-grained services are at the bottom.
An example of granularity map for candidate services is presented in Figure 8.The reuse value is calculated by Heuristic 17.

Figure 8. Candidate service analysis step
We propose a mechanism to help the SOA analyst to get a good, yet preliminary idea of granularity.Using the granularity map together with information about service importance, potential service reuse, current service use, among other relevant information, the SOA analyst can decide what service granularity is most appropriate in the analysis phase.In the design phase, information about hardware, bandwidth, processing etc. is introduced, and granularity can change.For example, coarse-grained services can be decomposed into smaller ones, while finer-grained services can be grouped or included in other services in order to suit granularity to physical constraints.However, even though the granularity defined during the analysis phase is not final, we argue that it is very close to that.As a result, costs incurred by design changes resulting from implementation issues and maintenance are reduced, since better analysis is performed.

Defining service groups
Data services (also called entity services) are very generic and reusable, since they encapsulate data access operations (CRUD -Create, Read, Update or Delete) that can be performed by any application.Fareghzadeh (2008) points out that these sorts of services are not tightly coupled to business processes, given that they provide an interface that is more oriented to data than to procedures.Thus, these services must be analyzed in terms of the entities they manipulate.These entities can be identified directly from the business process models: for example, Azevedo et al. (2011) propose listing the entities associated with data models relating to activity input and output information.If this information is not available, then it is necessary to examine existing entity-relationship AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol.6, No. 1, p. 62-98, 2013.
or class diagrams, or to interview data administrators and users in order to elicit the entities manipulated by services.
The candidate services are listed in a table, and then linked to the entities (and corresponding attributes) they manipulate.Afterwards, candidate services that execute operations on the same entity or group of entities are generalized into a single candidate service.The heuristic for grouping data services is: • Heuristic 26 (Grouping Data Services): Associate candidate data services with entities, indicating the CRUD operations that the service performs on these entities.Then, group services which executes at least one of Create, Update and Delete operation over an entity group.For each group of services that execute only read operation on an entity group, define a communication channel between the service group and the service group that manipulates the entity group.Design services in such a way as to reduce the communication cost between them.
Groups of logic services must take into account the use context of the logic embedded in the service.
• Heuristic 27 (Logic service groups): Group logic services by standards in the organization.
A proposal for step-by-step implementation of this heuristic is presented below: 1. Identify the most abstract concept used by the organization in different areas.
2. Identify candidate logic services dealing with the context of this concept (and related concepts), considering the views of different areas of the organization.
3. Generalize candidate services that perform very similar operations on the concept.
4. Group candidate logic services that operate on the concept context into the same package (or the same service).
An example of logic service groups is presented in Table 7.The values C, R, U, D are CRUD (Create-Retrive-Update-Delete) operations.The value H is set when a service group accesses an entity handled by another service group.In this case, the services should access the entity through invocation of the services that encapsulate the entity.The data type models used by the service should be developed to prevent replication of the same data types for different projects, to increase reuse and to document data types.
If the organization develops a canonical model, it is important that data type models used by the service reference the canonical model, indicating which classes and attributes are used.A canonical information model is a model of the semantics and structure of information that adheres to a set of rules agreed upon within a defined context for communicating among a set of applications or parties (Gilpin, 2010).Reference between models can be made through explicit dependencies between classes and attributes or by markings on the canonical model.Figure 11

Application Scenario
This section presents an application scenario as a pilot evaluation of the proposal.According to Bishop et al. (2007), thinking over the future profoundly and creatively is critical, or instead, we assume the risk of being surprised, other than not being ready to face changes.Likewise, given the uncertainty and inability to predict everything that can happen, we have to run through several plausible settings, not only what we expect to take place.Being so, a methodological approach to deal with this kind of issue is defined by Bishop et al. (2007) as the scenario building: "scenario is the archetypical product of futures studies because it embodies the central principles of the discipline".
Based on a broad literature review, the authors also states a scenario contains "the stories of these multiple futures, from the expected to the wildcard, in ways analytically coherent and imaginatively engaging".
The business process model "Analyze credit request", presented in Appendix 2, was used as the application scenario and comprises 18 activities carried out by 2 AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol. 6, No. 1, p. 62-98, 2013.departments in a financial organization.The goal of this business process is to analyze credit proposals, which as a result are approved or denied.When a credit proposal is received, the client information is checked and the system verifies whether the client credit limit is compatible with granting the proposed credit.If the limit is OK, then the system calculates fees and taxes to generate a contract proposal.This contract proposal is routed to an analyst who identifies any need for adjustment, and the level of risk entailed by the loan.If the contract is acceptable, it is sent to an approval group that will contact the client to assess it.Once the contract is approved it will be ratified.If the contract is not approved, then it is canceled.The full process is presented in more details by Diirr et al. (2010).Here, we present a small subset of the workflow, in order to follow the application of the method.
Besides the flow of activities, it's also important knowing the following information about each activity (since the proposed method requires them): input and output information, business rules, business requirements, information supporting elements, roles that perform the activity and systems that support the activity.Figure 9 shows an example of diagram for the "Generate contract proposal" activity where the representation of such information is highlighted with dashed lines.
These process and activity models were designed using the EPC notation presented by Keller and Teufel (1998) and Scheer (2000).

Defining service groups
When the Service Identification Phase heuristics were executed on the "Analyze Credit Request" business process model, 47 services were identified and described.A partial list of candidate services is presented in Table 8.These services were identified using Heuristics 1 to 10. Information in the third to sixth columns of input/output information, business rules, multiple instance activities, XOR pattern etc.In order to demonstrate an example of heuristics use, we present how service #32 and service #36 were identified.
Service #32 was obtained, according to Heuristic 4, from a sequence of activities presented in Figure 9.This sequence occurs only once and consists of the following activities: "Compromise credit limit", "Calculate tax rate", "Determine interest rate to be charged", "Generate contract proposal" and "Analyze contract".This information is in "Reuse" and "Activities" columns, respectively.The activities that compose the sequence flow are supported by Credit system and it is executed by Credit System and Credit Analyst roles.Besides, this service was not identified from a multiple instance activity and comprises demand requirements.This information is, respectively, in "System", "Roles", "Multiple instance" and "Demand Requirements" columns.
Service #36 was identified using input and output information from activity models, according Heuristic 3. The information "Contract proposal" occurs nine times linked to an information support element in the following activities: "Analyze contract", "Approve contract", "Cancel contract", "Cancel risk contract", "Check contract conditions with client", "Generate contract proposal" (Figure 9) and "Notify proposal not approved".This information is in "Reuse" and "Activities" columns, respectively.These activities mentioned above are supported by Credit system and executed by Attendant and Credit System roles.Besides, none of these activities is a multiple instance activity and the service identified comprises demand requirements.This information is, respectively, in "System", "Roles", "Multiple instance" and "Demand Requirements" columns.

Service Analysis Phase
Using the information resulting from the Service Identification Phase, weights were calculated for services in order to prioritize the services on a scale from 0 to 5. The top 5 priority services are shown in Table 9.The weights considered service reuse (Heuristic 17 -column Reuse), relationship between systems and services (Heuristic 18 -column System), if the service was identified from multiple-instance activity (Heuristic 20column Multiple Instance), and relationship between business roles and services (Heuristic 22 -column Roles).Weights were assigned considering the following rules which were defined by SOA analysts: • Services with reuse equals to 1 received weight 0; reuse equals to 2 or 3 received weight 1; reuse equals to 5 received weight 3; and reuse equals to 9 received weight 5.
• Services supported by Credit System received weight 1; • Services identified from multiple instance activity received weight 2; The priority of each candidate service is given by summing all weights (Heuristic 23 -column Priority).The prioritization step resulted in a list of candidate services, ranked by priority in decreasing order.For example, service #36 (presented in Table 8) has reuse equals to 9 and was not identified from a multiple instance activity.So, it received weigh 5 in "Reuse" column and 0 in "Multiple instance" column.Besides, this service was identified from activities supported by the "Credit System" and executed by "Credit System", "Credit Analyst", "Attendant" and "Client" roles.Then, it received weigh 1 in "System" column and 6 in "Roles" column.Therefore, the priority of service #36 was calculated as 12.The granularity map (Heuristic 25) for the "Generate credit proposal with adjustment" composite service is presented in Figure 10.In this diagram, arrows represent dependencies.The dependencies were discovered using service identification heuristics.This diagram shows: AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol.6, No. 1, p. 62-98, 2013.
• Reuse: service reuse levels are highlighted by circles.For example, service #6 has reuse equals to 2.
• Sub-composites: shaded rectangular backgrounds indicate composite services, and sub-levels are represented by different colors.In this example, service #27 invokes service #32.Service #32 is a composite service, and it invokes service #28, which is another composite as well.Figure 11 shows a portion of the canonical model that was developed (Heuristic 28).The canonical data model is used to understand the concepts handled by services, and is used to group services according to the entities they manipulate (Table 10).
AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol. 6, No. 1, p. 62-98, 2013.The CRUD table was built according to the operations that each data candidate service performs on each entity (Heuristic 26).A small subset of this table is presented in Table 10.This table is used to group services that execute mainly create, delete and update operations on the same entity, or group of entities.As services #36 and #43 operate on "Contract proposal" entity, both were grouped together.Using the same reasoning, services #37 and #44 were grouped together, since they operate on "Client" entity.All of this information is used to analyze candidate services, and results in a proposal of which services should be implemented.This proposal should be analyzed further considering other information, like performance issues.In this case, the proposal obtained in Table 10 was accepted, because services (#43) and (#37) have low reuse and will not impact in the performance of services (#36) and (#44) that have higher reuse.This work presents details about some candidate services that were identified and analyzed using our proposals.However, other operations were performed on the other candidate services, and they are presented as follows: • Some candidate services identified from business rules or business requirements that only execute CRUD operations that are already performed by other candidate data services were excluded.
• Services that have high reuse were indicated to be implemented separately.
• Some services that have low reuse and only are invoked together were grouped into a coarser grained service.
• The composite service, identified according to workflow pattern, and responsible for managing client data was grouped together with other services which have low reuse and represent functionality very related to this specific context.
• The service that executes all operations concerning contract proposal generation was indicated to be implemented separately from other services.
• Some very simple composite services, comprising two or three simple services, were identified according to workflow patterns.Since they are very simple compositions, they were not considered for implementation as physical services.

Conclusions and Future Research Perspectives
The deployment of SOA in an organization poses a series of challenges, especially for identifying and specifying a set of services that adequately supports business needs.Proposals for service development life-cycle are typically too generic and fail to take an integrated view of organizational business processes into account.A service life-cycle not only facilitates management of service-oriented systems, but also improves service governance.
Among the activities of a service life-cycle model, we emphasize the service identification and analysis steps.This work proposes a top-down method from EPC business process models that implements a set of heuristics to derive services from business process definitions.The method considers both semantic and syntactic perspectives of process models, in order to bridge the gap between IT support and business activities.Semantic analysis takes business rules, data elements and business requirements into account, while syntactic analysis derives services from business process models according to their structural patterns.The result is a set of candidate services that are identified, scored, sorted, and grouped according to a set of service quality criteria (reuse, existing implementations, part of the demand requirements for development, use by process activities, relationship between services, and service granularity).This helps service analysts to better design and implement services, while also addresses subjective issues such as security, policy decisions, and so on.Moreover, explicit links are defined from business process elements and service descriptions.This improves traceability, and allows for precisely estimating impacts or the required effort AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol.6, No. 1, p. 62-98, 2013.
when a business process evolve, and also trigger changes in the services that support the process, and vice-versa.The association of services and business process models helps in tracing any changes within the models that directly impact IT, as well as changes in IT that should be reflected in the business process models.Furthermore, changes in processes can trigger automatic changes in service implementation.
The proposed method was assessed in a case study in which a business process model for credit request analysis was used as input.The service identification step was applied manually, and resulted in identification of 47 candidate services.Service analysis resulted in 8 services to be designed.
Preliminary versions of the service identification heuristics were applied in a real scenario for Oil Production Diagnosis (Azevedo et al., 2009a;Azevedo et al., 2011).The services identified were validated by system analysts who developed the physical services to support process automation.All the services they implemented were identified by our proposal, and specialists agreed that the consolidated information helped them in implementing the services.
As future work, we intend to apply the proposed method in large-scale case studies to demonstrate its scalability in different domains.We are also studying the subsequent steps (design, implementation, deployment and maintenance) and changes in business process models resulting from service life-cycle steps.Other important future work relates to the service reuse principle.A service can be reused in a variety of contexts; in other words, it can support different business processes.So, a change in a business process can entail service maintenance, and consequently impact other business processes.Management of these changes and business process impacts raises important issues.The descriptions provided in the present work may also be used to specify a supporting tool to automate its execution.In fact, a preliminary prototype that partially supports the identification step was presented by Azevedo et al. (2009b).This tool was implemented using ARIS Report Script, a module of ARIS SOA Architect Platform (http://www.ids-scheer.com),which includes methods for querying elements from business process models in a repository.

Figure 1 .
Figure 1.Input and Output information of Service Identification Phase

Figure 5 .
Figure 5. Examples of part of business process models where candidate services were identified considering control flow heuristics.

Figure 7
Figure 7 present an example of business requirement model which is used to link candidate services identified from the business requirements to CotaWare system.

Figure 7 .
Figure 7. Business requeriment model from CotaWare system presents an example of data model.• Heuristic 28 (Data type model used by the service): Model the data types used by the service in a UML diagram.If a canonical model is used, explain the relationship between classes and attributes of data types and classes of the canonical model.

Figure 9 .
Figure 9. Model of the "Generate contract proposal" activity

Figure 10 .
Figure 10.Granularity map of "Generate credit proposal with adjustment service"

• Service consolidation heuristics: o Heuristic 11 (Service Reuse): The
candidate service reuse is calculated as the sum of times the service is used by each process activity.A candidate service that is identified from a business requirement already implemented must be linked to the systems that implement the requirement.
o Heuristic 12 (Link Candidate Service and System): o Heuristic 14 (Link Candidate Service and Activities): A candidate service must be associated with the activities from which it was identified.o Heuristic 15 (Identify Candidate Services Dependencies): A candidate service must be associated with other candidate services that use it.AZEVEDO, L. G.; SANTORO, F. M.; BAIAO, F.; DIIRR, T.; SOUZA, A.; SOUZA, J. F.; SOUSA, H. P. A Method for Bridging the Gap between Business Process Models and Services.iSys -Revista Brasileira de Sistemas de Informação, Rio de Janeiro, vol.6, No. 1, p. 62-98, 2013.