Sponsored Link •
Although Java applets demonstrated a new way to think about software delivery and use, they brought with them some new constraints on software size, structure, and security. This article takes a look at Marimba Castanet, one company's approach to dealing with the constraints imposed by applets.
When Java landed on the world stage in the spring of 1995, it represented a paradigm shift for the software industry. It demonstrated a new way to administer and deliver software in the dawning network age. Java technology was well suited for networked environments because of its platform independence, built-in security mechanisms, and robustness. Java applets showed how software could be administered on a single server and downloaded to multiple clients via a Web browser. When a new version of a program was ready, only the server needed updating. Clients would automatically download the new version the next time they accessed the Web page.
The trouble with applets
Although implementing programs as applets embedded in Web pages greatly simplifies some aspects of software administration and delivery, it also places some constraints on the form and size of the programs. For example, developers are compelled to use the browser metaphor for the user interface of their programs. In this metaphor, the various functions of a program are divided among several applets, which are placed on different Web pages. Applets are downloaded when the user accesses the containing Web page. Although the browser metaphor can be a simple, easy-to-understand user interface for some programs, it can be cumbersome for others.
On the other hand, it is possible to write an entire program as a single applet that opens up a separate window from the browser, thus avoiding the browser metaphor. However, a different problem manifests itself as an applet grows larger, because applets usually are downloaded across the network each time they are used. When people want to use an applet, they go to the appropriate Web page in their browser, wait until the applet is downloaded across the network, and then use it. Once an applet exceeds a certain size, it becomes painful to use because it takes too long to download.
The size limit of applets hinges on the time it takes the applets to download. Various factors, such as network bandwidth, network traffic, and user patience, influence an applet's maximum practical size. Over time network performance can be expected to improve, thus bringing some relief to the applet size limitation. However, just as user expectations for software have increased to coincide with advances in available disk space, RAM, and processing power, so too will user expectations for network-delivered software likely increase as network bandwidth improves.
Popular browsers have also imposed one other restriction on applets in the interest of security: Applets downloaded across the network aren't allowed to read or write files on the local disk. This restriction may be relaxed in the future, by allowing the user to specify varying degrees of access to the local disk depending upon the source of the applet. Until that day comes, however, this security restriction is one of the barriers preventing applets from becoming a viable solution for many types of software problems.
A new channel for network-delivered Java
A few weeks ago a new technology was unveiled that addresses some of the problems with delivering software as applets. Marimba Inc., founded last February by four former members of the Java team at Sun, has released a beta version of a product called Castanet. Castanet enables the network delivery of bundles of software and content, which they call channels. In the first version of Castanet, a channel is either a Java program or a set of HTML pages. Clients use what Marimba calls a tuner, which allows users to subscribe to channels. The server uses what Marimba calls a transmitter to manage a channel. Here's a graphical depiction of Marimba's model and terminology:
A channel is, at its most fundamental level, a directory hierarchy filled with files. Castanet provides a way to distribute the channel's files and directory hierarchy from a server to clients. When you subscribe to a channel, you get a complete copy of the channel's files and directory hierarchy on your local disk.
Java programs (applets and applications) are composed of class files and, possibly, data files. With little or no tweaking to source code, Java programs can be delivered as Castanet channels. Castanet, therefore, allows Java programs to be delivered across networks without a browser. In this scheme, the Castanet tuner takes the place of the browser. This eliminates the requirement that network-delivered Java programs adopt the browser metaphor, because the program has jumped out of the browser.