Architecture |
The xTend Framework is composed of several major components. A summary of these components and their purpose is provided in the following table:
Component | Purpose |
xTend Standard Integration Modules | Common System-to-System Integrations via Standard XML Based “File Drop” mechanism Provided by Aegis Engineering. |
xTend Programmer’s Interface (API) | Comprehensive Application Programmer’s Interface (API) based on SOA architecture (Service Oriented Architecture). Allows IT Staff and 3rd Party Integrators to perform custom system-to-system integrations, build fully customized user interfaces, and customizations of all kinds. |
In addition to the xTend Programmer’s Interface (API), the Framework also offers a complement of “Standard Integration Modules” that may be purchased and utilized by our customers.
These Standard Integration Modules are intended to simplify the integration process, and reduce the skillset required to perform common integrations. They are used by many customers as a substitute for the xTend API under certain circumstances.
These Standard Modules operate using an XML based “file drop” integration mechanism. The modules monitor file folders for new XML files, and then process those files as they arrive. These XML files are produced by the integrator, and follow a pre-defined XML schema. In this way, the skillset required to use these modules is reduced since no “code level” or “software developer” skill is required. Integrators need only know how to produce XML files, which conform to the FactoryLogix schemas.
As an example, one common integration to FactoryLogix occurs at the material receiving area. As raw materials arrive at the factory, they are received into stock, and often labeled by the factory ERP (Enterprise Resource Planning) system. The FactoryLogix system also needs knowledge of all material stock and inventory, so it is a common to pass this information along from ERP at receiving.
To handle this common situation, the FactoryLogix xTend Framework offers a Standard Integration Module (FLX-XTD-MTL-02) to perform this function. This module monitors a file folder for XML files containing information regarding new material being receiving into stock at the factory.
The same function can also be performed using the methods of the xTend API. Which approach is taken is a matter of developer preference. The key difference is that IT staff with a wide variety of skill sets are able to build integrations using the Standard Integration Modules. A slightly higher level of skill is required to use the xTend API (software-developer level skillset).
FactoryLogix is architected as an n-Tier, service oriented system, which promotes scalability, high-reliability, and overall performance. The xTend API and Standard Integration Modules build upon this architecture, as depicted here:
As can be seen in this diagram, all transactions are funneled through a centralized, unified, and scalable farm of application servers, whether driven by human operations, by automated data collection, or by integration modules.
The system is constructed in layers, with transaction sources at the top of the stack, and the FactoryLogix database at the bottom. All transactions originate at the top of the stack, typically in response to an end-user activity, or any other application authored using the xTend API. The client application then issues a web service call to a FactoryLogix application server, which in turn processes the transaction. Windows Communication Foundation (WCF) is the technology that is responsible for brokering the web service transactions across the network, to and from the client application. WCF is an open, service oriented, interoperable, and highly scalable technology provided by Microsoft as part of the .NET Framework.
Since the xTend API is based upon an open, service oriented architecture (SOA), its services can be consumed using a wide variety of client platforms and software development technologies, including:
Microsoft Windows Based Servers
Microsoft Windows or Windows RT Based PC’s, Tablets, and other Devices
Apple IOS Tablets and Other Devices
Android Tablets and Other Devices
Linux-based Servers and PC’s
Development on Windows based platforms is further simplified because Aegis provides a Windows Managed DLL that can be directly referenced by your application code. This DLL manages the service calls to the application server for the software developer, reducing coding effort.
To support multiple platforms and promote interoperability, the xTend Framework supports multiple interface technologies. This also allows the Framework to be utilized by IT Staff and Software Developers with a wide variety of skill-sets, knowledge, and capabilities.
The following figure depicts the various interface technologies supported by xTend, and their intended use:
xTend exposes itself as a series of WCF-based web services (Windows Communication Foundation) running on the FactoryLogix application servers. These web services may be consumed using a variety of bindings and communication channels. The access methodology chosen varies depending on the technology and platform of the integration application, as well as developer preference.
The JSON (JavaScript Object Notation) and POX (“Plain Old XML”) channels provide an easy-to-use REST based application interface based on traditional, industry standard HTTP protocol to facilitate API method calls. Any client application capable of making a JSON or XML formatted HTTP call is able to use these channels to process transactions against the FactoryLogix system using the xTend API. This includes HTML, HTML5, Apple IOS, Android, Java, and Linux based clients, as well as many others.
For Microsoft Windows .NET based development environments using Visual Studio, two managed wrapper assemblies (FactoryLogix.xTend.API.dll and FactoryLogix.xTend.DataObjects.dll) are provided with the xTend Framework, and can be directly referenced by your application. Use of this assembly simplifies coding, and reduces development effort. This wrapper manages the server calls and network communication to the application servers for you, and utilizes the WCF TCP Binding under the hood to maximize performance and optimize network bandwidth utilization.