Table of Contents
Last updated: 2024-11-14

Installation introduction


Welcome to the installation instructions for ShareAspace. This section describes the installation procedure of the different ShareAspace components whether you want to install them on a single machine or multiple machines with or without redundancy (failover).

Product versioning


ShareAspace uses the following versioning numbering format:

Product.MajorVersion.MinorVersion.(Build)
  • 1.3.x -> 1.4.y is considered a major update. There will be breaking changes and the data store must be migrated.
  • 1.x.1 -> 1.x.2 is considered a minor update (service pack). The service packs will be compatible within one major release.
    • It is possible to upgrade from any Major.Minor.x to a Major.Minor.y where y > x
  • In some cases, for critical fixes a patch might be produced. A patch is a release between two service packs. All patches will be included in the next service pack.
    • A patch will be versioned as x.y.z-patch# (e.g. 1.6.2-patch1).
    • A patch can be used in an upgrade just like a service pack.

Architecture


The logical architecture of the deployment environment for ShareAspace consists of:

  • An Application Server layer
  • A Web Server layer
  • A Client layer

ShareAspace can be deployed onto a single server, i.e. one physical machine, that hosts both the Application and the Web server layers Alternatively if better performance and resilience is required, the Application and Web server layers can be deployed to separate physical machines.

Where high levels of availability is required a failover architecture can be deployed.

In all cases the Client layer is the computer hosting the web browser.

Tip

In any of the installation situations, it is recommended to keep a log of :

  • What component and their version are installed
  • The environment (hardware, operating system, options and software) description on which each component is installed

To help with this work, an install log template is provided here.

Installation packages


All of the components are installed by using Windows Installer files i.e. files with the extension .msi. The name of a Windows Installer is as follows. ComponentName-version.msi Where version is the release version of the component in the form described in the Product versioning section. If the Host component would have the release version: 1.2.3.456 then the Windows Installer name for the Host component would be Host-1.2.3.456.msi.

The installation package contains the following elements :

Note

The version numbering of the MSI packages below use the example version 1.8.0.123.

ShareAspace component installers

  • Documentation-1.8.0.123.msi - Documentation Web Page.
  • Host-1.8.0.123.msi - Service Host Installer (the main component of ShareAspace).
  • NovaWeb-1.8.0.123.msi - Web Application Installation package.
  • ReverseProxy-1.8.0.123.msi - Gateway exposing the ShareAspace REST APIs.
  • DataExchange-1.8.0.123.msi - Binaries for the Out-Of-The-Box DataExchange Tasks.

ShareAspace external extensions installers

  • FilePreview-1.8.0.123.msi - File Preview extension.
  • FullTextIndexing-elastic8-1.8.0.123.msi - Full Text Indexing and Search extension.
  • SendGridMail-1.8.0.123.msi - Mail setup extension for SendGrid.
  • SMTPMail-1.8.0.123.msi - Mail extension for SMTP.
  • EventLogging-1.8.0.123.msi - Extension used for event based logging.
  • EmailAuthentication-1.8.0.123.msi - A simple authentication method that will ask for a user's email address. Provided that the user is registered in ShareAspace an email with a login code will be sent to the user's email.
  • DeveloperLogin-1.8.0.123.msi - An authentication component that is intended for testing only. The system will have only one password, once typed in a list of all registered users will be presented. Clicking on one of the users allows you to impersonate that user. This component also has a simplified mailbox per user. All emails sent by ShareAspace to users will be caught by this component.
  • 3DViewer-1.8.0.123.msi - Installer for the 3D-viewer web application extension. Requires the CadConverter and StreamingCacheService.
  • CadConverter-1.8.0.123.msi - Installer for external extension that:
    • Converts 3D geometry files to geometry that can be presented by the 3D viewer.
    • Creates isometric 2D preview files for 3D geometry files.
  • StreamingCacheService-1.8.0.123.msi - Installer for streaming service that provides converted 3D geometry to the 3D Viewer using WebSockets.
Note

The DeveloperLogin component should only be used for testing and development purposes. EmailAuthentication can be used as a simple authentication method but best practice is still to use a third party identity provider via OpenID Connect.

ShareAspace tool installers

  • ConfigTool-1.8.0.123.msi - Graphical user interface for ShareAspace platform configuration.
  • Utilities-1.8.0.123.msi - Set of different tools and scripts.
  • EventLogQueryToJson-1.8.0.123.msi - todo
  • sas-devtool_1.8.0.123.zip - ZIP package containing the ShareAspace development tool.

SDKs

  • Eurostep.ModelFramework.1.8.0.123.nupkg - NuGet package used for building data mappers based on the Eurostep mapping framework.
  • Eurostep.SAS.Logging.ShareAspace.1.8.0.123.nupkg - todo

Various files

  • 1.8.x.md - Release notes for the corresponding version
  • README.md - Specific instructions for the current installation package

Logical architecture


The Web server layer of a ShareAspace installation hosts the following components:

  • Reverse Proxy (Gateway)
  • ShareAspace Web (Web Application)
  • Documentation
  • File Preview (Extension)
  • Full Text Indexing (Extension)
  • SendGrid Mail (Extension)
  • SMTP Mail (Extension)
  • Event logging (Extension)

Optionally it could include:

  • EmailAuthentication (Extension)
  • or DeveloperLogin (Extension) for test and development environments

The Application server layer of a ShareAspace installation hosts the following components:

  • Host
  • DataExchange
  • Utilities

The other components can be deployed on any machine:

  • Tools
    • ConfigTool

Logical deployment architecture

Logical Deployment Architecture

Technical architecture


The core of ShareAspace is a platform serving the different end user applications (DesignTOManufacturing, Export Control, etc.). When installing the platform you are able, depending on your licence, to run any of these applications. Each Space instantiated within a Collection is running one of these products (or a custom-built template/application).

Reverse proxy (gateway)

The gateway is responsible for routing Client Requests to the configured node(s).

The gateway is a web application hosted within the Microsoft Internet Information Services (IIS).

Web framework

The ShareAspace Web Framework is a web application providing a SPA (Single Page Application) user interface to the client browsers.

The Web Framework has a set of Modules installed, each of them providing End User functionalities. A set of Modules makes up the User Interface for a ShareAspace packaged product.

The Web Framework can be self hosted or hosted within the Microsoft Internet Information Services (IIS).

External identity

For production setup a third party identity provider is required. See the OpenID Connect setup.

ShareAspace web uses OAuth 2.0 Code flow for the OpenID Connect authentication. The third party component must support "Proof Key for Code Exchange" (PKCE).

For test and development environments the DeveloperLogin or the EmailAuthentication components can be used.

ShareAspace host

A ShareAspace Host node is the ShareAspace server (the core component of ShareAspace).

A ShareAspace Host node exposes all REST APIs and hosts all ShareAspace core components, such as the Data Exchange, Event Service, etc.

Each ShareAspace Host node has its own transient storage for persisting the Collection data, Space data, and System data. ShareAspace components installed on one node (APIs and Providers).

REST APIs

There is a wide range of REST APIs within the Cluster Node Host. The APIs operate on different scopes, such as Collection, Space, or System.

Storage

The Storage is accessed and modified by the different providers. The storage is the semi-transient persistence layer within each host node.

File vault

Files, such as word documents, CAD models etc., are referenced and accessed from the cluster node and stored in binary on the file vault.

DataExchange

The Data Exchange is a Platform feature for scheduling and coordination of long running tasks, like imports, exports, and reports. It enables the ability to schedule background jobs on defined queues for a specific collaboration space.

Complete deployed architecture

Complete Deployed Architecture

Products (end user applications)

The ShareAspace platform is the foundation for a set of configurable products aimed for different usage scenarios.

A Product consists of:

  • a configuration file (also called a template),
  • a set of Extension APIs,
  • a set of configurable Extension UI Modules for the ShareAspace Web.

These are deployed via the administration user interface of a Space project.

Planning the deployment environment


Depending on the following requirements:

  • availability,
  • performance,
  • number of concurrent users,
  • volume of data,
  • number of integration points,
  • etc.

ShareAspace can be deployed on a single machine or multiple machines.

For high levels of availability and resilience, the ShareAspace host can also be setup for failover using a set of ShareAspace Host nodes (minimum 2 nodes, one "primary node" and one "secondary node").

If ShareAspace is deployed on a single machine, all ShareAspace components above will be installed on the same machine.

If ShareAspace is deployed on a multiple machine setup, all ShareAspace components above can each be hosted on a different machine.

If ShareAspace is deployed with failover, each ShareAspace Host node will have exactly the same installed components (DataExchange, Event Service).

High level installation process


Installation process