To infinity and beyond: Extending enterprise systems beyond the firewall
Finally there’s a way of extending enterprise systems beyond the firewall onto Web-enabled devices, explains Peter Moskovits, KAAZING Corporation
As our reliance on the Web has spiralled in the past decade, with demands and expectations that were unimaginable 15 or more years ago, the compromises we were prepared to make in the early years in terms of the richness of web applications and the level of interactivity possible have come back to haunt us. What was so exciting and liberating back then from using the combination of a dumb browser to display uploaded documents with a one-way request/respond communications protocol known as HTTP is now proving claustrophobic!
Clearly, the onset of the mobile revolution has meant many more organisations are facing the pressure of their customers and partners to expose services and information based on data deeply protected within their enterprise back-end systems and often hidden behind multiple layers of proxies and firewalls.
So, is there anything stopping us from using the existing Web infrastructure to make all the enterprise data available to Web and mobile clients? The ostensible answer is there's nothing stopping us but in reality it has been proving otherwise - especially when it comes to transforming truly event-driven enterprise systems into first class citizens in the world of connected cars, connected homes, and intelligent wearables.
Getting the message
“What about enterprise messaging?” I hear you say. Sure, enterprises have been building loosely coupled systems for decades, but such messaging systems are more than often built using the publish-subscribe (pub/sub) paradigm and the fundamental limitation that such systems face is isolated networks. Behind the protection of firewalls and proxies it has for a long time been very hard, if not impossible, to expose enterprise services to the Web and mobile devices. In other words, the fundamental limitation is TCP's incompatibility with the Web.
In order for messaging to be effective, beyond physically connecting your clients to the message broker, you need a well-defined set of APIs that developers can use such as JMS (Java Messaging System) along with communications protocols for defining the bits and bytes traveling on the wire – again readily available in the form of AMQP (Advanced Message Queuing Protocol), and for the IoT/M2M world, MQTT (Message Queuing Telemetry Transport).
But the missing piece, until most recently, has been a protocol that’s purpose-designed for extending messaging to the Web.
Solving the puzzle
Looking at HTTP, the asymmetric request-response based communication protocol the legacy Web offers, and contrast it with the rich business protocols and architectures deployed within the enterprise, the incompatibility between these two worlds is glaring.
To address this mismatch, humanity has been busy - very busy - in the last 10-15 years coming up with clever solutions to map the constraints of the Web to the richness of the enterprise. We came up with workarounds and sometimes even hacks, like polling and long polling, Comet and Ajax, to enhance our Web apps, so we could build more dynamic and engaging experiences.
And while we succeeded to a certain degree, when such applications come to real-life deployments, we quickly realise that they are unnecessarily convoluted and complex, don't scale, and are incredibly wasteful with networking and server resources.
So, why then do we build applications in this way? The answer is simple: unless we were inclined to use browser plugins or extensions, for the longest time this was our only option. We had to map the rich, bi-directional, event driven messaging architectures to a half duplex, high overhead, stateless, wasteful protocol designed for document retrieval.
But the wait is over! At the end of 2011 the Web got its biggest upgrade ever. HTTP got a little, but extremely powerful brother, WebSocket: a full duplex, low overhead protocol, allowing you to create a permanent connection between the client (typically a Web browser) and the server. This is a fundamental shift from a Web that's exclusively request-response based to one that can be always connected, always on.
Circling back to our starting question: Is there anything stopping us from using the existing Web infrastructure to make all the enterprise data available to Web and mobile clients? Thanks to the introduction of WebSocket, communication is now just as powerful over the Web as TCP. So the answer must be, “not any longer”.
In the follow up to this article Peter Moskovits will discuss how the introduction of WebSocket enables a host of possibilities for delivering secure, low-latency Web-enabled applications as well as on-boarding millions of always on IoT physical devices.
- » Why in enterprise apps you don’t have users but ‘internal customers’
- » The process of appointing a CIO – and how to get the best results
- » MobileIron launches Rooms app, aims to make meetings easier
- » Kinvey launches Mobile Data Connect to speed up SAP implementations
- » Why "all-in" on BYOD is the ideal strategy for retailers