SolidPractices: SOLIDWORKS PDM Professional Architecture SOLIDWORKS® PDM Professional 3DS.COM © Dassault Systèmes | Confidential Information | 06/27/2017 ref.: Document_Reference | Last Update: March 2021 Revision 1.1 Table of Contents 1) PREFACE ........................................................................................................................................................ 5 2) CORE ARCHITECTURE ..................................................................................................................................... 6 3) DATABASE SERVER ........................................................................................................................................ 7 A) 4) CHANGING THE PORT USED BY SQL SERVER ...............................................................................................................9 ARCHIVE SERVER ......................................................................................................................................... 10 A) B) C) D) ARCHIVE SERVER SERVICE .....................................................................................................................................12 CLEANER SERVICE ................................................................................................................................................12 COLD STORAGE ...................................................................................................................................................12 ARCHIVE COMPRESSION........................................................................................................................................12 5) THE CLIENT-SERVER ARCHITECTURE ............................................................................................................ 13 6) WAN MODEL WITH REPLICATED ARCHIVE SERVER ...................................................................................... 15 7) PDM OPERATIONS ....................................................................................................................................... 16 A) B) C) D) E) F) G) 8) PC CLIENT LOGIN ................................................................................................................................................16 PC CLIENT FILE ACCESS ........................................................................................................................................17 GETTING FILES AND PREVIEWS ...............................................................................................................................18 ADD FILE ...........................................................................................................................................................19 CHECK IN FILE .....................................................................................................................................................20 CHECK OUT FILE ..................................................................................................................................................21 CHECK OUT FILE WITH REFERENCES ........................................................................................................................22 ON-DEMAND REPLICATION ......................................................................................................................... 23 A) B) 9) ON-DEMAND REPLICATION FLOW ..........................................................................................................................24 SCHEDULED REPLICATION ......................................................................................................................................25 SOLIDWORKS PDM WEB2 ............................................................................................................................ 26 A) 10) A) B) 11) A) 12) A) B) C) D) E) WEB2 SERVER TOPOLOGY .....................................................................................................................................27 WEB2 CLIENTS ......................................................................................................................................... 29 FULL VERSION USER INTERFACE..............................................................................................................................29 MOBILE VERSION USER INTERFACE .........................................................................................................................30 DATABASE REPLICATION ......................................................................................................................... 31 SECONDARY REPLICA USAGE ..................................................................................................................................33 SITE EXAMPLES........................................................................................................................................ 34 SINGLE SITE ........................................................................................................................................................34 MULTISITE .........................................................................................................................................................35 MULTISITE WITH DATABASE REPLICATION ................................................................................................................36 GLOBAL DISTRIBUTION .........................................................................................................................................37 WEB2 CLIENTS ...................................................................................................................................................38 2 3 Revision History Rev # 1.0 Date Mar 2019 Description Revised for use by customers Reset as document version 1.0 1.1 Mar 2021 Removed legacy Web information (last release in SOLIDWORKS PDM 2019) 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 2021 SP01. If you have questions or need assistance in understanding the content, please get in touch with your designated reseller. 4 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. 5 2) 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. 6 3) 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 7 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 behindthe-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. 8 a) 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. 9 4) 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 10 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 Filename LockProject UserID LockDomain LockPath LatestRevisionNo LockDate LockViewID The unique ID for the document The full original filename The ID of the project – lookup in the PROJECTS table The ID of the user – lookup in USERS table Identifies the host on which the file is checked-out Identifies the location of the checked-out file The latest version of the file The date that the file was locked The ID of the local view that has the file 11 a) 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 b) 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. c) 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. d) 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. 12 5) 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. Database Server SNL Server PC Client Archive Server CAD Client Web Server Web Client 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. 13 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. 14 6) WAN Model with Replicated Archive Server Database Traffic Archive Traffic Replication SNL Site 1 SNL Server Database Server Site 2 Archive Server Archive Server PC Client PC Client 15 7) PDM Operations a) PC Client Login Database Server SNL Server Archive Server PC Client From PC Client PC Client PC Client To Database Server Archive Server SNL Server Description Metadata operations Authentication Obtain license Port 1433 3030 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. 16 b) 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: Database Server Archive Server PC Client From PC Client Database Server To Database Server PC Client Description Metadata operations Provide file metadata information Port 1433 Random* * SQL Server can use any ephemeral port from 49152 to 65535 for outgoing communication to client. 17 c) Getting Files and Previews Database Server Archive Server PC Client From PC Client Database Server PC Client Archive Server To Database Server PC Client Archive Server PC Client Description Metadata operations Provide DocumentID, UID and version Request file Send file Port 1433 Random* 3030 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. 18 d) Add File Database Server Archive Server PC Client From To Description Port PC Client PC Client PC Client PC Client Archive Server Database Server Add a file to the local cache. Add version 1 to the Archive Server. Update tables and add metadata. N/A 3030 1433 19 e) Check In File Start Check local file. Has file been modified, do changes exist? Update DB metadata. No Yes Update DB metadata. Create version 2 on archive server, make file read only. END. 20 Make file read only. END. f) Check Out File Start Does a local copy exist in the local cache? No Request version from archive server preform a GET process. Yes Make file writable, update DB with writable flag. END. Make local file writable. Update DB with writable flag. END. 21 g) Check Out File With References Start Yes Does file contain refrences? Check DB for all files that are referenced. No Does a local copy exist in the local cache? No Make files writable, update DB with writable flag. END. Yes Does a local copy exist in the local cache of all referenced files? Request version from archive server preform a GET process. No Make local file writable. Request version from archive server preform a GET process. Update DB with writable flag. END. Make local files writable. Update DB with writable flag. END. 22 Yes Make file writable, update DB with writable flag. END. 8) On-Demand Replication Archive Server 1 Database Server Archive Server 2 PC Client 1 From PC Client1 DBServer PC Client Archive Server 1 Archive Server 1 PC Client To Database Server PC Client Archive Server 1 Archive Server 2 PC Client Database Server PC Client 2 Description Request metadata Provide file version/location Request file Replicate file to AS-1 (Pull) Copy file to local cache Update metadata file location Port 1433 Random* 3030 3030 Random* 1433 * SQL and Archive servers can use any ephemeral port from 49152 to 65535 for outgoing communication to client. 23 Requests for a file version use the following logic: a) On-Demand Replication Flow Start Is required version available in local cache? Yes End search No Is required version available in my designated ‘local’ archive server? Retrieve from archive server to local cache. End search. Yes No Is required version available on any other archive server? Yes Request copy of file from remote archive server. Archive server pulls file to target archive server then copies to local cache. End search. No Error – File version not found. 24 b) Scheduled Replication Archive Server 1 Database Server Archive Server 2 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]. 25 9) 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. IIS Web Server Service ASP.NET, HTML5 Web Server 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. 26 a) Web2 Server Topology SNL Server Database Server Archive Server Internal Network Web2 Server Perimeter Network (DMZ) PC Client Outside World Internet/ ISP 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 27 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. 28 10) Web2 Clients a) 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 29 b) 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 30 11) 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 readwrite 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. Windows Server Failover Clustering Cluster AlwaysOn Availability Group Site 1 Site 2 Primary Replica Secondary Replica Secondary Replica Primary Databases Read/Write Secondary Databases Read Only Secondary Databases Read Only Node 01 Node 02 Node 03 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 31 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. Windows Server Failover Clustering Cluster AlwaysOn Availability Group Database Traffic Site 1 - LAN Site 2 - WAN Primary Replica Secondary Replica Secondary Replica Primary Databases Read/Write Secondary Databases Read Only Secondary Databases Read Only Node 01 Node 02 Asynchronous-commit mode Node 03 Asynchronous-commit mode 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. . 32 a) Secondary Replica Usage Start Is this a read-only activity? No Use Primary Replica Yes Secondary replica assigned to user? No Yes Use Primary Replica Threshold Exceeded? Yes No Use Primary Replica Use Secondary Replica 33 12) Site Examples a) Single Site Single site deployment, all components situated on the same LAN: Database Traffic Archive Traffic SNL HTTP SNL Server Archive Server Database Server Web Server Web2 Web Client PC Client CAD Client 34 b) Multisite The following diagram depicts a multiple site deployment that consists of replicated archive servers, a WAN, and two separate LANs. Database Traffic Archive Traffic Replication SNL Site 1 Database Server SNL Server Site 2 Archive Server PC Client PC Client Internal Network Outside World Archive Server Internet/ ISP Perimeter Network (DMZ) Web Server Web2 35 c) 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. Database Traffic Archive Traffic Replication SNL Site 2 Site 1 SNL Server Primary Database Server Read/Write Archive Server Archive Server Read/Write Traffic Secondary Database Server Read Only Read Only Traffic PC Client PC Client 36 d) 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. Database Traffic Archive Traffic Replication SNL Site 1 SNL Server Database Server Archive Server Site 2 Archive Server WAN Site 3 PC Client PC Client Archive Server Site 4 Archive Server 37 e) Web2 Clients This diagram shows a basic single LAN configuration that adds web clients. Database Traffic Archive Traffic SNL HTTP SNL Server Database Server Archive Server Internal Network PC Client Outside World Internet/ ISP 38 Perimeter Network (DMZ) Web Server