Object Server
This documentation page is heavily under construction. Various information may be missing. Please report any feedback here.
Cognibase Object Server is the backbone of the system, orchestrating client interactions, operational management, and data storage. Here's a breakdown of its primary modules:
-
Client Manager
-
Server Object Manager
-
Transaction Manager
-
Persistency Manager
-
Transaction Publisher
-
Object Cache
-
-
RPC Broker
-
Authentication Manager
Client Manager
Responsible for managing client application sessions, the Client Manager continuously monitors active connections, sending "heartbeats" to ensure they remain live.
Note: Clients typically also monitor server connections for reliability.
If a client connection breaks, the server initiates a cleanup process for any retained resources. The Client Manager uses the configured communication library and the Authentication Manager for connection and authentication.
The communication library to be used is modular. Currently the following methods are supported:
-
WebSocket
-
Named Pipes / IPC
-
.NET Remoting (IPC, Socket) - deprecated
-
WCF - deprecated
Switching between communication methods is as easy as modifying a setting in the app.config file.
Server Object Manager
Transaction Manager
This module handles client transactions, performing in-memory operations, ensuring object model consistency, and updating the in-memory cache. After validation and storage via the Persistency Manager, changes are forwarded to the Transaction Publisher.
Persistency Manager
Overseeing various data storage solutions, the Persistency Manager ensures each managed domain is paired with an appropriate datastore. Currently various data stores are supported:
-
Standard SQL 92 RDBMS through the built-in Code-First ORM (OODB mapping schema):
-
MS SQL Server
-
Azure SQL Database
-
PostgreSQL
-
Oracle
-
SQLite
-
-
Built-in Binary Files Store
-
HTTP Orion/NGSIv2.0
Adding support for additional SQL databases with the OODB schema is straightforward. Data-First custom schema mapping (RMDB schema) is under development.
The selection of a persistence library is managed similarly to communication—through the app.config settings.
Transaction Publisher
This module forwards transactions to the appropriate clients. Transaction routing can be programmatically configured or done using built-in object subscription.
Object Cache
The server's Object Cache tracks Client Object Manager (COM) subscriptions, enabling the Transaction Publisher to forward transactions based on these preferences.
RPC Broker
Facilitating client-to-client commands, the RPC Broker is gearing up to support P2P remote calls. RPCs can be easily constructed using the SDK and standard .NET interfaces on both ends.
Authentication Manager
The Authentication Manager oversees the internal identity domain and interfaces with various identity stores:
-
Active Directory
-
Any LDAP
-
Windows Local (SAM DB)
-
Linux Local (PAM)
-
Open-ID Connect