The key dynamic of embedded-systems development in the new millennium will revolve around device networking and the network-based management of devices. With ubiquitous computing will come the enormous and daunting task of managing the millions of new end points of the Internet. It's no longer just about chips and hardware-networking software is now becoming paramount in helping companies develop smart devices and intelligently manage those devices once they've been deployed. The old saying that truth is stranger than fiction applies to the sea change in computing that is now before us. For the last two decades we've lived through the PC era, a period where embedded systems were more or less relegated to the purview of hard-core developers who found themselves outside the mainstream of PC-based computing. Today, the future lies beyond the PC in what to many of us is old, familiar territory: embedded systems. As we enter the new millennium our beloved space has been reinvented. It's now referred to as "pervasive computing" and the term "embedded system" has been displaced by terms such as "intelligent computing devices" or "Internet appliances." It's the hot place to be at the moment, or so we're told.
To those of us who have been developing embedded systems since the days of the 6800 and the 8080, it's a homecoming of sorts, but it's also the rebirth of an industry with a broad set of new dynamics to grapple with. In a world that has become fixated on the Internet, the old embedded model of the device-centric system is quickly being replaced with a new, powerful network-centric computing model.
This is for a very good reason: The value of the Internet lies not with the end points or devices themselves, but with the transactional data that flows through the network. The ability to efficiently develop, deploy and manage networks of collaborating smart devices will quickly become a key underlying driver.
The network is finally becoming the computer, and a bold new vision of embedded systems is being born along with it. Think in terms of real-time data flow and what groups of collaborating devices with robust access to enterprise-level systems can accomplish in almost any market segment you care to imagine. But who is going to develop, build, install, service and support all of those millions of smart, networked devices? There aren't enough educated and experienced embedded-systems developers and networking professionals in the world today to even manage the challenges involved in building out the current PC-based Internet computing model, so something has to change.
It's quite likely that all embedded-system designs in the future will be judged by the basic criteria of reducing or eliminating the need for technical resources along each step of the process: developing the device; deploying the device on the network; and maintaining and supporting the device.
In a universe with communications at its core, the software content of a networked device must be rich, deep and constantly evolving, just like the PC today. But unlike the PC, there aren't always going to be IT managers or technical end users available to install apps and configure new devices-especially when many of them won't have traditional PC user interfaces or upgrade capabilities. In a network-centric model, everything from basic software installation to configuration and maintenance must be network based and automated. And given the dictum that data flow is all important, the ability of a device to automatically install itself on the network and intelligently link into enterprise data management systems is also a looming prerequisite.
Distributed computing may be the holy grail of networked device development. Think of the Internet today as a PC-based network where only minimal collaboration occurs between clients-it's a basic client/server model. That said, the power of the Internet is in the huge number of clients and servers out there. Fast-forward to a time in the not-too-distant future when the number of embedded devices exceeds the number of PCs by 10 times or more. Where then is the power?
Embedded systems are low-cost, task-specific devices and on their own they aren't very interesting. But if they can leverage one another's capabilities, the resulting synergies can create a computing powerhouse that would dwarf the current PC Internet model. This requires a combination of auto discovery technologies (such as Microsoft's Universal Plug and Play or Sun's Jini) and distributed component object models such as Windows DCOM and COM+ protocols or various Java technologies.
Add intelligent software agents that can stream data to the right places in real-time and server-based auto profiling that will enable administrators of these new systems to automatically configure a large network of devices simultaneously. Suddenly, the world becomes a simpler place to live in. It's a device-to-device and device-to-enterprise networking model that in effect reverses the current client/server model-any device can be a client or server at the same time.
Embedded-systems developers have to start to think differently about approaching the design of these next-generation networked devices. The old habit of choosing the processor, then the operating system, then building the application and thinking about communication concerns is backwards. Communication is the key element in these systems and therefore must be first and foremost in the minds of developers at the inception of the product design cycle. Communication affects everything else; in many cases, developing a product with powerful distributed-computing capabilities means designing the application development from the ground up around these principles.
Distributed-system programming can be a very empowering concept for networked devices: Breaking down the barrier of whether a process is running locally or remotely on another device means having the ultimate in flexibility in both utilizing the current product design criteria and allowing the device's capabilities to be expanded and optimized in the future with very little effort or expense. Combining a distributed-computing architecture with auto discovery, intelligent agents and auto profiling creates an explosion of new opportunities.
Gone are the old days of rolling your own proprietary operating system, communication protocols, applications and remote management strategies. There's just too much going on and too much time-to-market development pressure to avoid outsourcing these critical components of the design.
There is a huge body of technology that can and should be leveraged from the success of the PC and the Internet. In a world with open standards, proprietary solutions provide protection for companies and job security for their developers-but at the risk of losing customers.
When Intrinsyc was founded, it was on the premise that OEMs would outsource the software networking components that these networked devices would require. What we didn't initially anticipate was the market pull for training and supporting design services. We finally ended up broadening our product offerings to include hardware reference platforms that come loaded with our networking software for popular operating systems; the uptake on this model was quite literally an order-of-magnitude increase in sales. The common refrain heard from OEMs is that they want an integrated solution to avoid having to knit together the disparate hardware, device driver, operating system and networking layers.
It's a reflection perhaps of the steep learning curve involved in building a next-generation networked device. These are the early days in a new market
See related chart
DEREK SPRATT IS PRESIDENT AND CHIEF EXECUTIVE OFFICER OF INTRINSYC SOFTWARE INC. (VANCOUVER, B.C.).