ArchitectureTalk to Expert
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.
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.
General Scheme of Components:
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.
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.
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.
Content Management System
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.
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.
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
High Performance and Reliable Infrastructure
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.
AGORA GeoCMS is a geospatial data management and publishing application that allows non-specialized users to share data and create interactive maps.
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 it 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 the 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.
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.
GeoCMS uses reliable open-source products such as GeoServer and PostGIS.
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. Also, it 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.
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.
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.
General scheme of server architecture:
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
Pool of Synchronous Connections MQIT, OCI, libpg, ODBC, OleDB