230 likes | 265 Views
Learn about XML, SOAP, WSDL, and UDDI in web services for Enterprise Systems. Understand the foundation, basics, schema, and interaction of XML services. Explore SOAP protocol, directory services, and UDDI integration for robust communication.
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.