This is the first of an on-going series of musings to be published on the Embedded.com site on the topic of net-centric computing. By “net-centric computing” I mean connected computing. In the future computers will only be thought of in the context of their ubiquitous connectivity. Net-centric computing isn't communications or networking per se, although it certainly includes both. It encompasses the embedded arena but is much larger in scope.
Net-centricity is having a profound impact on computing on all levels: desktop, embedded, server, workstation, and mainframe. The changes that are occurring will affect almost every aspect of how we design and use computer hardware and software, how we design and use tools, the applications we develop, and the ways in which they will be developed.
The nature of this new market is dictated by how communications and networking are affecting traditional computing. But this coming together is not nice and neat. It's a collision rather than a convergence – disorderly, unpredictable, and non-linear. Like two galaxies colliding, this new computing environment is one that is trying to come back into balance, establishing new connections between zones of activity, breaking others, creating new areas of activity, and eliminating others. In this environment, the normal rules of cause and effect that an observer would use to “connect the dots” no longer apply. In this much-more-complex and out-of-balance market, one cause does not lead to one predictable effect, but to a pattern of effects and relations, not all predictable, which in turn cause further changes.
Some of the most profound effects of ubiquitous connectivity are occurring in the embedded space. No longer can the developer define a problem as a closed system, and then develop for that system in a context where he or she has relative control over all aspects of the design. Embedded devices often operate in a connected environment, but in the past these have been basically control-oriented networks and are themselves closed “islands of connectivity.” What differs now is the ubiquitous connectivity that the Internet enables and the standards and conditions it imposes. Also different is the fact that the system the developer must define is a complex of connected devices – embedded devices, information appliances, desktop computers, and servers – that presents issues relating to determinism, reliability, and predictability. Among other things, a whole set of problems arises relating to testability and debugging in a distributed environment that is inherently non-deterministic.
One of the largest markets in the embedded arena is, of course, networking and data communications. The nature of this market is changing from the use of a computer as a data processing or control engine to a data flow engine, moving data from “in here” to “out there” and vice versa. Combined with the higher bandwidths and the large numbers of users (in the billions if you include the variety of embedded Internet-connected devices), the network processors embedded in the router-and-switch fabric are essentially multiprocessor applications, not loosely coupled, but tightly coupled. This situation is causing some developers to worry about parallel programming issues – a can of worms with no satisfactory methodologies that are widely accepted.
Because of higher bandwidths and the interconnectivity between workstations, desktop computers and servers with billions of embedded Internet devices, the nature of these traditional segments of the computer industry is changing as well. Desktops, already shifting to an in-here/out-there model, will also have to be more deterministic because they have to deal with higher bandwidths and highly deterministic multimedia content, as well as with dozens of embedded devices in the home or office. Server enterprises, which have sold millions of embedded Internet devices and information appliances to consumers, will have to be much more real-time and deterministic, especially with hundreds of thousands or millions of these devices “phoning home” asking to be fixed now, not later.
The scope of net-centric computing is broader than embedded systems. But the topic is of vital importance for embedded developers because “embedded” is whatever an embedded developer does. Net-centric computing has, as a whole, all of the features and requirements of the embedded market: small footprint, high reliability, and determinism. The developers who will be in most demand will be embedded hardware and software developers, regardless of whether they are developing for desktops, servers, routers, bridges, information appliances, set-top boxes, or traditional embedded devices.
Topics covered in this space will include not only all of the traditional issues of interest and relevance to the embedded developer, but also much about the Internet environment in which many of these devices will operate, as well as issues relating to servers, routers, bridges, desktop computers, and information appliances. In addition to looking at traditional areas of activity, I will look also at newer ones and the interactions between all of them, “connecting the dots” and assessing how activities in one area might have significance in other areas.
Embedded designers were among the first to pick up on the significance of the Internet and the World Wide Web and start using them. It was an engineer at an embedded tool company who first introduced me to Lynx, the text-based precursor to graphically oriented browsers, in the early '90s. A hardware developer clued me in to Mosaic, the open-source mother of all browsers that created the Web, and helped me install it. Embedded designers were among the first to adapt many Internet and Web developments to their particular needs. Because embedded is now so connected, it is important for developers to know what is going on in the general environment in which they will be doing their designs.
This space won't be just a podium for me to express my opinions; I want it to be a conversation with the engineering community, and I certainly hope to occasionally spark a debate between us. I'll be looking for comments, counterpoints, and opinions from readers. I'll take advantage of the special perspective my role as editor of the EETimes (http://www.eet.com) embedded/net-centric supersection gives me, where I often come across interesting developments that trigger thoughts about the relationship between developments in diverse fields.
These are exciting times for the computer industry. As a technical journalist, I have always had the most fun in non-linear environments in which dozens of things are happening at once and which are hard to relate to one another. The first decade of the microprocessor in the '70s was one such time. Now, we are in another lively period, and there is a lot to talk about and to write about – with your help. So let me know what's on your mind. You can call me or send me an e-mail. I'm always happy to hear from you.
Bernard Cole is managing editor for embedded design and net-centric computing at EETimes and the author of The Emergence of Net-Centric Computing. He can be contacted at or by telephone at 520-525-9087.