DRAFT PAPER: THE SMART METHOD Vermeer, Floor, 3849821, Group 2, University of Utrecht, Princetonplein 5, Buys Ballot Laboratorium, 3508 TB Utrecht, The Netherlands, f.e.vermeer@students.uu.nl 1 Introduction The Service–oriented Migration and Reuse Technique (SMART) is used for determining which legacy systems can be used as services in a Service Oriented Architecture (SOA) (Lewis, Morris, O'Brien, Smith, & Wrage, 2005). The goal of this method is for organizations to reuse or migrate the existing legacy system to a SOA environment. Reusing a legacy system can be defined as integrating the existing system into a SOA environment using a wrapper or enterprise service bus, while migrating legacy systems is the process of moving a legacy system to a new system and restructuring it where needed (Umar & Zordan, 2008). The method provides tasks and suggests documents in order to identify the context, identify the current system capabilities, describe the target SOA system state, analyze gaps between the current and target state and describes the steps needed in order to create a migration strategy (Lewis G. , Morris, Smith, & Simanta, 2008). The SMART process is as follows: Figure 1: the SMART method elements. Adapted from: (Lewis et al. , 2008). As can be seen in the above figure, the method consists of six main activities and one decision point. The first activity, Establish context, is executed in order to establish what the goal for the migration is and who the stakeholders are. A preliminary identification of candidate services is also done. In the following decision point, the Project team determines if the migration is feasible, has potential or is not feasible. If the migration is not feasible the project is cancelled. When the migration has potential, the previous step is repeated in order to gather more information. If the migration is feasible the activities Candidate services, Describe existing capabilities and Describe the target SOA state are executed. The goal of the Candidate service activity is to determine which services are part of the migration or reuse project. The activity Describe existing capability is executed in order to identify the legacy components that are part of the migration project. Furthermore, during the Describe target SOA state activity information is gathered about the target SOA environment, such as the major components and technologies. In the next step the gap between the current system state and target SOA state is analyzed. Based on this analysis the options for migrating or reusing legacy components to the target SOA environment are created. In the final step the strategy for transferring to a SOA environment is created. The strategy includes among others the migration path, guidelines, feasibility and risk of the migration or reuse project. The method originates from the Option Analysis for Reengineering method, which was used to support the analysis for the possible reuse of software components (Bergey, O'Brien, & Smith, 2002). The method is developed by the Software Engineering Institute at the Carnegie Mellon University. The main activities of the Software Engineering Institute is to perform applied research in collaboration with their research partners The research of the Software Engineering Institute varies from Intelligence and Forensics to Ultra-Large Scale Systems. Furthermore, it is funded by the U.S. Department of Defense (DoD), who decided to adopt this method for their systems (Bergey et al., 2002). The next chapter provides an example of the SMART method. The third chapter describes the origin of the method and related work. The fourth chapter provides the Process Deliverable diagram(PDD) of this method. The fifth chapter contains an activity table, describing all activities in the PDD and the sixth chapter provides the concept table, which contains a description of all concepts in the PDD. The seventh chapter provides the references of the literature used in this document. In Appendix A a template for the service table concept is provided. 2 Example This chapter describes an example of how the SMART method can be applied. The example describes a Dutch municipality that wants to analyze the potential reuse of their legacy systems to a SOA environment. While the method describes that the method fragments do not have to be performed sub sequentially and can be performed simultaneously, this example will describe the method fragments in a logical order for clarity reasons. Furthermore, the actions in this example are performed by the SMART project team, further referred to as ‘The project team’. 2.1 Establish context The system administrators are identified as stakeholders in the role of owner, a senior user is appointed to represent the current and future users of the system and an external consulting firm is identified as a stakeholder in the role of developer of the legacy systems. The stakeholders are interviewed using the system migration interview guide (SMIG) (Lewiset al., 2008). The system administrators explain that the goal of the migration is to provide more interoperability within the system handling permit requests and the application that handles the basic registration database of the municipality. The system administrator explains that the current systems do not support the reuse of data. One of the business processes that is affected by this constraint is the Permit Request process, because it is not possible to extract data that is already available in other systems. The legacy components related to this business process are identified and put into the business process-service mapping document. Furthermore, during this method fragment the project team makes a characteristics list to identify for which system components information needs to be gathered. A preliminary list containing migration issues is also created. This list contains possible issues that can arise during the migration process, such as privacy issues. These two lists are updated throughout the SMART process when needed. 2.2 Migration feasibility decision and candidate Services After the context was described, it was immediately determined there is a very clear goal for the project and the reuse of legacy components is feasible. During the interviews with the senior user, it became clear that in order to file a permit, the personal information of the citizen or organization has to be registered again, instead of using the already available data in the basic registration database. Therefore, the candidate services in this example are related to extracting data from the Basic Registration database. The candidate services are put into a service table. At this point a service table can look as follows: Name Description Associated Inputs Outputs legacy QoS requirements component Load_data_citizen Loads the citizen data Citizen_ Citizen_N Has to be BSN ame, available Registration database Citizen_Bi Monday to to a connected desktop rthdate, Friday from application Citizen_ad 9:00 to 17:00 ress, … and 9:00 to from the Basic BGA 21:00 on Thursday Load_data_Organi Loads the data of an zation BAG Chamber Building_ Has to be organization from the ofComme Address, available Basic Registration rceNumb Building_ Monday to database to a er Owner, … Friday from connected desktop 9:00 to 17:00 application and 9:00 to 21:00 on Thursday Search_Citizen Provides a search BGA Citizen_ Citizen_na Has to be service to look for Name, me, available citizens in the Basic Citizen_ Citizen_A Monday to registration database Birthday, ddress, Friday from Citizen_P Citizen_bi 9:00 to 17:00 ostcalcod rthday and 9:00 to e 21:00 on Thursday … …. … … … … Table 1: A Service table 2.3 Describe existing capabilities The main goal of this method fragment is to gather descriptive data about existing systems, such as age, capacity and operating platform. This information is extracted from the system administrators. The external consulting firm is interviewed about the architecture of the systems, design paradigms, code complexity, level of documentation, module coupling, interfaces for systems and users and dependencies on other components or commercial products (Lewis, Morris, O'Brien, Smith, & Wrage, 2005). The systems at the municipality are hosted on a Windows server platform. The applications are made using a .NET programming language with around 200.000 lines of code. The architecture of the systems is not formally documented, but the consultants of the external firm are able to distinguish components in the system if needed. The systems use an Oracle database to save data in. The current system configuration is depicted in the following picture: Figure 2: The current system configuration As can be seen in Figure 2, the users of the system can access the permit application data and basic data through a desktop application. The databases are not connected in any way and therefore data from the Basic Registration server cannot be reused in the permit application. The project team creates a component table that includes information about the components considered for migration and the characteristics (from the characteristics list). The migration issue list is updated with an entry about the missing architecture documentation. 2.4 Describe the target SOA state In order to implement the selected services, the configuration of the current system has to be changed. The goal of this step is to create the notational service oriented architecture based on the candidate services and legacy components. The notational service oriented architecture depicts the target SOA environment. The new system configuration of the example is depicted in Figure 3. Figure 3: New system configuration As can be seen in the picture, the services (CS) have replaced the physical systems in the depiction. CS 1 provides an example of how services can reuse and support interoperability of services. In this example CS 1 is a standard interface that can extract data from the Basic Registration database and load it into any desktop application that is linked to the service. All services that need to be included in the SOA architecture are put in the service table. 2.5 Analyze gap In collaboration with the external consulting firm, the project team reconstructed the architecture by analyzing the existing system (Kazman, O'Brien & Verhoef, 2003; O'Brien, Stoermer & Verhoef, 2002). The project team is then able to estimate the cost, effort and risk for migrating the components to services or to build the services from scratch. These estimates are put in the service-component alternative concept. 2.6 Develop migration strategy The project team decides to construct a wrapper around their legacy systems in order to reach a quick solution (Sneed, 2006). The services that are created by the wrapper include the loading and saving of data. The results of the method are put in a service migration strategy document and presented to the relevant stakeholders. 3 Related literature The SMART method originates from the Option Analysis for Reengineering Method (Bergeyet al., 2002). The option analysis method is developed in order to identify reusable software components in older systems. The first version of the SMART method described the method fragments and deliverables of the method (Lewis et al, 2005). Since then the method has been elaborated on by adding a detailed process for the method and providing tools for using the method, such as the SMIG and an automated tool to support the method (Lewis et al, 2008). Much research is done on the subject of SOA migration, e.g. (Umar & Zordan, 2008; Razavian & Lago, 2010; Sneed, 2006; Canfora, Fasolino, Frattollilo, & Tramontana, 2008). For instance, Sneed (2006) and Canfora, Fasolino, Frattollilo and Tramontana (2008) describe a wrapping approach for reusing legacy systems in a SOA architecture. The wrapping approach is based on building a ‘shell’ around a legacy systems that provides a service interface and interacts with the legacy system. Another research developed a decision model for determining if a legacy component should be integrated or migrated (Umar & Zordan, 2008). Razavian and Lago (2010) provide a conceptual framework for understanding what needs to be included in a SOA migration project. Comparing the SMART method to other research, it provides an overall process to determine what services to implement and with which method (e.g. reuse or migration) and is limited in how to actually transform a legacy component into a SOA environment (Razavian & Lago, 2010). There are several cases where this method is applied. The creators of the method provide an example at the Department of Defense for a migrating a mission status system (Lewis et al., 2008). In their example, the method is executed according to the steps described earlier in this document. As a result of the project a migration strategy was documented which describes the possibilities for migrating the legacy system. Another example is provided in the research of Razavian and Lago (2010), who briefly describe the method in a migration for a flight booking system. Furthermore, Lewis and Smith (2008) provide a description for the usage of the SMART tool that has been developed to support the SMART process. 4 Process Deliverable Diagram Figure 4 is the Product Deliverable Diagram (PDD) for the Service migration and Reuse technique (SMART) method (Lewis et al., 2008). The PDD illustrates which activities are performed and which concepts are created during a method (van de Weerd & Brinkkemper, 2008). The left side of the method shows the activities that are performed. Six main activities and three decision point can be identified. On the right side of the PDD the concepts created during this method are shown. The work of Weerd and Brinkkemper (2008) explains the notations used in this diagram. In the sections following the PDD additional rules, activities and concepts are explained. TARGET SOA ENVIRONMENT STAKEHOLDER LIST Status Technology Main components History 1..* Establish migration context Understand business and technical context LEGACY SYSTEM Identify stakeholders 1 CHARACTERISTICS LIST Gather basic information Identify candidate services 1..* 1..* Create migration issue list Main functionality Size Technology Age History Users Is elaborated in [Migration has potential] 1 MIGRATION ISSUE LIST 1..* [Migration not feasible] BUSINESS-PROCESS SERVICE MAPPING [Migration feasible] 1 Is addressed in Is elaborated in Define candidate services Is associated with 1..* Select candidate services SERVICE TABLE Specify candidate services Candidate service Service input Service output Quality of service requirements 1..* 1..* DESCRIPTIVE DATA Name Function Size Language Operating platform Age 1..* 1 Describe existing capability Interview technical personnel COMPONENT TABLE 1..* ARCHITECTURE VIEW 1..* DESIGN PARADIGM 1 1..* 1..* SYSTEM QUALITY 1..* CHANGE HISTORY 1..* USER STATISFACTION 1..* EXISTING PROBLEM 1 Describe target SOA environment NOTIONAL SERVICE ORIENTED ARCHITECTURE Gather information 1 1..* 1..* SERVICE CONSUMER INFRASTRUCTURE COMPONENT Analyze gap 1..* Estimate risk INTERACTION Estimate effort Estimate cost Create service-component alternatives Develop migration strategy Develop migration strategy SERVICE-COMPONENT ALTERNATIVE 0..* GUIDELINE 1 MIGRATION STRATEGY Feasibility Risk Order 1 0..* 0..* Figure 4: Process deliverable diagram of the SMART method 0..* MIGRATION ISSUE GUIDELINE 0..* SERVICE REFERENCE ARCHITECTURE 1..* MECHANISM GUIDELINE 1..* OPTION FOR SOURCE CODE NEED FOR ADDITIONAL INFORMATION MIGRATION PATH 1 1..* OPTION 1..* 4.1 Rules and issues This section describes additional rules that are not modelled in the PDD. All the activities are performed by a SMART project team (Lewiset al., 2005). The activities Define candidate services, Describe Existing Capabilities and Describe Target Environment are supported by the Service Migration Interview Guide (SMIG). The SMIG contains questions that can help to gather information and interview relevant personnel (Lewis et al., 2008). The STAKEHOLDER LIST, CHARACTERISTICS LIST, MIGRATION ISSUE LIST, BUSINESS PROCESS-SERVICE MAPPING, SERVICE TABLE, COMPONENT TABLE, NOTIONAL SERVICE ORIENTED ARCHITECTURE and SERVICE-COMPONENT ALTERNATIVE concepts are created in the related (sub)activity and are updated throughout the method when needed. The main activities of this method are described as iterative. This means that based on the output of one activity, a previous activity might have to be reexecuted. 5 Activity table Table 2 gives an explanation of the activities and sub-activities that are depicted in the PDD. The explanation that is given is based on the description of the method by Lewis et al. (2008). Activity Sub-activity Description Establish migration context Understand business and The rationale, goals and expectations are identified for the Technical context migration project. Furthermore, earlier SOA projects and constraints are investigated. Identify stakeholders The stakeholders that are responsible for funding and driving the project, have knowledge about legacy systems and the target SOA environment, and stakeholders who create a demand for a SOA environment are identified. The identified stakeholders are put in a STAKEHOLDER LIST. Gather basic information Basic information about the legacy systems and target soa enviroment is gathered and is put in a CHARACTERISTICS LIST. Identify candidate services Candidate services are identified based on business goals, processess and the supporting legacy systems for these aspects. The candidate services are put in a BUSINESS-PROCESS SERVICE MAPPING together with the current businness processess. Create migration issue list During this activity a list with possible migration issues is created. This list is further updated throughout the method when needed. Define candidate services Select candidate services Several candidate services are selected from the previously identifies candidate services for the migration project. Specify candidate services The selected candidate services are specified with service in- and outputs and quality of service requirements. The specified services are put into a SERVICE TABLE. Describe existing capabilities Interview technical personnel Technical personnel is interviewed about the technical environment and the legacy systems that provide the functionality that is needed for the candidate services. Information from the technical personnel is retreived regarding descriptive data (e.g. name and function ), Architecture views, Design paradigms, System quality, Change history, User statisfaction and existing problems. Based on the gathered information, a COMPONENT TABLE is created (Lewis et al., 2008). Describe target SOA Gather information environment Information is gathered about the target SOA environment, which includes the major components, guidelines for implementation, interaction patterns and quality of service requirements. Based on this information the NOTIONAL SERVICE ORIENTED ARCHITECTURE is created. Analyze gap Estimate Risk During this sub-activity, the risk is estimated for converting the legacy components into services. Estimate effort During this sub-activity, the effort is estimated for converting the legacy components into services. Estimate cost During this sub-activity, the cost is estimated for converting the legacy components into services. Develop migration strategy Create service component During this step it is determined which functionality of legacy Alternatives components is needed to create the services. Develop migration strategy Based on the information gathered in the previous steps a MIGRATION STRATEGY is developed. Table 2: Activity table of the smart method 6 Concept table Table 3 explains the concepts used in the PDD. Concept Description STAKEHOLDER LIST The STAKEHOLDER LIST contains information about the stakeholders of the migration project. The stakeholders list includes managers, user representatives, system developers , system architects and sponsors of the project (Lewis et al., 2008). CHARACTERISTICS LIST The CHARACTERISTICS LIST is composed of information about LEGACY SYSTEMs and the TARGET SOA ENVIRONMENT. It contains information regarding all basic characteristics of these systems, such as main functionality, size and age (Lewis et al., 2008). LEGACY SYSTEM This concept contains basic information about the existing legacy systems. A legacy system is a system that has been developed in the past for substantial costs (Bergey, Smith, & Weiderman, 1999). The information regarding main functionality, size, technology, age, history and users is stored. This information is used later in the method as a possible determinant for deciding if the migration is feasible. TARGET SOA ENVIRONMENT In this concept basic information about the target soa environment, including status, technologies, main components and history, is stored (Lewis et al., 2008). BUSINESS-PROCESS SERVICE The BUSINESS-PROCESS SERVICE MAPPING depicts the linkage between the current business MAPPING processess and the candidate services (Lewis et al., 2008). The candidate services that are selected for migration are elaborated in the SERVICE TABLE. MIGRATION ISSUE LIST This list containts all possbile issues that can arise during the migration. Possible issues can be related to e.g. limited functionality of legacy systems or contradictory business goals (Lewis et al., 2008). SERVICE TABLE The service table describes the candidate services and provides information about service input and outputs and requirements for the quality of the service. Services are defined as: ”Reusable components that represent business or mission tasks” (Lewis et al., 2008, p. 2). The services in this table are input for the NOTATIONAL SERVICE ORIENTED ARCHITECTURE. COMPONENT TABLE The COMPONENT TABLE contains detailed information about the legacy systems that are included in the migration project (Lewis et al., 2008). The components are input for the NOTATIONAL SERVICE ORIENTED ARCHITECTURE. NOTIONAL SERVICE ORIENTED The NOTIONAL SERVICE ORIENTED ARCHITECTURE is an illustration of how the target SOA ARCHITECTURE environment will be configured.It consists of SERVICE CONSUMER(s), INFRASTRUCTURE COMPONENT(s), SERVICE(s), COMPONENT(s) and INTERACTION(s) between these components (Lewis et al., 2008). SERVICE CONSUMER The SERVICE CONSUMER concept represents the entities that use a service.A service consumer is defined as: ”Clients for the functionality provided by the services” (Lewis et al., 2008, p. 2). INFRASTRUCTURE COMPONENT The INFRASTRUCTURE COMPONENT(s) make up the infrastructure of the target SOA environment. The INFRASTRUCTURE COMPONENT(s) connects the SERVICE CONSUMER(s) to the actual SERVICE(s). Microsoft IIS and ASP.NET are examples of infrastructure components (Lewis et al., 2008). INTERACTION The INTERACTION concept illustrates the interactions between the LEGACY COMPONENT(s), SERVICE(s), INFRASTRUCTURE COMPONENT(s) and SERVICE CONSUMER(s) (Lewis et al., 2008). SERVICE COMPONENTS The SERVICE COMPONENTS ALTERNATIVE concept provides information about which technique ALTERNATIVE to use in order to realize the candidate services. Examples of SERVICE COMPONENT ALTERNATIVEs are a wrapper approach, replace or renew legacy component, (partially) rewrite the code of the legacy system (Lewis et al., 2008). MIGRATION STRATEGY The MIGRATION STRATEGY describes the strategy for adjusting the legacy components to the target SOA environment. The MIGRATION STRATEGY describes the feasibility, risk and options for executing the migration strategy. The MIGRATION STRATEGY may include GUIDELINEs, the MIGRATION PATH and NEED FOR ADDITIONAL INFORMATION (Lewis et al., 2008). MIGRATION PATH The MIGRATION STRATEGY desrcibes in which path the migration will be executed. The MIGRATION PATH may consist of one or more OPTIONs. For example, a MIGRATION PATH describes that a wrapper will be developed around a legacy system initially, followed by the creation of a whole new system (Lewis et al., 2008). OPTION An OPTION represents a solution for transferring the legacy system to the target SOA environment. Such an solution might be a wrapping approach or rewriting (pieces) of code (Lewis et al., 2008). NEED FOR ADDITIONAL Any need for additional information or training is represented by this concept. Market INFORMATION information or the need for a workshop or training are examples of this concept (Lewis et al., 2008). GUIDELINE The GUIDELINE is used to help with creating and identifying services. The concept is an aggregation of the MIGRATION ISSUE, SERVICER REFERENCE ARCHITECURE, MECHANISMs and OPTION FOR SOURCE CODE concepts (Lewis et al., 2008). MIGRATION ISSUE GUIDELINE An MIGRATION ISSUE GUIDELINE might be needed if there is a specific migration issue (from the MIGRATION ISSUE LIST) that needs to be supported by a guideline (Lewis et al., 2008). SERVICE REFERENCE The SERVICE REFFERENCE ARCHITECTURE is used to separate service components into layers. ARCHITECTURE This concept is used when constant change or unstablity of certain components is expected. Examples of SERVICE REFERENCE ARCHITECTURE layers are Service interface layer and service code layer. (Lewis et al., 2008). MECHANISM GUIDELINE The MECHANISM GUIDELINE concept supports the creation of specific techniques used to transfer the legacy systems to the target SOA environment, such as a wrapping approach or rerwiting (pieces) of code (Lewis et al., 2008). OPTION FOR SOURCE CODE The OPTION FOR SOURCE CODE concept describes which code from other systems can be reused to create the selected services, such as the legacy system or commercial products (Lewis et al., 2008). Table 3: Concept table of the SMART method 7 References Bergey, J., O'Brien, L., & Smith, D. (2002). Using the Options Analysis for Reengineering (OAR) method for Mining Components for a Product Line. Proceedings of the Second Software Product Line Conference (SPLC2). San Diego: Springer. 316-327. Bergey, J., Smith, D., & Weiderman, N. (1999). DoD Legacy System Migration Guidelines. Pittsburg: Software Engineering Institute, Carnegie Mellon. Canfora, G., Fasolino, A. R., Frattollilo, G., & Tramontana, P. (2008). A wrapping approach for migrating legacy system interactive functionalities to Service Oriented Architectures. The Journal of Systems and Software , 81 (4), 463-480. Clarkson, M. (1995). A Stakeholder Framework for Analyzing and Evaluating Corporate Social Performance. The Academy of Management Review , 20 (1), 92-117. Kazman, R., O'Brien, L., & Verhoef, C. (2003). Architecture reconstruction guidelines, 2nd edition. Pittsburgh: Software Engineering Institute, Carnegie Mellon University. Lewis, G., & Smith, D. (2008). SMART Tool Demonstration. 12th European Conference on Software Maintenance and Reengineering. Athens: IEEE. 332-334 Lewis, G., Morris, E., O'Brien, L., Smith, D., & Wrage, L. (2005). SMART: The Service-Oriented Migration and Reuse Technique. Pittsburg: Software Engineering Institute, Carnegie Mellon University. Lewis, G., Morris, E., Smith, D., & Simanta, S. (2008). SMART: Analyzing the reuse potential of legacy components in a service-oriented architecture environment. Pittsburgh: Software Engineering Institute, Carnegie Mellon University. O'Brien, L., Stoermer, C., & Verhoef, C. (2002). Software architecture reconstruction: Practice Needs and Current Approaches. Pittsburgh: Software Engineering Institute, Carnegie Mellon University. Razavian, M., & Lago, P. (2010). Understanding SOA migration using a conceptual framework. Journal of Systems Integration , 1 (3), 33-44. Sneed, H. (2006). Wrapping legacy software for reuse in a SOA. Proceedings of the 10th European Conference Bari: IEEE. 3-14. Umar, A., & Zordan, A. (2008). Reengineering for Service Oriented Architecure: A strategic decision model for integration versus migration. The Journal of Systems and Software , 82 (3), 448-462. van de Weerd, I., & Brinkkemper, S. (2008). Meta-modeling for situational analysis and design methods. Handbook of research on modern systems analysis and design technologies and applications , 38–58. 8 Name Appendix A: Service table template Description Associated legacy component Inputs Outputs QoS requirements