Data Centricity helps creating situation awareness to manage and control complex systems and systems of systems in an Internet-centric World.
In a smart city case it can help you building a system managing green smart houses and smart buildings, managing traffic, managing parking, garbage collections, energy and so one.
Unlike messaging, in a data centric based system each entity in the real world is truly represented as a data object that has :
- An identity
- A Structure
- A State
- A Lifecycle, and
- Some Meta data that characterises it and captures all the above
Data qualities can even be attached ( such as Security, Persistency, Consistency etc …) to the data objects.
Take a Car as an example, a car is a pretty complex system that can live, circulate and evolve in other systems such as traffic mgmt. system or within a smart city system.
A car has:
– It can be moving ,
– It can be Broken
– It can be in Maintenance:
– It can be Parked :
Or .. It can be scrapped:
A Data Centric system can instantaneously tells you which “new” cars have been observed or those that have left or been “disposed” from the system. It does all this with no extra effort because a Data Centric system “knows” each data entity individually and does automatic assertion of their liveliness.
Being aware of the data lifecycle allows you to automate for instance your system resource management by releasing all the other objects that are associated to your data and releasing memory, threads, files etc … they are using .
Let’s now try to analyse a car structure by looking to its anatomy…. but more importantly by seeing it as an entire system.
A car has a complex structure. Representing its structure is tough if you are not using a powerful data description language that captures not only subsets it is made of but also the relationships between them.
A Simple car will be made of :
- A bodywork ….
- 4 wheels ……..
- Many many sensors
- On board computer
- Brake system …and
- An Engine …
The engine is a subsystem itself yet is made of many other complex sub-systems:
- A Carburettor
- Timing chain
- Etc >>>>
Each of those subsystems can be captured as individual data objects:
Your data representation can be strongly structured or it can be loosely or semi-structured.
In Data centric world, you can apply and enforce business rules, for instance, the engine will function correctly only when all its sub systems are in a steady state working properly. Furthermore, Data centricity can capture relationship between data objects and entities:
Imagine you are a DRIVER OF ONE OF THOSE VEHICLES!! …
A Driver is first of all a Person, that has an identity, a state and a structure. He can own zero, one or several vehicles and cars, but unfortunately for the time being he can only drive 1 vehicle at a time !!!
All those data entities and their relationships can be captured naturally in a Data Centric system and they live in harmony in a Distributed Global Data Space (GDS).
Nowadays big and sensitive Data is coming from everywhere, data producers and the data consumers are distributed over Local, Wide area , Mobile networks or on Internet or even on ad-hoc networks. In a nutshell we can say that the Network and Internet are becoming a tremendous data space and certainly a huge gold deposit !!
Let’s say you are the owner of a “moving company”, …….
To better manage your fleet vehicles and trucks you decided to install a GPS tracking device on each vehicle of your fleet coupled with an “engine diagnostic box” provided by a cutting edge automotive supplier that enables remote diagnostic and assistance… .
Such system would not only help in knowing where your drivers are in a real-time manner but it will also allow you to assist them in case of an accident or if any truck is broken.
A scenario where Data Centricity Excels over Messaging
Let’s take the case of one driver that in a beautiful and sunny day takes his track to deliver some goods and products. While he is driving …His Truck brakes down in the middle of nowhere !!!!!!!!!! a disaster !!!!!
- Fortunately, the truck position is constantly reported by the GPS device and from time to time it reports the engine status compressed over mobile networks
- When the engine is broken its diagnostic box will update urgently the engine data graph that has been built over time and change its status to “broken” . Instantaneously, all the interested parties will be notified of “Engine status change”. Some diagnostic applications will immediately start the data analysis to identify the broken subsystem (c.f fig below), while others will be in charge of alerting you by SMS seeking for your assistance as the boss of the company in case there are some extra fees to pay. Some of those diagnostics and analysis applications will require assessing the overall engine data object, while others, more specialised, will only be looking at a subset of the engine data objects. What makes a Data Centric System unique compared to other design paradigm is that each application can have its own view on the data.
In a very near future, such diagnostic and analysis will happen likely in the Truck provider’s “private cloud” … Such data centric system will require a technology and platform that maintains virtually a unique single dataspace yet where that dataspace will necessarily be physically distributed.
- If the failure cannot be fixed remotely, (by for instance restarting the engine in a degraded mode operations or disabling some automatic assistance systems (e.g the shield safety system , or restarting the on-board computer etc ….. ), a (human) expert with the required expertise will get involved for further analysis remotely .
- Let’s assume it is the alternator that is broken , a spare part will be immediately ordered …and
- an assistance vehicle will bring it to the broken truck minimizing the overall response time !!
Messaging oriented Vs Data Centric System, the Conclusion
With a Message centric system, things will be more complex to build, as …fundamentally…. a message is just an information container, with usually a header and some payload. Messaging will break the overall data representation of the system and you will lose the relationship between them !. With a messaging based system, application logic will need to rebuild each time the full picture of the system from unrelated individual pieces of basic information captured within messages and recreate the full picture and also by manually assuring the consistency of the overall picture. This process can be terribly complex, time consuming and error prone.
On the other hand, Data Centricity inherently rebuilds and guarantees consistency of the overall picture. It helps you getting the system situation awareness you are looking for free.
Data centricity is a very powerful paradigm that supersedes messaging as it can at the same time:
- Models Real-world entities as they are with their unique identity , state, structure, meta data and lifecycle
- Catchs and represent the relationship between data entities
- Helps implementing a decoupled systems where applications interact only by sharing data and exchanging information.
- A Data Centric based platform will be in charge of maintaining the state of the overall system even in case of failure so that the latest consistent state of the system will always be known and will always be available from late joining applications, whatever their access point to the system will be.
- Data Centricity is generic enough and polymorphic to model other interaction paradigms, as it can also model :
- Event and notification based communication ,
- Conversational protocols , such as Request / reply based protocols in an abstract and efficient way. This will help part of the system -if needed- to be also Service Centric (to implement SOA based systems too).
- Lightweight Transactional communications based on the so called coherent -sets and eventually consistent models
- Message oriented communication -if needed- by a subsystem
Data Centricity is nowadays backed by an extremely powerful Real time Pub/Sub standard and interoperable Middleware technology (http://portals.omg.org/dds/) that is able to AUTOMATICALLY Discover all the Data entities whenever and wherever they are. You can now Build, Share and Monitor data distribution everywhere from embedded devices to machines and Servers in private and public Clouds or in internal company domains.
Data Centric Middlewares connect people at work whether they are, using their workstations, smartphones or tablets to the heart of any mission critical system, securely, efficiently in any circumstances.
So in a nutshell, the key lesson here is ……if you hear someone comparing Data Centric Platforms using the standard Data Distribution Service (DDS) to a Message oriented Middleware (M.o.M) tell him he is doing as if he is comparing a Data base system to a File system, or more precisely, comparing a Distributed Data Base to a Network File System!..
At the end, always remember that in the IoT Age, Data is certainly becoming your strategic economic value, its your key factor of growth and success ! Treat it appropriately!!