Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Service Oriented Architecture
  2. 2. Service Oriented Architecture <ul><li>service-oriented architecture ( SOA ) provides the methods and infrastructure required to develop composite applications based on services. </li></ul><ul><li>SOA separates functions into distinct units, or services, which developers make accessible over a network so users can combine and reuse them in the production of business applications. </li></ul><ul><li>Service-orientation aims at a loose coupling of services with operating systems, programming languages, applications and other technologies that underlie applications. </li></ul><ul><ul><li>In a SOA environment, users can access independent services without knowledge of their underlying platform implementation [ </li></ul></ul><ul><ul><li>SOA relies on services exposing their functionality via interfaces that other applications and services can read to understand how to utilize those services. </li></ul></ul>
  3. 4. Services <ul><li>Services comprise intrinsically unassociated units of functionality that have no calls to each other embedded in them (loose coupling). </li></ul><ul><li>They use defined protocols that describe how one or more services can &quot;talk&quot; to each other. </li></ul>
  4. 5. Service Interface <ul><li>Services inter-operate based on a formal definition (or contract) that is independent of the underlying platform and programming language. </li></ul><ul><li>The interface definition hides the implementation of the language-specific service so SOA-based systems can function independently of development technologies and platforms (such as Java, .NET etc). </li></ul><ul><ul><li>Services written in C# running on .NET platforms and services written in Java running on Java EE platforms, for example, can both be consumed by a common composite application (or client). </li></ul></ul><ul><li>Developers can also wrap COBOL legacy systems and present them as software services. This has extended the useful life of many core legacy systems indefinitely, no matter what language they originally used. </li></ul>
  5. 6. Service Granularity <ul><li>SOA has the goal of allowing users to string together fairly large chunks of functionality to form composite applications </li></ul><ul><li>The larger the chunks, the fewer the interface points required to implement any given set of functionality; however, very large chunks of functionality may not prove sufficiently granular for easy reuse. </li></ul><ul><li>Each interface brings with it some amount of processing overhead, so there is a performance consideration in choosing the granularity of services. </li></ul>
  6. 7. Composite Applications <ul><li>Developers create services either from scratch or by exposing existing services in existing systems. </li></ul><ul><li>Business Process Experts link and sequence services, in a process known as orchestration , to meet a new or existing business system requirement. </li></ul><ul><li>Professionals responsible for the SOA infrastructure manage the connections among the various components of the application </li></ul>
  7. 8. Orchestration <ul><li>Orchestration describes the arrangement, coordination, and management of complex computer systems, middleware, and services. </li></ul><ul><li>Orchestration for composite applications is often accomplished using high-level languages such as BPEL and specifications such as WS-CDL and WS-Coordination </li></ul>
  8. 9. <ul><li>Standards </li></ul>05/06/10 © 2008 Ross Hightower
  9. 10. Service Alternatives <ul><li>Many SOA implementations are based on web services but this is not universal </li></ul><ul><ul><li>A web service is a service accessed via on universal Internet standards (i.e. SOAP, WSDL, HTTP, etc.) </li></ul></ul><ul><ul><li>These standards (also referred to as Web Service specifications) provide the widest interoperability and some protection from lock-in to proprietary vendor software. </li></ul></ul><ul><li>There are, however, alternatives such as Jini , CORBA or REST . </li></ul>
  10. 11. <ul><li>XML is standard for creating hierarchical, machine and human-readable text documents. </li></ul><ul><ul><li>A markup language use tags to organize the document into sections. HTML is a familiar example of a markup language </li></ul></ul><ul><ul><li>XML is extensible because developers can create whatever tags they require </li></ul></ul><ul><li>XML can be used to express almost any type of data in text format and is used extensively to transmit and store data. </li></ul>Extensible Markup Language (XML) 05/06/10 © 2008 Ross Hightower
  11. 12. <ul><li>SOAP is a protocol used to exchange data and execute service calls. </li></ul><ul><ul><li>XML is used to represent data </li></ul></ul><ul><ul><li>HTTP is used to transmit messages </li></ul></ul><ul><li>SOAP XML messages consist of an optional header and body </li></ul><ul><ul><li>Header contains metadata about the message (e.g. encryption information or routing information) </li></ul></ul><ul><ul><li>Body contains message data which may be, for example, service calls, error messages or actual data </li></ul></ul><ul><ul><li>Binary data such as graphics can be attached using MIME </li></ul></ul>SOAP 05/06/10 © 2008 Ross Hightower
  12. 13. <ul><li>WSDL is based on XML and is a standard for representing the meta data that describes the functionality of web services independent of implementation platform. </li></ul><ul><li>WSDL messages provide all the information required to use a service: </li></ul><ul><ul><li>Operations provided by a web service </li></ul></ul><ul><ul><li>Access protocol (e.g. SOAP) </li></ul></ul><ul><ul><li>Input and output data structures </li></ul></ul>Web Services Description Language (WSDL) 05/06/10 © 2008 Ross Hightower
  13. 14. <ul><li>( UDDI ) is a platform-independent, Extensible Markup Language (XML)-based registry enabling businesses to publish service listings and discover each other and define how the services or software applications interact over the Internet. </li></ul><ul><li>Many UDDI registries are used internally and are not for public consumption </li></ul><ul><li>A UDDI business registration consists of three components: </li></ul><ul><ul><li>White Pages — address, contact, and known identifiers; </li></ul></ul><ul><ul><li>Yellow Pages — industrial categorizations based on standard taxonomies; </li></ul></ul><ul><ul><li>Green Pages — technical information about services exposed by the business. </li></ul></ul><ul><li>It is designed to be interrogated by Simple Object Access Protocol (SOAP) messages and to provide access to Web Services Description Language (WSDL) documents </li></ul>Universal Description, Discovery and Integration ( UDDI) 05/06/10 © 2008 Ross Hightower
  14. 15. <ul><li>WSIL (or WS-Inspection) is a specification for the inspection of a site for available services and a set of rules for how inspection related information should be made available for consumption </li></ul><ul><li>WS-Inspection lists groups of web services and their endpoints in an XML format </li></ul>Web Services Inspection Language (WSIL) 05/06/10 © 2008 Ross Hightower
  15. 16. 05/06/10 © 2008 Ross Hightower
  16. 17. Third-Party Services <ul><li>Increasing numbers of third-party software companies offer software services either for free or for a fee. </li></ul><ul><ul><li>The travel industry has a well-defined and documented set of both services and data, sufficient to allow any reasonably competent software engineer to create travel-agency software using entirely off-the-shelf software services. </li></ul></ul><ul><ul><li>Other industries, such as the finance industry, have also started making significant progress in this direction. </li></ul></ul><ul><ul><li>Companies such as Amazon offer services that can be used to build applications that access Amazon data and services </li></ul></ul>
  17. 18. Issues <ul><li>Applying the SOA paradigm to a real-time system presents many problems </li></ul><ul><ul><li>response time, </li></ul></ul><ul><ul><li>support of event-driven, asynchronous parallel applications, </li></ul></ul><ul><ul><li>complicated human interface support, reliability, etc. </li></ul></ul>