TN2 Framework

TN2 Framework

The TN2 framework is software by “TN2 Solutions EESV” (

The TN2 framework provides a distributed software system set-up consisting of the following base functionality:


Message-based communication using text or binary encoding of single or batched messages. Implementations in most common programming languages (among which: java, javascript, c++, python, go, …). Message routing between different components. Message filtering, providing means to reduce communication. Message logging for on- or off-line analysis and inspection.


A number of services are provided in the framework:

  • Data persistence. This is provided by an interface to a third-party database system.
  • Configuration. Allowing distributed configuration management.
  • Storage. Allowing distributed storage of current system state.
  • User management. Providing means for role-based access control.
  • Logging. Storing log data and allowing querying of stored log data.

These services can be used by means of the message-based communication framework.

User interfaces

Web-based user interfaces are provided for:

  • System inspection.
  • Configuration.
  • User management.
  • Log querying.
  • Monitoring and control.

Web server

To serve the web-based user interfaces and other (static) content.


Extension of the system is possible by add-ons, based on the framework with access to the services using the provided communication. The extension can be implemented in different programming languages. Deployment of extensions can be distributed. Currently available extensions based on external software include support for:

  • Rule-based program execution.
  • Process definition execution (BPMN 2.0)
  • Report generation.

External (developer) tools are available for development and maintenance of rule-based programs, process definitions and reports definitions.

Requirements and assumptions

All web-based software is based on current HTML5 and ECMAScript 6 standards, requiring up-to-date web browsers.

Server-based software components assume a 64-bit hardware platform capable of running a 64-bit Linux OS with container support and 64-bit Java JDK 8 environment.

Extensions can be run on any platform assuming the required protocol stack is available. Currently, the requirements per programming language are:

  • Java: JDK 8
  • Javascript: ECMAScript 6 compatibility
  • C++: C++11 or higher compatibility
  • Python: version 2.7 or higher
  • Go: version 1.7 or higher

These required software versions are subject to change.