Architecture

AGORA is a multi-component content services platform designed to implement enterprise solutions of any complexity and developed on the basis of a number of open-source platforms, libraries, and applications.

When designing solutions on the AGORA platform, modern approaches are taken into account for the implementation of corporate applications of any difficulty and ensuring increased requirements for their productivity, fault tolerance, and scaling.

The architecture of each solution is designed on the basis of the general scheme of AGORA components and consists of elements that are necessary to meet the needs of the organization. This approach ensures the most efficient use of the organization’s resources during the operation of the developed solution.

General Scheme of Components:

Each AGORA component has its own architecture and approach to its implementation. All of them are united by the main component – the UnityBase module, which is responsible for the fast intercomponent interaction of the solution.

Centralized Authorization Service

The Authorization Service is one of the elements that ensure the safe operation of AGORA and provide reliable and secure methods for user authentication.

Two Scenarios For Working With Users:

When users are located and managed directly in the platform itself – A single sign-on is implemented, ensuring simultaneous login of platform users to different components of the solution.

When users are separate from the platform – The ability to register and manage new users that are completely separated from the platform with their own roles, rights, and personal information is implemented. For example, this option is used to manage users of web portals that are managed through AGORA CMS.

Show More Show Less
Efficient Web Portal Management

Depending on the solutions, each scenario can be used separately or combined for solutions consisting of the public (open) and corporate (closed) parts.

To manage users of web portals, the service is implemented taking into account load distribution in order to ensure the operability of the portal when a large number of users work on it at the same time.

Show More Show Less
Secure and Customizable Authentication Service

The service provides the ability to manage multi-factor user authentication. This makes it easy to configure the developed solution to comply with certain rules and security policies of the organization.

The authentication service is extensible and allows you to embed various additional login methods into it. It is based on the provider’s certified OIDC-provider implementation.

User interfaces of the service can be customized based on the specific needs of the implemented solution: changing data entry forms, changing the design style, etc.

Show More Show Less

Content Management System

AGORA CMS provides powerful functionality for both website developers and non-developer users such as content editors or marketers. The CMS functionality will help the developer to easily integrate, customize, and extend the CMS by editing directly in the built-in editor, using a set of tools familiar to the developer: JavaScript, HTML, and CSS.

Similarly, the built-in tools will provide the content editor with the ability to quickly make the necessary changes to the website with the help of ready-made as well as developer-implemented elements using a convenient drag-and-drop interface.

Multisite Management and Scalability

The application allows to host and manage sites and portals in one multi-user space. This capability helps achieve the same standards for all web pages on all sites in the organization. Scaling information space can be performed easily and quickly as needed.

Content Management

A set of diverse content editors makes it easy to create and manage a variety of organizational content. The use of various content and markup elements ensures the formation of web pages of any complexity.

Draft management, content previewing, and versioning will help make the cycle of preparing and publishing web pages more efficient.

Multilingual Support

CMS supports the localization of all content elements and allows you to make them available to visitors from all over the world. Direct redirects will allow site visitors to switch between content in different languages.

Manage Themes and Templates

The CMS provides the ability to use pre-designed page templates and instantly switch between them with just a couple of clicks. Using Nunjucks, a templating language for JavaScript, makes it easy to create your own page templates.

High Performance and Reliable Infrastructure

AGORA CMS is built on an open-source, cross-platform JavaScript engine that delivers high performance and reliability.

The use of separate services (web workers) that serve user requests to sites makes it possible to ensure the high reliability of the infrastructure and resistance to potential hacks. The ability to quickly deploy additional load-balancing web workers increases the flexibility of the infrastructure and provides the ability to respond quickly to changes in the load on the website.

For even greater performance, the CMS provides the ability to cache pages and various content elements.

Advanced User and Permission Management

AGORA CMS contains a Permissions Module that provides flexible and customizable permission management options for application users. It allows you to create and manage different combinations of users, roles, and permissions.

Flexible Deployment Model

The AGORA CMS application can be deployed as a standalone application or as part of a multi-component solution.

GeoCMS

AGORA GeoCMS is a geospatial data management and publishing application that allows non-specialized users to share data and create interactive maps.
Content Management

The application supports the main OGS (Open Geospatial Consortium) services. It allows users to work with a wide range of raster and vector data. The required data can be presented in a variety of formats, including GeoTIFF, GeoJSON, Shapefiles, and CSV with JPEG, PNG, and PDF options for images. The user is given the opportunity to fill the catalog by downloading the necessary files or connecting documents from remote resources using an external link to the required source. All loaded layers and maps store their own metadata, including the projection used. The advanced features of the document library allow to accompany the metadata of a map or layer with additional necessary attributes, as well as manage related documents.

Users can easily view existing maps and create their own maps based on downloaded or connected layers.

An important feature is an ability to provide information to external information systems. For them, GeoCMS implements link access to their storage data. This simple method allows other systems to obtain up-to-date published GeoCMS data and use it as a source of additional information.

Show More Show Less
Permission Management

GeoCMS provides a set of options for managing content and setting the required level of user access to content: author, editor, or reader. A simple publishing mechanism makes it easy to embed maps for display on websites.

Show More Show Less
Infrastructure

GeoCMS uses reliable open-source products such as GeoServer and PostGIS.

Show More Show Less

Structured Information Collection

This component of AGORA helps to optimize the processes of information exchange within the organization, as well as the transfer of information to external information systems.

Thematic Collection of Information

The tool for collecting information in the form of thematic surveys provides a structured collection of data in the context of organizations or structural units and also allows to control and manage the collection process itself. Any structural unit can use the tool for their needs to collect certain thematic data in a single structure for their subsequent operational processing.

The tool allows you to generate survey templates in which you can create participant lists and data submission forms. Ready-made templates are launched and can be used repeatedly. The functional editor allows to create a variety of survey forms using drag and drop without the need to write code.

The analytical module provides statistics for each survey. The user has the opportunity to analyze completed surveys, monitor the dynamics of running surveys, and also conduct a comparative analysis of several surveys.

Data Transfer

For data transfer, the Form.io library is used, which provides the creation of electronic
forms of any complexity and data transfer control via API. Even complex shapes can be created easily by simply dragging and dropping components. It is possible to create dynamic forms, which are supported by JSON and can be embedded in any application, and static.

AI Tool

AGORA's AI tool automates data analysis, generates recommendations and can work independently or with other modules.

To assist in decision-making, AGORA offers the AI tool component, which automates data processing and analysis processes. The tool can process various types of data (text, images, etc.), track the performance of various processes by collecting and analyzing certain indicators, and generate recommendations based on the analysis.

The component can interact with other solution modules or solve independent tasks.

UnityBase

UnityBase is the basic component of AGORA, the core of platform solutions. It is based on the common programming language JavaScript, which covers both the client side and the server side of development. From a technical standpoint, UnityBase is a multi-threaded, synchronous JavaScript runtime built on the Mozilla SpiderMonkey JavaScript engine. It has a built-in event-driven, non-blocking HTTP server and drivers for the most popular databases provided by the Synopse Open Source project. The UnityBase package ecosystem is compatible with npm, the world’s largest ecosystem of open-source libraries.

General scheme of server architecture:

Browser

Mobile

Other Software

HTTP(s), REST, JSON RPC, OData

Asynchronous Non-blocking Request/Response Queue

UB Server Process With Pull of Synchronous Workers

In-memory data shared between threads

Workers threads each with its own SpiderMonkey engine

CIFS, SAMBA, NFTS, ext4, zfs, btrfs

File Storage

Pool of Synchronous Connections MQIT, OCI, libpg, ODBC, OleDB

Oracle

MS SQL

Postgre SQL

SQLite3

Flexible User Authentication Options

UnityBase supports the following user authentication mechanisms according to the OpenIDConnect standard based on the OAuth2 protocol and the client’s IP address that can be used to implement the solution:

The platform allows you to use various options for interacting with other systems for user authentication:

Internal user database (user authentication by comparing the password entered to him with the password in the user database);

Various Lightweight Directory Access Protocol (LDAP) directory implementations, including MS Active Directory;

EDS Authentication using digital signature based on RSA/DSTU public/private keys.

OAuth 2.0 authentication – secure authentication method supported by most popular providers;

HTTP Authentication is a simpler form of authentication and consists of passing a username and password.