The Carelink platform is designed from the ground up to be secure, extensible, and performant long into the future. To achieve this, the team has adopted the increasingly recognised microservices approach, where logically distinct pieces of application code are developed and deployed separately. These services communicate with each other using a combination of REST and messaging. This allows services to be improved continuously, and new services deployed at will.
- PwD location data is pushed from carelink sensors to a Kafka cluster. Kafka is a distributed streaming platform that ensures the critical PwD data is stored in a fault-tolerant, durable way.
- The tracking service acts as a Kafka consumer, listening for relevant data streams on the Kafka cluster and persisting them to the Postgres database.
- In the context of Carelink there is a wide-range of potential analytics applications, and as such we envisage multiple sub-services being developed under this umbrella e.g. periodic reporting will be the responsibility of a single service.
- The notification microservice listens to requests from other services, e.g. tracking, reporting, and based on the specifications of each request will trigger the appropriate notification(s) e.g. SMS (via Twilio or Amazon Simple Notification Service), email, and potentially web-push notifications.
- This service exists under the umbrella of the Analysis service but focusses solely on attempting to predict the likelihood of a PwD engaging in wandering activity. It will do this using sophisticated machine learning algorithms built using Keras and TensorFlow.
In terms of deployment, the platform runs on TSSG’s self-hosted OpenStack cluster. By treating infrastructure as code, however, we are ensuring that the deployment target could be switch=hed from OpenStack to the likes of AWS, Google Cloud Platform etc. with minimal changes. To achieve this, cutting edge tools such as Terraform and Ansible are being utilised.
On the hardware side, Eearly prototyping and product development is being pursued using the Huawei Watch 2. This device is being used to provide data on HR, Accelerometers, GPS and Gyroscope. Bluetooth is used for connectivity with smartphones.
Data is also being read from the smartphone as an alternative to the smartwatch in certain cases. Other hardware being tested includes Arduino and Raspberry which will be embedded with the required sensor and communications chips. 3D prototypes will be created for testing with user groups to ensure maximum usability.