Web services

19
Java Web Services Java Web Services CSCI 4300 CSCI 4300 Diagrams from the Sun Java Web Diagrams from the Sun Java Web Services Tutorial, Services Tutorial, http://java.sun.com/webservices/docs/ http://java.sun.com/webservices/docs/ 1.6/tutorial/doc/ 1.6/tutorial/doc/

description

 

Transcript of Web services

Page 1: Web services

Java Web ServicesJava Web Services CSCI 4300CSCI 4300

Diagrams from the Sun Java Web Services Diagrams from the Sun Java Web Services Tutorial,Tutorial,

http://java.sun.com/webservices/docs/1.6/tutorial/doc/http://java.sun.com/webservices/docs/1.6/tutorial/doc/

Page 2: Web services

What are Web Services?What are Web Services?

• Business-to-Business (B2B) communication• Packaged in XML “SOAP” messages

Page 3: Web services

Example: Travel AgentExample: Travel Agent

Page 4: Web services

Service-Oriented Architecture Service-Oriented Architecture (SOA)(SOA)

Needs:1. Mechanism for discovering services (registry)2. Language for specifying service contract (Web

service semantic)

Page 5: Web services

Simple Object Access Protocol Simple Object Access Protocol (SOAP)(SOAP)

• Envelope: top-level element, represents entire message

• Header: optional info to guide delivery and processing by multiple actors, e.g. shipping, logging, accounting

• Body: contains request / response info

• Fault: carries error messages

<?xml version="1.0"?<soap:Envelope xmlns:soap=…"> <soap:Header> ... ... </soap:Header> <soap:Body> ... ... <soap:Fault> ... ... </soap:Fault> </soap:Body>

</soap:Envelope>

Page 6: Web services

Interfacing SOAP with Proprietary Interfacing SOAP with Proprietary business processbusiness process

Page 7: Web services

Example: SOAP over AJAX Example: SOAP over AJAX

• Using a “WS” package to handle SOAP encoding

Page 8: Web services

XHttpRequest lifecycleXHttpRequest lifecycle

Page 9: Web services

Java XML Binding (JAXB)Java XML Binding (JAXB)

• Marshalling: collecting data into XML• Binding: generating Java classes to represent

XML

Page 10: Web services

How Binding WorksHow Binding Works

Page 11: Web services

Old-school remote Java: RMIOld-school remote Java: RMI

Page 12: Web services

Remote Java using Web Services Remote Java using Web Services Model (JAX-RPC)Model (JAX-RPC)

Page 13: Web services

Another View of JAX-RPCAnother View of JAX-RPC

• This shows the JAX-RPC runtime and HTTP/SOAP transport

• In this case client and server are both Java

Page 14: Web services

Yet Another ViewYet Another View

• Showing the role of WSDL to coordinate client and server

• In his case the client is not necessarily in Java!

Page 15: Web services

Java XML Registry (JAXR)Java XML Registry (JAXR)

• Java API overlaid on native registry systems • A registry allows location of objects

Page 16: Web services

WSDL (Fujitsu version)WSDL (Fujitsu version)

Page 17: Web services

WSDL (Sun version)WSDL (Sun version)

Page 18: Web services

UDDI ArchitectureUDDI Architecture

Page 19: Web services

AcknowledgementsAcknowledgements

• Webservices strategy: http://www.webservices-strategy.com/

• SOAP/proprietary interface: http://www.ebizq.net• SOAP over AJAX diagrams:

http://www.ibm.com/developerworks/webservices/library/ws-wsajax/

• Web services architecture:

http://www.w3.org/2003/Talks/0317-ws-intro/• Fujitsu WDSL diagram: xml.fujitsu.com

• RPC diagrams: http://www.onjava.com/pub/a/onjava/2002/04/24/jax-rpc.html

• “Figure 1”: http://dev2dev.bea.com/lpt/a/345

• JAX-J2EE: www.vsj.co.uk