Researchers at the University of Melbourne are tackling one of the biggest challenges ahead in the next decade of computing: Making sense of the tsunami of data generated by Internet of Things devices coming online.

The volume of data threatens to overwhelm networks and computing resources, making it impossible to extract useful insights. With a project it calls FogBus2, a team at the University of Melbourne is looking to fix that.

“With all these billions and billions of IoT devices pushing data to the cloud, the latency would be very high,” says Rajkumar Buyya, distinguished professor and the director of the university’s Cloud Computing and Distributed Systems Lab. “That is where we start moving toward this model of fog computing, where we can harness the resources at the edge of the network and the cloud.”

FogBus2 is an open source, container-based distributed framework to collect data from cameras, ECG devices, laptops, smartphones, or most any other IoT devices. In cases where fast results are needed—for example, taking action on readings from a medical sensor—edge servers near the IoT device that run Raspberry Pi and Jetson processors analyze that data quickly. In cases where more compute is needed but response time is less important, the data goes to the cloud for analytics.

The team recently started running FogBus2 on Oracle Cloud Infrastructure (OCI), using services including Oracle Autonomous Data Warehouse, Oracle Machine Learning Cloud Services, and Identity and Access Management, to build a service that’s multicloud, widely available, and secure. It’s also tapping the OCI Arm Accelerator program, which provides a one-year free trial to select open source developers, research universities, industry partners, and private companies to run workloads on OCI Ampere A1 Compute and other OCI services.

FogBus2 uses Oracle Machine Learning to allocate networking and compute resources for data analytics. It uses Oracle Autonomous Database to compile network information, such as latency, data rate between devices, availability of hardware resources such as CPU and RAM utilization, and software information such as response time and which containers are running on which devices. The data is stored in flat tables, with each record just a simple row of data, to allow FogBus2’s remote logger container to append and read data quickly.

On the Built & Deployed video series, the university’s lead researchers explained how they solved the technical challenges of building FogBus2. The videos feature technology conversations with software architects about Oracle Cloud Infrastructure. Here are some highlights of what the team hopes to achieve and how. 

Putting IoT to work

Video image recognition, such as assessing surveillance cameras for criminal activity, is a kind of application FogBus2 is built to facilitate.

“If you look at a citywide deployment, with cameras in multiple places, there could be thousands and thousands of data points, and if each computation takes just two minutes to analyze, that can take several hours on a single virtual machine,” says Mohammad Goudarzi, graduate researcher at the University of Melbourne’s CLOUDS Lab, in the School of Computing and Information Systems.

A typical video camera captures information at 30 or 60 frames per second. Sending all that information to the network might congest the system. So instead FogBus2 uses algorithms to analyze frames on the edge servers, so that only frames that are sequentially different from each other are transmitted to the cloud for further processing.

For example, if a store manager wants to assess COVID-19 mask compliance by shoppers, she can set up cameras to capture images of people coming into a shopping center, and analyze faces to see which shoppers are not wearing masks. An application like that needs to be fast, with results available in real time, and analyzed on the network edge, Goudarzi says. Store managers could then direct staff to ask those shoppers to wear masks.

Analysis of protective face covering requirements is more compute-intensive, and can be processed at the edge or in the cloud.

“Our framework can support applications that are computationally intensive or latency sensitive. That is one of its selling points,” Goudarzi says.

Putting it together

FogBus2 uses a three-tier framework.

The IoT tier, at the edge, comprises the actual IoT devices gathering data, such as cameras and medical equipment.

The second tier is made up of edge clusters. In this early stage of development, the FogBus2 team has two: One in Melbourne with two Raspberry Pi 4B processors and an NVIDIA Jetson Nano, and one in Chengdu, China, running two Raspberry Pi 4Bs, and a Raspberry Pi 3B. Both edge clusters run a MariaDB database, managing local analytics for applications requiring low latency. Servers can scale up with additional processors to meet demand.

Why in Melbourne and Chengdu? The FogBus2 frameworks support distributed multiregional edge computing, so the edge clusters are currently deployed at researchers’ homes to enable ongoing testing and development. Researchers moved the servers from university facilities to ensure access during COVID-19 lockdowns.

Data from the edge clusters flows over a virtual private network (VPN) to the third tier. This multicloud tier runs in the OCI region in Melbourne, in different fault domains, to keep applications running in case one domain fails.

Both fault domains run virtual machines on Arm and x86 processors on a public subnet that’s accessible to users. The second fault domain runs the OCI Bastion service, for secure access. Oracle Bastion provides restricted and time-limited secure access to resources without public endpoints, typically requiring strict access controls.

FogBus2’s Arm processors handle heavy compute, requiring high levels of parallelization, while x86 processors perform conventional queries at a lower cost.

A private subnet in Oracle Cloud runs Oracle Autonomous Data Warehouse, and an additional virtual machine on x86 architecture. And Oracle Machine Learning runs behind that private subnet, connecting to Oracle Autonomous Database.

Also in the multicloud tier, FogBus2 runs applications on x86 virtual machines in AARNet Nectar, an Australian government service providing cloud resources for researchers.

The University of Melbourne team chose to split services between OCI and AARNet Nectar for performance and cost reasons. The FogBus2 software uses OCI to take advantage of technology such as Arm processors, an Autonomous Data Warehouse, and machine learning software. Where those resources are unnecessary, using the Nectar services reduces cost, because it’s free for Australian researchers.

Additionally, a goal for FogBus2 is to provide multicloud support. The researchers have already begun work on getting the software running on other clouds to take advantage of each cloud’s specialized strengths.

The applications and MariaDB database that make up the FogBus2 software framework run in Docker containers, while the Autonomous Database runs in Oracle Cloud. The university plans to deploy Oracle Container Engine for Kubernetes for orchestration, but for now uses homegrown software for the job.

Why Oracle?

The University of Melbourne chose to partner with Oracle because of Oracle’s Arm Accelerator program, Autonomous Data Warehouse with built-in artificial intelligence, containerized software and microservices, and edge computing.

“As a research laboratory, it is exciting to show that our effort is not just functional in our own controlled lab infrastructure, but that it works in the real world,” Buyya says. “Working with Oracle helps us demonstrate that capability.”

The FogBus2 team also tapped the Oracle Cloud Free Tier, which provides free services developers can use to experiment and find the best architecture to support applications, before deploying in the field.

Why Arm?

FogBus2 takes advantage of the Arm processor’s support for virtual machines running on CPUs with hundreds of cores, providing opportunity to massively scale parallel operations within each virtual machine. Arm easily supports orchestration and scheduling of microservices running in containers, Goudarzi says. Arm also runs a single thread per CPU core, providing enhanced security and minimizing the possibility of vulnerabilities due to shared register and cache when threads share a single core.

Arm provides FogBus2 with rapid services startup time, 15% faster than services running on other architectures, Goudarzi says. And using Arm delivers 15-20% performance increases and response times in applications such as video recognition and other latency sensitive applications requiring high parallelization.

Arm is also used for advanced analysis of large amounts of data and very large file sizes, which is common with video surveillance, for example. Arm delivers the full CPU frequency to each process assigned to a core, making application performance predictable, and that helps researchers better analyze how well a new algorithm is performing. Normally, researchers need to repeat trials to account for changing hardware dynamics, but consistent CPU performance means researchers can set hardware dynamics aside and focus on the other dynamics of the system, simplifying system testing and analysis, Goudarzi says.

Why Autonomous Data Warehouse?

FogBus2 is designed to run on any database, but the university tapped Oracle Autonomous Data Warehouse for its unique capabilities.

FogBus2 requires support for workloads that generate sudden bursts of traffic, requiring scalable CPU and storage that Oracle Autonomous Data Warehouse delivers. And Fogbus2 benefits from Autonomous Data Warehouse’s support for integrated machine learning, reducing the need for developers to build and manage ML capabilities in applications. Oracle Autonomous Data Warehouse’s automation also helps increase developer productivity, allowing the university to develop FogBus2 over the course of one year.

Managing infrastructure with machine learning

Oracle Machine Learning allows researchers to visualize data in a database very quickly, “with a few clicks and lines of code,” and without the need to build a separate back-end service, says Qifan Deng, contributing researcher to the university’s CLOUDS Lab in the School of Computing and Information Systems.

Using Oracle Machine Learning offers an alternative to university researchers building their own machine learning algorithms. With Oracle Machine Learning, researchers can tap Oracle Cloud Identity and Access Management for security.

“It saves us weeks of development and gives us more time to try out more research and more ideas,” Deng says.

Looking ahead

Following successful tests of FogBus2, the University of Melbourne research team hopes to see interest in real-world IoT deployments of the open source software.

“We have reached our first and most important goal: setting up the framework, deploying it in a real environment, supporting multicloud, and offering IoT applications on top of that,” Goudarzi says.

The team has seen interest from private companies looking to deploy the framework. For example, a Canadian company is interested in deploying the software for telecom applications, and a transportation organization has expressed interest for monitoring vehicles.

Developers are working on broadening orchestration and multicloud support, and adding more facial recognition capabilities. The researchers are also looking into possible applications of blockchain on FogBus2.

Want to know more?

Run applications faster and more securely for less with Oracle Cloud Infrastructure
https://www.oracle.com/cloud/

Reduce manual database management up to 90% with Oracle Autonomous Database
https://www.oracle.com/autonomous-database/

Take advantage of Oracle Machine Learning to uncover hidden patterns and insights in data
https://www.oracle.com/data-science/machine-learning/

Get started in the cloud with Oracle Cloud Free Tier
https://www.oracle.com/cloud/free/