Module: Basics and definitions of SOA Several „definitions“ available, mostly from practitioners: „ A Service-Oriented Architecture (SOA) is a software architecture that is based on the key concepts of an application frontend, service, service repository, and service bus. A service consists of a contract, one or more interfaces, and an implementation.“ [KBS05] „ SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology-agnostic manner. SOA consists of a composite set of business-aligned services that support a flexible and dynamically re-configurable end-to-end business processes realization using interface-based service descriptions.“ (Arsanjani, Borges und Holley) „ Contemporary SOA represents an agile, extensible, federated,  composable architecture comprised of autonomous,  QoS-capable, vendor diverse, interoperable, discoverable,  and potentially reusable services, implemented  as Web Services. […]“ [Erl05]
Understanding SOA – Basics What is a Service? In general In a Web-Service context no  technologies  mentioned  A unit of work done by a service provider to achieve  desired end results for a service consumer. Software application units that provide a  distinct and atomic business process
Service Interface Service oriented  language  independant Technological evolution towards SOA << class >> MyClass String myAttribute ... object oriented  (encapsulated) language dependant (Java, C#, C++, ABAP4) doSomething(Param a) structured  (functional composition) language dependant (C, ABAP, ...) Business Interface Lifecycle Interface Component based  (interoperable) language dependant (EJB, SAP-BO, ...) if(condition) { do something } unstructured  (the dark ages) language dependant
SOA roles and activities Service Registry Service Provider Consumer Contract 1. publish 2. search 3. refer to contract 4. bind 5. use
Classification of services (cf. Krafzig et al.)  Basic Service data / logic centric Intermediary Service composition of services without state Process centric Service technical representation of business process (stateful) Public Enterprise Service external enterprise interface with additional requirements for security, reliability, ... Composite Services Core Services
Understanding SOA – Basics Architectural layers today Hardcoded or proprietary implemented / declared Business process tightly coupled to components BP changes difficult to implement Data
Adopting SOA – what changes? Architectural layers tomorrow Loosely coupled components/services BP easily definable/changeable by business experts Integration plus process Process logic Components Data Human interaction: Frontend Machine interaction: Businesses Components Data Service layers
Understanding SOA – Basic Knowledge SOA Components
Web Services Enabling interaction of heterogenous systems based on certain technologies and standards Process logic Data
Web Services Standards employed: Dataformat, Typesystem XML Schema Service invocation SOAP Metadata WSDL Service localisation UDDI Security (and other) WS* specs  Processdefinition / -notation BPEL, BPMN Bodies involved: W3C (XML, XML Schema, SOAP, WSDL) OASIS (BPEL, UDDI, SAML, SOA Blueprints and reference architecture) OMG (BPMN) WS-I (ensuring interoperability)
Web Services SOAP, WSDL and UDDI are not enough! WS-* Technology stack extends SOAP/WSDL specifications, e.g. Security Transactions Messaging Reliability Interoperability Metadata ...
Web Services Web Services implement the SOA paradigm One can think of other possible implementations (RMI, CORBA, DCOM, ...) Repository (UDDI) Service Provider Service Consumer WSDL SOAP
Web Services A typical SOAP / HTTP messaging scenario: SEI Servlet Http  Request SOAP Http  Response SOAP Magic  happens
Session summary – What you should take home ... SOA, Web Services, BPMN, BPEL ... are no short-lived buzzwords which came from outer space a few years ago SOA  is the current endpoint of an evolutionary process which started approx. 30 years ago Web Services  represent a technology stack for implementing SOA BPMN  is the current answer to „How to model business processes from different perspectives?“ BPEL  is the current answer to „How to automate business processes?“ These questions are not driven by IT but driven by „the business“ needing IT The „big picture“ comprising architecture, technical expertise, and business expertise is needed to answer today's demanding requirements like flexibility, agility, scalability ...

Soa Grundlagen

  • 1.
    Module: Basics anddefinitions of SOA Several „definitions“ available, mostly from practitioners: „ A Service-Oriented Architecture (SOA) is a software architecture that is based on the key concepts of an application frontend, service, service repository, and service bus. A service consists of a contract, one or more interfaces, and an implementation.“ [KBS05] „ SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology-agnostic manner. SOA consists of a composite set of business-aligned services that support a flexible and dynamically re-configurable end-to-end business processes realization using interface-based service descriptions.“ (Arsanjani, Borges und Holley) „ Contemporary SOA represents an agile, extensible, federated, composable architecture comprised of autonomous, QoS-capable, vendor diverse, interoperable, discoverable, and potentially reusable services, implemented as Web Services. […]“ [Erl05]
  • 2.
    Understanding SOA –Basics What is a Service? In general In a Web-Service context no technologies mentioned A unit of work done by a service provider to achieve desired end results for a service consumer. Software application units that provide a distinct and atomic business process
  • 3.
    Service Interface Serviceoriented language independant Technological evolution towards SOA << class >> MyClass String myAttribute ... object oriented (encapsulated) language dependant (Java, C#, C++, ABAP4) doSomething(Param a) structured (functional composition) language dependant (C, ABAP, ...) Business Interface Lifecycle Interface Component based (interoperable) language dependant (EJB, SAP-BO, ...) if(condition) { do something } unstructured (the dark ages) language dependant
  • 4.
    SOA roles andactivities Service Registry Service Provider Consumer Contract 1. publish 2. search 3. refer to contract 4. bind 5. use
  • 5.
    Classification of services(cf. Krafzig et al.) Basic Service data / logic centric Intermediary Service composition of services without state Process centric Service technical representation of business process (stateful) Public Enterprise Service external enterprise interface with additional requirements for security, reliability, ... Composite Services Core Services
  • 6.
    Understanding SOA –Basics Architectural layers today Hardcoded or proprietary implemented / declared Business process tightly coupled to components BP changes difficult to implement Data
  • 7.
    Adopting SOA –what changes? Architectural layers tomorrow Loosely coupled components/services BP easily definable/changeable by business experts Integration plus process Process logic Components Data Human interaction: Frontend Machine interaction: Businesses Components Data Service layers
  • 8.
    Understanding SOA –Basic Knowledge SOA Components
  • 9.
    Web Services Enablinginteraction of heterogenous systems based on certain technologies and standards Process logic Data
  • 10.
    Web Services Standardsemployed: Dataformat, Typesystem XML Schema Service invocation SOAP Metadata WSDL Service localisation UDDI Security (and other) WS* specs Processdefinition / -notation BPEL, BPMN Bodies involved: W3C (XML, XML Schema, SOAP, WSDL) OASIS (BPEL, UDDI, SAML, SOA Blueprints and reference architecture) OMG (BPMN) WS-I (ensuring interoperability)
  • 11.
    Web Services SOAP,WSDL and UDDI are not enough! WS-* Technology stack extends SOAP/WSDL specifications, e.g. Security Transactions Messaging Reliability Interoperability Metadata ...
  • 12.
    Web Services WebServices implement the SOA paradigm One can think of other possible implementations (RMI, CORBA, DCOM, ...) Repository (UDDI) Service Provider Service Consumer WSDL SOAP
  • 13.
    Web Services Atypical SOAP / HTTP messaging scenario: SEI Servlet Http Request SOAP Http Response SOAP Magic happens
  • 14.
    Session summary –What you should take home ... SOA, Web Services, BPMN, BPEL ... are no short-lived buzzwords which came from outer space a few years ago SOA is the current endpoint of an evolutionary process which started approx. 30 years ago Web Services represent a technology stack for implementing SOA BPMN is the current answer to „How to model business processes from different perspectives?“ BPEL is the current answer to „How to automate business processes?“ These questions are not driven by IT but driven by „the business“ needing IT The „big picture“ comprising architecture, technical expertise, and business expertise is needed to answer today's demanding requirements like flexibility, agility, scalability ...

Editor's Notes

  • #14 A typical SOAP / HTTP messaging scenario: Client sends an HTTP POST request to the server Request body contains a SOAP-encoded Message Server forwards client requests to a designated servlet Servlet validates the HTTP Headers and forwards request to SOAP Engine SOAP engine does the rest Parses the document Processes the request Returns a SOAP Message as response