Message Exchange Patterns in Web Services

A message Exchange Pattern (MEP) is a pattern for the exchange of messages between two communicating parties like a server and a client. The most common such pattern is the request-response pattern where the client sends a request and the server sends a response back. From a server perspective this is an input-output operation. Based on different combinations of input and output, the WSDL specification defines 4 patterns: 

  • Input-Output Operations

  • Input-Only Operations.

  • Output-Input Operations.

  • Output-Only Operations.


Request-Response (Input – Output operation)

  • Client sends a request and server sends a response back; and is the most common one you can see.

  • The WSDL port receives a message and sends a correlated response back; and there will be an input message followed by output in WSDL.


One way input (Input only operation)

  • Client sends a message without expecting a response from the service. An example might be a heart beat server that listens to client ping at regular interval to see if it is up and running.  

  • WSDL port only receives a message and there is an input message only in the WSDL


Solicit response (Output – input operation)

  • Server sends a message and client sends a response back mostly an acknowledgement or status update.

  • The WSDL port sends a message and receives a correlated message, and hence there is an output message followed by an input message in WSDL.


Notification or Publish-Subscribe(Output only operation)

  • Here server sends a message without expecting a response. Could be used in a publish subscribe scenario that connects a set of publishers to a set of subscribers.

  • The WSDL port sends a message without response, and hence there is an output message only in WSDL.


Synchronous and asynchronous web service calls

  • Web service calls may be synchronous or asynchronous.

  • Synchnous calls usually follows the request-response message exchange pattern over HTTP. 

    • Solicit response may also be done synchronous.

  • Asynchnous calls may follow one way input or publish-Subscribe message exchange patterns.

    • The client and the service may need to establish a mechanism to correlate the messages in case of asynchronous calls, as the response may be sent later through a callback mechanism implemented at the web service side.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) ArrayLists (1) Arrays (2) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (53) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (8) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (12) Java Programmer 2 (8) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) resources (1) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)