1.4. Java Embedded Server Technology

Since their inception, the Java programming language and the Java platform have been widely accepted as the way of programming for the Internet. Because the Java programming language is platform neutral, developers can write and test applications in a desktop environment such as the Solaris™ Operating Environment or Windows, then deploy them to the target device. An application written for one device can be directly deployed on another device as long as the other device provides a Java™ virtual machine. The Java runtime environment has the unique capability of loading code securely at run-time from the network. As a programming platform, the Java programming language protects developers from many well-known programming mistakes that have plagued C programmers. It shortens development cycles and boosts code quality.

Having realized the great potential of applications on smart connected devices, and the strengths of the Java platform in addressing this class of software, Sun Microsystems developed and released the first version of the Java Embedded Server product in October 1998. Its architecture represents a unified software programming interface that allows services to work together. (A more precise definition of service in the context of the OSGi architecture is given in the next chapter. Here it simply means a functional component.) A service, as a component, can be programmed to implement any protocol or perform any function in an insulated or cooperative manner. More specifically, the foundation of the Java Embedded Server product, a framework known as ServiceSpace, deals with the following issues that are important for provisioning services to the residential gateway:

  • Just-in-time service delivery. The framework allows for a service to be downloaded over the network when the service is needed. The service may be used once and then discarded or it may be kept persistently on the residential gateway for a longer period.

  • Service updates and versioning. The framework can be used to check quickly the version of a service that is running in a gateway and to update this service dynamically from a remote location. This is very useful for developers of software for embedded devices. These devices have traditionally been loaded with a static application environment. A critical application bug can be expensive to fix. Using the Java Embedded Server product, this is no longer a restriction. A newer version of the software can be loaded into the framework through the network.

  • Service discovery and dependency resolution. To leverage components that others have developed, the framework provides a service discovery mechanism with which a downloaded component can consult a service registry in the framework to obtain and use an existing service. The framework also resolves dependency relations when one service depends on another to function.

Shortly after version 1.0 of the product was released, the cartoon in Figure 1.2 appeared, to the amazement of the members of the project.

Figure 1.2. A misuse of the Java Embedded Server product. It seems to suggest that the general populace is quite ready to accept the prevalence of technology in their daily lives. (Illustration by Phil Frank.)


The Java Embedded Server product has gone through several revisions, including versions 1.0, 1.1, and 1.2. The current version is 2.0, released in August 2000. To simplify and expedite the development process for services, this version is bundled with a customized version of the Forte™ for Java™ Community Edition, an integrated development environment, as well as a number of prepackaged services. The Java Embedded Server version 2.0 software is an implementation of the Service Gateway Specification 1.0, released in May 2000 by the OSGi.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.173.53