You have a privilege to create a quiz (QnA) related to this subject and obtain creativity score...
Architecture with the Components
Ivan provided excellent ideas on architecture and communications between components.
I agree with most of them. Thinking of architecture, we need to minimize our deployment.
Ideally, most of components, should run in mobile browsers, which supports WebSockets and Angular 2 functions.
Our web page, filled with JavaScript (Angular, etc.) will provide rich functionality, and when necessary, will communicate with a mobile client application.
Was it clear so far?
The hub will capture most of information from/for the grid and at any time will be able to restore status for any client if necessary.
We would like to know what data must be stored by any component, such as Shipper, Receiver, Carier, etc. and their sub-components.
The main goal is to figure out where it is necessary to have local application with a storage and where hub can provide necessary functionality with a client-browser.
Browser is already built-in most of devices and we do not need to ask download this software.
This is a crucial factor during the initial stage of demonstrations and offerings.