Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 G52IWS: XML Messaging (briefly) Chris Greenhalgh 2007-11-30.

Similar presentations


Presentation on theme: "1 G52IWS: XML Messaging (briefly) Chris Greenhalgh 2007-11-30."— Presentation transcript:

1 1 G52IWS: XML Messaging (briefly) Chris Greenhalgh 2007-11-30

2 2 Contents Introduction to message-based communication SOAP with Attachment API for Java Provider-less messaging Messaging with a JAXM provider See “Developing Java Web Services”, Chapter 9

3 3 Message-based communication Send an XML document, not parameters No necessary response –But a later message may be a response :-) “Developing Java Web Services”, figure 3.4

4 4 SOAP with Attachment API for Java Defined by Java Community Process JSR-67 Allows explicit construction and unpacking of SOAP messages using Java See example client in src/sample/client/SaajClient.java Can be used –to implement SOAP clients and servers directly over HTTP (as in example) –With JAXM to support indirect and asynchronous communication (see later)

5 5 Recap: SOAP Message structure “Developing Java Web Services”, figure 4.1

6 6 SOAP: main classes & interfaces javax.xml.soap.SOAPMessageFactory –Source of new SOAPMessages javax.xml.soap.SOAPMessage –An entire SOAP message, including attachments (not XML) javax.xml.soap.SOAPPart, javax.xml.soap.AttachmentPart. –SOAP and Attachment Part(s) of a SOAPMessage –SOAP Part has SOAPEnvelope & MIMEHeaders javax.xml.soap.SOAPEnvelope –Contains SOAPHeader &SOAPBody

7 7 javax.xml.soap.SOAPHeader & javax.xml.soap.SOAPHeaderElement javax.xml.soap.SOAPBody & javax.xml.soap.SOAPBodyElement –The body and body elements javax.xml.soap.SOAPElement –(Interface) Any SOAP-related XML element in a SOAP message javax.xml.soap.Node –Any XML element in a SOAP message (compare XML Document Object Model) javax.xml.soap.SOAPFault –Representation of a SOAP Fault

8 8 Using SAAJ with HTTP: client javax.xml.soap.SOAPConnection. –obtained from SOAPConnectionFactory –Supports request/response over HTTP –E.g. from sample client: SOAPMessage rp = conn.call(msg, urlval);

9 9 Using SAAJ/JAXM with no JAXM Provider: server Extend javax.xml.messaging.JAXMServlet and implement javax.xml.messaging.ReqRespListener –E.g. public class ReqRespServlet extends JAXMServlet implements ReqRespListener { public SOAPMessage onMessage(SOAPMessage msg) { //Implement your business logic here return respMsg; } }

10 10 Servlet runs in container which handles HTTP JAXMServlet handles –converting the POSTed SOAP message (MIME-encoded) into a javax.xml.soap.SOAPMessage –calling onMessage() –Converting the returned SOAPMessage into the HTTP response

11 11 Main JAXM classes & interfaces javax.xml.messaging.OneWayListener –Interface for receiving a SOAPMessage public void onMessage(SOAPMessage msg); javax.xml.messaging.ReqRespListener –Interface for receiving a SOAPMessage and replying public SOAPMessage onMessage(SOAPMessage msg); javax.xml.messaging.JAXMServlet –Utility servlet for doing JAXM HTTP-based message receivers javax.xml.messaging.ProviderConnection –Interface for communicating with JAXM “Provider” (see later) javax.xml.messaging.Endpoint –Endpoint (client or service) identifier; URI

12 12 Recap: Message-Oriented Middleware (MOM)‏ Application A Persistence Adapter API Application B MOM infrastructure Adapter API After “Developing Java Web Services” figure 1.6 Messages sent & received (& transactions contexts)‏

13 13 JAXM-based application architecture “Developing Java Web Services”, figure 9.1

14 14 JAXM-based application architecture details “Developing Java Web Services”, figure 9.1 ProviderConntection: allows message sending and registering of receivers Logical distributed JAXM provider OneWayListener or ReqRespListener interface to receive message(s). Identified by an Endpoint (URI) Message bean or JAXMServlet Local API/client for provider

15 15 Simple JAXM provider realisation Local API/client for provider Provider Infrastructure Including persistence Provider Connection w. Endpoint Messages between client and provider Messages to/from external services

16 16 JAXM Provider C.f. MOM infrastructure Handles message transmission and routing –Including message reliability (through retransmission) Uses “Profiles” to specify the underlying messaging protocol –E.g. SOAP-RP (SOAP Routing Protocol) or ebXML Handles synchronous vs asynchronous interactions –E.g. mapping asynchronous client request to synchronous server handling

17 17 Conclusion SAAJ allows direct construction/consumption of SOAP messages –No mapping to programming language types or paradigms (such as RPC) JAXM supports messaging-style use of SOAP, in particular asynchronous interactions –E.g. extended business processes


Download ppt "1 G52IWS: XML Messaging (briefly) Chris Greenhalgh 2007-11-30."

Similar presentations


Ads by Google