1 / 17

G52IWS: XML Messaging (briefly)

G52IWS: XML Messaging (briefly). Chris Greenhalgh 2007-11-30. 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. Message-based communication.

sari
Télécharger la présentation

G52IWS: XML Messaging (briefly)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. 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. 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. Recap: SOAP Message structure “Developing Java Web Services”, figure 4.1

  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. 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. 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. 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. 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. Main JAXM classes & interfaces • javax.xml.messaging.OneWayListener • Interface for receiving a SOAPMessagepublic void onMessage(SOAPMessage msg); • javax.xml.messaging.ReqRespListener • Interface for receiving a SOAPMessage and replyingpublic 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. Recap: Message-Oriented Middleware (MOM)‏ MOM infrastructure Application A Application B Adapter API Adapter API Messages sent & received (& transactions contexts)‏ Persistence After “Developing Java Web Services” figure 1.6

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

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

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

  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. 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

More Related