SolidPractices: SOLIDWORKS PDM Professional Architecture

Revision History
Rev #DateDescription
1.0Mar2019

Revised for use by customers

Reset as document version 1.0

1.1Mar2021Removed legacy Web information (last release in SOLIDWORKS PDM 2019)
1.2Mar2023Validated for the current release

Note

All SolidPractices are written as guidelines. It is a strong recommendation to use these documents only after properly evaluating your requirements. Distribution of this document is limited to Dassault Systèmes SolidWorks employees, VARs, and customers that are on active subscription. You may not post this document on blogs or any internal or external forums without prior written authorization from Dassault Systèmes SolidWorks Corporation.

This document was updated using version SOLIDWORKS 2023 SP02. If you have questions or need assistance in understanding the content, please get in touch with your designated reseller.

  1. Preface

This SolidPractices document describes the overall architecture of the SOLIDWORKS® PDM Professional product set. The document first describes the main components and then explains how the various parts can work together.

Not all installations will use all the components; however, it is valuable to know what is possible so that expansion plans are possible.

It is expected that this document will be revised and enhanced over a number of versions as field experience provides feedback on the most useful areas.

Your Feedback Requested

We would like to hear your feedback and also suggestions for new topics. After reviewing this document, please take a few minutes to fill out a brief survey. Your feedback will help us create the content that directly addresses your challenges.

  1. Core Architecture

The SOLIDWORKS PDM Professional software uses a client/server architecture that uses several server components and three client components. This document describes these components in detail before discussing features of the most common combinations.

The primary server and client components are as follows:

  • Microsoft® SQL Server®

  • SOLIDWORKS PDM Professional Database Server

  • SOLIDWORKS PDM Professional Archive Server

  • SOLIDWORKS PDM Professional Web2 Servers

  • SolidNetWork License (SNL) Manager Server

  • SOLIDWORKS PDM Professional client software

The following sections describe each of these components in more detail.

  1. Database Server

When referring to the Database Server, there are two major components that work together. There will always be a central relational database system, in the form of a SQL Server Database instance. In addition, there is a SOLIDWORKS PDM Professional Database Server service. This service is commonly known as the DB service. The service appears as ConisioDbServer.exe in Windows® Task Manager.

For convenience, this SolidPractice will refer to this entire subsystem as the “Database Server”, however keep in mind that there are two components to this system.

It is common to install the DB service on the same computer as the SQL Server Database, however, this is not mandatory. As long as the two services can communicate (through the default instance port 1433 for the SQL Server Database), then the system will operate. However, because the DB service works so closely with the SQL Server Database, it is much more efficient to install them on the same computer.

The SQL Server database for each vault contains a database of approximately 200 tables, which store the metadata for each vault. Because it is possible to manage and use multiple vaults, there is also a database with the name ConisioMasterDB that maintains an overview across all vaults. This makes it possible to track user connections usage.

The performance of the SQL Server database can be influenced by many factors, which are beyond the scope of this document. However, you can apply general guidelines for improving SQL Server performance.

WARNING:

While it is safe to READ the content of all these tables you should NEVER manually modify the content of any of the database tables because this can very quickly damage relational integrity.

To ensure that modifications are consistent and maintain data integrity, changes to the data must be made using standard SOLIDWORKS PDM Professional functionality such as client user interfaces or the SOLIDWORKS PDM Professional API.

The only exception to this rule is if Technical Support gives specific instructions about how to make modifications, usually by providing a tested SQL script to make known changes.

Correct maintenance of the SQL Server database is vital, in particular, that regular backups are made. Further details are available in both the Administration Guide and the Installation Guide.

In general, the SQL Server component of the PDM system follows the normal requirements of a SQL Server database. Therefore, someone with experience in supporting such a database system should be able to apply the procedures in the Administration Guide.

The DB service manages many important processes within the PDM system, generally behind-the-scenes using schedule tasks including:

  • Notifications: These include workflow and other automatic notifications such as change state, version changes, etc. Sent as internal (Database) notifications or by email through an SMTP server. The task queries the database regularly to determine if there are any messages to send.

  • Replication Schedules: for broadcasting, changes to the archive servers replicating the vault.

  • Export Rule Schedules

  • View Updates

  • Card List Updates: Periodically update any card lists that are generated using SQL queries.

  • Cold Store Schedules: Updates archive servers based on changes to schedules.

  1. Changing The Port Used by SQL Server

By default, SQL Server communicates with clients and other servers on port 1433. The port is customizable as necessary. For example, there may be IT restrictions, conflicts with other applications, or firewall rules.

When running multiple instances of SQL Server, the port is allocated and maintained automatically.

The default (unless changed) TCP port for SQL Server is 1433. If you have a named instance, the TCP port will be dynamically configured.

You can confirm or change the ports in use by using the SQL Server Configuration Manager application.

  1. Archive Server

An Archive server manages files that users place into the vault. This server typically runs from a computer with plenty of disk space and good network connectivity on a local area network (LAN). The Windows Task Manager will show this as ArchiveServerService.exe.

Each vault managed by an archive server is physically stored in a specific folder structure. Understanding how this structure works is useful for troubleshooting problems, and for locating specific physical files when necessary.

Initializing a vault creates a single folder to represent the “top” of the vault. This is followed by the creation of 16 subfolders, which are numbered 0-F in hexadecimal notation. Hexadecimal notation is used primarily for efficiency. It allows the file archive to be stored in multiple subfolders, which increases speed and reduces the overhead of moving physical files. Because the DocumentID and ArchiveID always remain the same, the physical files are not required to move when a changing a filename or moving a file. Hexadecimal is also used because it will loop between 0 and F creating millions of “available” file references. (0 > 9 > A > F > 0 > 10 > 19 > 1A > 1F > 20…).

Each file managed by SOLIDWORKS PDM is represented by one record in the Documents database table, with the DocumentID as the unique identifier.

DocumentIDFilenameLockProjectUserIDLockDomainLockPath
46604Part1.SLDPRT15TS-MP1C:\View\Working\
46605Part2.SLDPRT15

As an example, 46604 (decimal) is equivalent to B60C in hexadecimal. This means that the file will be stored in a folder called 0000B60C under the folder C, which is the last character of the hex name. The different file name versions use a simple counter starting at 00000001.

Thumb*.img files are small graphics files that the software creates for thumbnails and previews. There is also an index.xml file in each folder that contains a summary history of the files within that folder. This file must be kept in synch for the system to work correctly. The following image depicts the typical content of an index.xml file.

The Documents table has several other columns that are useful for troubleshooting.

DocumentIDThe unique ID for the document
FilenameThe full original filename
LockProjectThe ID of the project – lookup in the PROJECTS table
UserIDThe ID of the user – lookup in USERS table
LockDomainIdentifies the host on which the file is checked-out
LockPathIdentifies the location of the checked-out file
LatestRevisionNoThe latest version of the file
LockDateThe date that the file was locked
LockViewIDThe ID of the local view that has the file
  1. Archive Server Service

The Archive Server service performs the following:

  • Sends and receives files between clients and file vault archive

  • Manages user logon credentials

  • Runs scheduled replication tasks

  • Deletes destroyed file archives

  • Handles compression and extraction of archives with compression enabled

    1. Cleaner Service

The "cleaner service" runs by default on the archive server every night at 3am. This service deletes any file archives of files that have been destroyed (from deleted items) in the vault during the day. The archive server service will contact the database and get a list of archives that should be deleted.

  1. Cold Storage

It is possible to configure cold storage schemas in a vault to automatically move or delete older file versions from the vault archives. Schemas can be created for all files in a vault archive or for only files within specific folders. A schema can specify that project folders contain only the most recent versions of a file and that older versions are actually deleted from the archive. After deletion, the version history is retained. Cold storage requires individual configuration on each replicated archive server.

  1. Archive Compression

By default, the archive server stores all older versions in a file archive uncompressed in their original format. To save space, you can enable compression on all file versions that are older than the most recent version. The most recent version is always stored uncompressed for optimal performance during transfers between client and servers. File versions that are compressed will appear with the .gz extension to indicate they are in a compressed format. File compression requires individual configuration on each replicated archive server.

  1. The Client-Server Architecture

Using the previously mentioned three server types, Consider now the basic arrangement of a PDM system. These components can all exist on separate computers, can be grouped in various combinations, or the can all exist on a single machine. For now, consider these components as logically separated.

The personal computer client (PC Client) is classified as a “thick-client”. This client attaches itself into Windows File Explorer and communicates directly with the Database (using SQL stored procedures) and the archive servers.

The CAD Client is usually an add-in to the local CAD system (SOLIDWORKS), which acts as a thick-client.

The Web Client is a “thin-client”, meaning that there are minimal PDM components installed at the client side. The user interface appears as a series of web pages rendered by the Internet Explorer (IE) web browser, and users can access the Web2 interface from multiple web browsers such as Chrome™ and Firefox* as well as IE. The Web Client uses an internet connection or local network to access the vault.

* Firefox is a trademark of the Mozilla Foundation in the U.S. and other countries.

The SNL Server maintains and distributes client licenses. All client connections must obtain an appropriate license from the SNL Server to access the vault for both the thick and thin clients.

  1. WAN Model with Replicated Archive Server

  1. PDM Operations

    1. PC Client Login

FromToDescriptionPort
PC ClientDatabase ServerMetadata operations1433
PC ClientArchive ServerAuthentication3030
PC ClientSNL ServerObtain license25734
  • The PC Client communicates with the Database Server over TCP port 1433 to establish the identity of the user.

  •  The PC Client communicates with the Archive Server over TCP port 3030 when authenticating (logging in) the user.

  • The PC Client communicates with the SNL Server over TCP port 25734 to check availability of SOLIDWORKS PDM Professional licenses.

    1. PC Client File Access

Browsing files and viewing data cards in the vault requires interaction with the archive server. All information and data communications occur between the client and the database server:

FromToDescriptionPort
PC ClientDatabase ServerMetadata operations1433
Database ServerPC ClientProvide file metadata informationRandom*

* SQL Server can use any ephemeral port from 49152 to 65535 for outgoing communication to client.

  1. Getting Files and Previews

FromToDescriptionPort
PC ClientDatabase ServerMetadata operations1433
Database ServerPC ClientProvide DocumentID, UID and versionRandom*
PC ClientArchive ServerRequest file3030
Archive ServerPC ClientSend fileRandom*

* SQL and archive servers can use any port from 49152 to 65535 for outgoing communication to client.

  • The PC Client receives all file information from the Database Server.

  • The PC Client checks if the file exists locally. If not, the client requests the file from the Archive Server.

  • The Archive Server finds the requested file based on the DocumentID, UID and version.

  • The Archive Server sends the file to the local cache of the client.

  • The PC Client then opens or previews the file from the local cache.

    1. Add File

FromToDescriptionPort
PC ClientPC ClientAdd a file to the local cache.N/A
PC ClientArchive ServerAdd version 1 to the Archive Server.3030
PC ClientDatabase ServerUpdate tables and add metadata.1433
  1. Check In File

  1. Check Out File

  1. Check Out File With References

  1. On-Demand Replication

FromToDescriptionPort
PC Client1Database ServerRequest metadata1433
DBServerPC ClientProvide file version/locationRandom*
PC ClientArchive Server 1Request file3030
Archive Server 1Archive Server 2Replicate file to AS-1 (Pull)3030
Archive Server 1PC ClientCopy file to local cacheRandom*
PC ClientDatabase ServerUpdate metadata file location1433

* SQL and Archive servers can use any ephemeral port from 49152 to 65535 for outgoing communication to client.

Requests for a file version use the following logic:

  1. On-Demand Replication Flow

  1. Scheduled Replication

The first step of scheduled replication is to perform a database comparison between the files that are known to exist on each archive server. This allows the creation of a list of required replications. At the time specified, the replication between destination server A and source server B will be started.

The replication continues until all replication completes for all files in the queue or for the time specified in the Replication Schedule advanced settings. The replication then stops after the next complete file transfer. If there are some files that were queued for replication that did not replicate, those files will be carried forward to the next scheduled period (unless they are requested by a user and are on-demand replicated).

If a client is requests a file that has not yet been replicated during a scheduled replication, the requested file will take precedence and will be replicated on demand before the queued files continue.

For more information about setting up and using the SOLIDWORKS PDM Professional replication capabilities, refer to the Replication Guide, which is available on the installation media under Support > Guides > [language].

  1. SOLIDWORKS PDM Web2

SOLIDWORKS PDM Web2 uses the IIS application to access and present Vault Views on the server to the users. Web 2 is configured with IIS, and delivers ASP.NET/HTML5 pages.

This process still requires a login username and password, so security and history are maintained.

Note that current versions of the Windows operating systems such as Windows 10, Windows Server 2008 R2, and Windows 2012 R2 do not configure IIS by default. The SOLIDWORKS PDM Web2 guide explains how to set these up.

  1. Web2 Server Topology

Web2 clients accessing file vaults from the internet only require that the default HTTP port 80 be open between them and the web server. For security when using SSL, you need configure the required settings and open HTTPS port 443.

The web server machine will be running IIS and SOLIDWORKS PDM Web2 will act as the application server serving pages to IIS. Between the web server and the archive server, TCP port 3030 must be open to allow traffic from the web server. Between the web server and the SQL database server, TCP port 1433 must be open to allow traffic from the web server.. Also between the web server and the SNL server, TCP port 25734 must be open to allow traffic from the web server.

To set up and manage vaults that should be available for web access, the PDM client system performing this action only requires that HTTP port 80 is open (HTTPS port 443).

Depending on the design of the firewall strategy, the web server may be inside the secure area, or located in the perimeter network (DMZ). The principles are simple. Only Port 80 (HTTPS port 443) needs to pass from the outside world. The web server requires port 1433 into the SQL database server, a port 3030 connection to the archive servers, and a port 25374 connection to the SNL server.

  1. Web2 Clients

  1. Full Version User Interface

The Web2 client allows users to connect to a SOLIDWORKS PDM Professional vault from most devices with an internet browser. The Web2 client works with browsers such as Internet Explorer, Chrome, Firefox, and Apple® Safari®. No client installation is required, meaning you can use the Web2 client with other operating systems. With the use of WebGL/HTML5, users can dynamically view SOLIDWORKS files in most browsers.

  • Capabilities of the Web2 client

The Web2 client supports many, but not all of the features found in the other (thick) clients.

  • Browsing and searching for files and folders

  • Adding and deleting files and folders

  • Checking in and checking out files

  • Undo check out and download files

  • Viewing and updating file and folder data cards

  • State change capabilities

  • Transition action support such as setting a revision variable and tasks not requiring user input

  • Limited notifications and dispatch actions

  • The ability to preview multiple file types

  • eDrawings® previews of SOLIDWORKS files

  • “Contains” and “Where Used” information

The web client does not support:

  • Use of templates

  • Use of API add-ins

  • Use of CAD add-ins

  • Viewing history details of files and folders

  • Administering the file vault

  • Running reports

  • Viewing a Bill of Materials

  1. Mobile Version User Interface

The mobile version of Web2 has a more compact user interface and is suitable for smaller hand-held devices like smart phones and tablets.

  • Capabilities of the Web2 client

The Web2 client supports many, but not all of the features found in the other (thick) clients.

  • Browsing and searching for files and folders

  • Display the file detail view

  • Change state

  1. Database Replication

Support for SQL database replication of read-only databases was implemented in SOLIDWORKS PDM Professional 2017. SOLIDWORKS PDM Professional database replication requires the use of Microsoft AlwaysOn Availability Groups (AOAG) technology from SQL Server Enterprise 2012 or later. Database replication of read-only secondary databases can improve performance for remote offices with high WAN latency and LAN environment with high usage. For each availability group, AOAG maintains a single read-write primary database and multiple read-only secondary databases. For SQL Server 2014 or later, AOAG supports up to eight secondary replicas. The following diagram shows secondary SQL replicas in both LAN and WAN environments.

For instructions about how to set up AOAG, visit the following web pages:

The primary replica updates the secondary replicas periodically based on the time period configuration settings for each availability group. It is a recommendation to use asynchronous-commit mode for all secondary replicas for both WAN and LAN environments.

In Asynchronous-commit mode, the primary database server does not wait for a secondary database server to commit transaction log records to disk. The primary replica will just update the new transaction to its local log file.

.

  1. Secondary Replica Usage

  1. Site Examples

    1. Single Site

Single site deployment, all components situated on the same LAN:

  1. Multisite

The following diagram depicts a multiple site deployment that consists of replicated archive servers, a WAN, and two separate LANs.

  1. Multisite with Database Replication

The following diagram depicts a multiple site deployment that consists of replicated archive and database servers, a WAN and a LAN.

  1. Global Distribution

This diagram depicts a multiple site deployment that consists of replicated archive servers, a WAN, and four separate LANs. Because all database communication is over the WAN, bottlenecks in WAN latency and bandwidth can start to take effect. Ensure that the connection between sites is adequate for the amount of load and data.

  1. Web2 Clients

This diagram shows a basic single LAN configuration that adds web clients.

We hope that you find this document informational and useful and request that you leave a brief feedback about the topics that you want us to cover in the next revision of this document. Click here for a complete list of SolidPractices documents available from DS SOLIDWORKS Corp.