April 2020 – present
About the client
RAKwireless is a manufacturer of all classes of IoT devices, from gateways to various sensors, smart modules, and IoT accessories. The company also offers software solutions to manage and maintain networks of IoT devices. RAKwireless has customers worldwide in industries including warehousing, transportation, manufacturing, and agriculture.
In April 2021, RAKwireless announced the successful closing of a US$10 million Series A funding round. The deal was led by Creo Capital, a leading Chinese private investment firm. RAKwireless will spend this investment on producing cutting-edge IoT infrastructure and devices and simplifying their use.
Before approaching us, RAKwireless successfully served small and midsize companies. A toolset provided by RAKwireless required IoT users to set up each gateway manually, one by one, via a local management interface. This approach was efficient for a network with a few gateways.
But when RAKwireless decided to enter the enterprise segment, the company needed to ensure better customer support. This required creating a new scalable and easy-to-use solution for remote gateway management. Our client needed to make three crucial changes to their provision of services:
Enterprises tend to manage multiple large-scale IoT networks in different locations. Setting up even a dozen gateways to work together was a time-consuming task, while setting up a hundred was a serious issue. RAKwireless needed to ensure automated network setup of hundreds of gateways for thousands of devices.
Previously, users had to be in close physical proximity to equipment for setup and maintenance. But with enterprise customers, gateways are often installed in hard-to-access locations (such as in fields). The OpenVPN solution provided by RAKwireless was complicated to use, as it required customers to make certificates, run servers, ensure data security, etc. RAKwireless needed to enable customers to easily and securely manage their gateways remotely.
To adjust its offering to the expectations of the target market, the client needed to implement a centralized and mainly self-service solution. The system now provides users with benefits such as:
Learn more about our client’s experience working with us
Software product overview
RAKwireless provides customers with an IoT management ecosystem for remote and automated setup and maintenance of IoT device networks. RAK customers use the SaaS web application built upon the AWS IoT Core message broker, which helps to synchronize the app with physical devices via RAK APIs.
New gateways that come online auto-provision to AWS IoT Core and provide technical characteristics that help app users onboard, locate, and configure them. By using the web app, users can remotely update gateways and receive near-real-time alerts if their equipment goes offline.
Each customer can create an organization — a logical entity representing the customer’s physical organization. User permissions can be managed within an organization.
Users with corresponding permissions can create a separate gateway network called “location”. A location can be an enterprise campus or a business run by a managed service provider who resells admin services.
Device maintenance tasks may be performed at different scales. The most common scale is a single location. To update the network configuration means updating all gateways in a given location by sending the same configuration settings to all of them.
Users receive details on their equipment: online/offline statuses, number of connected sensors, quality of data and system packets exchanged between devices, etc. There are also troubleshooting tools like an embedded web SSH terminal.
Discovering complex functional and non-functional requirements
Researched the client’s current technical process and infrastructure along with corresponding limitations and rules in order to select the most suitable technology stack.
Discussed benefits for the target audience with the client and their business team. The need for providing these benefits affected non-functional product requirements and helped us identify the scale of deployment.
Formalized business, functional, and non-functional requirements based on results of research and requirements elicitation to establish project success criteria.
Prioritized the project scope with the client by providing them with rough project estimates, details of technical risks, and potential dependencies of functional components.
Assisted an independent design team in forming the most suitable UI/UX strategy, as there wasn’t a ready-made solution on the market to use as a benchmark.
Formed the MVP and scope for the next release based on information collected during the previous steps.
Based on the steps above, created a strategy and schedule for development to share with the client’s marketing team and target and focus groups.
The client asked us to build a web platform on top of established AWS IoT Core infrastructure. We created an architecture according to the scalability and maintainability strategy discussed with the client’s team. It’s built on serverless Lambda, which provides mechanisms to support long-running operations.
Operations like adding hundreds of sensors to a gateway with a built-in network server typically require a long time to implement on the hardware side. Such long operations might exceed the existing AWS API gateway timeout. Our development team used job processing and polling mechanisms to meet AWS API timeout requirements.
The developed system supports both asynchronous and synchronous interactions. This enables deployed functional flows and those planned for future project releases.
We implemented interactions like gateway configuration updates by ensuring continuous bidirectional gateway data synchronization based on AWS IoT Core shadows and events.
For interactions like managing a gateway via an SSH tunnel, we used an AWS proxy server layer and custom services built on top of it. This approach helped us keep the app structure consistent, resolve potential security challenges, and guarantee app flexibility in the event of changing the cloud provider.
Want to see the solution architecture?
Enter your email address and we’ll send a solution architecture diagram straight to your inbox.
To check the product’s performance, we assigned a team to automatic load testing. The team performed the following activities:
set up a performance testing environment to provide conditions for successful testing
used virtual instead of physical devices in some scenarios to emulate high loads, as this approach is cost-efficient
automated the process of collecting reports to get in-depth logs on test results and quickly identify and fix errors
Ensuring that a cross-functional development team runs like clockwork
The Yalantis team has been responsible for handling the following tasks related to the web platform:
Interacting with users based on their permissions and business entity affiliations
Collecting, validating, preparing, and sending configuration data
Automating large-scale maintenance routines
Catching, aggregating, and delivering status monitoring and troubleshooting data
We also interacted with four off-site teams:
RAKwireless AWS team — responsible for managing the AWS IoT IoT Core and related AWS services and advising on the architecture
RAKwireless gateway engineering team — responsible for gateway firmware engineering and actual interpretation of instructions sent to the gateway
Independent security audit team — responsible for preventing cyber risks
Independent UI/UX team — responsible for ensuring an optimal user experience
To implement each feature, we had to ensure it worked properly in the software we built as well as in all software by other teams. This required close collaboration and identifying all points of convergence.
We suggested to the client that we should:
develop a complex communication plan to optimize interactions
agree with them on the process of getting stakeholders’ feedback
perform point-to-point testing of the entire IoT management system
create the approach to teamwork on processing requirements
formalize the flow of requirements processing (see the schema)
These steps ensured smooth interaction, the exchange of technical expertise, and confidence that all network and gateway settings were implemented as expected.
RAKwireless customers are already benefiting from:
The IoT management ecosystem comprises such elements as gateways, sensors, network servers, application servers, and the IoT device provisioning system. WisDM allows RAK customers to remotely manage gateways worldwide and integrate thousands of devices. Customers can check statuses of their gateways, receive data device reports, and see device locations on a map in real time.
The client can support multiple IoT networks to fulfill enterprise customer needs. There is a communication channel in the WisDM app so users can create tickets directly. Also, the client’s customers can provide the RAKwireless support team with access to their accounts to get help in solving gateway-related management problems.
Customers can offer WisDM as a service themselves by setting up their gateways on-site, with management done remotely by an expert partner.
Customers can use a role management system for establishing roles for different activities concerning a network, ranging from operational to observer-only.
A WisDM user is able to log in with a single RAKwireless ID credential to utilize different available and future RAKwireless services.
WisDM is an agile and fast-growing project. In the near future, the device management system will be enriched by new features to meet growing customer needs. Together with our client, we’ve planned multiple upcoming product releases. We keep working on the product and improving it based on user feedback.