Last week I promised to talk about redundancy in the cloud. But before we look at redundancy, I think it would be good to have a clear understanding of the type of data-handling infrastucture that can best support a real-time cloud system.
Your typical business application in the cloud stores data in a database, and gives it out, upon request, through a web browser. For example, salesforce.com maintains a database of customer and contact records, sales activities, and so on. When you request the data, the salesforce.com system sends it out in HTML format and it gets displayed in your web browser. As a user, you have no direct access to the database, and you probably don’t care. You’ll never need or use the raw data, and it is intentionally not made available.
A real-time system is different. Sure, you may want to see your data in a web browser, so getting it in HTML format is necessary. But you may also want to log the data to a local, on-site database, or to power a trending application. You might want to use the data for live analysis in Excel, or even to send it directly to a remote process in an M2M (machine-to-machine) application. In all of these cases, it is best to keep the data in its raw form until it is used.
In a real-time system, the data is constantly flowing. Working with raw data internally keeps the latency of data transmission as low as possible. Translating it into HTML, XML, SQL, or any other format would slow down the rate of transmission. Any kind of data transformation like that is best done as close to the final destination as possible. While the data is flowing through the system it is easiest to handle it in its raw form.
So, a real-time cloud infrastructure needs to be data-centric, not web-centric. It needs to act as a conduit for live data, not a warehouse of static data. The conduit should be able to provide raw data, as well as to convert it to HTML for a web-based interface. And ideally it should be able to provide the data to a wide variety and large number of clients simultaneously.
For example, in an industrial system, a cloud-based, data-centric system would allow a number of different types of clients to use the same data in different ways. A roving operator could be receiving an alarm on a cell phone, while an executive in a central office is overseeing production trends, while the data is also being logged at a secure location. All of this data would be coming from a single, integrated, data-centric, real-time cloud system.
One final (and very important) advantage of a data-centric system is that it can more easily meet the expanded requirements for redundancy in the real-time cloud. Next week we’ll talk more about redundancy. Really. I promise.