Chapter 2: Functions and Features l Even though the Fleet Manager is storing data and is keeping a full history of job data, it should not be considered secure in the way that a database server with redundant disk capabilities would be. The Fleet Manager can be used to obtain data which can be stored on an external system to act as a backup. The Fleet Manager's hard drive should be considered a single point of failure. l Certain data items are enumerated and correct syntax and schema of these items are critical for proper functionality. Refer to the schema and examples in this document for details. PostgreSQL Tables and Views SQL includes access to both tables and views.
There is post insert / update logic in these views which is executed, and controls how the data interacts with the system (in some cases impact- ing multiple tables). Views have a naming convention ending with "_view" (data_store_item_view for example). IMPORTANT: Database interaction is only supported with views as described in this document. Modifying or directly updating tables or the schema in gen- eral is not supported. 2.3 RabbitMQ The RabbitMQ communication channel is a robust method for monitoring and controlling an AMR fleet. RabbitMQ provides a management mechanism to ensure that all messages are delivered even if a network problem occurs or a broker / client crashes.
RabbitMQ can update a process run- ning on an external system in real-time while also storing messages for future delivery if the external application becomes temporarily unavailable. Structuring of externally transferred data with RabbitMQ is implemented with JSON for receiving data from the system. RabbitMQ Communication Channel Advantages l Asynchronous messaging with read / write capabilities. l Incoming and outgoing message buffering. l Simple monitoring for the AMR fleet. RabbitMQ Communication Channel Considerations l When using inbound channels (such as those used to create jobs), the system will need to provide JSON of the same format used for REST.
l Libraries must be used and code must be implemented to send JSON-formatted data to l A RabbitMQ management console is not available and some level of programming is the RabbitMQ queue. required to facilitate interaction with the system when using this channel. l Most buffered messages expire after 12 hours. If the client application does not con- sume these buffered messages before they expire, they will be lost. 20964-000 Rev. C Fleet Operation Workspace Core Integration Toolkit 13 User's Manual