Skip to main content

Why Cognibase

Introduction

Cognibase is a real-time distributed Object Management System (OMS) for .NET developers to build real-time and Industry 4.0 applications with less code. It is a foundation technology for n-tier applications solving the problem of state synchronization, consistency and management in an elegant way.

Cognibase provides the following cool features:

  • Real-time state synchronization between all nodes of the system.
  • Cross-platform support. Can run on Windows, Linux, Android and macOS, with support for iOS. Runs on any .NET variant, including the latest cross-platform .NET, the legacy .NET Framework and Mono.
  • Ready-to-use built-in components, such as the transactional Object Server.
  • Declarative Object Modelling. Metadata driven design of common object schema used across servers and clients.
  • Data store independent. Any database can be supported; currently MS SQL Server, Azure SQL, PostgreSQL, Oracle, SQLite and binary file store are supported.
  • Object Oriented Query Language (OOQL) is a language to effectively querying objects without writing SQL and is consistent across all supported Databases.

The Future

We envision Cognibase to be the most flexible and easy to use .NET development platform so that different technologies can be used based on the developer's needs. From cloud down to edge and mobile devices any target platform will be able to work in the same way. Different types of User Interfaces, being it standard GUI frameworks for web, mobile and desktop, 2D graphics and game engines, such as Unity, should be able to be integrated seamlessly to help developers build fast powerful distributed applications. Below is a diagram depicting our vision for Cognibase.

N-Tier Applications & Object Managers

Cognibase provides a simplified programming paradigm and the components to manage and exchange the Objects' state throughout all tiers. The high level components that are responsible for object state management are the Object Managers (OM). There are two main types of Object Managers exist: The Client Object Manager (COM) and the Server Object Manager (SOM). Server Object Managers are normally hosted on the services processes and Client Object Managers are hosted in Client Applications.

3. Cognibase Server

Cognibase Server, that normally consists of a SOM, is an object server that acts as a middleware component throughout the whole architecture and manages data synchronization, transaction integrity, transaction publishing and client coordination. The Cognibase Server can efficiently and simultaneously sync data across the system nodes and automatically resolve conflicts in real-time. Furthermore, it provides a single place to manage all connected clients, including gateways to third party systems.

Cognibase Server also provides a built-in Object-Relational-Mapping (ORM) component that handles all the communication with the Database. Currently Cognibase supports the Code-First data model creation.

4. Cognibase Client

Cognibase Client, that normally consists of a COM, is the process that is served by an Cognibase Server. An Cognibase client can be any type of .NET application, such as Desktop, Console, Mobile* or Web application*. Additionally any type of .NET GUI technology (Xamarin Forms, WPF, Avalonia, WinForms) is already supported or can be easily supported.

An Cognibase client can perform transactions upon an Cognibase Server as well as retrieve data using OOQL (Object Oriented Query Language). It can also call Remote Procedure Calls (RPC) to other Cognibase clients.

5. DataItems

The DataItem are the Cognibase aware .NET objects. In other words, the Cognibase Object Managers manage the object that inherit from the abstract class DataItem. A DataItem is unique in the Object Manager registry and can be identified by the DataItemKey.

6. Domains

An Cognibase Domain is a named set of DataItem classes. Typically a Domain corresponds to a one Database and provides the transaction boundaries. Multiple Domains can be used by the object managers. The Domains are registered at the application startup.