Technology Overview
From FactorityWiki
FACTORITY is the first open source MES. Its modular system framework offers comprehensive features for many Requirements in industrial production (e.g. PDA, MDA, process data acquisition, machine control, reporting, etc.). Thanks to the open source character, every IT department is able to extend, customize, and tailor certain modules of their FACTORITY installation to their needs in order to realize enterprise-specific know-how.
Contents |
FACTORITY Products
Figure 1 presents the logical architecture of FACTORITY.
Certain MES features are provided by the combination of the following products:
- FACTORITY Connectivity Server
- FACTORITY Flexi Client
- FACTORITY Partition Core
- FACTORITY Web Client
Note that the FACTORITY Partition Core runs in an application server, called AS+ Core - a light-weight application server, which is optimized for MES features. Whereas the communication servlets and web applications run on a well-known open-source application server: Jetty.
There are two different communication buses (1) the WireWare Bus, which provides a representation of machine interfaces and (2) the overall Message Bus, which provides certain communication protocols on top of TCP/IP and http such as LXMLRPC, RMI, WebService, etc.
FACTORITY Connectivity Server
- Communication with PLCs: The Connectivity Server knows the PLC structure and is able to read and write data directly from/to the PLC.
- Communication with FACTORITY Flexi Client: In order to provide the machine status and errors to the operator, the Connectivity Server process is responsible to update the WireWare Bus with machine data in real time.
- Communication with the FACTORITY Partition Core: On one hand the Connectivity Server Process sends data for PDA and MDA to the server. On the other hand, these data can be used to control the whole production flow.
- Execution of workflows: In contrast to the OPC server, the Connectivity Server is able to execute workflows that do not need Server Communication.
See also: FACTORITY Connectivity Server
See also: Connectivity Server
FACTORITY Flexi Client
- Manual booking of material: The operator books the material to the machine parts.
- Visual representation: The actual machine status as well as information of materials and workers are provided to the operator.
- Manual control of machines: The operator is able to change the machine status via the MES Terminal (e.g. setup mode, start, stop).
- Confirmation and report errors: The operator can receive orders and report errors from/to the control center.
Usually, there is one terminal responsible for one machine or workplace in the production line. However, in case of a terminal hardware crash, it is possible to re-route the Flexi Client GUI of the defect terminal to the next one, in order to keep the production running.
See also: FACTORITY Flexi Client
FACTORITY Partition Core
- Monitor and control: The overall production flow is represented in the data model. Therefore, certain production workflows are able to obtain data of the whole environment.
- Save and analyze: Historical production data are generated continuously. They can be used for analysis at any time.
See also: FACTORITY Partition Core
FACTORITY Web Client
- Control center: The Engineer or plant manager has access to the actual machine and production status.
- Visual machine park: A visual representation of machine status and configuration.
- Material and workflow data management: The production workflow can be configured via this interface.
- Reporting: Reports for PDA and MDA can be configured and generated.
See also: FACTORITY Web Client
AS+ Application Server
The AS+ application server is a light-weight application server, optimized for MES environments. Besides the usual application server features, such as security management, the AS+ provides the ability to change the source code of deployed packages while the server is running in production mode. This "hot-deployment" feature increases the development and test process during system integration. Thus, it is possible to adapt new production workflows promptly according to the changes in the real world.
See also: AS+ Application Server
WireWare Bus
The WireWare product provides the machine data interface at any place. There are C++ and Java interfaces to access the machine values in different applications.
See also: WireWare Bus
Message Bus
The Message Bus provides many standardized protocols:
- LXMLRPC (ligth-weight XML remote process call)
- WebService
- RMI
See also: Message Bus
Execution Environment
The FACTORITY execution environment benefits from many useful tools, such as the FACTORITY Task Manager as well as many flexible options for the deployment configuration.
FACTORITY Task Manager
All tasks or processes in the execution environment are controlled by the FACTORITY Task Manager. The tasks that will be controlled depend on the deployment configuration. Usually, you can find there one process for an AS+ instance and many processes for different FACTORITY Flexi Client instances and FACTORITY Connectivity Server instances. Each process can be configured with:
- Status: debug, sandbox, ..., critical
- IP address
- Depending processes (termination of this one would kill all these)
- ...
Note that the FACTORITY Partition Core is not a separate process. It is a partition running inside the AS+ application server. Therefore, the AS+ and the FACTORITY partition, inside it, must be running in order to interact with the FACTORITY Task Manager via the FACTORITY Web Client.
Basically, the FACTORITY Task Control Center is a command line tool and always via telnet accessible.
See also: FACTORITY Task Manager
FACTORITY Deployment Configuration
The AS+ and FACTORITY architecture is very flexible. Depending on the IT structure, different deployment variations are possible:
- One-Server-Many-Thin-Clients-Configuration: All processes run on one server. The thin-client visualization output is forwarded to the terminals in the plant.
- Server-Cluster-Configuration: The FACTORITY Connectivity Server processes run on separate Unix or Citrix server. One Server is responsible for several Thin-Clients. Note that this server can be economized by using thick-client computers. However, using many thick-clients instead of one powerful server is usually much more expensive and time-consuming for administration.
See also: Deployment Configuration
See also: Deployment Process
Development Environment
The develoment environment for the FACTORITY project depends on several other open-source projects.
3rd Party Libraries
The FACTORITY suite builds on top of several well-known open-source projects:
- Hibernate - an object/relational persistence and query service: www.hibernate.org
- Jetty - an application server: www.mortbay.org/jetty
- OpenLaszlo - an AJAX framework: www.openlaszlo.org
- HSQLDB - a 100% Java database: www.hsqldb.org
Whereas, some projects support the develoment process itself.
- Eclipse IDE: www.eclipse.org
- Maven: maven.apache.org
- Ant: ant.apache.org
- Subversion: subversion.tigris.org
- Log4J: logging.apache.org/log4j
- Jira: www.atlassian.com
See also: Project Dependencies
IDE Setup
FACTORITY is developed with the Eclipse IDE. Whereas, the following plugins are recommended:
- AS+ plugin ,
- Subclipse: subclipse.tigris.org
- m2eclipse: m2eclipse.codehaus.org
The AS+ Eclipse plug-in provides the ability to develop new features on the server while it is running in production mode. Thus, it is possible to test the new modules with a real data flow from the plant.
The plug-in gets the deployed source code from server and shows it in the project tree view as a usual Java project. Thus, they can be changed like any other Java files in Eclipse. Once the files are saved and called during runtime, the AS+ recompiles them and executes the new functionality.
See also: Getting Started
See also: Development Environment
Project Dependencies
The FACTORITY project depends on two other projects: (1) the WireWare project and (2) the AS+ project. Whereas, the FACTORITY adaptation project for a certain customer might reuse subprojects of WireWare or AS+ directly.
However, the compilation order is always:
- wireware project
- asplus project
- factority project
- customer project
See also: Project Dependencies



