1 Introduction to SOA. 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description,

  • Published on

  • View

  • Download

Embed Size (px)


<ul><li> Slide 1 </li> <li> 1 Introduction to SOA </li> <li> Slide 2 </li> <li> 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description, discovery, and extended features. Service-oriented architecture (SOA) A methodology for achieving application interoperability and reuse of IT assets. Business process management (BPM) </li> <li> Slide 3 </li> <li> 3 Service-Oriented Development A service is defined by the messages it exchanges with other services. Benefits of service-oriented development Reuse: services for reuse Efficiency: to quickly and easily create new services and applications Loose technology coupling: independent to execution environment Division of responsibility: separation of concerns between the business analysts and service developers </li> <li> Slide 4 </li> <li> 4 What is SOA? A style of design that guides all aspects of creating and using business services A way to define and provision an IT infrastructure to allow different applications to exchange data and participate in business process Business services are the key organizing principle Service orientation focuses on the description of the business problem Cleanly and completely separate, by interpreting a text file, a service description from its execution environment </li> <li> Slide 5 </li> <li> 5 Web Services Web services are pervasive, simple, and platform- neutral. The provider publishes a WSDL description of its Web service. The requester accesses the description using a UDDI registry and requests the service by sending a SOAP message. Registry RequesterProvider SOAP UDDI WSDL </li> <li> Slide 6 </li> <li> 6 Primary Service Characteristics Loosely coupled Interface coupling Technology coupling Process coupling A well-defined interface (or service contract) Define the services capabilities and how to invoke the service Separate the externally accessible interface from the implementation </li> <li> Slide 7 </li> <li> 7 Primary Service Characteristics (cont.) Meaningful to service requesters Capture the essence of the business service without restricting future reuse Use a business-oriented vocabulary Avoid exposing technical details Standards-based Services should be based on open standards as much as possible </li> <li> Slide 8 </li> <li> 8 Secondary Service Characteristics Predictable service-level agreements SLA defines response time, throughput, availability, etc. Dynamic, discoverable, metadata-driven Services can be discovered and consumed without intervention of the provider. The interface should use metadata to define service capabilities and constraints. The interface should be machine-readable so that they can be dynamically registered and discovered. </li> <li> Slide 9 </li> <li> 9 Secondary Service Characteristics (cont.) Design service contracts with related services in mind Design the service-level data model (or the XML Schema definition of the documents) and all of the related interfaces together Implementation independent of other services Consider the need for compensating transactions A compensating transaction can undone a completed transaction by canceling its results. </li> <li> Slide 10 </li> <li> 10 Secondary Service Characteristics (cont.) Design for multiple invocation styles If forced to choose one, choose asynchronous queuing Stateless Design services with performance in mind Service invocations should NOT be treated like local function calls Avoid fine-grained services </li> <li> Slide 11 </li> <li> 11 Object Reuse vs. Service Reuse Building objects is easy Building high-quality, reusable objects is hard Reusing object libraries and object frameworks is moderately hard Building Web services is easy Building high-quality, reusable business services is hard Reusing business services is relatively easy </li> <li> Slide 12 </li> <li> 12 Too Much Reuse? A highly reusable service The interface for the data access service accepts a SQL query as input and returns an XML structure as the result. It violates SOAs loose-coupling principle The service requester needs to know about how the data is stored and the structure of data. Expensive maintenance problem. </li> </ul>


View more >