In Search Of Standards
Improving productivity, price, and performance drive today's embedded software development market. Frameworks and standards-based libraries make programmers more productive in an era of rising complexity. Royalty-free operating systems (OSs) cut system costs, and these reductions aren't restricted to Linux. Tighter integration between DSP OSs and control-processor OSs helps process packets faster than ever before.
But standards and frameworks have yet to make an impact on diagnostic tools. This coming year shows no signs of improvement. Debuggers, trace tools, and remote monitoring systems will still cling to proprietary interfaces and features.
At the forefront of frameworks is Java. More than just a programming language, it will crop up in more and more embedded products. These applications will be surrounded by more than just a Java Virtual Machine (JVM). Developers can exploit a growing number of standard Java profiles and services, and specify a range of Java classes. The real-time Java specification may see the standards light this year if wrangling factions iron out the details. Unfortunately, the current specification may be trying to cover too much ground. Still, Java developers will greatly appreciate any outcome.
The framework arena is a little more crowded this year due to Microsoft's Embedded .Net initiative. Part of the larger .Net cloud, the embedded portion is vying for the space currently occupied by the Java 2 Micro Edition (J2ME) and custom solutions. Although .Net may finally make a Java connection, Microsoft must convince most developers to take up C+ or Visual Basic .Net. While .Net supports more program languages, they tend to be on the fringe, especially when taking embedded applications into consideration.
Microsoft has promised an Embedded .Net server in its long-term timeline, but it will receive some stiff competition from Linux. Embedded Linux has been growing on all fronts even though companies selling it aren't rolling in cash. Expect more developers to turn to these companies for service and support this year as they realize the difficulty of cramming Linux into an embedded platform. Keeping track of bug fixes and enhancements can easily turn into a major investment of time and money.
High-availability support and enhancements are the trend for established OSs. Wind River, Green Hills Software, QNX, OSE Systems, and ATI offer a variety of solutions that will expand as the year continues. Support for CompactPCI is standard, with forthcoming support for switched backplanes as this new hardware finally makes an appearance. Modifications will hopefully be minimal for new storage networks like InfiniBand, but don't count on it. InfiniBand management software will be new to both developers and network managers.
Although high-availability support may find its way into Microsoft's Windows Embedded XP (EXP), this will probably come from third parties. Still, EXP could end up being more important than its desktop cousin currently forced on new users. The plethora of modules available under EXP could have a downside. Nonembedded developers are more likely to know how to use these features. EXP will open the embedded doors to more developers. This is especially true due to heavy use of standard protocols like eXtended Markup Language (XML) that are central to desktop and server-based Internet applications.
XML and related standards-based protocols will continue pushing HTML to the rear. It will be a good year to learn about XML and how it relates to technologies like simple object access protocol (SOAP) if it's not already on the resume.
Security will be more important to XML-related technologies and embedded software in general. Unfortunately, it's unclear whether or not many embedded developers take security into account. This could be the year where viruses and worms turn some embedded network products into unwitting slaves. This is especially a problem as popular OSs such as Windows and Linux become more prevalent in the embedded space.
High security may turn out to be the followup to last year's high-availability craze. It will be interesting to see how or if these two join this year.
Sun's Java framework will finally get some real competition from Microsoft's .Net framework as .Net transforms from a nebulous vision to a real architecture. The desktop and server portions of .Net lead the embedded implementation, but Microsoft's embedded group won't be left behind. It remains unclear whether or not the new Windows EXP and CE platforms can capitalize on their .Net support to gain design wins. Extensive support is a hallmark of Microsoft's offerings, often after the second major version, and the latest offerings fit the mold.
Those familiar with Java, however, don't think that .Net is new. Java has a significant lead on deployment, especially on the embedded side, and interest doesn't appear to be slackening. In fact, interest in Java is growing as more embedded operating-system vendors include Java because .Net on non-Windows operating systems isn't an option.
This year, the Internet Protocol (IP) and its cousin, Ethernet, will show up everywhere from backplanes to storage networks. Having a common protocol can significantly affect support software, resulting in improved management and new applications. Expect significant competition from other technologies like InfiniBand and StarFabric. These also require software support.
The real-time Java proposal may finally make it through the Java community process this year. This may finally rein in all of the various Java real-time extensions, providing the kind of portability Java has enjoyed at the enterprise level to the embedded arena.
The standard is extensive. It addresses the range of real-time operating-system interfaces, including support for Java's garbage collector and fine-grain control of memory. The scheduling specification is more extensive than that found on most real-time operating systems.
Much of the wrangling relates to the licensing of the reference implementation provided by IBM. If the details can be ironed out, real-time Java may take on C++ in more embedded projects.
EXtended Markup Language, or XML, and protocols based on it like simple object access protocol (SOAP) continue to permeate data storage and interchange for almost every kind of application. No longer is it just for Web browsers. Even notable applications, such as Sun's StarOffice, use XML as their native file format. Of course, .Net also makes XML and SOAP its lingua fraca. This year, the big issue is whether or not these standards will be wound so tightly with proprietary systems that their use will become irrelevant.
Beware of reasonable and nondiscriminatory (RAND) licensing. If the World Wide Web Consortium adopts this policy, the use of future Internet standards in embedded products may bring the wrath and licensing fees of software patent holders. Internet standards are currently open to everyone. Changes along these lines will likely occur this year, making a significant long-term impact on all Internet applications.
Developers working on network-based solutions need to put security issues at the top of their to-do list. Hackers are already targeting Internet routers and gateways. Millions of cell phones and Internet-enabled coffee makers make a juicy target for launching distributed denial of service (DDOS) attacks or compromising personal information. Linux, Windows, and Java are the kinds of standard embedded platforms that virus writers look for. Microsoft Word and Outlook hold the record for viruses, but that ignoble lead could move elsewhere this year.
Look for high-availability support in your favorite embedded operating system if it's not already there. It's likely to be the next checklist item for developers, even though most applications don't require it. On the other hand, out-of-the-box support for high-availability hardware will increase the demand for hardware. Don't expect any software standardization when it comes to high-availability support, though. High-availability application programming interfaces (APIs) tend to be very operating-system specific.
Embedded Linux might make it to the front of the embedded operating-system line this year. Determining what's embedded Linux is another story. A plethora of implementations with a few notable real-time versions are floating to the top, including Monta Vista's Hard Hat Linux, Lineo's Embedix Realtime, and FMS Labs' RTLinux. While the core features of Linux remain constant, we'll have to see if this year leads to any coalescing of real-time interfaces.
Clearly, Linux is being chosen for technical reasons, not just cost factors. Linux vendors have been hard hit, just like all software vendors, but watch for significant financial improvement as the economy turns around.
Automatic garbage collection has been available since Lisp arrived on the programming scene. But Java and now Microsoft's common language runtime (CLR) are pushing its use into embedded applications. A number of real-time Java implementations incorporate novel garbage collectors that provide control, speed, and reliability needed in embedded environments.
The open-source movement will continue to impact embedded development as more open-source projects are created and existing projects provide refined solutions. Software developers will need to be well versed in the implications of incorporating and creating open-source software. Expect the arguments about the right solution to continue as alternatives like shared source are discussed.
A related issue ripening this year is the extent of the vulnerability of open-system information. Some major players want to keep this information under wraps. Open-source projects may have vulnerabilities, but at least it's possible to see what they are and how to fix them.