Altair AI Studio architecture
This document describes the architecture of Altair AI Studio.
Architecture Diagram
The diagram below gives an overview of the architecture of Altair AI Studio, and also includes the internal and external communication paths for its components.
Architecture Description
Internal
Altair AI Studio is a desktop application written in Java. Therefore, most of it runs inside a single Java Virtual Machine (JVM). The main components are the GUI for allowing the user to interact with the software, and the engine which both powers the GUI and does all the calculations as well as running any user-defined process.
The GUI is created via Java Swing, with some custom components like the process editor being manually drawn via Java2D. However, to
allow more modern UIs e.g. for the data visualization, we also have an embedded Chromium rendering HTML5 UI components. Chromium
is locked down to prevent any unwanted communication with external sources, and instead only used to display custom UI components or
facilitate SSO login into an AI Hub. Communication between the GUI and Chromium happens via JNI.
The engine is written purely in Java and does everything not related to showing the GUI. For some features like the Interactive Decision
Trees, the Altair Knowledge Studio engine is used alongside the JVM. Communication between both engines happens via TCP socket
connection on localhost:5478
.
Note: Extensions can make use of additional engines (e.g. the Python Scripting extension from our Marketplace can make use of a Python runtime and offers an interface between the Java engine and a Python runtime). Any other executables beside the JVM are tied to its lifecycle, so once Altair AI Studio is closed, both the JVM and any other executables are also shut down.
Both the GUI and the engine can be extended in functionality by so-called extensions. Extensions are loaded by Altair AI Studio during start-up. These extensions can be grouped into 4 categories:
Bundled: These come with a standard Altair AI Studio installation and are always available. They are created by Altair and follow the same reliability and robustness standards as Altair AI Studio itself. Since they are always available in every Altair AI Studio installation, the distinction between Altair AI Studio and such extensions is more of a technicality and not something the user is made aware of.
Supported: These extensions provide additional features for specific areas. Therefore, they are optional and not included in the standard installation. They can be downloaded via our Marketplace (both from within Altair AI Studio itself and manually via web browser). These extensions are also created and maintained by Altair, and follow similar reliability and robustness standards as Altair AI Studio.
RM Labs: These are usually extensions that cover either a more niche set of features, emerging topics on the market, or simply are not given the same resources as supported extensions at this point in time. In other words, if there is a bug within such an extension, there are no support guarantees for it to get fixed, but it often will be regardless. These are also created by Altair, but sometimes do not (yet) follow the usual reliability and robustness standards as Altair AI Studio. One final point to note: There are quite a few extensions available under this umbrella, and the maturity and robustness of these does vary heavily from extension to extension. Some of them (e.g. the Operator Toolbox) are of a very high standard, despite not being officially in the Supported category.
3rd Party: These are any extensions not developed by Altair. Since the API of Altair AI Studio is publicly available, anyone can create extensions to enhance or add functionality within Altair AI Studio. Typical examples for this are new operators that cover a specific topic. Maturity and robustness of these extensions can vary quite a bit, so you need to consciously decide which and when to use such extensions. If there is a bug in a 3rd-party extension, Altair cannot provide any support and will instead direct you to reach out to the maintainer of the extension yourself.
Extensions are running inside the same JVM as Altair AI Studio itself. However, unless they have been signed via the Altair internal code-signing certificate (all bundled and supported extensions, some RM Labs ones), they are running with reduced permissions and are forbidden from running certain code to reduce attack vectors and prevent malicious manipulation of Altair AI Studio itself. While this helps reducing vulnerabilities, it is neither perfect nor a sandboxed environment, and Altair cannot give any security guarantees regarding 3rd party extension behaviour!
Altair
Altair AI Studio communicates with a couple of Altair services by default to provide additional services to the user, as well as communicate errors and usage statistics back to Altair for future product improvement (opt-in by user required). These services are listed below:
Note: Communication to all these services can be forcibly disabled by an IT department via the Admin Settings.
Operator Recommender: This service displays (after user opted-in) operator suggestions at the bottom of the process editor, relevant for the currently used operators. Think of it as very similar in concept to the “other customers also bought” section of your favourite online shop.
Usage Statistics: This service is very useful for Altair (after user opted-in), as it sends back anonymous usage statistics (clicked button X, used operator Y, visualized via chart Z) as well as error information. This allows us to see how often certain features are used and how they are used, as well as getting information about potentially frequently occurring errors. This allows us to make more informed decisions on what features to work on next and how to design them.
Marketplace: This service is used for getting and updating aforementioned extensions. You can get supported, RM Labs, and 3rd party extensions here. You can also access it via browser here.
Nexus: This service is used to query informational popups that can display context-aware information or hints for the user, depending on what he is doing. Example: A floating popup in the top-right corner will appear after the user installed the Text Processing extension for the first time, providing links to tutorial resources for it, so the user can get started easier.
Community & Use-case repositories: These are special repositories which are read-only and contain many real-worl examples and data sets to follow our online tutorials, simply playing around with, or getting ideas from to get started
Local
Altair AI Studio very often requires access to data - you usually want to do some sort of analysis for some data, whether it’s building a model on it or simply looking at the data via an aggregated chart.
In cases where the required data is not present on the local computer’s disk, it needs to be accessed. This can of course be some completely external source (see below), but also some local data source like an in-house database system or some other local data storage.
For many customers though, the most important part of the Altair AI suite are the collaboration capabilities when pairing AI Studio(s) with AI Hub(s). This allows for easily sharing data, workflows, and results - as well as maintaining a history of all project contents via Git. It also offers capabilities of running processes on the usually much more powerful job containers of AI Hub, unblocking your local computer’s resources. Connecting to a local AI Hub will require network communication with that AI Hub instance.
External
Altair AI Studio can be used in many different ways, from only working on a local computer with zero access to the internet, to a laptop querying REST APIs and accessing other public or private data sources via the internet.
Therefore, the AI Studio engine may very well submit HTTP requests to some external endpoints, or access other remote systems in some way. It all depends on the operator used by the user within a process, and how they are configured.
Note: An IT department can block usage of any number of specific operators via the Admin Settings, if certain functionality should be restricted.
Licensing
Altair AI Studio uses Altair Units for licensing. To draw units, most of the time you will either connect to the Altair-hosted AltairOne server for managed Units, or connect to a local license server serving Units within your company. Depending on the case, AI Studio will either connect to the Altair-hosted managed Units server, or to your local license server to draw the required Units.
See Licensing.
Network Communication
For details about the network communication, please see Network Traffic Breakdown.