“Active exchange with the industry is exciting; our work could be immediately applied in the real world.”
Kumseok Jung is a PhD student at Electrical and Computer Engineering, and part of the Dependable Systems Lab, working on robust and dependable edge computing applications. His group has developed an innovative solution for developers working with Internet of Things (IoT) devices; a program called OneOS, that would make programming many different kinds of IoT devices simpler and easier for developers. This solution, co-developed with Julien Gascon-Samson and Karthik Pattabiraman, recently won the Best Demo Award at the ACM/IEEE Symposium on Edge Computing (SEC) conference.
We spoke to Kumseok to learn more about how this solution works, the process behind its development, and how this award-winning research will impact the industry.
Congratulations! How do you feel about your “Best Demo” award?
I spent a lot of time building a good-looking demo, so it feels good to be acknowledged for the effort that went into it. More than the award itself, I was happy that the experts in my field were visibly impressed when I presented my live demo.
What is the topic of your award-winning project?
OneOS involves grouping together a bunch of Internet-of-Things (IoT) devices (e.g., smart bulb, smart TV, smart fridge, etc.) so that they look like one giant computer to a user like you and me.
When we look inside of a computer or a smartphone, there are several tiny components connected to one another, continuously exchanging data and coordinating with each other to present to the user a single “personal computer”. Today, programmers can easily write apps for such a computer, since we have standardized programming tools. But when it comes to writing apps that involve multiple IoT devices, programming is not so easy, because the programmer has to think about the differences between the devices and how the devices would exchange information.
To make programming easy for IoT devices, my idea is to think of the devices as components of a single giant computer connected over the Internet. This way, we can continue to use the standardized programming tools, and users will be able to simply download and run IoT apps.
What is the future of your initiative? How can your project impact the industry?
The idea I’m pursuing is actually something that has been explored by academics and industry experts, going back to the 1980s and 1990s in the form of “distributed operating systems”. This idea was more appealing back then, when personal computers and Internet usage was not as common and a computer was more of an expensive, shared resource. Since then, the industry and the market have moved on to personal computers and web services.
However, recently we’re seeing a rise in cloud/edge computing, where computers are becoming shared resources again. Big players in the industry are already taking steps into this future of cloud/edge computing, in the form of virtual machines and containers, but not exactly distributed OSes. Perhaps my project would remind the industry that this is the right time to explore this idea again.
What was the process of developing this research like?
This work has taken many turns along the way, sometimes undergoing a complete overhaul. In the beginning, my research group sketched out a design of an IoT platform called “ThingsJS”, by listing out the constraints that are specific to the IoT domain, and coming up with potential solutions. We had a team of graduate students (including myself) carrying out the research work, undergraduate students helping out with writing the code and running the experiments, and my advisor and industry experts providing feedback and new ideas. Along the way, we identified sub-projects that needed to be prioritized, and published papers on the individual solutions we came up with.
After ThingsJS had matured to a certain point, we had identified limitations that could only be overcome by fundamentally altering the design. We forked the project into OneOS, and started to build the system from scratch. That said, we were able to work more quickly as we had quite a lot of software artifacts, experience, and insight by then.
What interests or excites you about this area of research?
Doing research in systems engineering in cloud/edge computing is fast-paced, and involves a lot of communication with the industry. Our work was sponsored by Intel, and attracted interest from industry experts at Microsoft, Samsung, and Huawei. This active exchange with the industry is exciting; our work could be immediately useful and applied in the real world.
What has your career path been like so far? Where do you hope you’ll go in the future?
I have been alternating between being in academia and in industry so far. After getting my bachelors at UBC, I returned to UBC as a masters student after a 3-year stint as a software developer. I went on a brief internship at Microsoft Research India towards the end of my masters, and then I came back as a PhD student to continue my research work. I enjoy the freedom to explore ideas as an academic, and I also enjoy building real systems that are applied in the industry. I hope to find a place where I can continue to do research that can have real world applications.