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

  1. Smartfacts platform with REST API

  2. Smartfacts frontend SPA (single-page application) and plug-in SPA

  3. genOSLC (MID’s geenric OSLC framework) consisting of one frontend and one backend container, running in one POD

  4. MID CAMP 2020.03 - MID’s customer account management frontend, consisting of one frontend and one backend container, running in one POD

  5. MongoDB 5.x, primary database for Smartfacts, including search index, link index, model index

  6. MID’s Mail Service 2020.02, optional for sending notification e-mails via SMTP or AWS mail

  7. Optional: MID’s Maintenance Service 2020.02 for automatic backup and restore

  8. Optional: Kafka 2.4. for synchronizing users via CAMP and for connecting to the Mail Service

  9. Optional: For PoCs without connection to enterprise identity management, we use Keycloak to provide user ID management for SAML2, OAuth2, OIDC, LDAP, SCIM

  10. 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
requests [m]

container CPU
limits [m]

container MEM requests [Gi]

container MEM limits [Gi]

Storage [GB]

Remarks

Component

Pod

Container

Responsibility

Versions of (external) images

container CPU
requests [m]

container CPU
limits [m]

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

For Smartfacts, Jama and Codebeamer there is one deployment. The genoslc for Smartfacts is deployed in the Smartfacts namespaces. The genoslc instances for Jama and Codebeamer are deployed in different namespaces “genoslc-jama” or “genoslc-codebeamer”, if they are needed.

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
(Only deployed with the genoslc adapter for Codebeamer)

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