There are multiple advantages to using message based systems.
- Messages form a well defined technology neutral interface between applications.
- Enables loose coupling of applications.
- Lots of options for performance, tuning and scaling:
- Deploy requester and service process on different hardware
- Multiple requesters sharing single server
- Multiple requesters sharing multiple servers
- The various messaging middlewares implement the common messaging patterns independently from you application.
- Request/Reply
- Fire and Forget offline updates
- Publish/Subscribe
- Many of the middleware products handle message transformation (e.g. SWIFT to SWIFTXML).
- Many of the middleware products can decompose a single large request into several smaller requests.
- They nearly all support multiple platforms.
Incidentally the two market leaders in this area are IBM with their Websphere MQ and related products, and, TIBCO with their Enterprise Service Bus.