Service Model Template
Service Model Template
Service Model
Work Product Template
Template Copyright International Business Machines Corporation 2006
1 Description
The Service Model augments other Work Products by capturing information related to services that is not captured in other work products. Information documented in the Service Model is the result of work that spans the identification and specification of services as well the decision-making that is needed to support service realization. The Service Model is composed of several sections (Figure 1 Service Model), each of which is summarized below in Table 1: Service Model Detail. The Service Portfolio and Service Hierarchy are produced during RUP/SOMA Identification. Realization decisions are captured during RUP/SOMA Realization activities. The remaining sections are produced during RUP/SOMA Specification.
Page 1 of 13
Description List of candidate services discovered during RUP/SOMA service identification activities.
RUP/SOMA step where created RUP/SOMA Identification: Domain Decomposition Goal-Service Modeling Existing Asset Analysis
Service Hierarchy
Candidate services organized using a business significant categorization scheme, making evaluation of candidate service more manageable. Domain Decomposition Functional Area Analysis typically provides the classification scheme. Documents the rationale behind why we chose to expose a given candidate service or group of services in the service hierarchy or composition. The Service Litmus Test is applied to candidate services to make exposure decisions. Documents dependencies between services in the model.
RUP/SOMA Identification: Domain Decomposition: Functional Area Analysis Service Specification: Exposure Decisions using the Service Litmus Test Service Specification: Service Dependencies
Service Exposure
Service Dependencies
Service Specification: Service Composition Flow Service Specification: Service Non-functional Requirements Service Specification: Service Message Specifications Service Specification: State Management Decisions Realization: Service Allocation to Components
Service Messages
Documents messages that are exchanged between service consumer and service provider.
State can be an important consideration for composite services and the related decisions are documented here. Documents architectural decisions that deal with how the services will be realized, such as buy, build, subscribe, etc. Nonfunctional requirements are prominent criteria in many of these decisions. Realization Decisions are documented in the Architectural Decisions work product. Table 1: Service Model Detail
Realization Decisions
Page 2 of 13
2 Purpose
Service Modeling is the heart of Service Oriented Architecture (SOA). It is needed to: Identify candidate services and capture decisions about which services will actually be exposed Specify the contract between the service provider and the consumer of the services Associate Services with the components needed to realize these services
The Service Model work product provides a single artifact where services can be identified and specified, regardless of the technique
2.1
Without this product it would be difficult to properly define services and specify the components needed to realize them. This could lead to gaps in the service portfolio, proliferation of unnecessary services, inconsistencies in how services were exposed, and inconsistencies in the design of components needed to realize the services.
2.2
This product is not needed if we do not need to externalize service descriptions at the edge of a significant organizational boundary (i.e. at the edge of a major line of business within an enterprise, or at the edge of the enterprise).
3 Notation
The Service Model captures multiple elaborations of services. The first elaboration begins as a list of candidate services in the Service Portfolio created during service Identification activities. As soon as possible services in the list are organized into a hierarchy using a functional classification scheme (typically based on functional areas identified during domain decomposition). As additional information becomes known, the Services Portfolio is extended with additional attributes that show the mapping of services to business functions, goals and assets. Service Specification activities capture additional information. Service exposure decisions, dependencies, composition and state management decisions associated with compositions, and messages. For convenience, certain types of requirements and constraints are also summarized in the Service Model: specific types of non-functional requirements and architectural decisions.
3.1
Service Portfolio
For simplicity the Service Portfolio can initially be represented as a list of candidate services as shown in Figure 2.
Page 3 of 13
Figure 2: Service Portfolio - initial service list As the number of candidate services increases, an unstructured list can quickly become unmanageable. Therefore, as soon as possible a service classification scheme should be identified so that candidate services can be organized into groups within the classification hierarchy. The Service Hierarchy organizes services in the service portfolio using a uniform classification scheme. The classification scheme is often based on the functional areas identified by RUP/SOMA Domain Decomposition Functional Area Analysis, and Documented in the Functional Area Descriptions work product. Notation for the Service Hierarchy is an outline format as shown in the example in Figure 3.
While a simple list of service names can be a quick starting point, it will eventually be important to capture additional information about each service. This information can be subdivided into two types: information that supports service identification, and information that supports service specification. Service identification is focused on building a portfolio of services that can be associated with business functions, business goals, assets such as existing systems, and an indication of whether the service is considered a candidate service, or has been chosen for exposure. The table shown in Table 2: Service Portfolio template is a template that can be used to document services at the level of detail needed in the service portfolio. Service specification information is discussed in the next Notation section.
Page 4 of 13
Table 2: Service Portfolio template Service: name of service Description: short description of service Status: C for candidate service, E for a service chosen for exposure. Associations: Function/process: name of business function and/or process that the service is associated with (this typically aligns with Functional Areas and/or Process Definition). Depending on the level of detail reached in analysis activities, this could be a business domain, a functional area, a specific function, a business process, or a process step from some level of process decomposition. More specificity in the reference is generally better. Goal: name of a goal or subgoal that the service is associated with (this typically matches a goal or sub-goal listed in the Goal-Service Model). Asset: an asset that is associated with the realization of the service (this typically matches a system listed in the Business Function / System Matrix) Exception Service Operation Input Msg Output Msg (Fault)
3.2
Service Specifications
Service
Service Litmus Test Results Composeability Externalized Description Redundancy Elimination Comments
Table 3: Service Exposure Decision template Service: name of service Expose: Y for expose, N for dont expose Business Alignment: does the service meet business alignment SLT criteria Composability: does the service meet composeability SLT criteria Externalized Description: does the service meet externalized service description SLT criteria Redundancy Elimination: does the service meet redundancy elimination SLT criteria Comments: cases may arise were a decision is made by the business to expose a service even if it does not pass all SLT tests. Document the reason for overriding the SLT test results.
Page 6 of 13
Functional Dependency/Composite Dependency: Reserve Vehicle will depend on Check rates and Make Reservation for its functionality
Pre-condition dependency i.e. another service invocation must have executed successfully before the current invocation can begin execution. Processing dependency i.e. another service invocation is required to complete the successful execution of the current service. Post-condition dependency (not shown) this appears in cases where a service requires another service invocation after its execution.
Figure 4: Types of Service Dependencies Dependencies should be represented visually with accompanying text that describes the nature of the dependencies. One style for diagramming dependencies is shown in Figure 4. For functional dependencies A UML component relationship diagram can also be used. For processing dependencies a UML sequence diagram can be used.
Page 7 of 13
A. Short running, non-interruptible process (micro-flow) Reserve Vehicle is composed of: Check Rates Make Reservation
B. Long running , interruptible process (macro-flow) Rent Vehicle is composed of: Reserve Vehicle Check-out Vehicle Check-in Vehicle
Page 8 of 13
Topic Input Message Output Message Table 5: Rent-a-car Service Messages template Enterprise message formats must be reconciled with the input/output messages of individual services, so they are related and assigned to allow appropriate services to use and update them as needed. Services may need to extract information from or expect output from the Common Enterprise Message format. These expectations are documented in the template below. Service Common Enterprise Message Format Attribute Description of Interaction with Services Input or Output Messages
Page 9 of 13
How service descriptions will be externalized How services are exposed (e.g. Web Services) How messages are formed (i.e., XML, AS2, structured field, proprietary, ) How/where message transformation will be done How security will be enforced at the level of the service interface Service name space issues Division of responsibility between ESB and enterprise components <other service related decision point>
Table 7: Realization Decision Summary table wth example decision points Note that more than one alternative might be adopted for certain decision points. In those cases the decision point should be listed once for each adopted alternative, along with a list of services that the alternative will be applied to.
Example
5 Development Approach
Work Product Template Page 10 of 13
Work Product: Service Model The Service-Oriented Modeling and Architecture (RUP/SOMA) technique paper describes the approach to creating a Service Model in detail. The approach consists of the following steps. Create a Service Portofolio: the RUP/SOMA method describes identification techniques that can be used to add services to the service portfolio. Organize the Service Portfolio using a classification hierarchy: the service candidates in the Service Portfolio can be categorized by applying a classification scheme that is meaningful to the SOA initiative. Functional areas that were identified during Functional Area Analysis provide a useful business context for developing a classification scheme. Make Service Exposure Decisions: The Service Portfolio initially identifies candidate services that have not been fully evaluated for service exposure. Service exposure decisions will eventually be made, at which time some or all of the services in the Service Portfolio will be chosen for exposure. In order identify those services that need to be exposed a set of criteria in the form of the Service Litmus Test (SLT) can be used. This metaphor is used to denote a set of tests, that when applied, will determine if a given set of services should be eligible for exposure. Identify Service Dependency: detailed review of the service will often expose a set of dependencies between services and between services and the applications they rely on for realization of their functionality. Although, most dependencies might be on other (exposed) services, some may be on components that have not been chosen to be exposed as a service. Identify Service Compositions: choreography or orchestration can be used to create a composition of services. That composition may or may not itself be a service. For example Business Process Execution Language for Web Services (BPEL4WS) can be used to implement the choreography or flow of services. Summarize key non-functional requirements: a service consumer typically has expectations such as how fast a service will perform and its level of availability. A service provider may impose certain requirements on a service consumer such as a security related requirement. It is convenient to summarize requirements of this type in the service model to support validation of various aspects of the model as well as decisions related to how services will be realized. Create Message Specification: services require input and output messages. Messages are identified and specified at a high level in the service model (i.e. this is not a detailed level of specification) Identify state management requirements for compositions: although individual services are considered stateless, compositions often have requirements to maintain state information across the invocation of the composed services. The choreographer of the services is often responsible for the management of state. Alternatively, a component that implements and realizes multiple related services or operations on services may need to maintain state between invocations for performance reasons. State Management in SOA environment can be considered to fall into three main categories: Transaction State, Security State and Functional State.
Figure 7: RUP/SOMA Activites overview It is important to understand that while service specification depends on identification to create a service portfolio, realization decisions take place at a number of points concurrent with both identification and specification.
8 References
1. Service-Modeling and Architecture Technique paer 2. Service Litmus Test, Arsanjani, Holley 3. Service Prolfiferation Syndrome, Arsanjani, Holley 4. Business Extensions for UML, OMG . www.omg.org/uml. 5. Krutchen, P., The Rational Unified Process: An Introduction, Addison-Wesley, 1999. 6. Rumbaugh, J., Booch, G., Jacobson, I., The Unified Modeling Language Reference, Addison-Wesley, 1999. 7. IBM Object Technology Center, Developing Object-oriented Software: An Experience-based Approach, Prentice-Hall, 1997, pp. 192-232. 8. Erikson, Hans-Erik; Penker, Magnus; Business Modeling with UML, John Wiley and Sons, 2000, pp. 66-75, pp. 370-371. 9. Marshall, C., Enterprise Modeling, Addison-Wesley, 2000, pp. 7-26. 10. Bory, Deimel, Henn, Koskimies, Pasil, Pomberger, Pree, Stal and Syperski, What characterizes a software component?, Software - Concept and Tools (1998), Vol 19, No.1, pp. 48-56. 11. Workshop on Component-Oriented Programming (WCOP96), ECOOP96 Workshop Reader, Springer-Verlag, 1997, ISBN 3-920993-67-5. 12. Arsanjani, A., Enterprise Component: A Compound Pattern for Building Technology-Neutral Components, proceedings of OOPSLA 2000 Workshop on Business Components, Minneapolis, MN, 2000, to be published by Springer-Verlag, 2001. 13. Arsanjani, A., Rule Object: A Pattern Language for Flexible Modeling and Construction of Business Rules, Washington University Technical Report number: wucs-00-29, Proceedings of the Pattern Languages of Program Design, 2000. 14. Daniels, J., Cheesman, J., UML Components, Addison-Wesley, 2000, pp. 68-73. 15. Jacobson, I., Booch, G., Rumbaugh, J., The Unified Software Development Process, AddisonWesley, 1999, pp.98-106, pp.122-130. 16. Arsanjani, A., Analysis and Design of Distributed Java Business Frameworks using Domain Patterns, Proceedings of TOOLS 99, IEEE Computer Society Press 1999, pp. 490-500.
Work Product Template Page 12 of 13
Work Product: Service Model 17. Meyer, B., Object-oriented Software Construction, Prentice Hall, 1997, pp. 57-61. 18. Arsanjani, A., GOOD: Grammar-oriented Object design, Position Paper for OOPSLA Workshop on Metadata and Active Object Models, 1998, Vancouver, British Columbia. 19. Arsanjani, A., Dynamic Configuration and Collaboration of Components with Self-description, position paper submitted to ECOOP 2001 Workshop on Active Object Models and Meta-modeling, 2001.. 20. Allen, P., Realizing e-business with Components, Addison-Wesley, 2000, pp. 64-71. 21. Arango, G., Domain analysis: from art form to engineering discipline; Proceedings of the fifth international workshop on Software specification and design, 1989, Pages 152 159. 22. McDavid, D., A Standard for Business Architecture Description, IBM Systems Journal. Vol 38, No. 1, 1999. 23. Thibault, S. A. , Marlet, R., and Consel, C., Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation, IEEE Transactions on Software Engineering, vol. 25, pp. 363-377, May 1999. 24. Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns: Elements of reusable Objectoriented Software, Addison-Wesley, 1994. 25. Fowler, M., Analysis Patterns: Reusable Object Models, Addison-Wesley, 1997. 26. Allen, B., and Holtzman, P., Simplifying the Construction of Domain-Specific Automatic Programming Systems: The NASA Automated Software Development Workstation Project, Proceedings of the Space Operations Automation and Robotics Workshop, (Houston, TX), pp. 407-410, NASA Johnson Space Center, Aug. 1987. 27. Ardis, M., Dudak, P., Dor, L., Leu, W., Nakatani, L., Olsen, and Pontrelli, P.,Domain Engineered Configuration Control, in Proceedings of the First Software Product Line Conference (P. Donohoe, ed.), pp. 479-493, Aug. 2000 28. Batory, D., Coglianese, L., Goodwin, M., and Smith, R. , A Domain Model for Avionics Software, Tech. Rep. ADAGE-UT-92-01, Department of Computer Science, University of Texas, Austin, Texas, Feb 1992. 29. Enterprise Component technique paper, part of the LT Componentization and web services execution model.
9 Estimating Considerations
The duration and the amount of effort required to develop the Domain Decomposition Model will vary depending on: Size of enterprise Complexity of enterprise Scope of engagement Quality and completeness of the input work products Experience of team (in technique and industry)
Where all the necessary input is available, (particularly the activity and information models and the usage matrix), then the development of the function model will require approximately 2 - 7 days effort from the consultant responsible for the work product. In addition, effort will be required from the customers staff and will vary with the factors given above.
Page 13 of 13