Cloud4all/GPII is a significantly complex technical system, consisting of a large number of essential components. Currently, it is comprised of 25 major component subsystems, and over 140 individual objects within the core real-time framework alone. Given this degree of complexity, one of the crucial architectural requirements for the Project is to provide a means for coordinating and orchestrating the dependency and communication relationships amongst components.
The Flow Manager (FM) is the central orchestration component in the Cloud4all/GPII architecture, and is responsible for coordinating the auto-personalization process on local PCs (running Windows or Linux), mobile devices (Android), and in the cloud. The Flow Manager is responsible for the following functionality:
- Providing a central point for configuring the whole system and its integrated services
- Serving as a dependency injection and inversion of control container that instantiates and connects together each component in the system, ensuring that all Cloud4all/GPII components have minimal dependencies on other components
- Orchestrating each phase of the APfP process by firing lifecycle events
- Invoking and delegating responsibility to other components within the system to do the actual work of personalization, including: fetching preferences, gathering contextual variables about the user’s environment and device, matching solutions and settings to the user; and setting up and launching solutions
- Providing privacy and security measures across the overall infrastructure
The Flow Manager is architected to support flexible deployment topologies without requiring code changes to the system. It can, as a result, run in the cloud or on a user’s device. In a standard configuration of Cloud4all/GPII, there are two instances of the Flow Manager running: one on the user’s local device, and another in the cloud. These instances work cooperatively to ensure the security and privacy of the user’s data.