The Internet of Things deals with the massive numbers of networked computing devices and sensors that are becoming ubiquitous and quickly pervading our social fabric. We find embedded devices in our homes, cars, and clothing; in hospitals, factories, schools, and offices; identifying threats to our borders and listening to our children in the nursery — the list is diverse and virtually endless.
Our team has been engaged in research and engineering in embedded systems since the mid 1980s. Our work began at Dy- 4 Systems and Carleton University, and continued at Object Technology International Inc., where it was commercialized in instrumentation, process control, defense, telecommunications and automotive products, eventually forming the basis for IBM’s family of embedded Java products. We pioneered an agile software process and tool chain for building embedded product lines from reusable components. This required unique innovations in version and variant management, as well as deployment and monitoring. In order to deal with the complexity and scale of large embedded systems, we developed a unique actor based model for defining the process structure of distributed systems.
Bedarra's IoT practice focuses on the development and exploration of new computing platforms and associated interfaces. These platforms are characterized by properties of distribution, scalability, openness, dynamic adaptability and mobility. We believe that today’s monolithic software stacks are too large, unwieldy and inflexible to serve as the basis for the Internet of Things. It seems very unlikely that the future of mobile computing is really a power and memory hungry, insecure, desktop operating system running a conventional GUI or browser, using complex tool chains with conceptual roots in the last century. New computing paradigms and programming models will certainly be needed to cope with, and exploit, the iOT technologies of tomorrow.
We believe that IoT software will be assembled from encapsulated components that communicate robustly over a distributed network, using simple micro-services to coordinate collaborating actors and accomplish required tasks. IoT applications need to offer a more compelling end-user experience, and they must be easier to describe, build, deploy and use. We are exploring the limits of current web and surface techniques, as well as new UI modalities, which step outside the world of widgets and the DOM. We are working with clients to investigate alternative, lighter weight computing platforms that will be more amenable to dynamically assembling applications from distributed components, and just as important, easier to program and use. We continue to explore how these next generation approaches can be applied in areas such as autonomous vehicles, purpose built FPGAs, sensor networks and customized mobile devices