Sponsored Link •
|
Advertisement
|
As mentioned previously in this chapter, the original design target for Java technology was embedded devices. This was done in part because given that the desktop was controlled by Microsoft and Intel, embedded devices represented the most open market. But also, embedded devices were targeted because they were destined to play a role in a coming hardware revolution -- the proliferation of diskless embedded devices connected to high-bandwidth (often, wireless) networks.
Three years after Java was first released by Sun, Sun announced Jini. Jini is an attempt at defining an architecture for the "computer" represented by the emerging environment of embedded and consumer devices connected to a ubiquitous network. The Jini architecture relies heavily on network-mobile objects. In a world of Jini-enabled devices, objects fly across the network between Java Platform implementations in embedded and consumer devices, desktop computers, and servers. The Java Platform implementations that will host these network-mobile objects will reside in a great variety of devices and computer hardware, which will be manufactured by many different vendors. This architecture significantly raises the bar for platform independence.
For Jini to work in the real world, objects written by one device vendor will have to execute properly in Java Platform execution environments provided by other device vendors. Testing your network-mobile code on all platforms it will eventually run on, as recommended by the Seven Steps to Platform Independence presented earlier in this chapter, will be basically impossible. Because so many vendors will be producing so many different kinds of devices, with new devices appearing at an ever increasing rate, it will be generally impossible to predict all the places that network-mobile code embedded in any particular device will execute. Thus, other approaches to testing will have to be developed, such as compatibility test suites for network- mobile code. In addition, for Jini to work in the real world, the homogeneity of execution environments must be realized to the greatest extent possible. And lastly, programmers will likely need to consider the possibility of differences in execution environments when they write network-mobile code, and program defensively.
For links to more information about Java and platform independence, visit the resources page for this
chapter: http://www.artima.com/insidejvm/resources
Sponsored Links
|