CHAPTER 7 SOA DEVELOPMENT LIFECYCLE SE 458 SERVICE ORIENTED ARCHITECTURE Assist. Prof. Dr. Volkan TUNALI Faculty of Engineering and Natural Sciences / Maltepe University
Topics 2 SOA Design & Development Milestones Quality of SO Design & Development Overview of Service Development Lifecycle Phases of Service-Oriented Design & Development The Planning Phase The Analysis Phase The Service Design Phase The Service Construction Phase The Service Test Phase The Service Deployment Phase The Service Execution Phase
SOA Design & Development Milestones 3 Several important design and development factors drive service-oriented solutions and their underlying SOA implementations. Reusing existing functionality Minimizing costs of disruption Employing an incremental mode of integration Providing increased flexibility Providing scalability Complying with standards
Quality of SO Design & Development 4 Two key principles serve as the foundation for service design: service coupling cohesion The purpose of these two principles is to create services that encompass the right amount of functionality to be useful and to encourage code reuse.
Service Coupling 5 One way of measuring service design quality is coupling, or the degree of interdependence between two business processes. Objective is to minimize coupling: that is, to make (self-contained) business processes as independent as possible by not having any knowledge of or relying on any other business processes. Low coupling between business processes indicates a well-partitioned system that avoids the problems of service redundancy and duplication.
Service Coupling 6 Coupling can be achieved by reducing the number of connections between services in a business process, eliminating unnecessary relationships between them, and by reducing the number of necessary relationships if possible. Low coupling increases the degree of isolation of one business process from changes that happen to another; simplifies design understanding; and increases the reuse potential.
Service Cohesion 7 Cohesion is the degree of the strength of functional relatedness of operations within a service. Service developers should create strong, highly cohesive business processes, business processes whose services and service operations are strongly and genuinely related to one another. High cohesion increases the clarity and ease of comprehension of the design; simplifies maintenance and future enhancements; achieves service granularity at a fairly reasonable level; and often supports low coupling.
Service Granularity 8 Service granularity refers to the scope of functionality exposed by a service. Services may exhibit different levels of granularity. A coarse-grained interface might be the complete processing for a given service, such as SubmitPurchaseOrder, where the message contains all of the business information needed to define a purchase order. A fine-grained interface might have separate operations for CreateNewPurchaseOrder, SetShippingAddress, AddItem, and so forth.
Service Granularity 9 When Web services are deployed across the Internet the frequency of message exchange becomes an important factor. Sending and receiving more information in a single request is more efficient in a network environment than sending many fine-grained messages. Fine-grained messages result in increased network traffic and make handling errors more difficult.
Overview of Service Development Lifecycle 10 Phases in the SDLC methodology are planning, analysis, design, construction, testing, provisioning, deployment, execution, and monitoring
Phases of Service-Oriented Design & Dev. 11
The Planning Phase 12 The project feasibility, goals, rules, and procedures are set and requirements are gathered. More specifically, the planning phase determines the feasibility, nature, and scope of service solutions in the context of an enterprise.
The Analysis Phase 13 Service analysis aims at identifying, conceptualizing, and rationalizing business processes as a set of interacting Web services. The ultimate objective of service analysis is to provide an in-depth understanding of the functionality, scope, reuse, and granularity of candidate business processes and services.
The Service Design Phase 14 Conceptual processes and services are transformed from abstract entities into a set of concrete service interfaces. Designing a service-oriented application requires developers to define related well-documented interfaces for all conceptual services identified by the analysis phase prior to constructing them.
The Service Construction Phase 15 Service construction involves implementing Web services and business processes using the specifications that were developed during the design phase. Two-pronged activity: the service provider side the service client side
The Provider Perspective 16 Green-field development method Develop the new Web service content: Define a new Web service interface Top-down approach Generate the Web service implementation skeleton Develop the new Web service Bottom-up approach Develop the Web service interface Meet-in-the-middle realization Generate the service implementation skeleton Develop the service wrapper
The Provider Perspective 17
The Client Perspective 18 Client uses a local service stub or proxy to access a remote Web service. The WSDL definition of the service is used to generate a stub or proxy at the client s environment. The stub or proxy knows at request time how to invoke the Web service on the basis of binding information. Binding to a service could happen either statically or dynamically.
The Client Perspective 19
Static Client 20 A static client is created at construction time by locating the service implementation definition for the single Web service that will be used by the service requestor. The service implementation definition contains a reference to the service interface, service binding, and service endpoint that will be used to generate the service proxy code. The service proxy contains a complete implementation of the client application that can be used by the service requestor to invoke Web service operations.
Dynamic Client 21 A dynamic client is used when a service requestor wants to use a specific type of Web service with a known service definition whose implementation is not known until run-time or can change at runtime. Service operations, the parameters associated with the operations, and the way to bind to the service are already known at design time. The endpoint where this service is provided is not known at design time.
The Service Test Phase 22 Goal of testing is to analyze or operate the implementation in a test environment in order to expose any failures that are latent in the code as it is integrated, configured, and run on diverse platforms.
The Service Deployment Phase 23 Deployment means rolling out new processes to all the participants, including other enterprises, applications, and other processes. It is the publication of the service interface and service implementation definition.
The Service Execution Phase 24 This phase includes the actual binding and runtime invocation of the deployed services as well as managing and monitoring their lifecycle. During the execution phase, Web services are fully deployed and operational. A service requestor can find the service definition and invoke all defined service operations
Summary 25 A service-oriented design and development methodology is based on an iterative and incremental process that comprises one preparatory and eight distinct main phases that concentrate on business processes and may be traversed iteratively. These are planning, analysis, design, construction, testing, provisioning, deployment, execution, and monitoring.