Monday, November 20, 2017

Architecture Overview

The architecture of Sage X3 is organized in layers (in multiple tiers, or multi-tier) so that data management, process execution, and information display are handled independently. The following diagram summarizes the architecture of Sage X3. The architecture can be roughly divided into four areas: Clients, Web Stack, Application, and Data Server.


Clients


Web Interface


Sage X3 is accessible from PCs and laptops, even an Apple Mac and Linux PC, via its web interface. The web interface runs on every modern browser, and it is built in HTML5, CSS3 and JavaScript.

The interface for Sage X3 is fully compliant with modern web standards. For example, every page has its own URL which can be bookmarked or emailed; the browser’s back button and history function as part of the ERP; communications are asynchronous; and user choices such as last tab visited, column ordering, folded/unfolded sections are saved transparently. The portal and the navigation menus within Sage X3 are designed to provide a pleasant and fluid user experience, and are complemented by an efficient and rapid search service.

The Sage X3 web interface has been adapted for tablet devices as well. Gestures are recognized and user-interface elements can be zoomed to ease direct manipulation. Tablet users can choose to access specific ERP functions through mobile applications or access the entire ERP through the web interface.

Mobile Devices


The Sage X3 mobility platform features support for multiple devices and operating systems. Sage X3 mobile application framework, written in HTML5 and JavaScript, is web based, making it accessible from mobile applications that are optimized for touch and small screens. It is downloaded and updated directly from the ERP’s web server, and the applications themselves are modeled via dictionary artifacts and then published on the ERP portal. Users can browse through the list of applications that have been published and install them on their devices, and when an application is installed, the dictionary artifacts are downloaded and cached on the device.

Once installed, mobile applications can be used either in online or offline mode. In online mode, the applications interact directly with the ERP through its Web API. In offline mode, the applications can display ERP data on the device. Data entry is also supported, by storing the data locally on the device and letting users synchronize to the server when connectivity becomes available later.

The service oriented architecture (SOA) of Sage X3 ensures that the mobile applications rely on the same dictionary artifacts as the desktop and office clients, and all clients share the same business logic written in the language of Sage X3 (Sage X3 4GL). This makes the design very agile, allowing for the development, customization and publishing of mobile applications without a major investment in development resources.

Developers do not need to learn new skills -- they can leverage their existing ERP programming skills and are not required to dive into the specifics of mobile devices such as APIs and native languages. Several mobile applications such as purchase approval, expenses management, and sales information are bundled with Sage X3. These applications can be used out-of-the-box, or customized, and new mobile applications can be cost-effectively developed as mentioned earlier.

Microsoft Office Add-ins


Sage X3 includes a suite of Microsoft Office add-ins for Excel, Word and PowerPoint that serve as collaboration tools for sharing documents and templates between members of a team. These add-ins provide live links between Microsoft Office documents and the ERP data such as Excel tables, PowerPoint tables and charts, and Word mass mailing content linked to data feeds.

In addition, Microsoft Word can also be used as a reporting tool, by populating a template document with a data feed from a specific ERP record. The links are saved together with the Microsoft Offices documents that can then be circulated, re-opened and refreshed as necessary.

For security reasons, user credentials are not kept in the documents. When a user opens an existing document, he or she will be prompted for credentials, if not already authenticated, and access to Sage X3 granted with the individual’s own security profile.

Web Services


Sage X3 delivers standard capabilities for web-based services that enable customers to integrate external or custom-built systems to support their ERP business requirements. As a result of these core capabilities, any Sage X3 user can publish user interfaces for numerous functions available for consumption by a web service application. Used primarily as a means for businesses to communicate with each other and with clients, web services allow organizations to communicate data without intimate knowledge of each other's IT systems behind the firewall.

The architecture of Sage X3 is based on REST, and as such all the services that power interactive clients (mobile, web browsers, add-ins) can be used to access the ERP programmatically. This REST API is SData 2.0 compliant and stateless. The REST API gives access to all the ERP services developed with the new dictionary artifacts (classes and representations), but it does not give access to the classic services inherited from the previous version of Sage X3. These classic services are available through SOAP services for backward compatibility, and are powered by a different web stack (Java server) than the REST API (node.js).


Web Stack


The Sage X3 web stack is built on components widely used in Cloud solutions. Below is some information on the web stack components used within Sage X3. All the components listed below are scalable and may be deployed in clusters. Regarding the web servers, a load balancer is included, to front-end the node.js processes.

Node.js is an open source, cross-platform runtime environment for server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, Linux and FreeBSD.Fast and asynchronous, node.js is notably used by Groupon, SAP, LinkedIn, Microsoft, Yahoo!, Walmart, and Paypal.


ElasticSearch is a search server based on Lucene, a free, open source information retrieval software library. It provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. Elasticsearch is developed in Java and is used by Deezer, github, and Mac-Graw Hill, Foursquare, Etsy, FDA, CERN and Stack Exchange.


mongoDB is a document database for administration data and documents that is fast, scalable, and able to work very efficiently with JavaScript structures. It is regarded as the most popular NoSQL database system available today. Companies using mongoDB to store production data include Expedia, eBay, Foursquare, LinkedIn, SAP, SourceForge, CERN, github, and the New York Times.



Application Server


The Sage X3 application server is composed of a large set of services designed to ease the configuration and the administration of the ERP platform. This includes a batch server to schedule tasks and manage recurring tasks, and a management console to administrate the components and services offered by the solution. In addition, there is a workflow engine, as part of the application server, that can be triggered by any business event, a comprehensive set of import and export tools, and log and profiling tools designed to tune the performance of the ERP at any level.

Data Tier / Data Server


SQL server and Oracle may be used with Sage X3, and all documentation stored in a mongoDB repository.

Reporting and Business Intelligence


The reporting and analytics capabilities as well as the library of predefined reports within Sage X3 centralize data and enable real-time access to key business data. Standard reporting and analytics capabilities within Sage X3 include requesters to quickly build ad-hoc requests that can be displayed in user dashboards, and a standard data mart can connect to several business intelligence solutions (SAP Business Objects, for instance). Specifically, this data mart can be personalized through a report dictionary with hundreds of predefined reports, associated to SAP Crystal Reports printing engine.

Development Environment


The development environment within Sage X3 is based on the following three principles: simplicity of development and evolution, reusability of existing code, and independence from platform execution. The Sage ERP X3 development environment, which is inclusive to the solution, does not require a third-party integrated development environment like Microsoft Visual Studio. It provides a meta-data description of the database structure, including the classes definition and the UI structure, and clear identification of standard, vertical and specific entities as well as modifications that enable the development of customizations within Sage X3. It is important to note that any customizations developed within the Sage ERP X3 Development Environment are not effected when upgrades are implemented.

Sage X3 also includes a 4GL object-oriented code with embedded SQL-like syntax that is independent from both the execution environment (Windows, Linux, Unix) and the user interface (Windows client, web browser, portable terminals). For the development of applications within Sage X3, there is a set of integrated development tools such as an editor and debugger available through an Eclipse integrated development environment (IDE). In addition, the same code is used for business logic regardless of platform (smartphones, tablets, and desktop PCs), and regardless if it is called as a REST web-service from another component of the development, from a user interface, or from Microsoft Office. Finally, as part of the development environment Sage X3 includes an automated tool to run the services in QA test mode.


The following application software is developed using the SAFE X3 technological platform:


  • Sage X3 (ERP)
  • Sage X3 People (HRM)
  • Sage X3 Geode (WMS)


The technical architecture is organized in layers and designed to:


  • Separate layers of data management, process execution, and presentation in a multiple-tier architecture;
  • Leverage load across several servers to ensure scalability when the application is deployed for many users;
  • Provide multiple implementation options on different technical platforms and database engines;
  • Provide access from various user devices including Windows and Apple computers, tablets, smartphones, and industrial terminals (radio frequency).


-
Sage X3 and Sage Software are trademarks of Sage Software, Inc. Microsoft SQL Server, Microsoft SQL Enterprise Manager and SQL Server Management Studio are registered trademarks of Microsoft Corporation. Oracle is is a registered trademark or Oracle Corporation. All other product names used here are trademarks or registered trademarks of their respective owners.
-