Architecture Guide SafeX3V11 v1B en
Architecture Guide SafeX3V11 v1B en
requirements
Sage X3
Version 11
June 2017
This document provides information on system requirements and setup for Sage
Architecture for the Enterprise (SAFE X3) Version 11. SAFE X3 is a common
technological platform for developing application software.
Audience
This document is intended for systems architects, systems engineers and experienced
developers who need to provision resources for installing or upgrading Sage X3. The
information in this document is intended for physical hardware. However, you can
deploy the solution in a virtual environment like VMware vSphere, Hyper-V, RedHat
KVM, Citrix XenServer or Oracle VM. See the section on Virtualization for details.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
GENERAL OVERVIEW 5
X3 Folders 5
COMPONENTS 6
Mandatory components 6
Database server 6
Application and Main process server(s) 6
Web presentation server 7
MongoDB server 7
ElasticSearch® Search Engine 7
Print server 8
Additional components 9
Additional Process servers 9
Legacy Web service and Automated Data Collection (ADC) servers 9
Legacy Java Bridge server 9
Business Objects Server 9
Auxiliary components 10
Configuration console 10
Mail server or SMTP Gateway 10
Batches management 10
CLIENT WORKSTATIONS 11
Desktop or laptop 11
Web browsers and versions certified with Sage X3 11
Other web browsers or versions compatible but not certified 11
TECHNOLOGY 13
Development platform 13
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Windows Updates 15
Virtualization 16
Security considerations 16
Important sizing considerations for virtualization 17
Virtualizing MongoDB, ElasticSearch and Syracuse: good practice 17
RESOURCE CONFIGURATION 20
SIZING REQUIREMENTS 28
Workstations 30
Architecture examples 31
Single-tier architecture examples (physical server) 31
Multi-tier architecture (mixed) examples 32
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
• Sage X3 (ERP)
• Sage X3 People (HRM)
• Sage X3 Geode (WMS)
X3 Folders
A folder is a repository that contains management rules, parameters, and data for one
or more business entities. It consists of a directory tree set on the Application Server
containing programmatic objects (programs, screen definitions, reports, etc.) and tables
stored in a dedicated schema within the associated Oracle or SQL Server database.
When installing Sage X3 (or Sage X3 People or Sage X3 Geode), two folders are
typically created:
• An X3 reference (or “parent”) folder: The reference folder that contains all the
“standard” software programs, screens, reports, etc.
• SEED: A demonstration folder that can also serve as a model folder from which new
folders can be created by parameters (and possibly partial data) duplication.
Folders administration tasks include:
• Creating new folders
• Duplicating folders from a model or a running folder (for instance: training folder)
• Removing unneeded folders (for instance, after training is finished)
• Creating backup folders
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
All the resources described herein are logical components. You can install them on the
same computer or distributed across several machines according to the number of
users to be connected, the size of the database, and the number of transactions to be
processed. This model of distributed architecture offers a high level of scalability.
Mandatory components
Database server
The database server stores the application data, the
description data for this application (dictionary), and the Definition
parameters data. APPLICATION DATA
Tables and indexes
SAFE X3 products are developed according to the database that store
editor recommendations, which guarantees the integrity and information recorded
the coherence of the data stored in the database. by application users
such as suppliers,
There is no limit to the size of the database. Most customers customers,
are below 100 GB for data size, however some large Sage products, inventory,
X3 installations use several terabytes. To reduce the size of sales, production,
the live database, you can purge large tables or archive accounting, etc.
them in a special archive folder that may use another
database server.
The application is organized as a hierarchy of folders where the root folder is the image
of the standard delivery and the other folders are the customer folders, generated from
the root folder and each representing an application.
From Version 11, it is possible to have several application servers (but only through a
manual set-up at current time). In this type of implementation, multiple application
servers will use common files in a single location, typically on a shared file system
provided by redundant servers or NAS. Setting up multiple application servers
eliminates a single point of failure.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
It works in asynchronous mode based on the Node.js software platform, which contains
a built-in HTTP server library which is used to provide a web publication server.
Each X3 function has its own URL and sends normalized (SData) Java Script feeds in
JSON format to the client (web browser on user’s workstation or web services client).
MongoDB server
MongoDB is a free open source NOSQL database. It is used to store all configuration
and customization parameters for the Syracuse Web Presentation server and can also
be used to store documents attached to business processes (for instance, scanned
orders or invoices).
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The Print server supports all print requests from interactive sessions as well as batch
submissions and sends the files to the appropriate print destination (printer, file, PDF,
FAX, etc.).
A Windows service is started on the computer that hosts the Print server. This service
is on port number 1890 by default, but it can be customized during installation. The
print service manages an output queue of the requests submitted, and the execution of
these reports can be dispatched on several editing processes or threads. The number
of editing processes can be customized in the Configuration Console and must be
adapted to the size of the server.
The Print server communicates with two other servers in your environment: the
Application server that hosts the printing model and the Database server that hosts the
tables via an ODBC connection.
The report files are transferred using the SADFSQ internal communication protocol.
The print server embeds a SADFSQ client able to address and communicate with a
SADFSQ server running on the Application and Main Process server.
Reports are designed using Crystal Reports 2008, (version 12.x) or Crystal Reports
2013 (version 14.1).
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Differences between the Main Process server and Additional Process servers are as
follows:
• At least one Main Process server is mandatory and runs on the same machine as the
Application server.
• Additional Process servers are optional and are used to load-balance among multiple
resource processes related to X3 users sessions.
Additional Process servers load balancing is automatically managed by the front-end
Syracuse Web Presentation server(s), and can be done according to multiple rules
(X3 groups tagging, Web Services pools, Batch capability definition)
The Business Objects Server can only be deployed on Windows 2012 R2.
The data warehouse database can be stored on another server.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Configuration console
The Configuration Console is a tool used to install and manage SAFE X3 components.
The Console configures the components and links them to define a “solution” or work
environment.
The Console uses different XML configuration files that are generated on each server
when installing the various components.
A Sage X3 environment (or “solution”) can be managed by several users from different
workstations or servers where the Safe X3 configuration console is installed.
Batches management
From SAFE X3 V11, the Sage X3 Batch Server (which
launches and monitors batch tasks) runs within the
Definitions
Syracuse Web Presentation server. BATCH SERVER
The SAFE X3
framework embeds a
From V11, X3 batch tasks can be now run on any process deferred (batch) tasks
server, which provides full scalability for background tasks. scheduling and
monitoring function
Each process server (including the Main one) is “tagged” with a comprehensive
with the maximum number of batch tasks it can run parameters
management for
simultaneously, from 0 to any (reasonable) number.
these processes.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Desktop or laptop
Users can access Sage X3 applications on the Application server via a web browser
from their workstations.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
• Smartphones:
o Apple iPhone 4, 5 and 6 running IOS 9 or higher:
o Safari 9+
o Chrome 53+
o Android OS 4.3 or higher:
o Chrome 53+
o Firefox 48+
o Microsoft Windows Phone 8.1 or higher:
o Internet Explorer 11
• Tablets:
o Apple iPad (2,3,4, Air, Mini, Retina) running IOS 9 or higher:
o Safari 9+
o Chrome 53+
o Android OS 4.3 or higher:
o Chrome 53+
o Firefox 48+
o Microsoft Surface running Windows RT 8.1 or higher:
o Internet Explorer 11
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Development platform
• Development Workbench: SAFE X3 Framework
• Development language for the application software: Sage X3 4GL
• Development language for the Web server: JavaScript, HTML5
• Exchange protocol between the Client and the Web server: pure HTTP (according to
the HTML 5.x specifications) and Web application interface built on a technology like
Ajax
• Tool for packaging Sage X3 components: IzPack, open source software built on the
Java platform
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Network requirements
A Gigabit (or better, 10 Gbit/s) link is necessary among the
different process servers and the database server hosting Definitions
the Sage X3 folders’ data. ACTIVE DIRECTORY
Centralized system of
For other X3 components, a Gigabit link is recommended
identification and
but it can work with lower bandwidth and higher latency. authentication services
to a network of
When X3 server components are installed on a Windows computers using the
platform, it is highly recommended that there are members Windows operating
of an Active Directory (AD) Domain and belong to the system. The Active
Directory lists user
same AD Branch. However, Syracuse Web presentation
accounts, servers,
servers can be hosted in DMZ-type sub-networks. workstations, shared
folders, printers, etc.
The different servers must also be properly registered in
DEMILITARIZED ZONE
their domain’s DNS, allowing all server involved in a given (DMZ)
X3 environment to mutually resolve other servers’ fully A computer host or
qualified domain name (FQDN) in standard and reverse small network inserted
mode. as a neutral zone
between a company’s
private network and
The servers on which Sage components are installed
the outside public
should not be used as an Active Directory Domain network. It prevents
Controller (DC). outside users from
getting direct access to
a server that has
company data.
FULLY QUALIFIED
DOMAINE NAME (FQDN)
It indicates the
absolute position of a
node in the DNS tree,
showing all domains
up to the top-level
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
X3 connection Bandwidth
Front-end server
method without printing or BO requesting
Antivirus
If you install an antivirus protection on Sage X3 servers, we recommend disabling
real-time protection on some parts of the Application/Main Process server and
Additional Process servers for best performance. Perform scheduled scans on real-
time scanning excluded areas overnight when there are few or no users logged on.
Important! Sage installs most of the global Windows patches on our own servers and
qualification environments. However, a Windows Update that worked well on Sage’s
environments is not guaranteed to work in all customers’ environments.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
If you decide to virtualize your architecture, you must build a physical infrastructure
adapted to a virtual environment for optimum performance. We recommend dedicated
resources assigned to your X3 environment, rather than sharing resources.
A production virtualization architecture is usually built with multiple physical hosts, and
relies on a shared storage system (SAN) providing high availability and adequate
performance to cope with the I/O and throughput needs of all hosted VMs and
applications.
The results of this program can help to compare metered performance to known
reference systems and feedback from other customers’ production infrastructures.
Security considerations
Plan to acquire adequate backup tools so that you can save online virtual machines.
Ensure redundancy for physical servers and storage systems.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
A full Sage X3 environment you would put in a physical, dual-socket 24-core server will
NOT run properly in a “big” 24-vCPU VM in most cases, and MUST be split on several
smaller VMs.
This makes it much easier to tune the configuration because different components will
not be competing for the same resources (memory, CPU, disk I/O) inside a single VM.
It also makes it easier to modify the deployment if you identify a performance
bottleneck in one of the components.
MongoDB usually requires less CPU and memory than the node.js component. You
can start with a smaller VM configuration. Ideally you should set up a cluster (replica
set) with an odd number of nodes (3 is a good start). There are many resources on the
Internet about tools and techniques to tune MongoDB deployment. Don't oversize/over-
architect it unless you see that Mongo is your performance bottleneck. Mongo is
designed to handle very large datasets and very high transaction rates and Sage X3 is
stressing it very little in comparison to some of the larger web apps/sites that use
Mongo.
ElasticSearch uses more memory and CPU than MongoDB but usage varies widely.
You can start with the same configuration as MongoDB and then scale up if necessary.
Some interesting facts about the ElasticSearch component: It is decoupled from the
rest so if you have a performance issue in this layer it does not impact the rest of the
application, just the search function. It is easy to redeploy on a larger VM because it
does not hold critical data. It is only an index that can be rebuilt from data in a
MongoDB or Sage X3 database (SQL or Oracle). It can be clustered and you'll find
resources on the Internet about cluster deployment.
Node.js (Syracuse server) is the most difficult of the three to configure and the most
likely to be responsible for poor performance.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Size the Syracuse VM with at least 2GB RAM per core (so at least 8GB for 4 cores).
Node.js is single threaded so if you have 4 cores and a node.js process is taking 25%
of overall CPU it means it is actually saturating its CPU thread - not good.
A healthy node.js process should take less than 1GB or RAM. If it goes above, it starts
to garbage collect aggressively and that's usually when it starts to saturate its CPU
thread. It is important to keep the individual node.js processes below 75% of 1 CPU
(20% of overall CPU on a 4-core VM) and below 1GB.
The number of node.js processes can be changed via the "host" entity in Syracuse
admin (for interactive sessions as well as for web services sessions). As a starting
point, you should set the number of node.js processes to 1.5 times the number of cores
(6 node.js processes on 4 cores). Then you should observe overall memory usage
while the app is running and bump the number of node processes until overall memory
usage reaches 75-80%.
If some node.js processes are still saturating the CPU when you reach that limit it
means that you need either a larger VM or a cluster for the Syracuse server. The host
entity also lets you configure several processes for web service requests. This setting
depends heavily on the activity of your web services.
If a significant part of your transactions to go through a web service, you should deploy
a node.js cluster and dedicate one or more nodes of your cluster to web services.
In this case, do not mix web services and interactive sessions on the same cluster
node(s).
The Syracuse server does very little I/O. Save the high-end disks for MongoDB and
Elastic Search.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
To facilitate establishing the remote connection to your site, you should provide Sage
support with all information regarding installation and configuration (VPN software
vendor and version, list of TCP/UDP ports #, public IP address of VPN server,
credentials) for your VPN access.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Warning! Operating Systems versions listed in above table might not be supported
on future versions of Sage X3.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Warning! Database versions listed in “Older RDBMS versions” section of the above
table might not be supported on future versions of Sage X3.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Component Version(s)
CR2013
Also required on Print Server(s)
to get latest ODBC drivers
Crystal Reports Designer
when using Oracle 12c
database (not needed for SQL
server)
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Or SQL Server = 4+
Disk space
X3 ERP X3 + SEED = 12 X3 ERP X3 + SEED = 12
(GB)
X3 People PAIE + SEEDxxx* =6 X3 People PAIE + SEEDxxx* =6
X3 Geode GX + SEED =6 X3 Geode GX + SEED =6
sagex3 Administrators
User Rights Assignment
Log on as a service
*SEEDxxx: xxx depends from legislation (for example SEEEDFRA, SEEDPOR,
SEEDZAF…)
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Windows Server 2012 R2 64-bit Dual processor Intel 8-Core Xeon @2.4GHz,
Windows Server 2016 64-bit 64GB RAM
(from 11.0.2 GA only) • OS: 2 GB
• Database: 16 GB
RedHat Enterprise Linux or • 250 X3 sessions: 20 GB
Oracle Enterprise Linux, 7.1 or • 250 Syracuse sessions: 8 to 16 GB
later 7.x, 64-bit • MongoDB: 2 GB
• ElasticSearch: 4 GB
From 120 to 250 users • Print Server (if Windows): 2 GB
These sizing examples do not take into account workloads generated by multiple
batch tasks and/or web services exchanges.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
These sizing examples do not take into account workloads generated by multiple
batch tasks and/or web services exchanges.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
Windows 64-bit
for 150 user Single 4-core Intel Xeon @2.4 4 vCPUs @2.4 GHz / 16GB
sessions GHz / 16 GB RAM RAM
for 300 user Dual 4-core or single 8-core Intel 8 vCPUs @2.4 GHz / 32GB
sessions Xeon @2.4 GHz / 32 GBRAM RAM*
Linux 64-bit
for 150 user Single 4-core Intel Xeon @2.4 4 vCPUs @2.4 GHz / 16GB
sessions GHz / 16GB RAM RAM
for 300 user Dual 4-core or single 8-core Intel 8 vCPUs @2.4 GHz / 32GB
sessions Xeon @2.4 GHz / 32GB RAM RAM*
IBM-AIX 64-bit
for 300 user IBM POWER 7/8 4 cores IBM POWER 7/8 - 8 LCPUs
sessions @3.6GHz / 32GB RAM @3.6GHz - 32GB RAM
for 600 user IBM POWER 7/8 8 cores IBM POWER 7/8 - 8 LCPUs
sessions @3.6GHz / 64GB RAM @3.6GHz - 64GB RAM
* Rather than a virtual server with 8 vCPUs, consider implementing two VMs with 4
vCPUs each for better virtualization performance
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.
The information contained herein is confidential and may be changed without notice. Although Sage makes every effort
to provide accurate information, no implicit or explicit warranty is given regarding the content of this document.