Company internal software libraries and components, used in the company’s projects and solutions, include software implementations of the algorithms and architectural concepts it has developed on the research stage.
QTLib is a data structure library for representing and optimizing search and identification algorithms. The library includes algorithms based on query theory, binary decision diagram theory, and others.
The library is used to develop traffic discrimination and filtering components and enables the creation of optimal and effective identification algorithms for use in user-space components for network traffic processing, in various P4 front-ends, and in hardware accelerators.
SM.EXEC is the foundation library for all company's product and solutions. SM.EXEC provides data structures and functions allowing develop network application in the finite automata paradigm and supports dynamic architecture allowing fully reconfigure system low level (queues, thread-workers, state machines) on the go.
Among other advantages like event-based architecture which is well suited for the signaling solutions and the underlying explicit state machine models, SM.EXEC provide lightweight alternative to heavy weight virtualization solutions which very important for energy and computational resources restricted platforms:
| Type of virtualization | Virtualization level | Examples |
|---|---|---|
| Virtual Machines | Host level | OpensStack, VMWare |
| Application containers | OS level | Docker |
| Application component containers | Process level | EJB, JAIN SLEE, SM.EXEC |
SM.EXEC project has received some grant support and reached TOP 10 in the Research Stream of the Telekom Challenge 2021 of T-Labs “Data Distribution in Home Networks” with the paper “Towards Programmable Home Networks”. Also it has reached TOP 10 in the Development Stream of the Telekom Challenge 2021 of T-Labs “Data Distribution in Home Networks” with the prototype of “The membrane technology for protecting home networks”.
CDPK - is the upper layer of implementation of the software architecture developed by our team. It represents top-to-bottom design approach and give the key template for the decomposition of the system under development.
The architecture of CPDK is divided into three domains: SLEE — the Service Logic Execution Environment). PRA — the Protocol (or Resource) Adapters. App - Application Logic Blocks. SLEE is independent of specific network technologies and applications. It is responsible for loading applications and adapters, providing additional resources such as timers and more. This is the most stable part of CPDK.
The PRA layer is closely tied to the network technologies currently supported, and has to be refined as new requirements or environmental changes arise. The application layer is the business logic, and this is where things change most rapidly because each customer comes with their own set of tasks.
The three-tier architecture described above also effectively opens up customization opportunities for partners and customers:
|
  |
Client companies can develop applications on their own, adapting the logic to their needs and reducing costs associated with third-party developers. Meanwhile, partners—suppliers of technology components—can provide their own adapters. |