introduction to soa composition
TRANSCRIPT
Introductionto
SOA Composition
UC San DiegoCSE 294
January 23, 2009Barry Demchak
Agenda What is SOA Composition?
… and what are the issues? Existing solutions
UDDI/WSDL (Web Services) BPEL What’s missing?
OWL-S What is OWL? How does OWL apply?
Comparison of existing solutions and OWL-S Emerging technology choices
Source Material SOA Design Patterns: Capability Composition Patterns [in progress].
http://www.informit.com/articles/article.aspx?p=1271262 Web Services Composition. Nikola Milanovic.
http://user.cs.tu-berlin.de/~mwerner/discourse/BlockLVS04/slides/service-composition.pdf SOA Source Book. The Open Group.
http://www.opengroup.org/projects/soa-book/page.tpl?CALLER=faq.tpl&ggid=1335 Blackboard-style Service Composition with Onto<->SOA. Korotkiy & Top.
http://www.cs.vu.nl/~maksym/pap/MKorotkiy-Onto-SOA-BB.pdf BPEL: Service Composition for SOA. Jurac.
http://www.javaworld.com/javaworld/jw-07-2006/jw-0710-bpel.html?page=1 SCA: Flexible and Agile Composition of Distributed SOA Applications. Edwards.
http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-5850.pdf?cid=925589 The Service Revolution - software engineering without programming languages. Alonso.
http://www.ifi.uzh.ch/ecows06/fileadmin/papers/GA-ECOWS-Nov-06.pdf Tools and Technologies for Semantic Web Services: An OWL-S Perspective. Sycara and
Martin. http://www.ai.sri.com/daml/services/ISWC06-OWL-S-tutorial.pdf Web Service Composition - Current Solutions and Open Problems. Srivastava and Koehler.
http://www.zurich.ibm.com/pdf/ebizz/icaps-ws.pdf Web Service Composition Standards. METEOR-S Project.
http://lsdis.cs.uga.edu/proj/meteor/mwscf/standards.html Tutorial on OWL. Bechhofer, Horrocks, Patel-Schneider.
http://www.cs.man.ac.uk/~horrocks/ISWC2003/Tutorial/examples.pdf Semantic Web Processes: Semantics Enabled Annotation, Discovery, Composition and
Orchestration of Web Scale Processes. Cardoso & Sheth. http://lsdis.cs.uga.edu/lib/presentations/WISE2003-Tutorial.pdf
Current Solutions for Web Service Composition. Milanovic & Malek. IEEE Internet Computing. p51. Nov/Dec 2004.
The Capability Composition Pattern
A capability may not be able to fulfill its processing requirements without adding logic that resides outside of its service's functional context, thereby compromising the integrity of its context and risking service denormalization.
[SOA Design Patterns]
The Capability Composition Pattern
[SOA Design Patterns]
Basic Composition
Orchestration – engine controls service via single script, and service invokes other services in single swim lane
Choreography – engine controls all services via scripts associated with services; they execute in multiple swim lanes
[SOA Source Book]
Main Composition Approaches “Industry”
UDDI / WSDL / BPEL or SCA Infrastructure Plumbing created by programmer (limited
scalability to large and diverse service spaces) Semantic Web Services
OWL-S Focuses on semantic compatibility and
automatic service discovery Other
Blackboard Systems
“Industry Solutions” – UDDI/WSDL
UDDI: service registry
WSDL: registry document
Defines location and parameters/messages for available services in searchable way
[WSPS]
WSDL (Web Services Description Language)
XML-based description of characteristics of a web service [INFIT]
Function signatures (in, out, in/out, return) Service binding (URL and protocol)
Stored in repositories such as UDDI Used to create client-side proxies Enables dynamic binding for clients capable
of binding dynamically
WSDL Content
UDDI/WSDL Open Questions What do its parameters mean? In what units are its parameters expressed? Given meaningful inputs, what is the meaning
of the product of a service? What are its restrictions? What non-functional characteristics
distinguish one service from another? How can I compose 10 different services so
that they fit together and produce a meaningful result?
“Industry Solutions” – BPEL4WS
Process (BPEL composition) Partners (participating services) Activities (message exchange)
[SOA Design Patterns]
“Industry Solutions” – BPEL4WS
Basic Flow Elements <process> <invoke>, <invoke>…<receive>
Send, event, request/response <variable>, <assign>, <copy>
State maintenance <scope>, <faultHandlers>
Fault handling <flow>, <sequence>
Parallel & sequential execution <switch>, <while>
Conditional evaluation
[SOA Design Patterns] [Jurac]
“Industry Solutions” – BPEL4WS
[SOA Design Patterns]
BPEL4WS Open Questions
Focus on connections and orchestration, but not on correctness
Proper function “guaranteed” by diligence of author
Almost same set of open questions as for UDDI/WSDL
Web Service Composition Standards
BPML -Business Process Markup Language Abstract model and grammer
WSCI -Web Services Choreography Interface XML-based WSDL augmentation
BPEL4WS -Business Process Execution Language/ Web Services Specifies business processes and interaction protocols
WSCL -Web Services Conversation Language Business-level conversations w/document exchange
BPSS -Business Process Specification Schema Business-level conversations w/document exchange
DAML-S Ontology markup language representing process and capability
semantics[METEOR-S]
The Semantic Challenge
How to compose services that we know will do what we intend??[Sycara]
Framing the Problem
[Cardoso]
Framing the Problem Provide the capability to assemble (“compose”) on
short notice an improvisational confederation
Improvisational: Constituent systems not deliberately engineered to work together in support of the objectives of the confederation
Short notice: Not deliberately planned months/years ahead of the need
Interoperability: “The ability of systems, units, or forces to provide services to and accept services from other systems, units, or
forces and to use the services so exchanged to enable them to operate effectively together.” (definition from Joint Pub 1-02)
[Sycara]
The Semantic Web and OWL
Semantic web adds machine-readable information to each element, giving each element a well-defined meaning useful for discovery, automation, integration, and reuse.
[after W3C Semantic Web Activity Statement]
[W3C]
The Semantic Web and OWL
W3C Standard Description Logic-based language that
describes ontologies Defines concepts and relations between them Defines subset generalization Well understood computational properties,
including decidability Enables semantic reasoning (Pellet and FaCT++) OWL-Lite, OWL-DL, and OWL Three objects: concepts, individuals, properties
OWL Sample
Individuals with properties
Classes that facilitate reasoning
[Tutorial on OWL]
Semantic Service Challenges
Data/Information Semantics Basic discovery and interoperability
Functional/Operational Semantics Discovery and composition
Execution Semantics For verification, validation, exception handling
QOS Semantics Suitability
[Cardoso]
OWL-S
Ontology Web Language for Services (W3C) Relies on WSDL for invocation (grounding)
Expands UDDI for discovery (mapping)
Suited for use with SAWSDL (Semantic Annotations for WSDL)
Complimentary to BPEL (local choreography)
OWL-S Ontology of Services
[Sycara/Payne]
OWL-S Components Service Profile
Inputs, outputs, preconditions, results Provenance, QOS, Security, Policy … Inheritance
Service Grounding Builds on WSDL
Service Model Initial state, inputs, and preconditions Result states, outputs, effects on process Chaining processes to create workflow
The Roles
Providers Specify and advertise services
Consumers Specify and advertise needs
Facilitators Match subscriptions to advertised services Deal with complex semantic requirements Deal with multiple sources, schemas, queries
Composition
Static (author-time) and Dynamic (runtime) Creation of mediators between services Design of flows to accomplish results, much
less optimal results
[Cardoso]
Comparison of Industry vs Semantic Web Approaches BPEL relates closely to ServiceModel OWL-S defines preconditions and effects,
leading to better reasoning about composition OWL-S classes extend reasoning to
subclasses and other relationships BPEL describes sequencing of activities BPEL describes mechanisms for catching,
handling, and compensating for faults BPEL leverages WS-Coordination and WS-
Transaction for defining transactional semantics
[Cardoso]
Research Issues (for QOS)
Specification Computation Monitoring Control
[Cardoso]
Computing Service Compositions
[Milanovic]
Other Technology Choices
Abstract Machines [SOA Design Patterns] π-Calculus [SOA Design Patterns] Blackboard-style Service Composition
[Korotkiy] SCA Infrastructure [SCA]
Modeling Services as Abstract Machines
Extends WSDL via contracts covering Non-functional properties Preconditions, postconditions, invariants
Expressed via Contract Definition Language Formal composition operators enable
predictability and determination of correctness Separates “how” from “what” Issues:
SCA Infrastructure Objectives
Well-defined interfaces with business-level semantics Standardized communication protocols Flexible recombination of services
Mechanisms Declarative component networks (using XML) injected
at runtime Standard communication bindings and policy
frameworks Language-embedded features (e.g., policy intents &
stateful interactions via WSDL and pragma extensions)
[SCA]
SCA Infrastructure
Conferences for Service Composition
ICWS WISE WSCA SCC
Other Sources [WSBP] Basic Profile Version 1.1. Web Services Interoperability
Organization (WS-I). Apr 2006. http://www.ws-i.org/Profiles/BasicProfile-1.1.html
[INFIT] IT Web Services: A Roadmap for the Enterprise. A. Nghiem. Prentice Hall. Oct 2002. http://www.informit.com/articles/article.aspx?p=31076
Time to take a walk!
Me
Web Services