580 likes | 672 Views
WEB SERVICES. Giảng viên: Phạm Trần Vũ Nhóm trình bày: Vũ Văn An Mã Trường Chu Bùi Thị Dự Lê Thị Kim Tuyến Trần Thị Cẩm Tú. Outline. I. SOA II. Introduction to Web Service
E N D
WEB SERVICES Giảng viên: Phạm Trần Vũ Nhóm trình bày: Vũ Văn An Mã Trường Chu Bùi Thị Dự Lê Thị Kim Tuyến Trần Thị Cẩm Tú
Outline I. SOA II. Introduction to Web Service III. Web Service’s Architecture 1. SOAP 2. WSDL 3. UDDI IV. References V. Demo VI. Q&A 2
SOA - WHAT IS IT? SOA stands for Service Oriented Architecture. SOA is a mechanism that enables organizations to facilitate communication between the systems running on multiple platforms SOA is a collection of well-defined services, each individual service can be modified independently of other services to help respond to the ever-evolving market conditions of a business SOA presents the big picture of what you can do with web services 3
SOA - WHY USE IT? Using SOA can: Enhance business agility Synchronize IT with your business Break the barriers between business units and business partners Lower the cost of maintaining IT systems Focus your resources on innovation rather than maintenance Speed delivery of web services to meet business demands Provide support for IT process automation Protect IT investments by building on your existing infrastructure 4
SOA - ADVANTAGES Business benefits: Focus on Business Domain solutions Leverage Existing Infrastructure Agility Technical Benefits Loose Coupling Autonomous Service Location Transparency Late Binding 5
SOA – DISAVANTAGE & APPLICABILITY Service Oriented Architecture may not always be the best architectural choice because optimal utilization of SOA requires additional development and design attempts as well as infrastructure which translates into costs escalation. 6
SOA - Roles Service Provider Provides a stateless, location transparent business service Service Registry Allows service consumers to locate service providers that meet required criteria Service Consumer Uses service providers to complete business processes Service Registry Service Consumer Service Provider 7
SOA - OPERATIONS Publish: To be accessible, service description must be published so that it can be discovered and invoked by a service consumer. Find: A service requestor locates a service by querying the service registry for a service that meets its criteria. Bind and invoke: After retrieving the service description, the service consumer proceeds to invoke the service according to the information in the service description. 8
SOA - An example Storage Service Storing and retrieving data Reserving space, monitoring status of storage service Querying and defining the policies that govern who is allowed access the service. Data Transfer Service Provide operations for requesting the transfer of data from one storage service to another Managing and monitoring such transfers Querying and defining policies that govern how difference transfer requests are prioritized. Troubleshooting Service 10
Introduction to Web service What are Web Services? Why use it? When use it? XML 11
1. What is Web service? Web Service Essential Book: A web service is any service that is available over the Internet, uses a standardized XML messaging system, and is not tied to any one operating system or programming language Computer A: Language: Perl OS: Windows 2000 XML XML Computer B: Language: Java OS: Linux A basic web service 12
1. What is Web service? (cont) W3C: A software system designed to support interoperable machine-to-machine interaction over a network W3schools.com: Application components Communicate using open protocols Self-contained and self-describing Can be used by other applications 13
2. Why use web service? Interoperability has highest priority Web Services take Web-applications to the next level Web Services have two types of uses Reusable application-components Connect existing software 14
2. Why use web service? (cont) Web services facilitate collaboration and allow businesses to grow Companies can spend less time developing new applications E-businesses can use Web services to provide their customers with enhanced shopping experiences 15
3. When use web service? Applications do not have severe restrictions on reliability and speed Two or more organizations need to cooperate One needs to write an application that uses another’s service Services can be upgraded independently of clients Google can improve PageRank implemenation without telling user Just don’t change the WSDL 16
Web Service What are Web Services? Why use it? When use it? XML (eXtensible Markup Language) 17
4. XML 4.1. A bout XML 4.2. The difference between XML and HTML 18
4.1. About… XML - eXtensible Markup Language XML is a markup language much like HTML XML tags are not predefined. You must define your own tags XML is designed to be self-descriptive 19
4.1. About… XML does not do anything With XML, you invent your own tags XML just plain text <note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note> 20
4.2. The difference between XML and HTML XML Designed to transport and store data, with focus on what data is Carrying information Provides a facility to define tags and the structural relationships between them HTML Designed to display data, with focus on how data looks Displaying information Both the tag semantics and the tag set are fixed 21
WEB SERVICE’S ARCHITECTURE SOAP Simple Object Access Protocol
What is SOAP? The Service Oriented Architecture Protocol Protocol for messaging and remote procedure calling between distributed applications SOAP is for exchange information between applications SOAP is a format for sending messages SOAP is platform and language independent Developed by the World-Wide-Web Consortium (W3C) 23
What is SOAP? Encoded in XML Stateless (request/response) SOAP is simple and extensible SOAP messages work through proxies and firewalls 24
SOAP in a Nutshell A SOAP client formats a message in XML including a SOAP “envelope” element describing the message The client sends the message to a SOAP server in the body of an HTTP request The server determines whether the message is valid and supported The server formats its response in XML and sends it to the client in the body of an HTTP response 25
SOAP envelope SOAP envelope SOAP Use Scenario: RPC
SOAP Message Components Envelope (required) : identifies the XML document as a SOAP message Contains Header and Body Header (optional) : contains header information Contains application-specific information about the SOAP message. Specifies which entries must be understood and by which target “actor” in chain of recipients 27
SOAP Message Components Body (required) Contains application-specific message May be encoded variously Fault element (optional) Contained in Body Describes error class (version mismatch, headers not understood, client error, server error) 28
Skeleton SOAP Message <?xml version="1.0"?> <soap:Envelope <soap:Header>...</soap:Header><soap:Body>... <soap:Fault> ... </soap:Fault></soap:Body> </soap:Envelope> 29
The HTTP Protocol HTTP communicates over TCP/IP. An HTTP client connects to an HTTP server using TCP. After establishing a connection, the client can send an HTTP request message to the server: POST /item HTTP/1.1Content-Type: application/soap+xml; 30
The HTTP Protocol The server then processes the request and sends an HTTP response back to the client. The response contains a status code that indicates the status of the request: 200 OKContent-Type:application/soap+xml; 31
SOAP HTTP Binding A SOAP method is an HTTP request/response that complies with the SOAP encoding rules. HTTP + XML = SOAP 32
A SOAP Example In the example below, a GetStockPrice request is sent to a server. The request has a StockName parameter, and a Price parameter that will be returned in the response. The namespace for the function is defined in "http://www.example.org/stock". 33
A SOAP request POST /InStock HTTP/1.1Host: www.example.orgContent-Type: application/soap+xml; <?xml version="1.0"?><soap:Envelope><soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice></soap:Body></soap:Envelope> 34
The SOAP response HTTP/1.1 200 OKContent-Type: application/soap+xml; <?xml version="1.0"?><soap:Envelope><soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse></soap:Body></soap:Envelope> 35
WEB SERVICE’S ARCHITECTURE WSDL Web Services Description Language
Definition • WSDL is an XML-based language used to define Web Services and describe how to access them • When someone wants to use your service, they request the WSDL file in order to find out the location of the service, the function calls and how to access them • Then they use this information in your WSDL file to form a SOAP request to the computer
WSDL Elements • Types • Messages • Interfaces (portTypes) • Bindings • Services
Types • Describes all the data types used between the client and server • WSDL is not tied exclusively to a specific typing system <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all><element name="tickerSymbol" type="string"/></all> </complexType> </element> <element name="TradePrice"> <complexType> <all><element name="price" type="float"/></all> </complexType> </element> </schema> </types>
Messages • The <message>element is used to define the messages that will be exchanged between the client and the service • Contains zero or more message <part> elements, which can refer to message parameters or message return values.
Messages <message name="SayHelloRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SayHelloResponse"> <part name="greeting" type="xsd:string"/> </message>
portTypes • Combines multiple message elements to form a complete one-way or round-trip operation <portType name="Hello_PortType"> <operation name="sayHello"> <input message="tns:SayHelloRequest"/> <output message="tns:SayHelloResponse"/> </operation> </portType>
Bindings • Define the mechanism that the client will actually use to interact with the web service • Provide concrete information on what protocol is being used • The most common choice is currently SOAP
Services • The service element defines the address for invoking the specified service. • Most commonly, this includes a URL for invoking the SOAP service <service name="Hello_Service"> <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/> </port> </service>
Editors How do you write WSDL files? • By hand: some editors have special support for WSDL ! • Automatic generation
WEB SERVICE’S ARCHITECTURE UDDI Universal Description, Discovery and Integration
Introduction to UDDI Universal description discovery and integration(UDDI) is special directory services which is implemented to use for indexing all the available services, a company offer. UDDI - an XML-based standard for describing, publishing, and finding Web services 48
Why UDDI ? At a first glane appears extremely simple Nonetheless, it include some subtle points that are easily overlooked. Let’s therefore begin examining the future impact of UDDI within a specific a industry. Currently, approximately 700 companies in the information technology, electronic component. 50