CDE provides standard help APIs and GUI dialogues, but it also delivers a feature-rich SGML DTD (document type definition) compared with the more limited HTML DTD used on the World Wide Web. CDE's help links support hypertext, definition, man page, execution and application-define links. CDE documents are pre-processed for quicker loading. Since these binary- formatted documents are not human-readable, one of their added benefits is that they cannot be reverse engineered when copied, thus preventing copyright infringements. Publishers who provide documents in HTML format are at a disadvantage because complete unabridged duplicates can be made from most browsers.
CDE's ToolTalk is a message brokering system that enables applications to communicate with each other without having direct knowledge of one another. Application clients and servers can be developed independently, mixed and matched and upgraded independently through plug-and-play. Applications registered to handle message requests act as servers for applications that broadcast their requests. Message brokering is an evolutionary step beyond file sharing, peer-to-peer and ICCCM inter-client communication.
The Graphical Desktop Korn Shell provides much of the desktop's Motif GUI, services, help, workspace management, session management and ToolTalk plug-and-play. Developers can prototype and deploy with the standard ksh93 scripting language. This means that small to moderate-sized programs can be written, then interpreted on any CDE-compliant system without any additional work.
The dtksh shell script in Listing 2 is a conversion of the C program that was illustrated earlier. Unlike the popular Tcl/Tk shell and GUI, dtksh has a nearly one-to-one migration path to native Motif for performance. With dtksh, code can be easily migrated, and developers find that their knowledge transfers easily between C and dtksh.
CDE not only provides a new set of Motif, Drag-and-Drop, Desktop Widget, Help, ToolTalk and DtKsh APIs, but it also provides system services in which applications can participate and follow. The desktop services provide the login manager, session manager, color server, workspace manager and ToolTalk server. It is tempting to provide these features in large software suites; however, if developers try to mimic these desktop services, precious development time and energy is taken away from creating the actual products.
The desktop login manager provides the basic X display manager protocol (XDMCP) to manage login sessions for X terminals on the network and workstations on the desktop. The login manager starts up the X server on the bitmap display; it also initiates the session manager.
The session manager uses a set of conventions and protocols that enable the desktop to save and restore a user's session from one login session to the next. Using the session manager, users can also configure a set of sessionetc and sessionexit scripts to be called when logging in and exiting respectively. This enables user-defined tasks to be performed at login and logout.
The key responsibility of the application is to acknowledge the WM_SAVE_YOURSELF message when the desktop is being shut down by the user, as shown in Listing 3. The WM_SAVE_YOURSELF saveProc routine tidies up for the application, then sets the WM_COMMAND property to be saved and reused later by the session manager to restart the terminated applications.
The session manager acts as the color server that controls foreground and shadow colors, limits color use and restricts the creation of colors in the color map. Using applications that conform to the color server reduces the depletion of the color map and coordinates the color scheme of the desktop. If the color map does become depleted, an “unsocial” application is usually lurking somewhere.
The desktop window manager (dtwm) serves as the default window manager for the desktop and extends the capabilities of the Motif window manager. It provides a control panel for the desktop to launch applications. Its multiple screens, or workspaces, allow users to switch between screens.
Desktops are often considered mutually exclusive end-point solutions, such as web browsers or collaborative software suites. However, CDE views them as application groups or workspaces being managed and serviced by the desktop infrastructure. The desktop window manager is ideal for managing workspaces for Internet suites and collaborative tools.