230 likes | 241 Vues
INX954376 : Web Service for Enterprise System 2 nd Semester, Academic Year 2016 College of Arts, Media and Technology Chiang Mai University. Lecture 3: Web Service Standard and SOA. Ref. : Munindar P. Singh and Michael N. Huhns, Wiley, 2005. Agenda. XML: eXtensible Markup Language
E N D
INX954376 : Web Service for Enterprise System 2nd Semester, Academic Year 2016 College of Arts, Media and Technology Chiang Mai University Lecture 3:Web Service Standard and SOA Ref. : Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Agenda • XML: eXtensible Markup Language • SOAP: Simple Object Access Protocol • WSDL: Web Services Description Language • Directory Services • UDDI: Universal Description, Discovery, and Integration
Standards for Web Services • 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 • 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 XML 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
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 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
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 • Namee.g., GetTemperature • Types of Input Parameterse.g., (String, String) • Types of Output Parameterse.g., Integer
SOAP: Simple Object Access Protocol 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 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
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.