The Object Component Desktop (OCD) provides a platform and desktop environment for network enabled applications to be downloaded and run on client machines on the fly. OCD uses the Java Network Launching Protocol (JNLP) to facilitate application launching in the environment and provides a flexible UI framework for interacting with the OCD Desktop.
The OCD Environment consists of the following major components:
At each independent layer the application can be customized or configured for specific purposes. Applications can be written to replace the shell and just take advantage of the Netx client, or applications can be written to provide additional services for the shell. The main point of integration for the environment is simply to write JNLP applications that run from the Shell and that take advantage of the services provided by the environment.
The Netx application is the JNLP client implementation for the OCD project. Netx is a small footprint application (120k) that acts as a bootstrap for the OCD environment. Netx can be used to launch any JNLP application from the net. This enables applications to be easily published on the net for client execution. Netx provides the following core functionality:
Netx improves on the basic JNLP Specification by allow trusted applications to run in the same VM space as other applications hosted by Netx. This provides a huge memory advantage over regular JNLP environment. Also by using the same VM to run applications, extensions of the same version can be shared between application instances allowing applications to more easily share information.
The OCD Shell is the main component in the OCD environment. The shell application is a typical Java Application that is designed to run on Netx using JNLP. The shell acts as the session manager for the environment and simply starts a set of services that interact to provide the environment. In this way the entire OCD environment can be completely customized for different purposes by changing the services that are started. In fact the shell infrastructure can be reused to provide completely new applications that have nothing to do with OCD.
By default the main service started by the shell for the OCD environment is the Desktop Service. The Desktop Service provides the Desktop Metaphor for the environment and acts as an entry point to launching additional applications or services. By configuring the Shell to start different services other then the Desktop a different UI paradigm could be used. For example a Set top Box UI service could be started in place of the Desktop and the whole system could be used as a user interface for a set top box.
The OCD system is made up of several integrated Services. The Services make up the various components of the environment. Each Service a Java Application with a Main method that is configured to be started by the shell. Each service can be placed in a JNLP extension which enables it to be downloaded off the net. Some of the Core Services of the environment are: Desktop, BLX, DCF, XMLParser, and CmdManager.
The BLX (pronounced Blocks) framework provides a powerful mechanism for combining multiple components from across the Internet into a single user interface. Using XML, the BLX framework allows a developer to describe the interaction of UI and Data Components to a user interface hierarchy. BLX relies on the JNLP technology in Netx to provide a mechanism to download Code on the fly for components. The OCD desktop uses BLX to store and mange the entire OCD Desktop.
DCF is a library of high end UI components and utilities used to create interactive client applications. DCF provides base BLX aware components and containers and provides for sophisticated Drag and Drop support. DCF based components also have the ability to live on the Desktop or to reside inside of a UI container. This provides the basic functionality for components like Tiles that sit on the OCD Desktop.
The Command Manager provides functionality for tools plug-in command based options for users. The Command Manager supports factories for local native applications, web URLs, applet URLs, and JNLP URLs. Based on the command passed to the command manager the factory for the specified type can create executable actions based on the commands. This is used by the Desktop to create tiles and menu items that launch web sites and JNLP applications etc. In the future developers can plug new command types into the command manager providing ways to search databases web services for information.
The Desktop Service provides the Desktop user interface for the OCD environment. By default The Desktop contains a Master Tile that provides two docked tile sets along with a command bar for enter commands as described above. The Desktop environment sits on top of the existing OS desktop which allows OCD hosted applications to run side by side native applications. The entire Desktop configuration is stored in XML using the BLX framework. DCF provides the basic building blocks for the Desktop components.
The message bus provides a mechanism for messages to be sent synchronously or asynchronously to one or many message bus listeners. This allows two frameworks to communicate without creating tight coupling between their interfaces. The message bus is used in OCD to request information from services in a way that reduces dependencies.