This might be very familiar topic to some and but to set the context I would like to start saying few words about it. Every enterprise has an array applications and systems to handle their business needs. These Systems could include a CRM, ERP, Customer facing portal and one or more legacy applications ;-). Traditionally these applications were built and made to talk to each other point-to-point integrations. While there are several reasons to it one of the inevitable reason is each development group might have picked up their own communication style and technology. But sooner people realised that this type of integration could cause lot of maintenance issues and changes will become expensive. Infact point 2 point integrations where actually called Integration Spaghetti. This lead to the emergence of EAI as a discipline
If you go through the above Wikipedia link – it goes ahead to talk about 2 different integration patterns called Mediation (intra-application within enterprise) and Federation (inter-application for communications from outside world). There are 2 different topologies Hub/Spoke and Bus.
All the latest developments and products called – MOM (Message oriented Middleware) and ESB (Enterprise Service Bus) are based on the Bus topology. A single deployment of this topology can be carefully planned for Mediation and Federation use cases. MOMs only covers few message exchanging styles where as ESB is a bit of a stretch and can be called the Swiss-army knife for communication -Packed with all architecture styles and patterns.
Both of the above flavors support many different MEP (message exchange patterns) few of them are below.
- Synchronous Req/Res.
- Asynchronous Req/Res
- Send-and-Forget or Fire-and-Forget
Feel free a use cases familiar to you for each of the above categories. This is the basic for EAI and there is a multitude of architecture styles emerged on top of these on need basis.
Zooming back into EAI for IoT. Here is great post about Pub/Sub in IoT context by a good writer – Therese Sullivan. I am quoting what she quoted in her post (in the above) 😉
“Francis daCosta in his book Rethinking the Internet of Things: A Scalable Approach to Connecting Everything also foresees Pub/Sub as the communications model for the Internet of Things. He says, “Fundamentally, traditional IP-based peer-to-peer relationships lock out much of the potential richness of the Internet of Things. There will be vast streams of data flowing, many of which are unknown or unplanned. Only publish/subscribe architecture allows us to tap into this knowledge by discovering interesting data flows and relationships. And only a publish/subscribe network can scale to the tremendous size of the coming Internet of Things. So appliances, sensors, and actuators must use self-classified traffic schemes to allow for discovery and creation of information “neighborhoods””.
CEP (Complex Event Processing) is one such EAI style more relevant for IoT platforms which uses Pub/Sub as the under the hood.
How does a topic based Pub/Sub works?
Wondering why MQTT is the protocol for Pub/Sub and IoT ? Check this link out. A sample IoT ecosystem with MQTT broker would look like this (photo credit, eecatalog.com). Here are some useful links about MQTT