Service-Oriented Computing: Semantics, Processes, Agents August 2004 Lecture 3: Web Service Standard and SOA INX954376 : Web Service for Enterprise System 2nd Semester, Academic Year 2016 College of Arts, Media and Technology Chiang Mai University Ref. : Munindar P. Singh and Michael N. Huhns, Wiley, 2005 © Singh & Huhns
Service-Oriented Computing: Semantics, Processes, Agents August 2004 Agenda XML: eXtensible Markup Language SOAP: Simple Object Access Protocol WSDL: Web Services Description Language Directory Services UDDI: Universal Description, Discovery, and Integration © Singh & Huhns
Standards for Web Services
Standards for Web Services XML SOAP WSDL UDDI platforms and programming language independent support loosely coupled connections between systems[1] based on open standard such as XML and three other core technologies: WSDL, SOAP, and UDDI.[3]
XML Web Service Foundation Extensible Markup Language XML is a meta-language for describing data enable the structuring, description and interchange of data used to describe any content in a structured way underlying web service[7] 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
Markup History None, as in comma separated values Ad hoc tags SGML (Standard Generalized Markup L): complex, few reliable tools HTML (HyperText ML): simple, unprincipled, mixes structure and display XML (eXtensible ML): simple, yet extensible subset of SGML to capture new vocabularies Machine processible Comprehensible to people: easier debugging
XML Basics and Namespaces <?xml version="1.0"?> <!– not part of the document per se <arbitrary:toptag xmlns=“http://one.default.namespace/if-needed” xmlns:arbitrary=“http://wherever.it.might.be/arbit-ns” xmlns:random=“http://another.one/random-ns”> <arbitrary:atag attr1=“v1” attr2=“v2”> Optional text also known as PCDATA <arbitrary:btag attr1=“v1” attr2=“v2” /> </arbitrary:atag> <random:simple_tag/> <random:atag attr3=“v3”/> <!– compare with arbitrary:atag above </arbitrary:toptag>
XML Schema A data definition language for XML: defines a notion of schema validity; helps us define desired grammars for documents Same syntax as regular XML documents Local scoping of subelement names Incorporates namespaces Types Primitive (built-in): string, ID, IDREF, integer, float, date, simpleType constructors: list, union Restrictions: intervals, lengths, enumerations, regex patterns, Flexible ordering of elements Key and referential integrity constraints
WSDL: Web Service Description Language An XML-based format for describing Web services uses to specify the operation, parameters, and service access information act as the initial web service interface Functional Description Define how to interact with web service Where a service can be accessed How to configure network protocol Non-Functional Description Provide secondary details Instruct runtime environment Ex. Security policy
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
Describing a Service Name e.g., GetTemperature Types of Input Parameters e.g., (String, String) Types of Output Parameters e.g., Integer
SOAP: Simple Object Access Protocol XML-based protocol for exchanging data over the Internet HTTP, SMTP, and FTP provides a simple packaging structure standard and method for transporting XML messages 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
Directory Services Support discovery: enable applications, agents, Web service providers, Web service requestors, people, objects, and procedures to locate each other White pages – entries found by name Yellow pages – entries found by characteristics and capabilities A basic directory might be a simple database (passive) or a broker/facilitator (active, that provides alerts and recruits participants) UDDI – both white pages and yellow pages, but passive
UDDI: Universal Description, Discovery, and Integration a specification for creating an XML-based registry provides lists of business information and the web services they offer. use UDDI to discover available web services provides structure for representing businesses, business relationships, web services, specification metadata, and web service access points. UDDI registers tModels: technical descriptions of a service’s behavior businessEntities: describes the specifications of multiple tModels
Yellow, Green, and White Pages in UDDI
UML Model for Business Entity in a UDDI Registry
Core Data Structures for UDDI
WSDL UDDI Correspondence
Service-Oriented Architecture SOA is the underlying structure supporting communication between services. Being a paradigm for organizing and utilizing distributed capabilities under the control of different ownership domains. Service repository Responsible for making the service interface and advertises the access information Service client Application that requires and uses the service Owner of service Responsible for creating service description
SOA: Service Provider Business perspective: Service provider is the owner of the service. Architectural perspective: Service provider is the platform that hosts access to the service. responsible for creating a service description publishing that description to a service registry (or several registries), and receiving and answering invocations (bind requests) from service consumers.
SOA: Service Requester The service requester known as a service client. It is the application that requires and uses the service which is provided by service provider as a part of its operation. Service requestor can find a service description published to one or more service registries by searching in the criteria such as service type or keywords. The result of the finding operation is a list of service descriptions or URL that match the find criteria. After the service requester has the necessary details of the service, it can bind or connect directly to the service provider and invoke operations on it.
SOA: Service Registry Service registry provides mechanisms for registering and finding services. We can define as it is the service repository. It is responsible for making the service interface and advertises the access information that was published by service provider to any potential service requester.