1. 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]
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 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
4. SOA roles and activities 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
9. Web Services Enabling interaction of heterogenous systems based on certain technologies and standards Process logic Data
10. 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)
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 Web Services 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 A typical 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 ...
Notes de l'éditeur
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