Sequoia Architecture and Installation Considerations
Overview
This document describes the components which make up the Sequoia system and how these components interact. Any installation considerations related to these interactions are discussed at a technical level.
Minimum Server Specification
Please ensure that your server (the machine on which the Sequoia server software will run) meets or exceeds the minimum server specification before attempting to either install or upgrade the Sequoia software.
Sequoia Components
The table below lists the various components that make up Sequoia. Any ports (on the server) that are needed for inter service communication are listed. Any communication with client side components is shown in bold text. Any external access (over the internet) has the word 'external' next to it.
Client Name | Location | Description | Protocol | Ports | Notes |
---|---|---|---|---|---|
Winforms | Client | Front end GUI for Sequoia. Installed on many computers on intranet to allow users to communicate with Sequoia server components | Communicates via the WCF Proxy service with server-side services apart from business object service, service monitor and publication service. | ||
API | Server | Programmatic access to a subset of Sequoia functionality. Please see separate documentation for full explanation of how this works. | Net.Http Net.Tcp Net.Tcp Net.Http Http |
9001 9002 9002 9010 9010 |
(9001) WCF HTTP Dual channel service (with callback) (9002) WCF TCP Dual channel service (with callback) (9002) WCF TCP Single channel service (without callback) (9010) WCF HTTP Single channel service (without callback) (9010)SOAP HTTP API service |
Sequoia Service | Service Name | Location | Description | Notes | ||
---|---|---|---|---|---|---|
Agent Inventory | asmagentinventorysvc | Server | Business logic and database access | Net.Tcp | 9099 | Inter-server service communications on this port. |
API | asmapisvc | Server | 9001 9002 9010 |
Multiple connection methods for 3rd party applications. | ||
API Intermediary | asmapiimsvc | Server | Pluggable component that allows access to the API service using methods other than WCF / SOAP | n/a | n/a | This is typically configured with assistance of the ASM helpdesk. |
Business Object | asmbosvc | Server | Legacy component which provides both business logic and data access to a myriad of internal processing. | Net.Tcp | 9009 | This is an endpoint to which one or more client applications will connect. |
Cache | asmcachesvc | Server | Short lived cache available to all Sequoia services which is backed by the database, | Net.Tcp | 9122 | Inter-server service communications on this port. |
CDS Declaration | asmcdsdeclarationsvc | Server | Business logic and database access | Net.Tcp | 9131 | CDS Declaration general functions. (Experimental - not currently in use) |
CDS Declaration Builder | asmcdsdeclnbuildsvc | Server | Business logic and database access | Net.Tcp | 9132 | Builds CDS Declarations. (Experimental - not currently in use) |
CDS Worksheet | asmcdsworksheetsvc | Server | Business logic and database access | Net.Tcp | 9132 | Provides CDS Worksheet services for ASM Sequoia. (Experimental - not currently in use) |
Client Update | asmclientupdatesvc | Server | Provides up-to-date client and client launcher assemblies and code. Allows clients to auto-update when the Sequoia Server is upgraded. | Net.Tcp | 9129 9130 |
Inter-server service communications on this port. |
Configuration | asmcfgsvc | Server | Net.Tcp | 9100 | Inter-server service communications on this port. | |
Consolidation | asmconsolsvc | Server | Net.Tcp | 9124 | Inter-server service communications on this port. | |
CRM | asmcrmsvc | Server | Business logic and database access | Net.Tcp | 9112 | Inter-server service communications on this port. |
Customs Warehousing | asmcustwaresvc | Server | Business logic and database access | Net.Tcp | 9119 | Inter-server service communications on this port. |
Data Warehouse | asmdwhsvc | Server | Business logic and database access | Net.Msmq | Inter-server service communications on this port. | |
Declaration | asmdeclnsvc | Server | Business logic and database access | Net.Tcp | 9110 | Inter-server service communications on this port. |
Declaration Builder | asmdeclnbuildsvc | Server | Business logic and database access | Net.Tcp | 9125 | Inter-server service communications on this port. |
DEP | asmdepsvc | Server | Business logic and database access | Net.Tcp | 9114 | Inter-server service communications on this port. |
Document Store | asmdocumentstoresvc | Server | File system and database access for storing copies of documents. | Net.Tcp | 9126 | Inter-server service communications on this port. |
Entity Linking | asmentitylinkingsvc | Server | Business logic and database access | Net.Tcp | 9120 | Inter-server service communications on this port. |
ETSF | asmetsfsvc | Server | Business logic and database access | Net.Tcp | 9107 | Inter-server service communications on this port. |
Event processing | asmepssvc | Server | Pluggable architecture which allows bespoke processes to be hosted and incorporated into Sequoia | Any | Ports are defined in the documentation that accompanies any bespoke plug-ins. | |
Gateway - CCSUK | asmccsukgw | Server | Service that sends/receives messages from a CSP. Only enabled if required. | Net.Msmq Tcp/Ip (external) | Inter-server service communications on this port. Communications with CCSUK |
|
Gateway - CNS | asmcnsgw | Server | Service that sends/receives messages from a CSP. Only enabled if required. | Net.Msmq Http (external) | Inter-server service communications on this port. Communications with CCSUK |
|
Gateway - Helios | asmheliosgw | Server | Service that sends/receives message from an ASM hosted system, which forwards/returns messages from the CDS system. | Http Web Services (external) Web Sockets |
Communications with Helios | |
Gateway - MCP | asmmcpgw | Server | Service that sends/receives messages from a CSP. Only enabled if required. | Net.Msmq Http (external) | Inter-server service communications on this port. Communications with MCP |
|
Gateway - NCTS | asmnctsgw | Server | Service that sends/receives messages from a CSP. Only enabled if required. | Net.Msmq Http (external) |
Inter-server service communications on this port. Communications with NCTS |
|
Gateway - Pentant | asmpentantgw | Server | Service that sends/receives messages from a CSP. Only enabled if required. | Net.Msmq Ftp (external) |
Inter-server service communications on this port. Communications with Pentant |
|
Job | asmjobsvc | Server | Business logic and database access | Net.Tcp | 9102 | Inter-server service communications on this port. |
Job Costing | asmjobcostingsvc | Server | Business logic and database access | Net.Tcp | 9128 | Inter-server service communications on this port. |
Licence | asmlicencesvc | Server | Retrieves and updates the Sequoia licence from ASM | Net.Tcp | 9118 9095 |
Inter-server service communications on this port. |
List Service | asmlistsvc | Server | Business logic and database access | Net.Tcp | 9103 | Inter-server service communications on this port. |
Long Running Process Host | asmlrphsvc | Server | Administrative tasks or tasks which would otherwise have to be scheduled. | Http (external) | Downloads standing data updates from ASM | |
Lookup | asmlookupsvc | Server | Provides standing data via the database and from Helios. | Net.Tcp Http Web Services (external) |
9105 | |
Message Logging Service | asmmessagelogsvc | Server | Business logic and database access | Net.Tcp | 9108 | Provides Message Log information for ASM Sequoia |
Message Processing Engine | asmmpesvc | Server | Business logic and database access | Net.Tcp | 9098 | Inter-server service communications on this port. Message Log |
NCTS | asmnctssvc | Server | Business logic and database access | Net.Tcp | 9127 | Inter-server service communications on this port. |
Orchestration Engine | asmbpossvc | Server | Business logic and database access | Net.Tcp Net,Msmq |
9101 | Inter-server service communications on this port. |
Publication | asmpubsvc | Server | Pushes notifications out to subscribed clients / services | Net.Tcp XSockets |
8001 8010 |
Client / server communications on these port |
Reference Data | asmreferencedatasvc | Server | Business logic and database access | Net.Tcp | 9106 | Inter-server service communications on this port. |
Report Engine | asmreportsvc | Server | This service will create new instances of the Report Generator when needed to produce Sequoia reports. | Net,Msmq Net.Pipe |
Inter-server service communications on this port. Communicates with Report Generator. |
|
Report Generator | Server | Instantiated by the Report Engine, contains the business logic for generating Sequoia Reports. | Net.Pipe Net.Msmq |
Communicates with Report Engine Communicates with Print Service |
||
Print Service | asmprintclient | Server | Facade for printers. Handles and queues the printing of reports depending on how the report is configured. | Net.Msmq | Receives data to be printed. | |
Service Monitor | asmsmsvc | Server | Monitors services and restarts them if necessary. The service gathers logs and volumetrics and is responsible for ensuring that licence data is updated from ASM. | Net.Tcp Net.Tcp Http (external) Http (external) Http (external) |
9091 9092 |
Client / server communications on these ports Uploads diagnostic logs to ASM Uploads usage volumetrics to ASM Downloads Sequoia Licence updates from ASM |
Shipment | asmshipmentsvc | Server | Business logic and database access | Net.Tcp | 9121 | Inter-server service communications on this port. |
Tariff | asmtariffsvc | Server | Business logic and database access | Net.Tcp Http (external) |
9113 | Inter-server service communications on this port. Downloads tariff updates from ASM |
Transportation | asmtranssvc | Server | Business logic and database access | Net.Tcp | 9123 | Inter-server service communications on this port. |
User | asmusersvc | Server | Business logic and database access | Net.Tcp | 9109 | Inter-server service communications on this port. |
WCF Proxy | asmwcfproxysvc | Server | Funnels WCF communications between client/server to reduce number of ports exposed by server. | Net.Tcp | 9099 | The majority of client communications with server side components channelled through this endpoint. |
Worksheet | asmworksheetsvc | Server | Business logic and database access | Net.Tcp | 9104 | Inter-server service communications on this port. |
Architectural Diagram
Installation considerations
SQL Server Database
SQL server will require the addition of the Sequoia service account in the security context of the Sequoia databases. The service account must be granted rights to read/write and execute stored procedures for the Sequoia databases. The reason is that the Sequoia business services will need to interact with the Sequoia databases to persist and retrieve information. Some features of Sequoia (such as auto-generating reference numbers) rely on the ability to invoke a stored procedure to generate the requisite data.
Microsoft Distributed Transaction Coordinator
If the SQL server database is installed on a different machine to the Sequoia Server components, the distributed transaction coordinator on both machines must be configured with the same settings on both machines.
The example above shows DTC enabled and configured - it is important that the values in the DTC configuration on both machines match exactly. It is also important to ensure that the service is started on both machines.
File Locations
Sequoia stores files in different locations. These locations are configurable in the applications installer program.
Location | Description |
---|---|
Document Store Location | When server side reports are generated in Sequoia, a copy may or may not be printed, but a copy is generally stored. It is also possible to attach ad-hoc files (pdf's, word documents etc.) to things like Jobs within Sequoia. To prevent this data storage unnecessarily bloating the SequoiaDB database, the files are stored in this location. Backing up files that are stored in this location is recommended, but is outside the scope of the Sequoia software. |
Tariff Repository | This is the location where the tariff service will store information that it downloads from ASM servers. This information could be the tariff raw data or it could be any of the accompanying documents. This location does not need to be backed up. |
Log File Repository | All the services generate diagnostic log files. This file location is where the log files are saved. It is recommended that this is not a network location (as the latency could end up slowing down the Sequoia software). This location does not need to be backed up. |
Service Discovery
In order for the various components within the intranet to communicate with each other, they need to know which machine to address requests to. Sequoia takes a simple approach - defining a DNS entry for 'SequoiaServer' which defines the IP address of the machine hosting the server components. As long as all of the clients are able to resolve 'SequoiaServer' to a valid IP address, inter-process communications will occur.
Sequoia server configuration access
The configuration user interface is a snap-in to the Microsoft management console (MMC.exe
) and needs to be run under the context of a user account which has elevated privileges and access to the Sequoia database in SQL Server.