Rev # | Date | Description |
---|---|---|
1.0 | Mar2019 | Revised for use by customers Reset as document version 1.0 |
1.1 | Mar2021 | Removed legacy Web information (last release in SOLIDWORKS PDM 2019) |
1.2 | Mar2023 | Validated 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.
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.
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.
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.
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.
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.
DocumentID | Filename | LockProject | UserID | LockDomain | LockPath |
---|---|---|---|---|---|
46604 | Part1.SLDPRT | 1 | 5 | TS-MP1 | C:\View\Working\ |
46605 | Part2.SLDPRT | 1 | 5 |
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.
DocumentID | The unique ID for the document |
---|---|
Filename | The full original filename |
LockProject | The ID of the project – lookup in the PROJECTS table |
UserID | The ID of the user – lookup in USERS table |
LockDomain | Identifies the host on which the file is checked-out |
LockPath | Identifies the location of the checked-out file |
LatestRevisionNo | The latest version of the file |
LockDate | The date that the file was locked |
LockViewID | The ID of the local view that has the file |
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
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.
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.
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.
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.
WAN Model with Replicated Archive Server
PDM Operations
PC Client Login
From | To | Description | Port |
---|---|---|---|
PC Client | Database Server | Metadata operations | 1433 |
PC Client | Archive Server | Authentication | 3030 |
PC Client | SNL Server | Obtain license | 25734 |
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.
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:
From | To | Description | Port |
---|---|---|---|
PC Client | Database Server | Metadata operations | 1433 |
Database Server | PC Client | Provide file metadata information | Random* |
* SQL Server can use any ephemeral port from 49152 to 65535 for outgoing communication to client.
Getting Files and Previews
From | To | Description | Port |
---|---|---|---|
PC Client | Database Server | Metadata operations | 1433 |
Database Server | PC Client | Provide DocumentID, UID and version | Random* |
PC Client | Archive Server | Request file | 3030 |
Archive Server | PC Client | Send file | Random* |
* 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.
Add File
From | To | Description | Port |
---|---|---|---|
PC Client | PC Client | Add a file to the local cache. | N/A |
PC Client | Archive Server | Add version 1 to the Archive Server. | 3030 |
PC Client | Database Server | Update tables and add metadata. | 1433 |
Check In File
Check Out File
Check Out File With References
On-Demand Replication
From | To | Description | Port |
---|---|---|---|
PC Client1 | Database Server | Request metadata | 1433 |
DBServer | PC Client | Provide file version/location | Random* |
PC Client | Archive Server 1 | Request file | 3030 |
Archive Server 1 | Archive Server 2 | Replicate file to AS-1 (Pull) | 3030 |
Archive Server 1 | PC Client | Copy file to local cache | Random* |
PC Client | Database Server | Update metadata file location | 1433 |
* 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:
On-Demand Replication Flow
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].
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.
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.
Web2 Clients
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
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
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:
https://msdn.microsoft.com/en-us/library/ff877884(v=sql.120).aspx
https://www.derekseaman.com/2014/09/sql-2014-always-ag-pt-1-introduction.html
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.
.
Secondary Replica Usage
Site Examples
Single Site
Single site deployment, all components situated on the same LAN:
Multisite
The following diagram depicts a multiple site deployment that consists of replicated archive servers, a WAN, and two separate LANs.
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.
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.
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.