Technical Factsheet
Smartfacts Platform
The Smartfacts platform is deployed in containers only. We strongly recommend to use Kubernetes to deploy Smartfacts on premises. MID provides helm charts for Kubernetes instances:
Helm chart for instances that have a connection to the internet and can download containers from MID’s container repository
Helm chart for air-gapped scenarios where containers have to be downloaded manually from the Smartfacts customer portal
This picture shows a typical deployment of Smartfacts for connecting a modeling tool with a requirements management tool leveraging the OSLC standard:
Smartfacts Server Details
Smartfacts platform with REST API
Smartfacts frontend SPA (single-page application) and plug-in SPA
genOSLC (MID’s geenric OSLC framework) consisting of one frontend and one backend container, running in one POD
MID CAMP 2020.03 - MID’s customer account management frontend, consisting of one frontend and one backend container, running in one POD
MongoDB 5.x, primary database for Smartfacts, including search index, link index, model index
MID’s Mail Service 2020.02, optional for sending notification e-mails via SMTP or AWS mail
Optional: MID’s Maintenance Service 2020.02 for automatic backup and restore
Optional: Kafka 2.4. for synchronizing users via CAMP and for connecting to the Mail Service
Optional: For PoCs without connection to enterprise identity management, we use Keycloak to provide user ID management for SAML2, OAuth2, OIDC, LDAP, SCIM
Optional: Zookeeper
genOSLC Server Details
The genOSLC framework is a generic OSLC connector that is used with tools like Codebeamer, Jama Connect, Eclipse, Visual Studio Code and more to make them OSLC compliant. The genOSLC framework usually connects to the server side of an authoring tool and it serves a web application that runs inside the client of the authoring tool - e.g. in an iFrame.
The physical genOSLC server can be the same server as the Smartfacts server or one of the authoring tool servers, or it can be a separate server. The genOSLC server must also be able to run containers as genOSLC consists of two, in the case of Codebeamer of three containers.
Connectivity Requirements
the genOSLC server must be able to connect to the Smartfacts server
the Smartfacts server must be able to connect to the genOSLC server
the genOSLC server must be able to connect to the authoring tool server for which it provides the OSLC functionality
Smartfacts Single Page Application
AngularJS 1.6.2 used with TypeScript
D3.js v4, used for diagram manipulation
Websockets, used for live comments/conversations and for event notifications
List of Pods and Containers
This section contains a list of the pods and containers used in a Smartfacts productive installation.
Component | Pod | Container | Responsibility | Versions of (external) images | container CPU | container CPU | container MEM requests [Gi] | container MEM limits [Gi] | Storage [GB] | Remarks |
---|---|---|---|---|---|---|---|---|---|---|
Smartfacts | smartfacts-sfit-platform | smartfacts-platform | Business logic of Smartfacts |
| 500 | 4000 | 1 | 8 |
|
|
smartfacts-sfit-spa | smartfacts-spa | UI of Smartfacts |
| 125 | 250 | 0,25 | 0,5 |
|
| |
smartfacts-mongodb | mongodb | NoSQL-Database for storing Smartfacts Data | bitnami/mongodb:5.0.10-debian-11-r3 | 1000 | 4000 | 2 | 8 | 150 | The size of the PV highly depends of the size and number of imported models. | |
smartfacts-kafka | kafka | Apache Kafka for internal communication within the cluster. | bitnami/kafka:2.8.1-debian-10-r131 | 250 | 500 | 1 | 2 | 8 |
| |
smartfacts-zookeeper | zookeeper | Provides Configuration data for the Services | bitnami/zookeeper:3.7.0 | 125 | 250 | 0,25 | 0,5 | 8 |
| |
smartfacts-sfit-help | smartfacts-help | Help pages for Smartfacts |
| 50 | 100 | 0,25 | 0,5 |
|
| |
CAMP | camp | camp-spa | User Management UI |
| 250 | 500 | 0,125 | 0,25 |
| Not deployed, if Smartfacts is connected directly to an OIDC provider (LCAM mode). |
cam-stub-service | User Management |
| 250 | 250 | 1 | 1 |
| |||
Keycloak | smartfacts-keycloak | keycloak | Identity provider |
| 1000 | 2000 | 1 | 2 |
| Not deployed, if Smartfacts is connected directly to an external OIDC provider (LCAM mode). |
smartfacts-postgresql | postgresql | Persistence for Keyckloak |
| 250 | - | 0,25 | - | 1 | ||
openldap | openldap | openldap | ldap for importing PoC-Users | bitnami/openldap:2.5.9 | 50 | 125 | 0,25 | 0,25 | 50Mi | Deployed in PoC installations only. |
| addUserJob | add-users-to-ldap | Job for adding Users to openldap. |
| 50 | 100 | 64Mi | 32Mi |
| |
certtool | certtool | certtool | Init-Job creating secrets for truststores. |
| 250 | 1000 | 0,25 | 0,5 |
| This are init jobs, that are executed before the installation of the Smartfacts pods and then terminate. |
kubectl | Init-Job creating secrets for tls. |
| 100 | 200 | 0,125 | 64Mi |
| |||
Plugins | sfit-plugin-provisioner | smartfacts-plugin-provisioner | Inserting Client Plugins for download into Smartfacts DB |
| 125 | 250 | 0,25 | 0,5 |
| Container for loading the client plugins into the Smartfacts database. This container terminates after loading the plugins. It is not deployed if property “plugin.importPlugins” is set to “false”. |
genoslc | genoslc-<tool> | genoslc-toolservice | OSLC-Adapter for third party tools | latest | 250 | 500 | 2 | 8 |
| If multiple genoslc adapters are deployed, each one will allocate the stated resources. By default, one genoslc is deployed with Smartfacts. |
genoslc-plugin | UI of OSLC-Adapter for third party tools | latest | 250 | 500 | 0,5 | 1 |
| |||
genoslc-plugin-cb | Special Plugin for Codebeamer adaptor (deployed with Codebeamer genoslc only) | latest | 100 | 500 | 0,125 | 1 |
| |||
genoslc-<tool>-mongodb | mongodb | Persistence for genoslc for Jama or Codebeamer | bitnami/mongodb:5.0.10-debian-11-r3 | - | - | - | - | 8 |
Port Diagram
Tool Plug-Ins
Java-based tools: Cameo, MagicDraw, Matlab Simulink, Rhapsody
.NET-based tools: Innovator, Enterprise Architect
Other formats via file transfer: ARIS, BPMN, ReqIF(z)
OSLC bindings for
Asciidoc
Atlassian Confluence
Atlassian Jira
Eclipse
GIT
IBM, Engineering Lifecycle Management / Jazz
IBM, DOORS Next
IBM, Engineering Workflow Management
IBM, Engineering Test Management
Jama Software, Jama Connect
Microsoft, Visual Studio Code
PTC, Codebeamer
Smartfacts including all modeling tools supported
Dassault Systèmes, Cameo Systems Modeler
Dassault Systèmes, CATIA Magic Cyber-Systems Engineer
Dassault Systèmes, MagicDraw
IBM, Rhapsody
MID, Innovator
Sparx, Enterprise Architect
The Mathworks, Matlab Simulink