SOA standards
Transcript of SOA standards
SOA Standards
SOA Standards…
• Web service standards
• – XML-based standards
• Common Event Infrastructure (CEI)
• – An event model used in IBM SOA implementations
• Unified Modeling Language (UML)
• – Provides a consistent terminology for model-driven design
• Service Component Architecture (SCA)
• – A component model for assembling SOA solutions
What is service?
• A service is an application function composed of serially reusable components that can be used in a business process
● Exposes a well defined interface
● Appears as a self-contained function
● Uses messages to hide implementation details
● Has no dependencies on the state of other services
● Provides information to a requester or facilitates a change to business data from one valid, consistent state to another
What is web service? -- Definition
• A Web service is a software system identified by a URI whose public interfaces and bindings are defined and described using XML.
• Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols ”
XML……..
• XML is the basis for many of the Web services standards
• XML characteristics map well to business integration needs
• – Interoperability
• – Vendor, platform, language neutral
XML and XML schema
• ●XML:• – Allows developers to model data in a vendor, language,
and platform• neutral way• – Is self-describing• – Markup consists of tags and text• – Was designed for interoperability and ease of
implementation• ●XML Schema:• – Defines and constrains the content of an XML document• – Allows you to define custom types• – Allows you to define simple types and complex types
XML schema
SOAP
• Protocol for carrying XML
• messages across a network
• – A SOAP message itself is an XML
• document
• -- Network, transport and
• programming language
• independent
WSDL
• Web Services Definition Language (WSDL) provides a standard way to specify the interface and binding details of a service
• ● XML language for describing a Web service• – Operations• – Bindings• – Location of specific implementation• ● WSDL describes to potential service consumers what functions• the service provides, what parameters those functions require,• and what information those functions return to callers• – It is the single most important standard in the Web services suite
of standards
Web Services Description Language
• Provides a model and an XML format for the “contract” of a web service
• Separates abstract service description from both concrete network protocol and message format
• Describes data types used in messages
• Messages are defined as aggregation of typed parts
• Operations are message exchange patterns supported by the web service
• PortTypes are named collections of operations
Key Elements of WSDL
• WSDL is an XML document that describes a service by using a number• of key elements:• ● Type• – Defines the XML data types used in operation parameters• ● Message• – Defines the structure of input, output, and fault messages for a particular service• operation• ● Operation• – Defines the functions supported by the service• ● Port type• – Defines what the service does; described by a number of operations. For each• operation, the message describes the data structure for the input required by the• operation and the output and fault generated by the operation• ● Binding• – Defines how the service is invoked. Most common bindings are SOAP/HTTP and• SOAP/JMS• ● Port• – Specifies the address where the service is located
Types Key Element• <wsdl:definitions targetNamespace="http://stockquote" xmlns:impl=http://stockquote• xmlns:intf=http://stockquote• xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/• xmlns:wsdlsoap=http://schemas.xmlsoap.org/wsdl/soap/• xmlns:wsi=http://ws-i.org/profiles/basic/1.1/xsd• xmlns:xsd="http://www.w3.org/2001/XMLSchema">
• <wsdl:types>• <schema targetNamespace="http://stockquote"• xmlns=http://www.w3.org/2001/XMLSchema• xmlns:impl="http://stockquote" xmlns:intf=http://stockquote• xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/• xmlns:xsd="http://www.w3.org/2001/XMLSchema">• <element name="getQuoteResponse">• <complexType>• <sequence>• <element name="getQuoteReturn" type="xsd:float"/>• </sequence>• </complexType>• </element>• <element name="getQuote">• <complexType>• <sequence>• <element name="symbol" nillable="true" type="xsd:string"/>• </sequence>• </complexType>• </element>• </schema>• </wsdl:types>• </wsdl:definitions>
Message Key Element
• <wsdl:message name="getQuoteResponse">
• <wsdl:part element="impl:getQuoteResponse" name="parameters"/>
• </wsdl:message>
• <wsdl:message name="getQuoteRequest">
• <wsdl:part element="impl:getQuote" name="parameters"/>
• </wsdl:message>
WSDL Port Type
• <wsdl:portType name="StockQuotePT">
• <wsdl:operation name="getQuote">
• <wsdl:input message="impl:getQuoteRequest“
• name="getQuoteRequest"/>
• <wsdl:output message="impl:getQuoteResponse“
• name="getQuoteResponse"/>
• </wsdl:operation>
• </wsdl:portType>
WSDL Binding
• <wsdl:binding name="StockQuoteServiceSoapBinding"• type="impl:StockQuotePT">• <wsdlsoap:binding style="document"• transport="http://schemas.xmlsoap.org/soap/http"/>• <wsdl:operation name="getQuote">• <wsdlsoap:operation soapAction=""/>• <wsdl:input name="getQuoteRequest">• <wsdlsoap:body use="literal"/>• </wsdl:input>• <wsdl:output name="getQuoteResponse">• <wsdlsoap:body use="literal"/>• </wsdl:output>• </wsdl:operation>• </wsdl:binding>
WSDL Service
• <wsdl:service name="StockQuoteService">
• <wsdl:portbinding="impl:StockQuoteServiceSoapBinding"
• name="StockQuotePort">
• <wsdlsoap:addresslocation="http://localhost:9080/..."/>
• </wsdl:port>
• </wsdl:service>
UDDI
• Universal Description, Discovery and Integration• ● The UDDI project defines:• – Structure for the service and service provider
registry• – API for accessing the service registry• – Classifications for data• ● Interactions with a UDDI registry include• – Publishing information• – Finding information• – Using the obtained information
UDDI
• UDDI is a platform-independent framework for describing services, discovering businesses, and integrating business services by using the Internet.
• UDDI is a directory for storing information about web services
• UDDI is a directory of web service interfaces described by WSDL
Example……
• If the industry published an UDDI standardfor flight rate checking and reservation, airlines could register their services into an UDDI directory.
• Travel agencies could then search the UDDI directory to find the airline's reservation interface.
• When the interface is found, the travel agency can communicate with the service immediately because it uses a well-defined reservation interface. (by WSDL)
Relationship between SOAP, WSDL and UDDI
• SOAP is the envelope containing the message
• WSDL describes the service
• UDDI is a listing of web services described by WSDL
• The Web Services Interoperability Organization (WS-I) is an• open industry organization chartered to promote Web services• interoperability across platforms, operating systems, and• programming languages• ● WS-I maintains a specification called the WS-I Basic Profile• that provides interoperability guidance for the core Web• services specifications:• – SOAP over HTTP or HTTPS provide communication and messaging• interoperability• – WSDL provides the description of the service. It complements• communication interoperability with the ability to exchange interface• definitions• – UDDI is the mechanism for publishing and discovery of Web services
Relationship between SOAP, WSDL and UDDI