system architecture guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined...

43
Enable 10 System Architecture Guide Page 1 of 43 Revised 12/10/2019 Enable™ Version 10 System Architecture Guide Revised 12/10/2019 Enable 10.1 Release Enable Suite - All components: EnterworksInstallPackage_20190906_1101 EnterworksDB_20190906_1101 EnterworksDBScripts_20190906_1101 ew-linux-10.1-docker-20190906_1848.tar.gz Enable Patch: EnableServer_ 10.1.4_Enable_patch_20191122_2108 ew-linux-10.1.4-patch-20191123_1612 Enable Builds: Enable10 10.1.4 Build 20191115_1432 EnableServer Build 20191115_1432 EnterWorks ® , Acquisition Inc., a Winshuttle Company 46040 Center Oak Plaza Suite 115 Sterling, VA 20166

Upload: others

Post on 28-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 1 of 43 Revised 12/10/2019

Enable™ Version 10

System Architecture Guide

Revised 12/10/2019

Enable 10.1 Release Enable Suite - All components:

• EnterworksInstallPackage_20190906_1101

• EnterworksDB_20190906_1101

• EnterworksDBScripts_20190906_1101

• ew-linux-10.1-docker-20190906_1848.tar.gz

Enable Patch:

• EnableServer_ 10.1.4_Enable_patch_20191122_2108

• ew-linux-10.1.4-patch-20191123_1612

Enable Builds:

• Enable10 10.1.4 Build 20191115_1432

• EnableServer Build 20191115_1432

EnterWorks®, Acquisition Inc., a Winshuttle Company 46040 Center Oak Plaza Suite 115

Sterling, VA 20166

Page 2: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 2 of 43 Revised 12/10/2019

©EnterWorks, Inc. Loudoun Tech Center 46040 Center Oak Plaza Suite 115 Sterling, VA 20166 1.888.242.8356 (Sales and General Information) 1.888.225.2705 (U.S. Support) http://www.enterworks.com EnterWorks® Enable 10 System Architecture Guide Copyright © 2019-2020 EnterWorks, Inc., a Winshuttle Company. All rights reserved. Law prohibits unauthorized copying of all or any part of this document. Use, duplication, or disclosure by the U.S. Government is subject to the restrictions set forth in FAR 52.227-14. “EnterWorks” and the “EnterWorks” logo are registered trademarks and “Enable PIM”, “EnterWorks Process Exchange” and “EnterWorks Product Information Management” are trademarks of EnterWorks, Inc. Windows, .NET, IIS, SQL Server, Word, and Excel are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Java and all Sun and Java based trademarks are trademarks or registered trademarks of the Oracle Corporation in the United States and other countries. Oracle is a registered trademark and Oracle 10g is a trademark of Oracle Corporation. Pentium is a registered trademark of Intel Corporation in the United States and other countries. JBoss is a registered trademark of Red Hat, Inc. All other trademarks and registered trademarks are the property of their respective holders. All icons and graphics, with the exception of the "e." logo, were obtained from West Coast Icons and Design at http://www.bywestcoast.com. EnterWorks, Inc. retains copyrights for all graphics unless otherwise stated. All other trademarks and registered trademarks are the property of their respective holders. This document is furnished for informational purposes only. The material presented in this document is believed to be accurate at the time of printing. However, EnterWorks Acquisition, Inc. assumes no liability in connection with this document except as set forth in the License Agreement under which this document is furnished.

Page 3: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 3 of 43 Revised 12/10/2019

Contents

1 Document Conventions ...................................................................................................5

2 Customer Support ...........................................................................................................6

3 Overview .........................................................................................................................7

4 Architectural Overview ....................................................................................................7

4.1 Components of Enable ..................................................................................................8

4.1.1 Enable Server .....................................................................................................9

4.1.2 EPX .....................................................................................................................9

4.1.3 Enable Microservices ..........................................................................................9

4.1.4 Enable Utilities .................................................................................................11

4.1.5 3rd-party Applications .......................................................................................11

4.2 Databases ...................................................................................................................11

4.3 File Storage .................................................................................................................11

5 Server Configurations ....................................................................................................12

6 Enable Services Distribution ..........................................................................................13

7 Operating System-specific Architecture Specifications ...................................................14

7.1 Linux-specific Architecture Specifications ....................................................................14

7.1.1 Linux Single-server vs Multi-server Configuration .............................................14

7.1.2 Docker ..............................................................................................................15

7.1.3 Linux File Maps .................................................................................................16

7.2 Windows-specific Architecture Specifications .............................................................18

7.2.1 Windows File Maps ..........................................................................................18

8 Enable 10 Specifications ................................................................................................22

8.1 Enable 10 Supported Browsers ...................................................................................22

8.2 Enable 10 Supported 3rd-party Software Versions .......................................................22

8.3 Enable 10 Compatibility Matrix ...................................................................................24

8.4 Enable 10 Subnets .......................................................................................................24

8.5 Enable 10 Default Port Matrices ..................................................................................24

8.5.1 Enable 10.1 Default Port Matrix by Port ...........................................................24

Page 4: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 4 of 43 Revised 12/10/2019

8.5.2 Enable 10.1 Default Port Matrix by Service .......................................................28

9 Architectural Diagrams ..................................................................................................33

9.1 Enable Core Software Architectural Model .................................................................33

9.2 Linux Stand-alone Architecture ...................................................................................34

9.3 Linux Multi-server Architecture ...................................................................................35

9.4 Windows Single-Server Architecture ...........................................................................36

9.5 Windows Multi-server Architecture ............................................................................37

10 Extending Enable’s Base Functionality ...........................................................................38

10.1 Enable APIs ..............................................................................................................38

10.2 Extended Capabilities via the Enable 2020 UI ..........................................................39

10.3 Add-on Microservices ..............................................................................................40

10.3.1 Additional Static Files ....................................................................................40

10.3.2 Proxies ..........................................................................................................41

10.3.3 Custom Microservices ...................................................................................41

Page 5: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 5 of 43 Revised 12/10/2019

1 Document Conventions

This EnterWorks document uses the following typographic conventions:

Convention Usage

pathnames Pathnames are shown with backslashes, as for Windows systems.

Courier New font Denotes sample code, for example, Java, IDL, and command line information. May be used to denote filenames and pathnames, calculations, code samples, registry keys, path and file names, URLs, messages displayed on the screen.

If italicized and in angle brackets (< >), it denotes a variable. Variables may also be written in red to further emphasize them in a long code sample.

Calibri Font (bold) When used in body text, it denotes an object, area, list item, button, or menu option within the graphical user interface; or a database name or database-related object. (Examples: the Save button; the Product tab; the Name field; the SKU repository)

Can also be used to denote text that is typed in a text box. (Example: Type “trackingNo” in the Name field)

Blue underlined text Words, phrases or numbers in blue are active links that can be clicked. Clicking these active links will bring the user to the required information, steps, pages chapters, or URL.

Page 6: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 6 of 43 Revised 12/10/2019

2 Customer Support

There’s a reason why EnterWorks receives the highest customer satisfaction scores from firms including Gartner® and Forrester® ─ our customers are our top priority.

EnterWorks provides a full spectrum of customer support. Check your maintenance contract for the level of support purchased. The first time you contact customer support, you’ll receive a customer identification number. Keep this number for future reference when using the EnterWorks customer support service.

How to reach us Comments

On the Web:

https://enterworkssupport.zendesk.com

For detailed discussions of hardware, software, configuration issues, or Helpdesk credentials, contact your EnterWorks representative.

Page 7: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 7 of 43 Revised 12/10/2019

3 Overview

This document describes the basic architecture of Enable 10 in high-level terms, including descriptions of Enable’s components, how they interact, and which ports they use.

For architectural information regarding your specific system architecture, see your Solution Architecture design documentation or contact your Enable account representative.

Refer to the following documents for additional information.

• For guidance on installing Enable on a Linux system, see Enable 10 Linux Installation Guide.

• For guidance on installing Enable on a Windows system, see Enable 10 Windows Installation Guide.

• For system administration processes and procedures, see the Enable 10 Administration Guide.

• For user functionality, see the Enable 10 PIM User Guide.

4 Architectural Overview

EnterWorks Enable features a three-tier web architecture fully distributable for scalability, along with fully-defined and exposed web services to access all functionality of the product. We deliver fully documented service-oriented API’s with our solution and have customers in production who have developed custom applications using Enable web services to access MDM functionality. Enable is packaged as an appliance and can be deployed on-premise or hosted as a private cloud offering in AWS. Enable is globalized to support multiple languages, geographies and currencies and is used by several large multinational customers.

• EnterWorks® Enable is a standards-based, Java / J2EE application that contains a variety of open source technologies beyond our own proprietary capabilities, including industry standard Web Servers (Tomcat) and App Servers (JBoss). The solution fully supports cloud, on premise, and hybrid deployments. Every function in the solution can be accessed via API.

• The EnterWorks® Enable product features a three-tier architecture built on industry standards such as Java, JQuery and Ajax, utilizing an open web services API (SOAP or REST) for integration purposes. The distributed Web server tier allows customers to add more Web servers, load balance, or distribute them across the enterprise.

• We have always been very conscious of user experience in a Web-based world. As such, we employ various caching techniques to ensure the interaction at the browser level is acceptable. We also make extensive use of Ajax and jQuery, limiting the back-and-forth between the browser and the server; when we do call the server, we can narrow it down to just the specific information needed.

Page 8: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 8 of 43 Revised 12/10/2019

In addition, we employ a unique approach to the database structure itself. In order to maintain maximum flexibility for our customers as they both initially define their model and maintain it on an ongoing basis, we store much of the data as XML. We also provide two features that further enhance data retrieval when necessary —“snapshot” attributes and “Empower” tables. Snapshot attributes are attributes that live in the XML structure, but are extracted as they are saved, placed in a snapshot table, and indexed for high-speed search and retrieval. With Empower, a complete set of relational tables is automatically maintained that represent a direct reflection of the XML structure for high transaction scenarios.

4.1 Components of Enable

The core components of Enable are:

• Enable Server

• EPX

• Enable Microservices

• Enable Utilities

Enable Core Software Architecture

Page 9: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 9 of 43 Revised 12/10/2019

• 3rd-party Applications

4.1.1 Enable Server

Enable Server is the primary Enable application. It also provides UIs and directs batch job processing.

• Enable Server Tomcat – Provides the Enable 2020 UI, (and optionally, Enable Classic UI), and exposes the core API.

• Enable Server Master – The job manager; it queues jobs to available slaves.

• Enable Server Slave(s) – Job processors for background operations (i.e. large imports, validations, etc.).

4.1.2 EPX

EPX (Enable Process Exchange) is the workflow manager and scheduling framework for business processes.

4.1.3 Enable Microservices

In a microservice architecture, applications are broken down into multiple modular, loosely coupled components, each of which performs a discrete function. The benefits of a microservice architecture include:

• Applications based on a microservice model are easier to create, maintain, and configure to meet specific business needs.

• Microservices be distributed across servers, clouds and data centers.

• Each microservices is an independent service that can be changed, updated, or deleted without disrupting the rest of an application.

• Each microservice can be developed in any language that is best fits its functional and operational requirements.

The table below lists Enable’s microservices.

Note that in the event that more than one environment is hosted on the same server, there may be more than one instance of a microservice on that server. In this case, microservice names may have a prefix that identifies them as part of a particular environment, such as DEV or PROD. This prefix would allow RabbitMQ to distinguish between a microservice and other instances of the same microservice, and to enable it to route messages to the correct microservice instance.

Page 10: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 10 of 43 Revised 12/10/2019

Microservice Name Function

enable2020-api-go-service Main authentication point (JWT) with various utility end-points.

enable2020-channel-readiness-service Interacts with MongoDB to compile Channel Readiness statistics.

enable2020-dam-manager-service Processes images uploaded to Enable; extracts metadata; links to records in Enable, etc.

enable2020-dam-magick-service Handles generation of image variants.

enable2020-epx-broker-service Glue service between RabbitMQ and EPX Workflow.

enable2020-es-indexer-service Indexes the creation and enrichment of data.

enable2020-es-manager-service A microservice that is tightly coupled with Elastic Search for interacting with Elastic Search.

enable2020-es-search-service Handles the search operations performed in the Enable UI.

enable2020-ids-manager-service

enable2020-monitor-dam-drop-service Monitors a ”hot folder” to pick up and process digital assets

enable2020-mq-logger-service Logs messages data for troubleshooting.

enable2020-pimql-broker-service

enable2020-service-wrapper-service

enable2020-webcm-broker-service Glue Service between RabbitMQ and EnableServer J2EE REST API. Manages token authentication.

enable2020-web-server-service Main web server.

enable2020-winshuttle-listener-service Monitor’s repository records; submits ready records to the Winshuttle Foundation workflow.

Page 11: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 11 of 43 Revised 12/10/2019

4.1.4 Enable Utilities

The Enable utilities are:

• DAMReportUtility: Reports on discrepancies between DamMaster and

Damroot.

• MontitorDamdrop: Monitors the Damdrop folder for uploading digital assets.

• RegenerateDAMVariant: Generates variants of digital assets. Used by the DAM

functionality.

4.1.5 3rd-party Applications

The primary 3rd-party applications Enable uses consist of:

• Elasticsearch – Handles search requests and typeahead.

• ImageMagick – Handles the conversion of images into various formats and variants.

• Microsoft SQL Server – For Enable in a Windows environment, it manages the EPIM and EPX database .

• MongoDB/Robo 3T – Manage the Channel Readiness database.

• PostgreSQL Server – For Enable in a Linux environment, it manages the EPIM and EPX database

• RabbitMQ – Service bus between the UI, micro-services and various Enable components.

4.2 Databases

Enable’s databases consist of:

• EPIM database: For business data and system operations.

• EPX database: For the Workflow functionality.

• Channel Readiness database: (MongoDB) For Channel Readiness functionality.

4.3 File Storage

Enable’s primary file storage function consists of:

• DAM (Digital Assets Management): Manages the storage and use of business digital assets.

Page 12: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 12 of 43 Revised 12/10/2019

5 Server Configurations

Enable can be configured to run on one or more servers. Typically, one server is used for the EPIM and EPX databases, and the Enable components are distributed across one or more servers. When referring to the number of servers in the configuration, it is common practice to count only the servers containing Enable components; the database server is understood to be part of the configuration. Therefore:

• A “one-server” configuration refers to:

o One database server.

o One Enable server.

• A “two-server” configuration refers to:

o One database server.

o Two Enable servers.

• A “stand-alone” configuration consists of Enable and the databases installed on the same server.

The below is an example of a multiple-server architecture.

Enable Stand-alone Configuration

Page 13: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 13 of 43 Revised 12/10/2019

6 Enable Services Distribution

Highly available EPX solutions should be deployed using classic Enable HA configurations. This product is still in the process of be ported to a containerized product.

Component Services Distribution

Enable Server • Tomcat

• AppMaster (Wildfly/JBossMaster)

• AppSlave <X>

May be distributed across multiple servers.

Enable Multi-server Configuration

Page 14: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 14 of 43 Revised 12/10/2019

Component Services Distribution

Enable 2020 Microservices

• api-go-service

• channel-readiness-service

• dam-magick-service

• dam-manager-service

• epx-broker-service

• es-indexer-service

• es-manager-service

• es-search-service

• ids-manager-service

• monitor-dam-drop-service

• mq-logger-service

• pimql-broker-service

• service-wrapper-service

• webcm-broker-service

• web-server-service

• winshuttle-listener-service

• May be distributed across multiple servers.

• enable2020-es-manager-

service must be on the same

server as Elasticsearch.

• Unless Amazon S3 is used, enable2020-dam-

manager-service must be

installed on the same server as Damroot, (until enable2020-file-

service is complete).

Utilities • DAMReportUtility

• MontitorDamdrop

• RegenerateDAMVariant

A full set of the Utilities services will be installed on each server that has Enable Server services.

Channel Readiness

MongoDB Robo 3T

May not be distributed across multiple servers.

RabbitMQ RabbitMQ

Search Elasticsearch

EPIM Database

May not be distributed across multiple servers.

EPX EPX Database

May not be distributed across multiple servers.

7 Operating System-specific Architecture Specifications

7.1 Linux-specific Architecture Specifications

7.1.1 Linux Single-server vs Multi-server Configuration

For detailed images of various Linux server configurations, see Architectural Diagrams.

Page 15: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 15 of 43 Revised 12/10/2019

7.1.2 Docker

Enable architecture uses Docker to facilitate scalability across multiple servers. Enable components may run in containers controlled by a Docker swarm manager. PostgreSQL can run in a Docker container or on a separate server.

Enable uses shared volumes to move data between Docker containers. Docker is configured to use both a Docker bridge network and Docker network overlays.

Enable uses Docker to communicate with EPX. This is similar to opening a port through a firewall to support communications among different server environments.

When a process in a container references a process in another container, the best practice is to use the target container’s name rather than the name or IP address of the server running the target container. This is because when a container or VM is restarted, it may be assigned a new local or dynamic IP address.

Anytime a container is restarted, restart all containers and services. Failing to restart all containers and services could result in broken communication links.

If a resource is being accessed that is not in a container, use the static IP address or DNS resolved address of the server the resource is running on. If the server does not have a static IP address or DNS resolved address, it must be referenced by a dynamic IP address and any references to the resource must be updated anytime the server is restarted.

Note that Docker includes everything under its context (about 130MB) for each image build, so if there is a random file that is 10GB located in the context, the Docker image becomes 10GB instead of 130mb. If there are files that do not need to be in the Docker context for each build, include their paths inside the .dockerignore file to reduce the size of the image.

Installing Enable requires using basic Docker commands and some advanced shell scripting commands. Docker and Linux commands are used to manage Docker containers.

The installation of Enable on a Linux OS differs from Enable installed on a Windows OS in that EPX uses the EPIM database to store some work flow data.

Docker’s default logging mechanism is used for standard out (stdout). Therefore, any output

to stdout by any process can be accessed with the docker container logs command.

7.1.2.1 Allocation of Services to Containers

Enable components are allocated to containers as follows:

• EPIM is comprised of two containers:

o Tomcat

o JBoss

• Slaves uses containers as defined by the Solution Architecture.

Page 16: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 16 of 43 Revised 12/10/2019

• EPX Workflow is comprised of two containers:

o Tomcat

o JBoss

• 3rd Party servers that may run in individual docker containers include:

o RabbitMQ

o Elasticsearch

o MongoDB

o PostgreSQL

• All Go Language based microservices will run in a docker container.

• The PostgreSQL databases and the MongoDB database run in separate containers.

• RabbitMQ and Elasticsearch run in separate containers.

7.1.2.2 Referencing Services

The Docker swarm manager assigns each container in the internal Docker network a unique identifier, either the IP address of the server it is running on or a different unique identifier. Containers use this identifier to reference other containers. This allows each server to readily communicate to the other server end-points.

When a service in a container references a service in another container, the best practice is to use the target container’s name rather than the name or IP address of the server running the target container. This is because when a container or VM is restarted, it may be assigned a new local or dynamic IP address.

If a resource is being accessed that is not in a container, use the static IP address or DNS resolved address of the server the resource is running on. If the server does not have a static IP address or DNS resolved address, it must be referenced by a dynamic IP address and any references to the resource must be updated anytime the server is restarted.

7.1.3 Linux File Maps

7.1.3.1 Enable File Structure

Page 17: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 17 of 43 Revised 12/10/2019

Enable File Structure

File Path Notes

/enterworks-root/software The folder where installation files will be copied to and then expanded from.

/opt/enable/backup Directory containing all archived files from the /opt/enable/enterworks-root folder. This

folder is deliberately not under /opt/enable/enterworks-root to allow /opt/enable/enterworks-root to be

searched without finding the backup files as well as the current files.

/opt/enable/enterworks-

root The main Enable folder. The files it contains includes scripts for installing and patching Enable, configuration files, log files for Docker containers, and shared folders for files that need to be shared across containers.

/enterworks-

root/working/{_ <temp

files created during the

install> _}

Temporary files.

/enterworks-

root/software/micro-svc/ The install folders for Linux-based microservices.

/enterworks-

root/enterworks/{custom,

logs, shared, Utilities}

Similar to the enterworks folder in windows, logs,

custom jars, html, shared{damroot…}, etc.

7.1.3.2 Configuration Files

Page 18: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 18 of 43 Revised 12/10/2019

Configuration Files

File Path Notes

/enterworks-

root/config/EnterworksInstall

.properties

Configuration file from the tar ball. It is tokenized by the scripts and used to configure EPIM. Installation properties can be edited here directly.

/enterworks-

root/docker/epx/EnterworksIns

tall.properties

EPX configuration files. It is tokenized by the scripts and used to configure EPX. Installation properties can be edited here directly.

/enterworks-

root/config/EnterworksInstall

.replaced

File containing the replaced values in the properties file, after scripts run.

env.original Main build data, with placeholders that are replaced during installation with actual runtime values and written to the file: env.configure

env.configure Used by the scripts to configure enable2020 microservices.

7.2 Windows-specific Architecture Specifications

7.2.1 Windows File Maps

7.2.1.1 Enable General Component/Function File Map

Enable General Component/Function File Map

Component/Function File Path

Main folder <install drive>:\Enterworks

Start/Stop scripts <install drive>:\Enterworks\bin

DAM <install drive>:\Enterworks

Page 19: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 19 of 43 Revised 12/10/2019

Enable General Component/Function File Map

Component/Function File Path

Enable 2020 Microservices <install

drive>:\Enterworks\enable2020\

Enable Server <install

drive>:\Enterworks\EnableServer

JbossMaster/Slaves <install

drive>:\Enterworks\EnableServer

Tomcat <install

drive>:\Enterworks\EnableServer

Utilities <install drive>:\Enterworks\Utilities

EPX <install drive>:\Enterworks\EPX

MongoDB <install drive>:\Enterworks\MongoDB

The markdown documentation files.

<install drive>:\Enterworks\ewdocs

7.2.1.2 DAM File Map

DAM File Map

File/Folders File Path

DAMdrop <install drive>:\Enterworks\DAMdrop

DamDropOnDemand <install

drive>:\Enterworks\DamDropOnDemand

DamDropWorking <install

drive>:\Enterworks\DamDropWorking

Damroot <install drive>:\Enterworks\Damroot

DAMReportUtility <install drive>:\Enterworks\Utilities

Page 20: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 20 of 43 Revised 12/10/2019

DAM File Map

File/Folders File Path

MonitorDamdrop <install drive>:\Enterworks\Utilities

RegenerateDAMVariant <install drive>:\Enterworks\Utilities

7.2.1.3 Enable 2020 Microservices File Map

Enable 2020 Microservices File Map

Purpose File/Folder

Root folder for microservices.

<install drive>:\Enterworks\enable2020

Microservice .exe files.

<install

drive>:\Enterworks\enable2020\services\bin

Installation scripts.

<install

drive>:\Enterworks\enable2020\services\install

Microservices Working Directories

<install

drive>:\Enterworks\enable2020\services\bin\working

7.2.1.4 Log and Error Files Map

Note that the file map below is configuration dependent. For example, in some configurations, log files for JBossMaster are found under the wildfly directory, while in another

configuration, they would be found under the jbossMaster directory.

Page 21: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 21 of 43 Revised 12/10/2019

Component/Function

File Path

Archived Logs

<install drive>:\Enterworks\logs\archive

Job logs and Error files

<install drive>:\Enterworks\logs\EnableServer\<job

type>

Tomcat logs <install drive>:\Enterworks\logs\EnableServer\tomcat

Wildfly logs <install

drive>:\Enterworks\logs\EnableServer\wildfly

JBoss Master logs

<install

drive>:\Enterworks\jbossMaster\standalone\log

JBoss Slave logs

<install

directory>\Enterworks\jbossSlave<X>\standalone\log

EPX logs and Error files

<install drive>:\Enterworks\logs\EPX

Enable Utilities

<install drive>:\Enterworks\logs\EPX

Validation logs

<install

drive>:\Enterworks\logs\EnableServer\validation

MongoDB logs

<install drive>:\Enterworks\MongoDB\logs

Snapshot logs

<install

drive>:\Enterworks\logs\EnableServer\snapshot

Generated when a snapshot table is rebuilt or populated through the Job Monitor.

Heap dump log

<install

drive>:\Enterworks\logs\EnableServer\heapdump

If a process runs out of memory, a dump of the process is stored here.

Text index log

<install

drive>:\Enterworks\logs\EnableServer\textIndex

Page 22: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 22 of 43 Revised 12/10/2019

8 Enable 10 Specifications

8.1 Enable 10 Supported Browsers

Supported Browsers Version Enable Testing

Google Chrome v64 and newer

Tested fully with Enable Classic and Enable 2020 UIs.

Internet Explorer v11 and newer

Tested fully with Enable Classic UI.

Testing with Enable 2020 UI scheduled for year 2020.

Firefox V60 and newer

Tested fully with Enable Classic UI.

Testing with Enable 2020 UI scheduled for year 2020.

Edge Not tested Not yet tested.

8.2 Enable 10 Supported 3rd-party Software Versions

Enable 10 Supported 3rd-Party Software Versions

Product Name Version Number

Apache Tomcat 6.0.41

Apache Tomcat (for Infolink Deduplication Application)

9.0.0 (or higher)

Centos 7.7 64-bit

Elasticsearch 5.0.2

Erlang OTP 20

Ghostscript 9.23

Page 23: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 23 of 43 Revised 12/10/2019

Enable 10 Supported 3rd-Party Software Versions

Product Name Version Number

Google Chrome 64 (Will probably work on previous versions as well.)

JasperReports 5.2

Jaspersoft IReport Designer Professional

5.2.0

JDK 1.7.0_51

jTDS 1.2

Microsoft SQL Server 2008 or later. SQL Server Standard or Enterprise Edition. The Full Text Engine feature must also be installed.

Microsoft SQL Server Management Studio

18.2

MongoDB Community Server

3.6.6

Node.js v4.4.7

Oracle JRE 8 or higher

PostgreSQL 10.6

PuTTY 0.73

RabbitMQ Server 3.7.8

Robo 3T 1.2.1

SAML 2

Xming 6-9-0-31

Page 24: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 24 of 43 Revised 12/10/2019

8.3 Enable 10 Compatibility Matrix

Application Application Versions

Microsoft SQL Server 2008+

Windows OS 2012+

8.4 Enable 10 Subnets

In Enable running on Linux, allow Docker to take full control of subnets 172.17.0.0/16 and 172.18.0.0/16. If any technologies, (e.g. VPN), is set up on these subnets, Docker may interfere with those technologies on startup.

8.5 Enable 10 Default Port Matrices

Note that Enable Server Slaves can be configured to use various ports, depending on the system requirement. Each slave uses 2-4 ports. It is suggested that the ports selected fall within the range of 3000 to 4000.

8.5.1 Enable 10.1 Default Port Matrix by Port

Enable 10.1 Default Port Matrix Sorted by Port

Port Protocol Endpoint A Endpoint B Components

21 SFTP

22 SFTP

25 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

80 TCP enable2020-web-server-service

Web

82

443 Web

Page 25: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 25 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Port

Port Protocol Endpoint A Endpoint B Components

445 TCP Data Services (TOMCAT/ JBOSS Master)

445 TCP Job Queues (Slave 1 -- n) EPX

445 TCP Support Services (Microservices)

1099 Design Console

1100 EPXJboss

1101 EPXJboss

1161 EPXJboss

1162 EPXJboss

1433 TCP MS SQL Server EnableServerTomcat SQL Server

1433 TCP MS SQL Server EnableServerSlaveN

1433 TCP MS SQL Server EPXJboss

1433 TCP MS SQL Server PIMQL

1434 PostgreSQL Server

2049 TCP NFS NFS

2376 TCP Docker Swarm Docker Swarm

2377 TCP Docker Swarm Docker Swarm

3306 PostgreSQL Server

3527 EPXJboss

3528 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

3529 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

3873 TCP EPXJboss EPX server

4000 TCP NoMachine/NX NX

Page 26: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 26 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Port

Port Protocol Endpoint A Endpoint B Components

4369 TCP RabbitMQ RabbitMQ

4444 TCP EPXJboss EPX server

4445 TCP EPXJboss EPX Server

4446 TCP EPXJboss EPX Server

4448 EPXJboss

4455 TCP EPXJboss EPX Server

4457 EPXJboss

4712 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

4713 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

4789 UDP Docker Swarm Docker Swarm

5432 TCP PostgreSQL Server EnableServerTomcat

5432 TCP PostgreSQL Server EnableServerSlaveN DB

5432 TCP PostgreSQL Server EPXTomcat

5432 TCP PostgreSQL Server EnablePIMQL

5671 TCP RabbitMQ RabbitMQ

5672 TCP RabbitMQ RabbitMQ

7946 TCP Docker Swarm Docker Swarm

7946 UDP Docker Swarm Docker Swarm

8000 TCP EPXJboss EPX Server

8009 TCP EPXTomcat EPX Server

8015 EnableServerTomcat

8034 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

8035 EnableServerSlaveN

8036 EnableServerSlaveN

Page 27: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 27 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Port

Port Protocol Endpoint A Endpoint B Components

8037 EnableServerSlaveN

8038 EnableServerSlaveN

8039 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

8080 TCP EPXJboss Data Services (TOMCAT/ JBOSS Master)

8083 TCP EPXJboss EPX Server

8090 TCP EnableServerTomcat Data Services (TOMCAT/ JBOSS Master)

8093 EPXJboss

8109 EnableServerTomcat

8134 TCP EnableServerSlaveN Job Queues (Slave 1 -- n) EPX

8139 TCP EnableServerSlaveN Job Queues (Slave 1 -- n) EPX

8443 EPXTomcat

9018 PIMQL

9033 TCP EPXJboss EPX Server

9034 TCP EPXJboss EPX Server

9039 TCP EPXJboss EPX Server

9040 TCP EPXTomcat EPX Server

9200 TCP Elasticsearch Elasticsearch & MongoDB

9300 TCP Elasticsearch & MongoDB

9443 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

9990 TCP EPXJboss EPX Server

9990 EnableServerWildflyMaster

Page 28: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 28 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Port

Port Protocol Endpoint A Endpoint B Components

9993 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

9999 EnableServerWildflyMaster

15671 TCP RabbitMQ RabbitMQ

15672 TCP RabbitMQ RabbitMQ

19001 EPXJboss

25672 TCP RabbitMQ RabbitMQ

27017 TCP MongoDB Elasticsearch & MongoDB

27018 TCP Elasticsearch & MongoDB

27019 Elasticsearch & MongoDB

8.5.2 Enable 10.1 Default Port Matrix by Service

Enable 10.1 Default Port Matrix Sorted by Endpoint A

Port Protocol Endpoint A Endpoint B Components

1099 Design Console

2376 TCP Docker Swarm Docker Swarm

2377 TCP Docker Swarm Docker Swarm

4789 UDP Docker Swarm Docker Swarm

7946 TCP Docker Swarm Docker Swarm

7946 UDP Docker Swarm Docker Swarm

9200 TCP Elasticsearch Elasticsearch & MongoDB

80 TCP enable2020-web-server-service

Web

8035 EnableServerSlaveN

Page 29: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 29 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Endpoint A

Port Protocol Endpoint A Endpoint B Components

8036 EnableServerSlaveN

8037 EnableServerSlaveN

8038 EnableServerSlaveN

8134 TCP EnableServerSlaveN Job Queues (Slave 1 -- n) EPX

8139 TCP EnableServerSlaveN Job Queues (Slave 1 -- n) EPX

8015 EnableServerTomcat

8090 TCP EnableServerTomcat Data Services (TOMCAT/ JBOSS Master)

8109 EnableServerTomcat

25 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

3528 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

3529 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

4712 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

4713 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

8034 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

8039 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

9443 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

Page 30: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 30 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Endpoint A

Port Protocol Endpoint A Endpoint B Components

9990 EnableServerWildflyMaster

9993 TCP EnableServerWildflyMaster Data Services (TOMCAT/ JBOSS Master)

9999 EnableServerWildflyMaster

1100 EPXJboss

1101 EPXJboss

1161 EPXJboss

1162 EPXJboss

3527 EPXJboss

3873 TCP EPXJboss EPX server

4444 TCP EPXJboss EPX server

4445 TCP EPXJboss EPX Server

4446 TCP EPXJboss EPX Server

4448 EPXJboss

4455 TCP EPXJboss EPX Server

4457 EPXJboss

8000 TCP EPXJboss EPX Server

8080 TCP EPXJboss Data Services (TOMCAT/ JBOSS Master)

8083 TCP EPXJboss EPX Server

8093 EPXJboss

9033 TCP EPXJboss EPX Server

9034 TCP EPXJboss EPX Server

9039 TCP EPXJboss EPX Server

9990 TCP EPXJboss EPX Server

19001 EPXJboss

8009 TCP EPXTomcat EPX Server

8443 EPXTomcat

9040 TCP EPXTomcat EPX Server

Page 31: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 31 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Endpoint A

Port Protocol Endpoint A Endpoint B Components

27017 TCP MongoDB Elasticsearch & MongoDB

1433 TCP MS SQL Server EnableServerTomcat SQL Server

1433 TCP MS SQL Server EnableServerSlaveN

1433 TCP MS SQL Server EPXJboss

1433 TCP MS SQL Server PIMQL

2049 TCP NFS NFS

4000 TCP NoMachine/NX NX

9018 PIMQL

1434 PostgreSQL Server

3306 PostgreSQL Server

5432 TCP PostgreSQL Server EnableServerTomcat

5432 TCP PostgreSQL Server EnableServerSlaveN DB

5432 TCP PostgreSQL Server EPXTomcat

5432 TCP PostgreSQL Server EnablePIMQL

4369 TCP RabbitMQ RabbitMQ

5671 TCP RabbitMQ RabbitMQ

5672 TCP RabbitMQ RabbitMQ

15671 TCP RabbitMQ RabbitMQ

15672 TCP RabbitMQ RabbitMQ

25672 TCP RabbitMQ RabbitMQ

443 Web

21 SFTP

22 SFTP

82

445 TCP Data Services (TOMCAT/ JBOSS Master)

445 TCP Job Queues (Slave 1 -- n) EPX

445 TCP Support Services (Microservices)

Page 32: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 32 of 43 Revised 12/10/2019

Enable 10.1 Default Port Matrix Sorted by Endpoint A

Port Protocol Endpoint A Endpoint B Components

9300 TCP Elasticsearch & MongoDB

27018 TCP Elasticsearch & MongoDB

27019 Elasticsearch & MongoDB

Page 33: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 33 of 43 Revised 12/10/2019

9 Architectural Diagrams

9.1 Enable Core Software Architectural Model

Page 34: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 34 of 43 Revised 12/10/2019

9.2 Linux Stand-alone Architecture

Page 35: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 35 of 43 Revised 12/10/2019

9.3 Linux Multi-server Architecture

Page 36: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 36 of 43 Revised 12/10/2019

9.4 Windows Single-Server Architecture

Page 37: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 37 of 43 Revised 12/10/2019

9.5 Windows Multi-server Architecture

Page 38: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 38 of 43 Revised 12/10/2019

10 Extending Enable’s Base Functionality

10.1 Enable APIs

Note: Enable’s SOAP and EJB APIs are in the process of being deprecated in favor of Enable’s REST APIs. For information regarding Enable’s SOAP and EJB APIs, see the Enable v8 APIs document.

For information regarding the Enable REST APIs, see the documentation available through the Enable 2020 UI and the Enable 10 API Overview document, or contact your Enable account representative.

To access information regarding the Enable REST APIs through the Enable 2020 UI:

1. Sign in to the Enable 2020 UI.

2. Open the Feature Sidebar, open the System tab, open the Help folder, and click REST API.

Page 39: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 39 of 43 Revised 12/10/2019

3. Enable’s REST APIs help content will appear.

10.2 Extended Capabilities via the Enable 2020 UI

The Enable user can interact with custom functionality in the following manners:

• Custom Widget

• Custom Action

Open Enable’s REST API Help

Page 40: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 40 of 43 Revised 12/10/2019

• Trigger

• Callouts:

o Validation Callout

o Pre-save Callout

o Scheduled Import Preprocess Callout

o Scheduled Export Preprocess Callout

o EPX Callout

o Message Queue Callout

10.3 Add-on Microservices

The enable2020-web-server-service is the main web server. There are three different ways to add custom integrations.

• Include routes to additional static files (.html).

• Include routes to proxy to an external web server.

• Include routes to another microservice queue (custom microservices).

They are described in the following sections.

10.3.1 Additional Static Files

You may want to add a custom web component and bring it up in a widget or add a custom popup from an attribute define button.

Your web files will be treated as part of the same application, and therefore have the same cookies. This means you can include JavaScript that makes any REST API call.

To do this, place your files in a location that can be reached by the web server process. Then add an entry in the install script as follows:

Page 41: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 41 of 43 Revised 12/10/2019

-customPaths=/custom;<install drive>:/Enterworks/custom ^

Each path is defined by two paths separated by a semicolon. The first entry is the relative path specified in the URL. The second entry is the physical path to the associated folder.

You can supply multiple paths by using a comma separator between each semicolon-delimited pair:

-customPaths=/custom1;<install drive>:/Enterworks/custom1,/custom2;<install

drive>/Enterworks/custom2 ^

10.3.2 Proxies

Similar to additional static files, you can point a relative path URL to another web server.

Again, any JavaScript running from files served by the proxied server will have access to the REST API. Add an entry in the install script as follows:

-customProxies=/myapp1;myAppServer1:8080

Each proxy is defined by two paths separated by a semicolon. The first entry is the relative path specified in the URL. The second entry is the URL for the proxy.

For example, if you refer a widget's custom URL to /myapp1/somefile.html, then somefile.html lives on an external web

server.

The proxy web server can be written in any language.

There is an example Go Language web server that can be installed as a Windows service. The example serves static files from a command line configured path. It is located at:

/enable2020-go/service-mains/example/enable2020-example-web-server-service.go

10.3.3 Custom Microservices

The preferred way to customize and enhance enable2020 is to write a custom microservice that receives messages from RabbitMQ.

Page 42: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 42 of 43 Revised 12/10/2019

Your microservice should define a queue on the same RabbitMQ server. The web server will capture any request on the custom queue path and send it to your custom queue.

customQueues=/custom1;myCustomQueue1,/api/custom2;customQueue2

Each microservice is defined by two paths separated by a semicolon. The first entry is the relative path specified in the URL. The second entry is the RabbitMQ queue name.

It isn't required, but your queue names should be parameterized and follow the same naming convention as the rest of the microservices.

An example of a custom microservice is provided at:

/enable2020-go/service-mains/example/enable2020-example-micro-service.go

The example is written in Golang, mainly because it is easy to install as a Windows service, however, you could use any process and language to connect to RabbitMQ and establish a queue worker.

The RabbitMQ documentation web page has examples in eleven languages including Java, JavaScript, Python, C#, and Go. The documentation is available at:

https://www.rabbitmq.com/getstarted.html

The message structure sent from the web server is like an HTTP request and has the following structure:

type EwMicroServiceMsg struct {

Method string

URI string

Body []byte

Headers string

EwToken string // Used for authentication of other microservices

}

If you POST a JSON document, it will be serialized in the Body. It's up to you to deserialize it.

Page 43: System Architecture Guidewinshuttle-help.s3.amazonaws.com/enterworks... · along with fully-defined and exposed web services to access all functionality of the product. ... This prefix

Enable 10 System Architecture Guide

Page 43 of 43 Revised 12/10/2019