Service-Oriented Computing Basic Technologies
SOC and SOA <ul><li>Service-oriented architecture (SOA)  </li></ul><ul><ul><li>An architectural approach for software inte...
Basic Service Infrastructure Service Broker Service Provider Service Requestor Invocation (SOAP) Discover (UDDI) Publish (...
Web Service Stack (W3C)
Service Oriented Computing <ul><li>Topics </li></ul><ul><ul><li>Service specification </li></ul></ul><ul><ul><ul><li>Speci...
Service Oriented Computing <ul><li>Topics </li></ul><ul><ul><li>Semantic web </li></ul></ul><ul><ul><ul><li>Achieve better...
Service Invocation <ul><li>SOAP (Simple Object Access Protocol) </li></ul><ul><ul><li>Designed on top of HTTP for remote p...
SOAP Request Example <ul><li>POST /temp HTTP/1.1 </li></ul><ul><li>Host: www.socweather.com </li></ul><ul><li>Content-Type...
SOAP Response Example <ul><li>HTTP/1.1  200 OK </li></ul><ul><li>Content-Type: text/xml; charset=&quot;utf-8&quot; </li></...
Service Specification <ul><li>WSDL </li></ul><ul><ul><li>Define transmission protocol, services, standard data type defini...
Service Specification <ul><ul><li>< wsdl:portType  name=&quot;HelloWorldService&quot;> </li></ul></ul><ul><ul><li>< wsdl:o...
Service Publishing and Discovery <ul><li>Directory service in distributed systems (Name server) </li></ul><ul><ul><li>For ...
UDDI <ul><li>UDDI registry  </li></ul><ul><ul><li>Each entry is an XML document composed of: </li></ul></ul><ul><ul><ul><l...
UDDI <ul><li>tModel </li></ul><ul><ul><li>A tModelis is a document with a short description of the technical information a...
UDDI <ul><li>Business UDDI </li></ul><ul><ul><li>IBM, Microsoft, SAP, NTT has provided public UDDI registry since 2000, an...
AXIS <ul><li>Remote procedure call </li></ul><ul><ul><li>From shared memory to message passing to RPC </li></ul></ul><ul><...
AXIS <ul><li>Problems </li></ul><ul><ul><li>Static binding, client invokes a fixed service </li></ul></ul><ul><li>Some sol...
Service Composition <ul><li>BPEL </li></ul><ul><ul><li>A language for specifying business process based on Web services </...
Service Composition <ul><li>BPEL </li></ul><ul><ul><li>Description of basic activities </li></ul></ul><ul><ul><ul><li><rec...
Service Composition <ul><li>BPEL </li></ul><ul><ul><li>Specification of structured activities </li></ul></ul><ul><ul><ul><...
Semantic Web Service <ul><li>Deficiencies in original web service framework </li></ul><ul><ul><li>WSDL only support syntac...
Semantic Web Service <ul><li>Semantic Web stack </li></ul><ul><ul><li>Language models </li></ul></ul>SWRL  (Rules) XML  (E...
RDF <ul><li>RDF (resource description framework)  </li></ul><ul><ul><li>Data model </li></ul></ul><ul><ul><ul><li>Resource...
RDF Schema <ul><li>RDF Schema  </li></ul><ul><ul><li>Defines new RDF vocabulary </li></ul></ul><ul><ul><li>Light-weight on...
RDF Schema <ul><li>Reasoning </li></ul><ul><li>Validation </li></ul>Class Property Person type Fish type owns type Wanda W...
OWL <ul><li>Web ontology language (OWL) </li></ul><ul><ul><li>Build on top of RDF and RDF Schema </li></ul></ul><ul><ul><l...
OWL <ul><li>OWL class can be constructed </li></ul><ul><ul><li>Explicitly </li></ul></ul><ul><ul><li>By set operators </li...
OWL <ul><li>Restrictions </li></ul><ul><ul><li>A unique feature of description logics </li></ul></ul><ul><ul><li>Key primi...
OWL <ul><li>Axioms  </li></ul><ul><ul><li>Common primitives </li></ul></ul><ul><ul><ul><li>rdfs:subClassOf </li></ul></ul>...
OWL-S <ul><li>OWL for services </li></ul><ul><ul><li>An OWL ontology defined for (formally) describing properties and capa...
OWL-S <ul><li>Profile </li></ul><ul><ul><li>Capabilities description (functional properties) </li></ul></ul><ul><ul><ul><l...
OWL-S
OWL-S <ul><li>Process </li></ul><ul><ul><li>Description of service behavior </li></ul></ul><ul><ul><li>Interaction pattern...
OWL-S
OWL-S <ul><li>Process </li></ul><ul><ul><li>Description of service behavior </li></ul></ul><ul><ul><li>Interaction pattern...
OWL-S <ul><li>Grounding </li></ul><ul><ul><li>Information for accessing the service </li></ul></ul><ul><ul><ul><li>Message...
OWL-S <ul><li>Added capabilities  </li></ul><ul><ul><li>Define ontology-based specification frameworks for describing Web ...
WSMO - Web Service Modeling Ontology <ul><li>OWL-S </li></ul><ul><ul><li>An ontology to describe Web services and data </l...
WSMO <ul><li>Goals </li></ul><ul><ul><li>Objectives that a client wants to achieve </li></ul></ul><ul><ul><li>Clear separa...
WSMO <ul><li>Mediation </li></ul><ul><ul><li>Resolve mismatches on data, service, and process </li></ul></ul>
WSMO <ul><li>Data mediation </li></ul><ul><ul><li>Solving terminological mismatches by ontology mapping, merging, alignmen...
WSMO <ul><li>OO Mediators  </li></ul><ul><ul><li>Data level mediation, resolve mismatch terminologies </li></ul></ul><ul><...
OWL-S and WSMO <ul><li>OWL-S Profile = WSMO capability + Goal + Non-functional properties </li></ul><ul><ul><li>OWL-S uses...
OWL-S and WSMO <ul><li>OWL-S Grounding is similar to WSMO Grounding  </li></ul><ul><ul><li>Both map to WSDL </li></ul></ul...
Some Other Concepts <ul><li>WSIF: Web Services Invocation Framework </li></ul><ul><ul><li>Similar to the tasks performed b...
WSCL Example < Conversation  name=&quot; StoreFrontServiceConversation &quot;  … < ConversationInteractions > < Interactio...
WS-Coordination <ul><li>A coordination service is an aggregation of three services: </li></ul><ul><ul><li>Registration: fo...
SOC <ul><li>SOC </li></ul><ul><ul><li>Offers a new paradigm for system development and deployment </li></ul></ul><ul><ul><...
SOC <ul><li>How to integrate services into systems </li></ul><ul><ul><li>Still the same old barrier: software component sp...
SOC <ul><li>Evolution in software development </li></ul><ul><ul><li>First evolution: From hardware/assembly to high level ...
Upcoming SlideShare
Loading in …5
×

Basic Concepts in Web Services and Semantic Web Services

2,441 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,441
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
137
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Basic Concepts in Web Services and Semantic Web Services

  1. 1. Service-Oriented Computing Basic Technologies
  2. 2. SOC and SOA <ul><li>Service-oriented architecture (SOA) </li></ul><ul><ul><li>An architectural approach for software integration </li></ul></ul><ul><ul><li>A coarse grained and loosely coupled approach </li></ul></ul><ul><ul><li>Support better reuse and dynamic adaptivity </li></ul></ul><ul><ul><li>More focused on software services </li></ul></ul><ul><li>Web service </li></ul><ul><ul><li>A set of XML based standards defined to realize SOA </li></ul></ul><ul><li>Service-oriented computing </li></ul><ul><ul><li>A more general concept than SOA, consider any form of services </li></ul></ul><ul><ul><ul><li>Such as services provided by hardware devices or even human </li></ul></ul></ul><ul><li>Semantic web </li></ul><ul><ul><li>Theories and techniques to specify the web </li></ul></ul><ul><ul><li>Can be applied to SOC for service specification and discovery </li></ul></ul>
  3. 3. Basic Service Infrastructure Service Broker Service Provider Service Requestor Invocation (SOAP) Discover (UDDI) Publish (WSDL) Registry
  4. 4. Web Service Stack (W3C)
  5. 5. Service Oriented Computing <ul><li>Topics </li></ul><ul><ul><li>Service specification </li></ul></ul><ul><ul><ul><li>Specifies the service and its I/O (WSDL) </li></ul></ul></ul><ul><ul><ul><li>Is it sufficient? </li></ul></ul></ul><ul><ul><li>Service publication and discovery </li></ul></ul><ul><ul><ul><li>Is UDDI based centralized approach sufficient? </li></ul></ul></ul><ul><ul><li>Service composition and orchestration </li></ul></ul><ul><ul><ul><li>Specification of the composition and process (BPEL, OWL) </li></ul></ul></ul><ul><ul><ul><li>Discovery and adaptation (allow interoperations) </li></ul></ul></ul><ul><ul><ul><li>It is still a very challenging area </li></ul></ul></ul><ul><ul><li>Service invocation </li></ul></ul><ul><ul><ul><li>Invocation protocol (SOAP) </li></ul></ul></ul><ul><ul><ul><li>Is it sufficient? How about continuous interactions? </li></ul></ul></ul>
  6. 6. Service Oriented Computing <ul><li>Topics </li></ul><ul><ul><li>Semantic web </li></ul></ul><ul><ul><ul><li>Achieve better service specification, discovery and composition </li></ul></ul></ul><ul><ul><li>Service mediation </li></ul></ul><ul><ul><ul><li>Solve mismatches (data, protocol, process) among the services in different domains </li></ul></ul></ul><ul><ul><li>Quality of service (QoS) </li></ul></ul><ul><ul><ul><li>How to specify QoS, how to satisfy QoS requirements, …? </li></ul></ul></ul><ul><ul><li>Dependability and security issues </li></ul></ul><ul><ul><ul><li>WS-Security, WS-Trust, … </li></ul></ul></ul>
  7. 7. Service Invocation <ul><li>SOAP (Simple Object Access Protocol) </li></ul><ul><ul><li>Designed on top of HTTP for remote procedure call or simply message exchange </li></ul></ul><ul><ul><li>Include three parts </li></ul></ul><ul><ul><li>Envelope: define the message to be a SOAP message </li></ul></ul><ul><ul><li>Encoding rules: for expressing instances of application-defined data types </li></ul></ul><ul><ul><li>Body: information for the actual invocation and response </li></ul></ul>
  8. 8. SOAP Request Example <ul><li>POST /temp HTTP/1.1 </li></ul><ul><li>Host: www.socweather.com </li></ul><ul><li>Content-Type: text/xml; charset=&quot;utf-8&quot; </li></ul><ul><li>Content-Length: xxx </li></ul><ul><li>SOAPAction: &quot;http://www.socweather.com/temp&quot; </li></ul><ul><li><?xml version=“1.0”?> </li></ul><ul><li><env:Envelope </li></ul><ul><li>xmlns:env=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; </li></ul><ul><li>env:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/> </li></ul><ul><li><env:Body> </li></ul><ul><li><m:GetTemp xmlns:m=&quot;http://www.socweather.com/temp.xsd&quot;> </li></ul><ul><li><m:City>Honolulu</m:City> </li></ul><ul><li><m:When>now</m:When> </li></ul><ul><li></m:GetTemp> </li></ul><ul><li></env:Body> </li></ul><ul><li></env:Envelope> </li></ul>HTTP header followed by a mandatory blank line Web service URL and method name Input parameters
  9. 9. SOAP Response Example <ul><li>HTTP/1.1 200 OK </li></ul><ul><li>Content-Type: text/xml; charset=&quot;utf-8&quot; </li></ul><ul><li>Content-Length: xxx </li></ul><ul><li>SOAPAction: &quot;http://www.socweather.com/temp&quot; </li></ul><ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><env:Envelope xmlns:env=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; </li></ul><ul><li>env:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;/> </li></ul><ul><li><env:Body> </li></ul><ul><li><m:GetTempResponse xmlns:m=&quot;http://www.socweather.com/temp.xsd&quot;> </li></ul><ul><li><m:DegreesCelsius>30</m:DegreesCelsius> </li></ul><ul><li></m:GetTempResponse> </li></ul><ul><li></env:Body> </li></ul><ul><li></env:Envelope> </li></ul>
  10. 10. Service Specification <ul><li>WSDL </li></ul><ul><ul><li>Define transmission protocol, services, standard data type definition file, etc. </li></ul></ul><ul><ul><li>Define the service name and URL (service) </li></ul></ul><ul><ul><li>Define all publicly available functions (operation) </li></ul></ul><ul><ul><li>For each function, define all message requests and message responses </li></ul></ul><ul><ul><li>Example </li></ul></ul><ul><ul><ul><li>< wsdl:service name=&quot;HelloWorldService&quot;> </li></ul></ul></ul><ul><ul><ul><li><wsdl:port binding=&quot;impl:urn:HelloWorldSoapBinding&quot; name=&quot;urn:HelloWorld&quot;> </li></ul></ul></ul><ul><ul><ul><li><wsdlsoap:address location=&quot; http://localhost:8080/axis/services/urn:HelloWorld &quot; /> </li></ul></ul></ul><ul><ul><ul><li>  </wsdl:port> </li></ul></ul></ul><ul><ul><ul><li>< /wsdl:service > </li></ul></ul></ul>Define service name and location
  11. 11. Service Specification <ul><ul><li>< wsdl:portType name=&quot;HelloWorldService&quot;> </li></ul></ul><ul><ul><li>< wsdl:operation name=&quot; sayHello &quot; parameterOrder=&quot;in0 in1&quot;> </li></ul></ul><ul><ul><li>  < wsdl:input message=&quot; impl :sayHelloRequest &quot; name=&quot;sayHelloRequest&quot; /> </li></ul></ul><ul><ul><li>  < wsdl:output message=&quot;impl: sayHelloResponse &quot; name=&quot;sayHelloResponse&quot; /> </li></ul></ul><ul><ul><li>  </wsdl:operation> </li></ul></ul><ul><ul><li>< /wsdl:portType > </li></ul></ul><ul><ul><li>< wsdl:message name=&quot; sayHelloRequest &quot;> </li></ul></ul><ul><ul><li>  < wsdl:part name=&quot;in0&quot; type=&quot;tns2:string&quot; /> </li></ul></ul><ul><ul><li>  < wsdl:part name=&quot;in1&quot; type=&quot;tns2:string&quot; /> </li></ul></ul><ul><ul><li>  </wsdl:message> </li></ul></ul><ul><ul><li>< wsdl:message name=&quot; sayHelloResponse &quot;> </li></ul></ul><ul><ul><li>  <wsdl:part name=&quot;sayHelloReturn&quot; type=&quot;tns2:string&quot; /> </li></ul></ul><ul><ul><li>  </wsdl:message> </li></ul></ul>Define functions and bind their request/response definitions Define I/O parameters and types
  12. 12. Service Publishing and Discovery <ul><li>Directory service in distributed systems (Name server) </li></ul><ul><ul><li>For distributed file systems </li></ul></ul><ul><ul><li>Maintain the file names, their locations, … </li></ul></ul><ul><li>UDDI </li></ul><ul><ul><li>Universal Description, Discovery, and Integration </li></ul></ul><ul><ul><li>Provide directory service for web services </li></ul></ul><ul><ul><li>It is a Web service itself (access to UDDI is SOAP based) </li></ul></ul><ul><li>WSDL  UDDI </li></ul><ul><ul><li>UDDI register information specified in WSDL </li></ul></ul>
  13. 13. UDDI <ul><li>UDDI registry </li></ul><ul><ul><li>Each entry is an XML document composed of: </li></ul></ul><ul><ul><ul><li>businessEntity: A description of the organization that provides the service, can be a company, a group, a person, etc. </li></ul></ul></ul><ul><ul><ul><li>businessService: A list of all services offered by the business entity </li></ul></ul></ul><ul><ul><ul><ul><li>Support projection: reference to services provided by other organizations </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Include name, description </li></ul></ul></ul></ul><ul><ul><ul><ul><li>categoryBag: a list of business categories (e.g., which industry, which product category, which geographic region) </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Can be used to help search in terms of category </li></ul></ul></ul></ul></ul><ul><ul><ul><li>bindingTemplate: the specifications of the services being offered </li></ul></ul></ul><ul><ul><ul><ul><li>bindingKey, serviceKey, description </li></ul></ul></ul></ul><ul><ul><ul><ul><li>accessPoint: the URL of the service being provided (actually can be anything, e.g., an e-mail address or even a phone number) </li></ul></ul></ul></ul><ul><ul><ul><li>tModel (technical model) </li></ul></ul></ul>
  14. 14. UDDI <ul><li>tModel </li></ul><ul><ul><li>A tModelis is a document with a short description of the technical information and a pointer to the actual information </li></ul></ul><ul><ul><li>It contains </li></ul></ul><ul><ul><ul><li>A pointer to the </li></ul></ul></ul><ul><ul><ul><li>WSDL description </li></ul></ul></ul><ul><ul><ul><li>Description of the </li></ul></ul></ul><ul><ul><ul><li>business protocol </li></ul></ul></ul><ul><ul><ul><li>and conversations </li></ul></ul></ul><ul><ul><ul><li>tModelKey, Name, </li></ul></ul></ul><ul><ul><ul><li>overviewDoc (URL) </li></ul></ul></ul><ul><ul><ul><li>categoryBag </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul>
  15. 15. UDDI <ul><li>Business UDDI </li></ul><ul><ul><li>IBM, Microsoft, SAP, NTT has provided public UDDI registry since 2000, and cumulated approximately 50,000 service entries </li></ul></ul><ul><ul><li>But they discontinued in 2006 </li></ul></ul><ul><li>Problems with UDDI </li></ul><ul><ul><li>No semantic information </li></ul></ul><ul><ul><ul><li>Can add OWL-S related specifications, but not completely compatible with the semantic information </li></ul></ul></ul><ul><ul><li>No structure, difficult to imposed security constraints </li></ul></ul><ul><ul><ul><li>E.g., cannot support role based access (cannot map roles to entries) </li></ul></ul></ul><ul><ul><li>No management protocols </li></ul></ul><ul><ul><ul><li>Difficult to maintain and evolve </li></ul></ul></ul>
  16. 16. AXIS <ul><li>Remote procedure call </li></ul><ul><ul><li>From shared memory to message passing to RPC </li></ul></ul><ul><li>Axis </li></ul><ul><ul><li>Support web service infrastructure </li></ul></ul><ul><ul><ul><li>Tools to generate wrappers for client and server (same as RPC) </li></ul></ul></ul><ul><ul><ul><li>Tools to generate WSDL from methods </li></ul></ul></ul><ul><ul><ul><li>Web server </li></ul></ul></ul>Network + DNS Server-side Driver Method Client-side Stub Client Web Server
  17. 17. AXIS <ul><li>Problems </li></ul><ul><ul><li>Static binding, client invokes a fixed service </li></ul></ul><ul><li>Some solutions </li></ul><ul><ul><li>Making URL a reference </li></ul></ul><ul><ul><ul><li>Fixed function and syntax in the invocation </li></ul></ul></ul><ul><ul><ul><li>Dynamically bind to the service with matching WSDL </li></ul></ul></ul><ul><ul><li>Data flow model </li></ul></ul><ul><ul><ul><li>Output of one service is linked to input of another service </li></ul></ul></ul><ul><li>Which solution is preferable </li></ul><ul><li>Any other possibilities? </li></ul>
  18. 18. Service Composition <ul><li>BPEL </li></ul><ul><ul><li>A language for specifying business process based on Web services </li></ul></ul><ul><ul><li>A standard for Web service composition by OASIS </li></ul></ul><ul><ul><li>Specification of partner link </li></ul></ul><ul><ul><ul><li>BPEL describe the business process </li></ul></ul></ul><ul><ul><ul><li>The partner link links a node in the process to a Web service that can be invoked </li></ul></ul></ul><ul><ul><ul><ul><li>Partner Link Type </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>The portTypeof the process and the portTypeof the service </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Partners : a group of Partner Links (this is an optional element) </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>A partner link can only point to one partner </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Partner Link : the actual link to the service </li></ul></ul></ul></ul>
  19. 19. Service Composition <ul><li>BPEL </li></ul><ul><ul><li>Description of basic activities </li></ul></ul><ul><ul><ul><li><receive> allows the business process to do a blocking wait for a matching message to arrive. </li></ul></ul></ul><ul><ul><ul><li><reply> allows the business process to send a message in reply to a message that was received through a <receive> </li></ul></ul></ul><ul><ul><ul><ul><li><receive> and <reply> form a request-response operation for the composed process </li></ul></ul></ul></ul><ul><ul><ul><li><invoke> allows the business process to invoke a request-response operation offered by a service or process </li></ul></ul></ul><ul><ul><ul><li><throw> generates a fault in the business process </li></ul></ul></ul><ul><ul><ul><li><wait> Insert a wait for a given time period or until a certain time </li></ul></ul></ul>
  20. 20. Service Composition <ul><li>BPEL </li></ul><ul><ul><li>Specification of structured activities </li></ul></ul><ul><ul><ul><li><sequence>: an ordered sequence of activities </li></ul></ul></ul><ul><ul><ul><li><switch>: case-statement </li></ul></ul></ul><ul><ul><ul><li><while>: loop </li></ul></ul></ul><ul><ul><ul><li><pick>: execute one of several alternative paths </li></ul></ul></ul><ul><ul><ul><li><flow>: parallel steps </li></ul></ul></ul>
  21. 21. Semantic Web Service <ul><li>Deficiencies in original web service framework </li></ul><ul><ul><li>WSDL only support syntactical description </li></ul></ul><ul><ul><li>Service discovery capability is limited </li></ul></ul><ul><ul><li>No support to automate service composition </li></ul></ul><ul><ul><li>No specification of interaction with services </li></ul></ul><ul><li>Semantic web </li></ul><ul><ul><li>Support specification of information that contains machine-processable and machine-understandable semantics </li></ul></ul><ul><li>Semantic web service </li></ul><ul><ul><li>Semantic web technology </li></ul></ul><ul><ul><li>Semantic and QoS models for web services </li></ul></ul><ul><ul><li>Mediation (WSMO) </li></ul></ul>
  22. 22. Semantic Web Service <ul><li>Semantic Web stack </li></ul><ul><ul><li>Language models </li></ul></ul>SWRL (Rules) XML (Extensible Markup Language) RDF (Resource Description Framework) RDFS (RDF Schema) OWL ([DLP], Light, DL, Full) OWL-S (Services)
  23. 23. RDF <ul><li>RDF (resource description framework) </li></ul><ul><ul><li>Data model </li></ul></ul><ul><ul><ul><li>Resources </li></ul></ul></ul><ul><ul><ul><ul><li>Named by URI (universal resource identifier) </li></ul></ul></ul></ul><ul><ul><ul><li>Properties </li></ul></ul></ul><ul><ul><ul><ul><li>Define characteristic of a resource </li></ul></ul></ul></ul><ul><ul><ul><li>Value </li></ul></ul></ul><ul><ul><ul><li>Example: </li></ul></ul></ul><ul><ul><ul><ul><li><rdf:Description rdf:about=&quot;http://www.w3schools.com&quot;>   <si:title>W3Schools</si:title>   <si:author>Jan Egil Refsnes</si:author> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></rdf:Description> </li></ul></ul></ul></ul><ul><ul><li>RDF statement (triple) </li></ul></ul><ul><ul><ul><li>Specifying facts using subject/predicate/object </li></ul></ul></ul>
  24. 24. RDF Schema <ul><li>RDF Schema </li></ul><ul><ul><li>Defines new RDF vocabulary </li></ul></ul><ul><ul><li>Light-weight ontology specification </li></ul></ul><ul><li>RDF Schema example: </li></ul><ul><ul><li>rdfs:Class and rdfs:subClassOf </li></ul></ul><ul><ul><ul><li>Specifying a class of resources and the class hierarchy </li></ul></ul></ul><ul><ul><li>rdfs:Resource (all things in RDF are resources) </li></ul></ul><ul><ul><ul><li>All resources are an instances of “class” </li></ul></ul></ul><ul><ul><li>rdfs:Literal </li></ul></ul><ul><ul><ul><li>Literal values such as strings and integers </li></ul></ul></ul><ul><ul><li>rdfs:Property (is also an instance of rdfs:Class) </li></ul></ul><ul><ul><li>rdfs:domain & rdfs:range </li></ul></ul><ul><ul><ul><li>Define restrictions on the resources that have a given property (domain) and the set of valid values for that property (range) </li></ul></ul></ul>
  25. 25. RDF Schema <ul><li>Reasoning </li></ul><ul><li>Validation </li></ul>Class Property Person type Fish type owns type Wanda Wendy type range domain Person Fish Or, Wanda can be a person and a fish (a mermaid) owns type type
  26. 26. OWL <ul><li>Web ontology language (OWL) </li></ul><ul><ul><li>Build on top of RDF and RDF Schema </li></ul></ul><ul><ul><li>Add more vocabulary for describing </li></ul></ul><ul><ul><ul><li>Relations between classes (e.g., disjointness) </li></ul></ul></ul><ul><ul><ul><li>Cardinality (e.g., &quot;exactly one&quot;) </li></ul></ul></ul><ul><ul><ul><li>Equality </li></ul></ul></ul><ul><ul><ul><li>Richer typing of properties </li></ul></ul></ul><ul><ul><ul><li>Characteristics of properties (e g symmetry) </li></ul></ul></ul><ul><ul><ul><li>Enumerated classes </li></ul></ul></ul>
  27. 27. OWL <ul><li>OWL class can be constructed </li></ul><ul><ul><li>Explicitly </li></ul></ul><ul><ul><li>By set operators </li></ul></ul><ul><ul><ul><li>IntersectionOf, unionOf, complementOf </li></ul></ul></ul><ul><ul><ul><li>Example </li></ul></ul></ul><ul><ul><ul><ul><li><owl:Class rdf:ID='SweetBread'> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:intersectionOf rdf:parseType='Collection'> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:Class rdf about '#Bread'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:Class rdf:about='#SweetFood'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></owl:intersectionOf> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></owl:Class> </li></ul></ul></ul></ul>
  28. 28. OWL <ul><li>Restrictions </li></ul><ul><ul><li>A unique feature of description logics </li></ul></ul><ul><ul><li>Key primitives </li></ul></ul><ul><ul><ul><li>someValuesFrom a specified class </li></ul></ul></ul><ul><ul><ul><li>allValuesFrom a specified class </li></ul></ul></ul><ul><ul><ul><li>hasValue equal to a specified individual or data type </li></ul></ul></ul><ul><ul><ul><li>minCardinality and maxCardinality </li></ul></ul></ul><ul><ul><li>Examples </li></ul></ul><ul><ul><ul><ul><li><owl:Restriction> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:onProperty rdf:resource=&quot;#hasFather&quot;/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:maxCardinality rdf:datatype=&quot;xsd:nonNegativeInteger&quot;> 1 </owl:maxCardinality> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></owl:Restriction> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:Restriction> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:onProperty rdf:resource='#bakes'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:someValuesFrom rdf:resource='#Bread'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></owl:Restriction> </li></ul></ul></ul></ul>
  29. 29. OWL <ul><li>Axioms </li></ul><ul><ul><li>Common primitives </li></ul></ul><ul><ul><ul><li>rdfs:subClassOf </li></ul></ul></ul><ul><ul><ul><li>owl:equivalentClass </li></ul></ul></ul><ul><ul><li>Example </li></ul></ul><ul><ul><ul><ul><li><ex:Country rdf:ID='Iran'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><ex:Country rdf:ID='Persia'> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><owl:sameAs rdf:resource='#Iran'/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li></ex:Country> </li></ul></ul></ul></ul><ul><li>Inference </li></ul><ul><ul><li>Based on restrictions and/or axioms </li></ul></ul><ul><ul><li>Statements from different documents about the same URI are automatically conjoined </li></ul></ul>
  30. 30. OWL-S <ul><li>OWL for services </li></ul><ul><ul><li>An OWL ontology defined for (formally) describing properties and capabilities of Web services </li></ul></ul><ul><li>Upper ontology </li></ul>
  31. 31. OWL-S <ul><li>Profile </li></ul><ul><ul><li>Capabilities description (functional properties) </li></ul></ul><ul><ul><ul><li>Inputs, outputs, preconditions, effects </li></ul></ul></ul><ul><ul><ul><li>May be a subset of process model IOPRs </li></ul></ul></ul><ul><ul><li>Service descriptors (non-functional properties) </li></ul></ul><ul><ul><ul><li>Provenance </li></ul></ul></ul><ul><ul><ul><li>Quality of Service </li></ul></ul></ul><ul><ul><ul><ul><li>Response time, quality guarantees, etc. </li></ul></ul></ul></ul><ul><ul><ul><li>Security and policies </li></ul></ul></ul><ul><ul><ul><li>Domain-specific characteristics </li></ul></ul></ul><ul><ul><ul><ul><li>E.g., geographical region, class of service </li></ul></ul></ul></ul><ul><ul><ul><li>Some do not have adopted standards yet </li></ul></ul></ul>
  32. 32. OWL-S
  33. 33. OWL-S <ul><li>Process </li></ul><ul><ul><li>Description of service behavior </li></ul></ul><ul><ul><li>Interaction patterns (read/write messages) </li></ul></ul><ul><ul><ul><li>Tells service user how and when to interact </li></ul></ul></ul><ul><ul><li>Include </li></ul></ul><ul><ul><ul><li>Inputs, outputs, preconditions and effects (IOPE) </li></ul></ul></ul><ul><ul><li>Can be </li></ul></ul><ul><ul><ul><li>Atomic processes or composite processes </li></ul></ul></ul><ul><ul><li>Composition processes can be defined by </li></ul></ul><ul><ul><ul><li>Control flow </li></ul></ul></ul><ul><ul><ul><li>Data flow </li></ul></ul></ul>
  34. 34. OWL-S
  35. 35. OWL-S <ul><li>Process </li></ul><ul><ul><li>Description of service behavior </li></ul></ul><ul><ul><li>Interaction patterns (read/write messages) </li></ul></ul><ul><ul><ul><li>Tells service user how and when to interact </li></ul></ul></ul><ul><ul><li>Include </li></ul></ul><ul><ul><ul><li>Inputs, outputs, preconditions and effects (IOPE) </li></ul></ul></ul><ul><ul><li>Can be </li></ul></ul><ul><ul><ul><li>Atomic processes or composite processes </li></ul></ul></ul><ul><ul><li>Composition processes can be defined by </li></ul></ul><ul><ul><ul><li>Control flow </li></ul></ul></ul><ul><ul><ul><ul><li>Loop, condition </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Sequence, choice, parallel </li></ul></ul></ul></ul><ul><ul><ul><li>Data flow </li></ul></ul></ul>
  36. 36. OWL-S <ul><li>Grounding </li></ul><ul><ul><li>Information for accessing the service </li></ul></ul><ul><ul><ul><li>Message formatting, transport mechanisms, protocols, serializations of types </li></ul></ul></ul><ul><ul><li>Builds upon WSDL </li></ul></ul>
  37. 37. OWL-S <ul><li>Added capabilities </li></ul><ul><ul><li>Define ontology-based specification frameworks for describing Web Services and related aspects (Web Service Description Ontologies) </li></ul></ul><ul><ul><li>Support formal specification of the semantic behavior of the web services  Facilitate composition </li></ul></ul><ul><ul><ul><li>In service profile, pre-conditions and effects can be defined to specify the functional behavior of the service </li></ul></ul></ul><ul><ul><li>Support the definition of service ontology </li></ul></ul><ul><ul><ul><li>Describe the relations among services </li></ul></ul></ul><ul><ul><li>Define ontologies for underlying data models to allow machine supported data interpretation (Semantic Web) </li></ul></ul>
  38. 38. WSMO - Web Service Modeling Ontology <ul><li>OWL-S </li></ul><ul><ul><li>An ontology to describe Web services and data </li></ul></ul><ul><ul><li>Facilitates composition, but does not specifically model it </li></ul></ul><ul><ul><li>OWL-S is grounded in WSDL and it has been mapped into UDDI </li></ul></ul><ul><li>WSMO </li></ul><ul><ul><li>Ontology based model for Web services, data, as well as composition aspects </li></ul></ul><ul><ul><ul><li>Core elements: Ontologies, Web Services, Goals, Mediators </li></ul></ul></ul><ul><ul><ul><li>Language for semantic element description (WSML) </li></ul></ul></ul><ul><ul><ul><li>Reference implementation (WSMX) </li></ul></ul></ul><ul><ul><ul><li>Popular in Europe </li></ul></ul></ul><ul><ul><li>Mediation as a key element </li></ul></ul><ul><ul><ul><li>Every resource description is based on ontology </li></ul></ul></ul><ul><ul><ul><li>Every data element interchanged is an ontology instance </li></ul></ul></ul>
  39. 39. WSMO <ul><li>Goals </li></ul><ul><ul><li>Objectives that a client wants to achieve </li></ul></ul><ul><ul><li>Clear separation of requester and provider </li></ul></ul><ul><ul><li>Use ontological relationships & mediators to link goals to web services, but there is no good solutions either </li></ul></ul><ul><li>Goal specification </li></ul><ul><ul><li>Ontology based goal specification </li></ul></ul><ul><ul><ul><li>Support goal ontology </li></ul></ul></ul><ul><ul><ul><li>Can reuse an existing goal ontology or build on top of existing ones </li></ul></ul></ul><ul><ul><li>Requested Capability (desired service functionality) </li></ul></ul><ul><ul><li>Requested Interface </li></ul></ul><ul><ul><ul><li>Describes communication behavior supported by the requester (Choreography) </li></ul></ul></ul><ul><ul><ul><li>Restrictions/preferences on orchestrations of Web services </li></ul></ul></ul>
  40. 40. WSMO <ul><li>Mediation </li></ul><ul><ul><li>Resolve mismatches on data, service, and process </li></ul></ul>
  41. 41. WSMO <ul><li>Data mediation </li></ul><ul><ul><li>Solving terminological mismatches by ontology mapping, merging, alignment </li></ul></ul><ul><li>Functional mediation </li></ul><ul><ul><li>Solving functional mismatches between goals and/or web services </li></ul></ul><ul><ul><li>Used during service discovery and semantic matchmaking </li></ul></ul><ul><ul><ul><li>Exact, plug-in, subsumption, intersection, no-match </li></ul></ul></ul><ul><li>Process mediation </li></ul><ul><ul><li>Solving communication </li></ul></ul><ul><ul><li>mismatches </li></ul></ul>
  42. 42. WSMO <ul><li>OO Mediators </li></ul><ul><ul><li>Data level mediation, resolve mismatch terminologies </li></ul></ul><ul><li>GG Mediators </li></ul><ul><ul><li>Data/Function/Process level mediation </li></ul></ul><ul><ul><li>Goal does not involve the communication mechanisms </li></ul></ul><ul><li>WG Mediators </li></ul><ul><ul><li>Match a Web Service to a Goal and resolve mismatches </li></ul></ul><ul><ul><li>Data/Function/Process level mediation </li></ul></ul><ul><li>WW Mediators: </li></ul><ul><ul><li>Enable interoperability of heterogeneous Web Services </li></ul></ul><ul><ul><li>Data/Function/Process level mediation </li></ul></ul>
  43. 43. OWL-S and WSMO <ul><li>OWL-S Profile = WSMO capability + Goal + Non-functional properties </li></ul><ul><ul><li>OWL-S uses Profiles to express service capabilities and desired capabilities </li></ul></ul><ul><ul><li>WSMO separates provider (capabilities) and requester points of view (goals) </li></ul></ul><ul><li>OWL-S Process = WSMO Service Interfaces </li></ul><ul><ul><li>OWL-S Process model describes operations performed by Web Service, including consumption as well as aggregation </li></ul></ul><ul><ul><li>WSMO separates Choreography and Orchestration </li></ul></ul><ul><ul><li>OWL-S formal semantics has been developed in different frameworks such as Petri Nets and Pi-calculus </li></ul></ul><ul><ul><li>WSMO service interface model with ASM-based formal semantics </li></ul></ul>
  44. 44. OWL-S and WSMO <ul><li>OWL-S Grounding is similar to WSMO Grounding </li></ul><ul><ul><li>Both map to WSDL </li></ul></ul><ul><ul><li>WSMO also aims at an ontology-based grounding to avoid loss of ontological descriptions throughout service usage process </li></ul></ul><ul><li>Mediation </li></ul><ul><ul><li>External to OWL-S, performed in the orchestration process </li></ul></ul><ul><ul><li>WSMO regards mediators as key conceptual elements </li></ul></ul><ul><ul><ul><li>Support mediator reuse </li></ul></ul></ul>
  45. 45. Some Other Concepts <ul><li>WSIF: Web Services Invocation Framework </li></ul><ul><ul><li>Similar to the tasks performed by Axis, but only for the client, and involves binding as well as invocation </li></ul></ul><ul><ul><li>Support dynamic binding and asynchronous invocation </li></ul></ul><ul><li>WSCL: Web Services Conversation Language </li></ul><ul><ul><li>Defines the overall input and output message sequences of a web service using a finite state machine over the message types </li></ul></ul><ul><li>WS-Coordination </li></ul><ul><ul><li>Support the specification of a service whose job is to coordinate the activities of the Web services that are part of a business process </li></ul></ul><ul><li>WS-Transaction </li></ul><ul><ul><li>Support transaction execution on composite services </li></ul></ul><ul><ul><li>Support conventional transaction protocols, such as 2PL </li></ul></ul><ul><ul><li>E.g., travel agent, airline, hotel together perform transactions </li></ul></ul>
  46. 46. WSCL Example < Conversation name=&quot; StoreFrontServiceConversation &quot; … < ConversationInteractions > < Interaction interactionType=&quot;ReceiveSend&quot; id=&quot;Login&quot;> <InboundXMLDocument id=&quot;LoginRQ&quot;/> hrefSchema=“ http://conv1.org/LoginRQ.xsd ” <OutboundXMLDocument id=&quot;ValidLoginRS&quot;/> hrefSchema=“ http://conv1.org/ValidLoginRS.xsd ” <OutboundXMLDocument id=&quot;InvalidLoginRS&quot; hrefSchema=“ http://conv1.org/InvalidLoginRS.xsd ”/> </ Interaction > … < Interaction interactionType=&quot;Empty&quot; id=&quot;Start&quot; /> < Interaction interactionType=&quot;Empty&quot; id=&quot;End&quot; /> </ ConversationInteractions > < ConversationTransitions > … < Transition > <SourceInteraction href=&quot;Login&quot;/> <DestinationInteraction href=&quot;Registration&quot;/> <SourceInteractionCondition href=&quot;InvalidLoginRS&quot;/> </ Transition > < Transition > <SourceInteraction href=&quot;Logout&quot;/> <DestinationInteraction href=&quot;End&quot;/> </ Transition > </ ConversationTransitions > </Conversation>
  47. 47. WS-Coordination <ul><li>A coordination service is an aggregation of three services: </li></ul><ul><ul><li>Registration: for parties to register with the coordinator </li></ul></ul><ul><ul><li>Activation: to create an instance of a coordination context </li></ul></ul><ul><ul><li>Coordination protocol: to define the specific protocol to be followed </li></ul></ul>
  48. 48. SOC <ul><li>SOC </li></ul><ul><ul><li>Offers a new paradigm for system development and deployment </li></ul></ul><ul><ul><li>Can integrate hardware/software/other services through the same service composition concept and technologies </li></ul></ul><ul><ul><li>But real-world system development is still a major challenge </li></ul></ul><ul><li>How to integrate services into systems </li></ul><ul><ul><li>The technologies still remain in the syntactical level, semantic information has not shown revolutionary contributions </li></ul></ul><ul><ul><ul><li>The foundation of discovery is specification </li></ul></ul></ul><ul><ul><ul><li>Semantic technologies help better describe services </li></ul></ul></ul><ul><ul><ul><li>But the actual specification technologies is still far from satisfactory </li></ul></ul></ul><ul><ul><ul><ul><li>E.g., how to properly specify the functionality of Linux (or differentiate it with Windows) </li></ul></ul></ul></ul>
  49. 49. SOC <ul><li>How to integrate services into systems </li></ul><ul><ul><li>Still the same old barrier: software component specification </li></ul></ul><ul><ul><ul><li>In SE research, this has been investigated for 3 decades </li></ul></ul></ul><ul><ul><ul><li>Will a sophisticated ontology really help? </li></ul></ul></ul><ul><ul><ul><ul><li>Take the Linux example, how to use ontology to achieve a better specification? </li></ul></ul></ul></ul><ul><ul><ul><li>Will we ever be there? </li></ul></ul></ul><ul><ul><li>Best practice: design patterns </li></ul></ul><ul><ul><ul><li>Has been an effective technology for software design </li></ul></ul></ul><ul><ul><ul><li>Now being considered in SOA (service patterns) </li></ul></ul></ul><ul><ul><ul><li>In a way, it is already in SOA </li></ul></ul></ul><ul><ul><ul><ul><li>In OWL-S, a service can be composition of existing services </li></ul></ul></ul></ul><ul><ul><ul><li>But service pattern can make is more explicit and flexible </li></ul></ul></ul><ul><ul><li>Planning and reasoning </li></ul></ul><ul><ul><ul><li>May provide some help in service composition as well </li></ul></ul></ul>
  50. 50. SOC <ul><li>Evolution in software development </li></ul><ul><ul><li>First evolution: From hardware/assembly to high level languages </li></ul></ul><ul><ul><li>Second evolution: From basic language constructs to high level components/objects/services </li></ul></ul><ul><ul><ul><li>Many models have been provided, a lot of improvement, but software development is still time/cost/effort intensive </li></ul></ul></ul><ul><ul><li>Future evolution: Need revolutionary techniques </li></ul></ul><ul><ul><ul><li>SOC may some additional help, but is still far from the solution </li></ul></ul></ul>

×