BIP ← Back to home
RU EN BE

BIP Platform Description

Detailed technical description

General description

The Belarusian Information Platform (hereinafter BIP) is a set of software and hardware solutions designed to build scalable distributed cloud information systems of various levels of complexity.

Components of a cloud information system: building an IS on the BIP platform requires a certain set of computer hardware, system software, and organization of communication channels between its components. Depending on the purpose and size of the system, you can choose hardware of the required capacity: start with practically a single computer and scale up the number and characteristics of equipment as the need for computing power grows.

The cloud-based approach allows the platform to be moved to the data center of a cloud storage provider, yielding significant savings on building your own data center and the staff to maintain it.

1. Information resource instead of "fixed requirements"

Unlike custom software that implements a specific set of requirements and, after commissioning, performs only a fixed set of capabilities built into the project, IS built on the platform can be expanded with new capabilities as they grow.

For this purpose, the concept of an "information resource" (IR) has been developed — a software and hardware module operating within the platform's technologies. All service operations (security, operation log, blockchain mechanisms) are performed by the platform's service components; the specialized IR software performs the business logic required by the customer.

2. Components of a cloud information system

A distributed cloud IS consists of the following main components. Each is considered separately, but only together do they form an integral system for processing large data arrays by many users with online access to up-to-date data.

BIP cloud architecture

Fig. 1. BIP cloud architecture: workstations, application servers, database server, and file server

Any cloud system consists of the above components and/or their analogues.

Platform system stack: Linux OS + PostgreSQL DBMS + Apache/nginx HTTP servers + the platform's BCLIP execution system. The specific Linux distribution is selected to meet the customer's requirements — the platform is not tied to any single distribution.

2.1. Database Server (DB)

Purpose. The DB is the "heart" of the IS, since data storage and processing is its key function. Storage reliability and operational speed of data access are the main indicators of the system's success.

Hardware requirements. Separating the DB into a distinct component allows the use of equipment of varying capacity. Practically any modern computer can serve as an entry-level DB. More powerful systems include dedicated storage subsystems, clustering and replication, and distribution of processing across several computers in geographically distributed data centers — data safety is guaranteed even up to the destruction of the data center.

System software:

Universal integrated database schema was developed by the company specifically for building distributed IS for collaborative work by users of various companies based on common master data with global objects and the ability to allocate information blocks only for employees of a particular enterprise. This made it possible to:

Guaranteed data retention technologies

All variants of guaranteed retention are provided in every IS developed by the company. Users of cloud IS are given a 15-minute data retention guarantee: in case of media destruction, data is recovered with a loss of at most the last 15 minutes before the "disaster".

2.2. Application Server (AS)

Purpose. The AS is the "brain" of the IS, processing user requests. Together with the DB, it ensures responsiveness: data entry, modification, and report generation.

Hardware. Any modern computer as an entry-level AS. Powerful systems — clustering and load distribution among several computers in distributed data centers, which guarantees operability under DDoS attacks on one of the data centers.

Software: Linux OS; Apache or nginx HTTP servers; the BCLIP execution system for running CGI modules.

2.3. File Server (FS)

In addition to data in tables, information is stored as files "linked" to IS objects: contract texts, waybills, graphic images. Traditionally these are BLOB fields, which have drawbacks:

The platform provides a separate IR "file server": table T185 with file metadata + dedicated disk space for the files themselves. Rejecting BLOB fields provides:

2.4. User Workstation

The development environment allows creating applications with three interface variants:

Workstation software: Linux OS (an open alternative to proprietary operating systems). For text applications — minimal hardware requirements.

3. Communication channels

For applications with a unified database, communication channels to the DB and/or AS are required. Two main data flows: HTTP between the browser and the AS, SQL queries to the DB over TCP/IP. TCP/IP is also used when exchanging with equipment (for example, processing data from analyzers in the "Laboratory Information System"). Traffic types and volumes are taken into account.

Three levels of organization:

Interaction protocols

Protocol levels and file formats

Fig. 2. Network protocol levels and a separate set of file formats

Application layer (high-level protocols): HTTP / HTTPS, WebSocket, FTP, streaming database and file replication.

Transport layer: TCP/IP, UDP.

Network / data-link layer: Ethernet, WiFi.

Low-level interfaces and protocols: COM (RS232, RS485), PRINTER, USB.

File formats (separate from protocols): TXT, JSON, XML, DBF, HTML. The use of these formats when exchanging data with third-party systems is described in section 12 "Organizing interaction with third-party IS".

4. Cloud IS as a set of information resources

The BIP platform is a set of IRs, each solving a specific information processing task in a common data space with many users. The concept of "IR" was introduced to replace the concept of "IS": an IS solves a specific range of tasks for a specific group of users, while BIP allows creating a set of information services with refinement of existing ones and creation of new ones as needs arise. The technologies allow developing the IS using the Agile methodology; services can be created, maintained, and developed by different development teams for different classes of users.

Methods of service development:

Storing source code and settings in the protected database. The protected database stores not only information but also the very logic of the system: the source code of the business logic, as well as separate configuration settings — individually for different enterprises within a single cloud and individually for workstations within a single enterprise, document templates with different text variants for different enterprises, and workstation interface settings. The source code is compiled directly from the database. Since a standard browser is used on workstations, the interface and business logic are updated at the client "on the fly" — without any additional actions to deploy updates. This provides centralized version management and access control.

Built-in documentation system — a system integrated into the platform for storing all documentation in a unified database with information provided according to access rights. Data is organized in a tree: sections are numbered, have a parent and children, nesting is unlimited. The reading program receives the section number as a parameter — reading commands are placed where needed. Each section is assigned its own access level (the lowest — "guest"). In addition to CSS-formatted HTML, the text can include links to IRs with files, links to graphics, video, and audio. It is possible to generate a single HTML document with all child sections for continuous viewing.

5. Examples of projects based on the platform

Options for building an IR:

6. Application software development

Base languages: BCLIP (business processes) and JavaScript (browser interface). When using a browser as the interface, any languages supporting the CGI protocol are acceptable.

Text interface: the same data access options are available as for graphical applications, but instead of RDS — the SSH protocol: an order of magnitude less traffic, more economical communication channels. Used by system programmers to work with remote DB/AS. The platform allows creating text applications and using them for low-level work on remote resources. The base language is BCLIP; where no database storage is required — any Linux languages.

CGI (Common Gateway Interface): the program has no direct connection with the user; it is called by the HTTP server upon a browser request, and the response is converted into an HTTP response. HTTP traffic goes over the communication channel — the most advanced protocol in terms of security and reliability. The HTTP and HTML standards are governed by W3C — cross-platform support is guaranteed. The absence of direct communication with the operator requires mechanisms for controlling work; the platform (20+ years of experience) has developed such mechanisms in the BCLIP language for developing and maintaining complex IS. Any Linux languages are also acceptable where no database storage is required.

Graphical interface: an application on the workstation gets direct access to the remote DB over a local network/intranet/internet and sends SQL queries. An alternative is a client-server architecture with "remote procedure calls" (RPC): reduces channel requirements but complicates development (two applications instead of one). A third variant — placing the application on the AS and remote desktop (RDS) on the workstation: changes to the graphical image are transmitted over the channel (has analogues in other OSs).

7. BCLIP execution system: technical capabilities

Origin and evolution. The BCLIP execution system is a compiler compatible with the CA-Clipper (xBase) language, created at the turn of the 1990s–2000s by the Moscow-based company «АйтиК» (itk.ru) as a free project under the GPL. Its goal is to port banking and corporate applications written for CA-Clipper 5.2/5.3 under DOS to Linux/Unix without rewriting. The common ancestor of BCLIP and the Harbour project is the CA-Clipper language (Nantucket, 1985; from 1992 — Computer Associates). Harbour is a later parallel branch of the same xBase line, not an ancestor of BCLIP.

BCLIP in the BIP platform is a specialized implementation optimized for Enterprise-level Linux infrastructure and integrated with the PostgreSQL DBMS.

Language paradigm: a concise syntax for working with databases and metaprogramming elements. BCLIP is oriented toward declarative description of business logic and allows compactly expressing data operations. Key capabilities:

Database operators — a concise syntax for creating data entry screen forms with validation:

USE Customer SHARED NEW
@ 1, 0 SAY "CustNum" GET Customer->CustNum VALID Customer->CustNum > 0
READ

Macro operator (runtime compiler) — compilation and execution of an arbitrary expression at runtime, dynamic formation of database field references, code generation based on user input:

&( "Customer->" + cFieldName )
&( cExpression )

CodeBlocks (closures) — capturing variables from the external context, support for closures, delegates, and functional objects:

{ |x, y| x + y + nExternalVar }

Object-oriented programming — classes, inheritance, encapsulation, polymorphism:

CREATE CLASS Person
    VAR Name
    METHOD New( cName )
    METHOD Describe()
ENDCLASS

Database connectivity architecture. BCLIP implements the Replaceable Database Drivers (RDD) architecture, ensuring independence from a specific DBMS: PostgreSQL (primary), MySQL, SQLite, Firebird, Oracle, ODBC, as well as compatibility with xBase formats (DBF, DBFNTX, DBFCDX).

License and openness. BCLIP is distributed under the GPL (a free project by «АйтиК»). This provides vendor independence, access to the source code, and a documented syntax compatible with CA-Clipper.

CharacteristicValue
SyntaxConcise, oriented toward database work
MetaprogrammingMacro operator & (runtime compilation)
Functional capabilitiesCodeBlocks (closures, lambdas)
OOP paradigmClasses, inheritance, encapsulation
Target OSLinux
Primary DBMSPostgreSQL
Additional DBMSsMySQL, SQLite, Firebird, Oracle, ODBC
LicenseGPL (a free project by «АйтиК», open source)
Year the technology was createdturn of the 1990s–2000s
Language compatibilityCA-Clipper 5.2/5.3 (xBase)

Rationale for the choice. BCLIP was chosen as the execution system of the BIP platform for the following reasons:

  1. Proven reliability — the technology has been in operation since 1985, with millions of applications in banking, insurance, and management.
  2. High performance — compiled code with runtime optimization capability.
  3. Scalability — support for multiple application servers.
  4. Openness — no vendor lock-in, full code portability.
  5. Import independence — open source, vendor independence.
  6. Compatibility — the ability to port code from other xBase dialects (Harbour, xHarbour, FlagShip, FoxPro).

8. Database structure

Table types and access rights

Fig. 3. Platform table types and access rights separation model

The platform's database provides four types of tables (plus classifiers), differing in the method of entry, access level, and storage rules:

Data modification operations are reflected in the operation log — the ability to "analyze the causes" of incorrect data appearing. Responsibility for the accuracy of first-type table data is determined by the job responsibilities of the support service employees.

9. Compliance with information security requirements

Security model and OAC certification

Fig. 4. Protection layers and OAC certification

Various information systems deployed on the BIP platform have repeatedly passed certification for compliance with protection class requirements 3-in, 3-ul, 3-spe, and 3-DSP. Certification applies to specific deployed ISs, not to the operating system and not to the platform as such: during certification, the requirements for IS operation and the methods of connecting users are determined. If an organization connects to an already certified solution, it may not need its own certification, while a new solution built on the platform undergoes a simplified certification. As a result, a protected information space is created for processing personal, medical, and special data.

Experience with Belarusian VPN solutions. The company has experience building secure communication channels based on Belarusian VPN solutions: Bel VPN, itVPN, SCrypto. Technical support is provided for their configuration and maintenance.

Connection requirements: communication channels passing through the internet must be protected from unauthorized influence by a certified method; each local network and each workstation — via a secure channel; there is no access to the IS over an unsecured channel.

By law, users designate a responsible person — a "security officer". As a result, the enterprise processes the personal data of its clients in a protected IS and is relieved of the need to independently carry out measures to certify its local IS. The requirements of the regulatory document OAC ORDER UNDER THE PRESIDENT OF THE REPUBLIC OF BELARUS dated February 20, 2020 No. 66 "On measures to implement Decree of the President of the Republic of Belarus dated December 9, 2019 No. 449" are met.

10. Ensuring information retention and operability

Replication and failover between data centers

Fig. 5. Parallel replication between two data centers and failover in case of primary site failure

Hardware failures of the DB (up to destruction of the disk subsystem):

Data center disruptions: a rarer cause, but with destructive consequences (an example — the fire at a data center in Odessa). Protection — database replication: one of the replicas in another data center. If the primary data center fails, the IS is redistributed to backup sites, reconfiguration takes about an hour. Users only need to log in from the backup address without additional actions.

Employee errors:

Software errors: a partially completed operation is prevented by transactionality; an incorrectly completed one is corrected by reversal through the operation log, followed by ordering a fix from the vendor.

24/7 operation: backup DBs and backup ASs are located in different data centers; for ASs — dynamic load redistribution; for DBs — redistribution of requests already at the software level depending on their types. Together, this allows scaling capacity by adding the number and power of computers.

11. Access rights separation

12. Organizing interaction with third-party IS

File exchange — data export/import. Supported import formats:

In addition to these formats — acceptance of files of practically any format, attached to IS objects. The same formats are also supported for transmitting data to third-party ISs, plus all HTML standard formats supported by modern browsers.

The full list of protocols and formats is given in section 3 "Communication channels" (subsection "Interaction protocols").

Personal Data Processing Policy

← Back to home