Application Centric Versus Data Centric Versus Message Centric Architecture
What is application centric architecture, and how does it differ from data-centric software applications and message centric architecture?
How does application centric architecture differ from message-centric architectures and data centric software architecture?
Application Centric Architecture
What is application centric architecture? Application centric architecture has its name because each software application is a world unto itself. Software application interfaces are tightly coupled between two applications, and there is little interoperability. Application centric architecture has little or no data governance. Application state is implicit, and it is not exposed.
Application centric application was the old standard for software development before IT standards meant to ensure interoperability and IT security. Every software application was application centric, standing alone on a server. Application-centric architecture predates the internet.
Relying on application centric architecture today risks creating redundant application specific interfaces and makes every integration effort a significant undertaking that must be repeated with every software release.
Note: Application centric architecture is not the same thing as from Cisco’s Application Centric Infrastructure tool.
Data Centric Architecture
Data Centric Architecture
What is data centric architecture? Data centric architecture is sometimes defined as an application wrapped around a database.
Data centric architecture has strong governance over data. Data centric architecture organizes the interactions between applications in terms of the stateful data, instead of the operations to be performed. Data centric architecture and the quality of service (QoS) is discoverable and explicit.
Development of software interfaces is simpler because data must form specific formats and states. Data centric application design means the database can influence the code path. Data centric architecture results in more fault tolerant interfaces, because there are fewer ways in which the interface can go wrong. The standards for both data format and its handling improve data quality and integration. Individual software applications can be built with DDS, interfacing with the databases where data resides or accepting information from other sources before transforming it.
Many internet functions and databases have data centric architecture, like REST web services, DDS and SQL databases. Objected oriented programming can be used to create data centric applications. Conversely, the application may be built on generic code following business logic and rules that the original software application the data centric app replaces.
Data centric architecture was a necessity for “big data” to rise since 2010, though data-centric architecture was mentioned as early as 2005. Moving from application centric architecture to data centric architecture often required standardizing data, mapping data in disparate systems to a common set of fields and transferring the data from many different sources into a common system. Problems in these migrations include conflicting or duplicate keys for records, lost information and manual correction of exceptions to data formats. For example, rules need to be created to handle special characters in manually entered comment fields.
Datacentric software architecture can be as proprietary and limited as application centric software architecture, written to generate unique reports from proprietary data and only used by one company or user community.
Networking's Impact on Software Architecture
Message Centric Architecture
What is message centric architecture? Message centric architecture is half way between application centric architecture and data centric architecture, using messages between applications and databases to change data or cause software applications to perform an action.
Message centric architecture governs the flow of messages, the mechanism of communication between applications, but message centered architecture does not control the state data. State and operation information may be exposed via message sets, but the infrastructure can’t determine whether messages will alter system state or ensure that software applications have the correct data states.
Message centric architecture thus changes the data in someone else’s database, as long as messages are received and processed correctly. Message centric architecture has the benefit of allowing you to share information between independent applications without building a complex application interface. In message centric architecture, however, the transaction isn’t complete until all data nodes are updated, not just when the message has been delivered.
Messages used in message centered architecture need to be defined based on the information to be exchanged and a clearly defined set of use cases. Message centered architecture requires care to keep up with new use cases, the addition of new data fields and changes in data formats. Message centered architecture requires applications to notify administrators when data changes don’t occur or errors are detected, as well as keep track of the state of each altered item. The benefit of message centric architecture is that it can link applications with their own life cycle states that otherwise can’t sync up. Message-centric applications can be used to handle multiplayer games, where one server handles the event based game application while the messages manipulate a server containing high scores, friend lists and other data.
A common use of message-centric architecture is Java Message Services. IBM MQ used to use message centric architecture. SOAP permitted message centric web services.