600 likes | 683 Views
Chapter 1: Computing with Services. Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005. Semantic Web and Beyond. Human Machine Agents Client-Server P2P Cooperative
E N D
Chapter 1:Computing with Services Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Semantic Web and Beyond • Human Machine Agents • Client-Server P2P Cooperative • Syntax Semantics Mutual Understanding Pragmatics and Cognition • Data Services Processes Future Web Services: focus on organization and society Pragmatics (getting work done) - Workflows, BPEL4WS Distributed Cognition - Decisions and Plans Semantics and Understanding - Ontologies, OWL Syntax, Language, and Vocabulary - FIPA ACL Current Web Services: focus on individual and small group Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Open Environments: Characteristics • Cross enterprise boundaries • Comprise autonomous resources that • Involve loosely structured addition and removal • Range from weak to subtle consistency requirements • Involve updates only under local control • Frequently involve nonstandard data • Have intricate interdependencies Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 2:Basic Standards for Web Services Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005 Annotated by Juggy Jagannathan in this color
Highlights of this Chapter • eXtensible Markup Language (XML) • Simple Object Access Protocol (SOAP) • Web Services Description Language (WSDL) • Directory Services • Universal Description, Discovery, and Integration (UDDI) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Standards for Web Services Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
XML Web Service Foundation Open and with broad industry support • Publish, Find, Use Services • UDDI • Service Interactions • SOAP • Universal Data Format • XML • Description Language • WSDL • Ubiquitous Communications • TCP/IP, HTTP, SMTP, SIP, Reliable messaging • Security (authentication and authorization) • WS-Security, SAML Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Web Services: Basic Architecture Service Broker Registry; well-known Publish or announce (WSDL) Find or discover (UDDI) Service Provider Service Requestor Bind or invoke (SOAP) Not well-known Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Basic Profile (BP 1.0) • The Web Services Interoperability Organization (WS-I) has specified the following Basic Profile version 1.0: • SOAP 1.1 • HTTP 1.1 • XML 1.0 • XML Schema Parts 1 and 2 • UDDI Version 2 • WSDL 1.1 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
SOAP (Simple Object Access Protocol) • Used to exchange messages via HTTP, SMTP, and SIP (Session Initiation Protocol for Internet telephony) • Originally designed for remote-procedure calls (RPC) • Works through firewalls on port 80 • Character-based, so easy to encrypt/decrypt and thus easy to secure • Inefficient due to character, not binary, data and large headers • Does not describe bidirectional or n-party interaction Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Ex. SOAP Request POST /temp HTTP/1.1 Host: www.socweather.com Content-Type: text/xml; charset="utf-8" Content-Length: xxx SOAPAction: "http://www.socweather.com/temp" <!-- The above are HTTP headers --> <?xml version=“1.0”?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTemp xmlns:m="http://www.socweather.com/temp.xsd"> <m:City>Honolulu</m:City> <m:When>now</m:When> </m:GetTemp> </env:Body> </env:Envelope> Message sent to this URL Define the namespace for the message Get me the temp in Honolulu now Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Ex. SOAP Response HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: xxx SOAPAction: "http://www.socweather.com/temp" <?xml version=“1.0”?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTempResponse xmlns:m="http://www.socweather.com/temp.xsd"> <m:DegreesCelsius>30</m:DegreesCelsius> </m:GetTempResponse> </env:Body> </env:Envelope> Syntax for encoding response Temp is 30o Celsius Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
WSDL: Web Services Description Language • Describes a programmatic interface to a Web service, including • Definitions of data types • Input and output message formats • The operations provided by the service • Network addresses • Protocol bindings Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Concepts • Operation: Equivalent to a method • Message: Typed data that can be IN, OUT or INOUT • Type: Typed data using XML Schema • Port Type: Like a class or like Java interface – a collection of operations • Binding: A mechanism to invoke operations – how do I invoke this method? • Port: a reference to where an operation may be invoked • Service: a collection of ports (classes) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
WSDL Data Model Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Yellow, Green, and White Pages in UDDI Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 3:Programming Web Services Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2004
Web Service Development Tools • Several exist (e.g., .NET, Cape Clear) • Generate WSDL documents automatically from OO (e.g., Java) source code • Generate source code stubs from WSDL Java Class Files WSDL Docs WSDL Generator Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 3 Summary • Tools help with low-level details • Agreeing on standards is more important than the standards themselves • Should conceptualize interactions in a manner compatible with the Web architecture • Can simplify from SOAP in many cases • The above is a small point anyway • Bigger challenges are in ensuring larger-scale interactions, ensuring integrity, handling exceptions, … • Sophisticated programming models are emerging Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 4:Enterprise Architectures Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005 Few slides added by Juggy Jagannathan
Highlights of this Chapter • Enterprise Integration • J2EE • .NET • Model Driven Architecture • Legacy Systems Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
XHTML XML RDBMS Java App. HTTP(S) CORBA Server Web Container Applet Tag Library JSPs Servlets J2EE Application Server JAF JAF JavaMail JavaMail Directory Service EJB Container JMS JMS Session Beans Entity Beans JDBC JDBC JTA JTA Message Queue Client App. JNDI JNDI RMI/IIOP RMI/IIOP Mail Server J2EE Architecture Reproduced with Permission from Java Server Programming J2EE Edition – Wrox Press, Ltd, 2000 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
.NET Technology Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 4 Summary • Services must fit into existing architectures • J2EE and .NET are architecturally similar • Legacy systems provide the basis for many services • Interoperating with legacy systems is nontrivial • Challenge: refactoring legacy capabilities to derive best value from resulting services Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 5:Principles of Service-Oriented Computing Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2004
Key Concepts for an SOA • Loose coupling • Implementation neutrality • Flexible configurability • Persistence • Granularity • Teams Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 6:Modeling and Representation Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Integration versus Interoperation Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Modeling and Composing Services Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Ontologies and Articulation Axioms Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Exercise: Which Conceptualization Has More Expressive Power? • awg22SolidBlueWire(ID5) • blueWire(ID5, AWG22, Solid) • solidWire(ID5, AWG22, Blue) • wire(ID5, AWG22, Solid, Blue) • wire(ID5)^size(ID5, AWG22)^type(ID5, solid)^color(ID5, Blue) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 6 Summary • Shared models are essential for interoperation • Based on shared ontologies or conceptualizations • Good models must accommodate several important considerations • Modeling requires several subtle considerations • Declarative representations facilitate reasoning about and managing models • Formalization enables ensuring correctness of models and using them for interoperation Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 7:Resource Description Framework (RDF) Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
RDF • Provides a basis for knowledge representation • Simple language to capture assertions (statements), which help capture knowledge, e.g., about resources • RDF puts together old KR ideas but uses the Web to enhance their range and avoid some longstanding problems Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Statements or Triples • RDF is based on a simple grammar • An RDF document is just a set of statements or triples • Each statement consists of • Subject: a resource • Object: a resource or a literal • Predicate: a resource Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Example (Using Dublin Core) <?xml version='1.0' encoding='UTF-8'?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.wiley.com/SOC"> <dc:title>Service-Oriented Computing</dc:title> <dc:creator>Munindar</dc:creator> <dc:creator>Michael</dc:creator> <dc:publisher>Wiley</dc:publisher> </rdf:Description> </rdf:RDF> • rdf:Description gathers statements about one subject Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
N-Triples Notation <http://www.wiley.com/SOC> <http://purl.org/dc/elements/1.1/title> "Service-Oriented Computing" . <http://www.wiley.com/SOC> <http://purl.org/dc/elements/1.1/creator> "Munindar" . <http://www.wiley.com/SOC> <http://purl.org/dc/elements/1.1/creator> "Michael" . <http://www.wiley.com/SOC> <http://purl.org/dc/elements/1.1/publisher> "Wiley” . • Could also write individual statements in the XML syntax, but the rdf:Description element simplifies the notation Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 7 Summary • RDF captures the deep structure whereas XML captures the surface structure • RDF captures graphs in general • RDF is based on an simple linguistic representation: subject, predicate, object • But “webified” via URIs • RDF comes with RDF Schema • In essence, an object-oriented type system • Has been used for important custom vocabularies • For our purposes, best used as part of OWL Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 8:Web Ontology Language (OWL) Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Web Ontology Language (OWL) • RDF captures the basics, i.e., an object-oriented type system • Additional subtleties of meaning are needed for effective KR • OWL standardizes additional constructs to show how to capture such subtleties of meaning • OWL builds on RDF Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
OWL in Brief • Specifies classes and properties in a form of description logic (DL) • Class operators analogous to Boolean operators and, not, and or • Constraints on properties: transitive, … • Restrictions: constructs unique to DL • Has three species: OWL Full, OWL DL, and OWL Lite Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Ontologies to Define Vocabulary Semantics • A trivial ontology defining our vocabulary • Uses simple subclasses and properties • Disjointness goes beyond RDF • Object properties refine RDF propeties; relate two objects <owl:Class rdf:ID="Mammal"> <rdfs:subClassOf rdf:resource="#Animal"/> <owl:disjointWith rdf:resource="#Reptile"/> </owl:Class> <owl:ObjectProperty rdf:ID="hasParent"> <rdfs:domain rdf:resource="#Animal"/> <rdfs:range rdf:resource="#Animal"/> </owl:ObjectProperty> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Constructing OWL Classes • Explicitly (as in the examples above) or • Anonymously, using • Restrictions (next page) • Set operators: intersectionOf, unionOf, complementOf, e.g., <owl:Class rdf:ID='SugaryBread'> <owl:intersectionOf rdf:parseType='Collection'> <owl:Class rdf:about='#Bread'/> <owl:Class rdf:about='#SweetFood'/> </owl:intersectionOf> </owl:Class> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Restrictions: 1 • A unique feature of description logics • Kind of like division: define classes in terms of a restriction that they satisfy with respect to a given property • Anonymous: typically included in a class def to enable referring them • Key primitives are • someValuesFrom a specified class • allValuesFrom a specified class • hasValue equal to a specified individual or data type • minCardinality • maxCardinality • Cardinality (when maxCardinality equals minCardinality) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Restrictions: 2 Examples of restriction fragments <owl:Restriction> <owl:onProperty rdf:resource="#hasFather"/> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger"> 1 </owl:maxCardinality> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource='#bakes'/> <owl:someValuesFrom rdf:resource='#Bread'/> </owl:Restriction> Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Restrictions versus Axioms • Axioms are global assertions that can be used as the basis for further inference • Restrictions are constructors • When we state that hasFather has a maxCardinality of 1, we are • Defining the class of animals who have zero or one fathers: this class may or may not have any instances • Not stating that all animals have zero or one fathers • Often, to achieve the desired effect, we would have to combine restrictions with axioms (such as based on equivalentClass) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Inference • OWL is about content, not the syntax • Statements from different documents about the same URI are automatically conjoined • OWL can appear unintuitive to the uninitiated • Declare that no one can have more than one mother • Declare Mary is John’s mother • Declare Jane is John’s mother • A DBMS would declare an integrity violation • An OWL reasoner would say Mary = Jane Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Expressiveness Limitations (sample): • Constraints among individuals • Cannot define tall person: one whose height is above a certain threshold • Can define ETHusband: one who has been married to Elizabeth Taylor • Cannot capture defeasibility (also known as nonmonotonicity) • Birds fly • Penguins are birds • Penguins don’t fly Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 8 Summary • OWL builds on RDF to provide a rich vocabulary for capturing knowledge • Synthesizes a lot of excellent work on discrete, taxonomic knowledge representation • Fits well with describing information resources – a basis for describing metadata vocabularies • Critical for unambiguously describing services so they can be selected and suitably engaged Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Chapter 10:Execution Models Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005