Messaging pattern

In software architecture, a messaging pattern is a network-oriented architectural pattern which describes how two different parts of a message passing system connect and communicate with each other.

In telecommunications, a message exchange pattern (MEP) describes the pattern of messages required by a communications protocol to establish or use a communication channel. There are two major message exchange patterns — a request–response pattern, and a one-way pattern. For example, HTTP is a request–response pattern protocol, and UDP is a one-way pattern.[1]

SOAP

The term "Message Exchange Pattern" has a specific meaning within the Simple Object Access protocol (SOAP).[2][3] SOAP MEP types include:

  1. In-Only: This is equivalent to one-way. A standard one-way messaging exchange where the consumer sends a message to the provider that provides only a status response.
  2. Robust In-Only: This pattern is for reliable one-way message exchanges. The consumer initiates with a message to which the provider responds with status. If the response is a status, the exchange is complete, but if the response is a fault, the consumer must respond with a status.
  3. In-Out: This is equivalent to request–response. A standard two-way message exchange where the consumer initiates with a message, the provider responds with a message or fault and the consumer responds with a status.
  4. In-Optional-Out: A standard two-way message exchange where the provider's response is optional.
  5. Out-Only: The reverse of In-Only. It primarily supports event notification. It cannot trigger a fault message.
  6. Robust Out-Only: Similar to the out-only pattern, except it can trigger a fault message. The outbound message initiates the transmission.
  7. Out-In: The reverse of In-Out. The provider transmits the request and initiates the exchange.
  8. Out-Optional-In: The reverse of In-Optional-Out. The service produces an outbound message. The incoming message is optional ("Optional-in").

ØMQ

The ØMQ message queueing library provides so-called sockets (a kind of generalization over the traditional IP and Unix sockets) which require indicating a messaging pattern to be used, and are optimized for each pattern. The basic ØMQ patterns are:[4]

  • Request–reply connects a set of clients to a set of services. This is a remote procedure call and task distribution pattern.
  • Publish–subscribe connects a set of publishers to a set of subscribers. This is a data distribution pattern.
  • Push–pull connects nodes in a fan-out / fan-in pattern that can have multiple steps, and loops. This is a parallel task distribution and collection pattern.
  • Exclusive pair connects two sockets in an exclusive pair. This is a low-level pattern for specific, advanced use cases.

Each pattern defines a particular network topology. Request-reply defines so-called "service bus", publish-subscribe defines "data distribution tree", push-pull defines "parallelised pipeline". All the patterns are deliberately designed in such a way as to be infinitely scalable and thus usable on Internet scale.[5]

gollark: Sorry, made, not sequenced.
gollark: I believe you can pay to have arbitrary DNA/RNA made nowadays, yes, although it's quite costly.
gollark: Or close to that.
gollark: 1/3 of vaccines working is still a great achievement, but also doesn't mean it's fully understood.
gollark: And computing is a horrible mess where nobody agrees on lots of things, the industry is stuck decades behind research, and everything has awful security holes.

See also

References

  1. Erl, Thomas (2005). Service Oriented Architecture: Concepts, Technology, and Design. Indiana: Pearson Education. p. 171. ISBN 0-13-185858-0.
  2. http://www.w3.org/TR/soap12-part1/#soapmep SOAP MEPs in SOAP W3C Recommendation v1.2
  3. Web Services Description Language (WSDL) Version 2.0: Additional MEPs
  4. ØMQ User Guide
  5. Scalability Layer Hits the Internet Stack
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.