Overview
Nodelab
Nodelab is a product for visualizing and analyzing data. It is part of the Uninode® Suite. Read More About Uninode®
Nodelab is based on 25 years of experience developing analysis products from scratch, including
scenario-based and realtime financial risk analysis.
It uses insights and best practice from software development tools to enable a similar style of
agile sketching of data models and visualizations during development and stability during deployment.
Architecture
Nodelab uses a container environment, with a backend Java/Spring server, called Nodelab Engine, and a frontend NGINX/Angular server, called Nodelab Control.
Local, permanent data is stored in a file structure, which can be synchronized and shared with a GIT repository.
Dynamic data is accessed through assets, which is a DataStream abstraction.
It also uses a PostgreSQL database for storing and caching configurations and data. Read More
Features
Edgescript®
Nodelab uses the Edgescript® programming language for various dynamic behavior, like class definitions and visualization page definitions. Read More About Edgescript®
Since Nodelab is integrated with Edgescript®, almost all configuration is expressed as code, including
- data models (classes),
- parsing of complex file structures,
- advanced queries with UNQL ( read more about UNQL ),
- user interface building, similar to SwiftUI,
- periodical or manually initiated complex, asynchronous server calculations,
- storage format for no-code drag-and-drop programming,
- wrapper for calls to remote servers and processes, including machine learning, and
- simulations and synthetic data generation
Other data analysis products have the option to add scripting to the workflow, e.g. Python and R.
In Nodelab, Edgescript® is more like a unification of Excel cell scripting and VBA programming, but with
a syntax that is similar to Swift and Java.
UNQL
UNQL, the Uninode® Query Language, is a communication protocol between clients and server. Since the server can be utilized by other consumers than the specific Nodelab frontend, UNQL has a JSON format, with some data expressed as Edgescript® expression strings. Read More About UNQL
Access Control
Nodelab uses Keycloak for access restrictions, which is an industry standard solution.
In addition, an administrator can grant access rights based on page, package and organization. These secondary access rights can be used for page access and data access to individual properties and even data points.
Record Sources
Each record, i.e. database row or instance, has a reference to its record source, e.g. a file or a parameterized API call. This makes everything traceable and filterable.
When a record source is replaced by an updated source, the data version includes the new record source instead of the old. If it is an update of the same version, the data of the old record source is no longer reachable, and will be removed during a cleanup operation. If the new data is part of a new version, the old data can still be reachable using the old version.
Data Layers
Data layers are used as filters of data. You can associate data with a layer in a hierarchy of layers. Data associated with child layers shadow data in parent layers. You can then specify which layer (and its parents) you want to collect data from. It resembles layers in image editing tools.
For instance, you may have a top layer with automatically generated data, a child layer with revised data, and another layer with experimental data.
Pages
Visualization
The main purpose of Nodelab is to integrate and visualize data from various sources.
The interactive pages are defined with Edgescript® code, similar to how it is done with SwiftUI.
The components can be connected using state references, i.e. clicking on a component may update the content of others.
Such connections are automatically setup if there are state references in Edgescript® code.
Legacy Replacement
Nodelab can be used for phasing out legacy systems.
A Nodelab server can be installed in parallell with a legacy system, and incrementally take over tasks of the
legacy system, like visualization, analysis and editing.
Edgescript® can be used for communication with other legacy systems using proprietary protocols.
When the Nodelab server has implemented all relevant parts of the legacy system, the legacy system can be retired.
State Machine
Normally, the Nodelab server is stateless, with a few caches holding data for a limited time.
However, Nodelab can be used as an advanced state machine, keeping track of a large set of states.
For instance, this is required for building a realtime financial risk analysis platform.
Realtime feeds continuously updates asynchronously calculated values, which may vary for each user and
position filter. A state machine can keep track of changed dependencies and recalculate only when required.
History
Nodelab is based on various products and insights from several decades of software development.
- Bali, an equity, currency and interest analysis tool used by Swedbank traders 1996-2000.
- Powerpilot, a scenario-based risk analysis tool used by Nord Pool, the nordic power clearing house, 2003-2010.
-
Positionpilot, a realtime financial risk analysis product for traders used by Pan Capital since 2010.
Nodelab is an improvement of the Positionpilot code, but with an Angular frontend.
Contact
Contact Oak Analytics for pricing.