
Figure 1. DatumNode Architecture
Clients
Every application that interacts with DatumNode Service. When it is used as a WCF Service clients are .NET application and in the case of using DatumNode as a Web Service there can be almost any application of different platforms which support traditional web-services.
WCF
It is new Microsoft programming model for developing service-oriented applications. DatumNode implements most of its features: DatumNode is a scaleable and reliable service-oriented solution, supports all major transport protocols, fine grained and highly customizable security system.
Security
Security issues management: checking access rights to service, checking user's permissions on Datum Nodes objects.
Cache
While processing user's requests DatumNode Services caches different kinds of critical information: user's roles, security permissions, metabase information and many others. This reduces greatly the amount of used memory and improves performance.
Logs and Statistics
DatumNode Service supports Windows built-in logging. Information about any important DatumNode Service activity is stored in logs. Almost every aspect of user's activity is also logged by DatumNode Service. This information includes: request strings, offered by the clients; number of rows fetched; request execution time and many others. This information is extremely useful for load balancing and for finding any kinds of weak points or other performance issues.
Health Monitor
Health Monitor is responsible for stability and reliability of DatumNode Service. It controls different parameters of user's requests which were set by the administrator, among them are: maximum records per call, maximum request timeout, maximum reader timeout and others. According to these parameters Health Monitor can terminate user's
sessions which exceed any of them.
Performance monitor
Performance monitor collects various statistics about DatumNode activity. It also sets windows performance counters which represent the overall performance of DatumNode Service in similar manner as any other well-designed windows-application.
DatumNode Kernel
It is a core component which is responsible for processing client's requests, controlling accessing DBMSs, retrieving and delivering data from database to clients. Also it provides necessary infrastructure by which other components of DatumNode Service interact with each other.
ADO.NET
It is the data access model for .NET-based applications which is used by DatumNode Service for connecting to a database, executing commands, and retrieving results. If want to use some provider specified types or implement your custom logic - there is always an opportunity to write custom wrapper class that can easily extend the base functionality of DatumNode Service.
Data Sources
All the target data sources DatumNode Service interacts for retrieving data according to the client’s requests.
DatumNode Metabase
It is a central repository that holds all the information that is essential for DatumNode Service: different security information about user's, roles, ACL’s; general information about DatumNode objects, commands, connection strings and so on. Currently it can be hosted on one of the two main DBMSs used by our customers: MS SQL Server (Express, 2000 or 2005) and Oracle 9i or higher).