The notion of a model-driven architecture was developed at the beginning of the 21st century in response to the growing complexity of enterprise application development requirements. Model-driven architecture provides the knife to cut the Gordian knot of structured programming for highly complex problems. The C3 AI Suite is designed and built with a model-driven architecture.
Central to a model-driven architecture is the concept of a “model” that serves as an abstraction layer to simplify the programming problem. Using models, the programmer or application developer does not have to be concerned with all the data types, data interconnections, and processes that act on the data associated with any given entity, e.g., customer, tractor, doctor, or fuel type. He or she simply needs to address the model for any given entity – e.g., customer – and all the underlying data, data interrelationships, pointers, APIs, associations, connections, and processes associated with or used to manipulate those data are abstracted in the model itself. This reduces, from an order of 1013 to 103, the number of elements, processes, and connections of which the programmer or application developer needs to be aware, making the intractable now quite tractable.
Model-Driven AI Architecture
C3 AI Suite’s model-driven architecture provides an abstraction layer that vastly simplifies and accelerates the development and deployment of AI and IoT applications.
Using the C3 AI Suite and its model-driven architecture, anything can be represented as a model – even, for example, applications, including databases, natural language processing engines, and image recognition systems. Models also support a concept called inheritance. An AI application built with the C3 Suite might include a model called relational database, that in turn serves as a placeholder that might incorporate any relational database system like Oracle, Postgres, Aurora, Spanner, or SQL Server. A key-value store model might contain Cassandra, HBase, Cosmos DB, or DynamoDB.
With its model-driven architecture, the C3 AI Suite provides an abstraction layer and semantics to represent the application. This frees the programmer from having to worry about data mapping, API syntax, and the mechanics of the myriad of computational processes like ETL, queuing, pipeline management, encryption, etc.
By reducing the number of entities, objects, and processes the developer needs to understand from an order of 1013 to 103, and by freeing the developer from wrestling with all this minutiae, the model-driven architecture of the C3 AI Suite decreases the cost and complexity of designing, developing, testing, provisioning, maintaining, and operating an application by as much as 100 times or more.
The optimal design for an object model to address AI and IoT applications uses abstract models as placeholders to which a programmer can link an appropriate application. The relational database model might link to Postgres. A report writer model might link to MicroStrategy. A data visualization model might link to Tableau. And so on. A powerful feature of a model-driven architecture is that as new open source or proprietary solutions become available, the object model library can simply be extended to incorporate that new feature.
Another important capability of the C3 AI Suite enabled by its model-driven architecture is that the applications developed on the platform are entirely future-proofed. Suppose, for example, that an organization developed all its applications initially using Oracle as the relational database and then later decided to switch to an alternate RDBMS. The only modification required is to change the link in the RDBMS meta-model to point to the new RDBMS. All the applications deployed previously using Oracle as the RDBMS will continue to run without modification after that replacement. This enables organizations to immediately and easily take advantage of new and improved product offerings as they become available.