Windows CE .Net
Microsoft's successor to Windows CE 3.0
By Geoff Walker, Technology Editor, Pen Computing Magazine
CE.Net was announced on January 7, 2002, at the Consumer Electronics Show (CES) in Las Vegas, Nevada. CE .Net is Windows CE version 4.0, the successor to Windows CE 3.0. Why didn't Microsoft simply name it "CE 4.0"? Because Microsoft marketing wants to make it perfectly clear that everything Microsoft does in 2002 is related in some way to their grand strategy, .Net. How exactly does Windows CE relate to .Net? CE 4.0 supports the basic building blocks of .Net - HTTP, XML, SOAP and UDDI. (See the sidebar on .Net for a basic explanation of what it's all about.) From a programmer's point of view, that's a good thing. It enables writing more powerful and capable software, particularly applications that involve distributed computing.
For the record, the Microsoft positioning statement on CE .Net is that it's "a robust real-time operating system for rapidly building the next generation of smart mobile devices." During development, CE .Net was code-named "Talisker," a brand of single malt Scotch whisky. The next version (CE 5.0) is code-named "Macallan," another brand of single malt Scotch whisky.
CE as Enabling Technology
Before we dive into the new features in CE .Net, let's take a high-level look at where CE fits in the overall scheme of things at Microsoft. Microsoft offers two operating systems for embedded systems, Windows CE and Windows XP Embedded (see the sidebar on XPE on page 72 for a quick look at Windows XP Embedded.) An "embedded system" is any computing device that performs a dedicated function or is designed for use with a specific embedded software application. For example, PDAs, cellphones, industrial controllers, slot machines, webpads, ATMs and information kiosks are all embedded systems. Both CE and XPE are managed by the Embedded and Appliance Platforms Group (EAPG) at Microsoft.
In the last two years, Windows CE has expanded beyond a standalone operating system to become an important "enabling technology." CE is the general-purpose foundation upon which other Microsoft groups build platforms aimed at specific device markets. Within Microsoft, the Pocket PC, Handheld PC, SmartPhone (formerly "Stinger"), Automotive PC, TV Set-Top Box and MSN Web Companion groups are all "customers" of the Windows CE platform group. Microsoft calls these "go-to-market solutions" groups. Each customer group adds value unique to their product and markets the resulting software. For example, Pocket PC 2002 is built on top of Windows CE 3.0. Pocket PC 2002 defines a target hardware platform (quarter-VGA display, ARM processor, etc.) and then adds a shell (APIs) and PIM applications that are optimized for that platform. Pocket PC 2002 also includes enhancements to Windows CE 3.0, such as multiple ROM execute-in-place (XIP) regions that make upgrades easier. In most cases, OS enhancements added by the "go-to-market solutions" groups are migrated back into the Windows CE platform, so that all the groups eventually benefit.
CE for Tablets
During the last 18 months, an OEM who wanted to build a webpad or other tablet product had two choices of operating systems: plain CE 3.0 or Handheld PC 2000 (http://www.microsoft.com/mobile/handheldpc/). Because the licensing fee for the latter is about four or five times higher than the former, many OEMs chose the former. For an example of a product in each category, see ViewSonic's ViewPad 100 (http://www.viewsonic.com) and Siemens' SIMpad SL4 (http://www.my-siemens.com).
What the enterprise market seems to want for vertical applications is "a Pocket PC with a larger screen." This is a product that can run enterprise Pocket PC applications, but with more screen geography. Today a Pocket PC application won't run on a larger-screen device using plain CE 3.0 or HPC 2000 because the Pocket PC shell (APIs) and PIM applications are only available on the Pocket PC platform. Because of the strong success of the Pocket PC platform, the Pocket PC group has been able to keep most of their added value exclusive to the Pocket PC.
According to Kim Ackers, a Director in the Embedded and Appliance Platform Group, this situation is about to change. During a breakfast meeting at DevCon 2001 (the Microsoft embedded systems developer's conference in December), Ackers said that Microsoft intends to migrate the Pocket PC shell and applications back into the Windows CE platform (against the Pocket PC group's wishes). This would allow running Pocket PC applications on larger-screen devices. Todd Brix, a product manager who works for Ackers in EAPG, said that according to Bill Gates, EAPG's strategy should be to "let a thousand flowers bloom." Brix said this meant that it was better to open up access to the Pocket PC group's APIs and let many OEMs create products using them ("enable Microsoft software everywhere"), instead of letting the Pocket PC group keep them exclusive to the Pocket PC platform. Exactly when this change might happen is unknown.
New OS Capabilities
With the above as background, let's look at what's new in Windows CE .Net. The enhancements fall into two major groups: (a) features that both expand CE's capability as an embedded OS and make it more consistent with XP's capabilities, and (b) features that specifically enable .Net. In total there are well over 50 new features, far too many to detail in this article.
Some of the most interesting new features that expand CE's capability include the following:
Bluetooth: CE includes native support to allow a device to use a Bluetooth-enabled cellphone as a data modem, and to use a Bluetooth enabled LAN access point for network connectivity. CE is the first Microsoft OS to formally support Bluetooth; it was omitted from XP because Microsoft was unable to find enough Bluetooth hardware to adequately test it in time for XP's October 2001 release.
802.11 Zero Configuration: This feature, new also in XP, simplifies setup of WLAN networks and enables seamless roaming from one 802.11 network to another.
Media Sense: Applications can now be notified of network status. This means that an application can be designed to seamlessly handle transferring between an 802.11 network and a WAN network such as GPRS, including provision for an offline mode between networks.
Real-Time Communication: RTC enables messaging, presence and audio (Voice over IP) between any two IP-enabled devices. This feature allows a CE .Net-based device such as Fujitsu's new iPAD handheld to function as a cordless telephone (using WLAN and VoIP).
Remote Desktop Protocol: RDP allows a thin client, such as a Windows-based terminal, to communicate with a server across a LAN, WAN, dial-up, ISDN, DSL or VPN connection. RDP is the basis for communications between the "Mira" wireless monitor and a home PC (see the sidebar on "Mira" in the "Tablet PC Update" article in this issue).
Internet Explorer 5.5 for CE: This is an essential enhancement; it brings CE up to the current level of browser functionality.
Enhanced Multimedia Support: CE now includes Direct3D, DirectDraw, DirectMusic, Wave/DirectSound, DirectShow, DirectX, DVD-Video, Windows Media, MP3, and Digital Rights Management (DRM). These features enable 3D graphics, DVD decoding, music & MIDI through sound hardware, gaming, multimedia streams, and playing encrypted copyrighted content. This goes far beyond CE's previous support for multimedia.
Customizable ("Skinnable") User Interface: CE now allows customizing common controls (buttons, check boxes, scroll bars, etc.) and other user interface elements. This allows an OEM to make a substantial change in the appearance of a CE-based device.
Multiple-Screen Support: Multiple screens can be connected to a CE device and can even function as one large screen. This has applications in point-of-sale (POS) devices, for example, in a retail grocery store where the checker and the customer can each have their own screen.
Dynamic Screen Rotation: CE now includes the ability to rotate the screen in 90-degree increments.
Microsoft Clear Type Support: This is an example of an OS enhancement from the Pocket PC group that was migrated back into the core OS.
Protected File Storage: The RAM area in CE used for file storage (the "object store") is now protected by the CE kernel. This prevents data tampering, and the protected-store API provides the ability to encrypt user data.
Integrated RAM/ROM File System: File systems can be supported on devices other than RAM, such as HDD or flash memory. The registry can also reside on any file system.
Storage Device Drivers: CE now includes fully functional ATA/IDE drivers for HDD, CD-ROM, DVD, FDD and PC Cards.
Device Notification: Device drivers and applications can register with the device notification system to be notified when a device of interest appears or disappears. This makes it much easier to manage peripherals on a CE device.
Security: There is a substantially increased emphasis on security in all Microsoft products, not just in CE. This new version of CE introduces 802.1x and Extensible Authentication Protocol (EAP). 802.1x and EAP together enable user/password, certificate or OEM-specific authentication for network log-ons. Kerberos security protocol and Secure Socket Layer (SSL) are also included; these provide the same client-side authentication mechanism that's used in Windows 2000.
Enhanced Language Support: A new operating system version, application support and Input Method Editors (IME) for simplified and traditional Chinese; enhanced Japanese IME; OS, application support and IME for Korean; handwriting recognition engine for Korean, Traditional Chinese and other languages. (An IME is the module that supports entry of characters from any device - such as a pen - into the OS.)
Emulation: CE includes an exceptionally good emulator that enables application software developers (ISVs) to build and test device-specific applications under Windows 2000 or XP without having actual CE device hardware. This can represent a significant cost saving for the ISV during the development of a new CE hardware device, since early prototype hardware is often quite expensive (e.g., $5K per device).
Real-Time Performance: CE has been enhanced for use in devices such as industrial controllers that require high-performance real-time response to interrupts. The response time has been shortened ("low latency") and the maximum response time has been reduced ("bounded deterministic system performance"). This allows CE to claim it has a "hard real-time kernel," in RTOS jargon. Other enhancements to support real-time include capabilities such as nested interrupt support and protected virtual memory.
There are four new features in CE .Net that allow CE devices and applications to function as a client in Microsoft's .Net architecture, as follows (see the sidebar on .Net for more information):
Support for XML and SOAP: XML and SOAP are basic building blocks used in writing applications that access web services.
Support for .Net Compact Framework: This is a hardware-independent program development and execution environment for applications on resource-constrained CE devices. It's a fundamental part of support for .Net.
Passport Authentication: CE .Net includes Passport, which can eliminate the need for developers to build proprietary customer-authentication systems.
Standard Software Development Kit (SDK) for CE .Net: Using the standard SDK allows developing applications with what Microsoft calls "near-global portability" across all devices built with CE .Net. As noted earlier, applications written for Pocket PC 2002 won't run on devices running "plain" CE 3.0 or HPC 2000, so this is a move in the right direction.
Device Development Tools
The basic tool that an OEM uses to build a custom version of Windows CE is the Platform Builder. For CE .Net, this tool has been enhanced to provide 12 pre-configured platforms, as follows:
When an OEM selects one of these platforms in the Platform Wizard, an appropriate subset of CE .Net's 369 possible components is automatically included in the OS image for the custom device. This list illustrates very clearly the range of devices that Microsoft is targeting for Windows CE .Net.
- Cellular phone/smart phone
- Custom device
- Digital imaging device
- Industrial automation device
- Internet/media appliance
- PDA/mobile handheld
- Residential gateway
- Retail point-of-sale (POS) device
- Set-top box
- Tiny kernel (smallest possible OS)
- Windows thin client
Additional capabilities and tools have been added to CE to make the system developers' life easier, including such things as a procedure call profiler to identify performance bottlenecks, a kernel thread profiler to help track down timing problems, and a shared debug Ethernet driver that allows an application and the debugger to share a single Ethernet port.
CE .Net entered Beta in April 2001, so Microsoft has been working on it for a while (for reference, CE 3.0 was launched in June of 2000). In most major programs such as this, Microsoft usually works closely with a group of "early adopter OEMs" who will be the first to ship devices using the new OS. Table 1 lists some of the CE .Net devices that have been announced by the early adopter OEMs.
According to Microsoft, new versions of CE should be expected every 12 to 18 months, so it will be quite a while until Macallan is released. In the meantime, a more interesting question is, when will the Pocket PC group switch its foundation from CE 3.0 to CE .Net? Microsoft's stated goal is to synchronize the schedule more closely between the CE .Net group and the go-to-market-solutions groups. However, since the former is the platform on which the latter builds their products, there will always be some lag between the two. Given that Pocket PC 2002 was announced in October 2001, and that CE .Net was announced three months later, it's certain that the next version of Pocket PC (PPC 2003? PPC .Net?) will use CE .Net as its foundation.
For More Information
Geoff Walker, January 7, 2002