Software overhaul for a wearable AR-driven prototype that connects field technicians with remote experts
T&M (time and materials)
The client had a wearable AR device prototype for connecting field technicians with remote experts.
The customer’s solution is a distributed system, meaning it should support large volumes of user data requests and back-end responses. The mobile client failed to process the increasing number of requests—the app considered them to be a DDoS attack and crashed. That issue also caused other working bugs:
Those issues prevented the client from proceeding with mass producing the device. So they turned to Softeq to fix the software problem. Our task was to make the system constantly available, enabling 100% of all successful calls.
To make the connection stable, we started with the implementation of the Redis Backplane service.
It was intended to process any amount of requests and replicate data on all back ends.
The system was integrated with Azure Cloud Services. As the number of requests increased, Azure duplicated the back ends to evenly distribute the workload. This was done using a load balancer. However, it didn’t maintain system stability.
The Redis database turned out to have some limitations that caused frequent errors, such as:
As the problem was still unsolved, our software engineers had to reject the Redis service and look for another option.
As an alternative to the Redis service, we decided to integrate the Azure SignalR.
This service was designed for large-scale solutions and addressed our two major issues:
Azure SignalR enables the system to transfer relevant data from the client to the servers and vice versa in real time.
This integration allowed us to transfer the load of storing client information and keeping the WebSocket connection from the back end to Azure SignalR.
We ran several load-testing sessions to make sure no connection loss was detected.
The client’s solution initially used a P2P connection.
We replaced P2P with a group connection, which forwards the WebRTC video stream to the Twilio server. Thus, we ensured the mobile client was stable during a video call.
We incorporated a report-generation algorithm that tracks:
The reporting system ensures important statistics are constantly delivered on time.
We updated the solution’s security.
All the data consumed and produced by the solution is transferred via HTTPS protocol. Authorization is implemented in accordance with the OAUTH 2.0 protocol.
Softeq overhauled the software to solve connection and stability issues. As a result:
The client will continue working with Softeq to upgrade the solution with new features, e.g., developing a remote assistance app for Google Play and adapting the solution to new glasses models.