This article describes data and file storage options for SOCKETWorx (https://www.socketworx.com) as a Service (SaaS) and SOCKETWorx Self-Hosted (SSH) on a IIS web-server (Version 8 or greater) by a client. Further, ECE's SaaS model breaks down further and will host company specific SOCKETWorx websites at https://company.socketworx.com
Architecturally, the data and files being created and consumed by SOCKETWorx are stored in four locations - SQL Server/SQL Express, LAN Storage, Azure SQL Server, and Amazon S3.
SaaS and SSH retrieves the data to offer a wide array of website micro-services such as data viewing entry, file viewing and specification processing as well as remote data-services for various Worx Plugins.
Location 1: SQL / SQL Express
SOCKETWorx connects to SQL Server directly. Database Connection information is entered into SOCKETWorx when creating "Connections" and users interact with these Connections to view, edit and report on the SQL data. In the SaaS environment, the SQL Server is hosted behind the IIS SOCKETWorx Webserver Firewall. In the SSH environment, the SQL Server is hosted and managed by the client behind their firewall. ECE recommends hosting SOCKETWorx and SQL Server on separate servers.
Location 2: LAN Storage
SOCKETWorx provides the ability to view and markup various project documents (PDF's, Excel, Word, Image and Text Documents) on a per "Connection" basis. These documents are housed on the same LAN as the IIS Webserver hosting SOCKETWorx. The IIS User hosting SOCKETWorx requires access to these LAN locations in order for SOCKETWorx to access and display the documents. In a SSH environment, the LAN location and data stored is hosted by the client. SOCKETWorx uses Roles and Permissions to provide user access to the various documents.
Location 3: Amazon S3 Simple Cloud Storage
Numerous SOCKETWorx micro-services (SPECWorx and Work Orders are the main services) require files as source content that is subsequently processed by them. On demand, SOCKETWorx allows addition, deletions, download and viewing of these files based upon Role permissions.
Setting up those micro-services for the first time requires establishing connection with Amazon S3 to service them. These connections are commonly referred to as S3 buckets. SOCKETWorx should only be setup using non-public/Private Buckets. Files and their revisions are stored in these buckets for later retrieval.
In the Saas environment, SOCKETworx uses internal setup and security to separate the data stored in various buckets per connection or category. As an example, at the main SaaS site, https://www.socketworx.com, all SPECWorx data is stored in the same Amazon Bucket but specific data is only accessible based on roles and permissions assigned to users.
In Company specific SaaS environment, the Amazon S3 bucket may be hosted by the customer.
In the SSH environment, the Amazon S3 bucket must be hosted by the customer.
Location 4: Azure Database
In both the SaaS or SSH environments, SOCKETWorx stores license, user settings and configuration data about SQL Connections from the numerous SOCKETWorx modules in an Azure SQL Database. SOCKETWorx interacts with these Azure tables to perform functions like controlling access, rendering data reports per setup parameter, etc. Every SOCKETWorx site whether SaaS or SSH connects to a single Azure SQL Server Database instance hosted by ECE. Each Azure SQL Database is restricted to transact with only Whitelisted Public IP Addresses.
There is also data stored in the Azure SQL Server that is currently not housed in Location 1 SQL/Server based on the system architecture. This includes the following:
- Specworx Data as a result of the processed specifications.
- Datasheet Revisions as a result of the datasheet processor.
- Worx Plugin data transferred to SOCKETWorx through our API.