Department of Information and Computer Science
University of California, Irvine
peymano at ics.uci.edu
The workshop announcement states in regard to the WWW that "the software engineering community is now faced with two significant challenges and opportunities on:
But the WWW is more than a new technology for software engineers to leverage and shape for our problems. The WWW is an enabling technology. The Web has the potential of changing software development as dramatically as the transistor and microprocessor changed computer architecture.
An enabling technology does this by changing fundamental assumptions which are ingrained in our discipline. For example, the microprocessor changed the reliability, cost, transistor density, and performance assumptions underlying hardware design. Changing these underlying assumptions resulted in new design approaches and broadened the practical scope of its use.
The central premise of this paper is that the Web changes some of the fundamental assumptions underlying existing software engineering discipline. Consequently, the Web has the potential for changing our notion of the software artifact itself and the processes by which it is constructed.
Predicting the impact of the Web on software engineering is difficult. Instead, we focus on the changing assumptions implied by the Web. We believe it is more effective to state the catalysts of change than to predict their effects. Since the Web itself is rapidly changing, our list is bound to grow in length.
Software producers have begun using the Web to advertise their products, and provide product literature, product support, and early prototypes to customers. Distribution costs are significantly lowered in comparison to tradition distribution channels which require product packaging, space on store shelves, and warehousing costs.
The Web enables new software pricing models, such as per use or
per function. The Web also makes the distribution of small
applications economical. Such applications, freely distributed by
software producers, may provide an effective means to advertise
software and services.
Both keyword- and categorization-based techniques have been used as
mechanisms to support Web-based component repositories. Gamelan, a popular Java component
and resource repository, has indexed approximately 6,000
The subsequent sections of this paper explore one of these changing assumptions, the Web as a new medium of information exchange, in the hopes that a more detailed discussion will more clearly demonstrate the dramatic changes that the Web represents.
The software artifact has evolved as the communication and distribution medium available to it has evolved. Because the Web represents a new medium of information exchange accessible to the software artifact, it has the potential to change the software artifact.
Traditional software distribution mediums include magnetic tape, floppy disk, CD-ROMs, and networked PCs. Consider the CD-ROM's effects on the software artifact and its distribution. The tremendous capacity provided a cost effective mechanism to distribute large software systems and data. Multimedia reference and entertainment software represented a new class of systems that took advantage of the unique properties of the medium.
Even though we are at its early stages, some of the Web's effects on software is already apparent. Miniature applications, called applets, have become commonplace on the Web. Several interesting properties set them apart from traditional software applications:
In effect, software has inherited several properties of the Web medium. In the cases distinguished above, it in essence behaves as another browser content type. In order to display a Web page, the browser downloads all the elements of the Web page, and for each one determines the content type of the element and invokes the associated content handler. In the case of applets, the browser's content handler is an interpreter for a virtual machine which essentially executes the content.
Initially, the Web could be characterized as a medium based solely on a "pull" content model, in which users explicitly request pages to be downloaded from the server to the browser. Recent technologies (e.g., Marimba's Castanet) built atop the Web infrastructure have begun to extended the medium to support a "push" content model as well. In a push content model, users can register interest in a Web page and the server sends the Web page to the browser whenever it changes. Other communication mediums that are based on the push model include television and radio broadcasting. A medium supporting the push model has the potential to further differentiate software that effectively leverages its properties. The distinguishing characteristics of the push model for software includes the ability to:
The existing set of technologies provide some of the facilities needed to effectively leverage the properties of the Web, but they fall short in several respects. In this section, we discuss the effectiveness of browser plug-ins, Java applets, ActiveX components, and Castanet in enabling software systems to leverage the Web communication and distribution medium.
Browsers "plug-ins" have enabled independent extension of media types, thereby enabling third-parties to extend the browser without changing browser source code. A plug-in encapsulates the functionality required to display a particular content type as a software component (typically implemented as a dynamic link library). When the browser is executed, it determines which plug-ins are available and the content types they support. The browser augments its internally supported content types with those supported by plug-ins. When the browser downloads an element from a Web page whose handler is provided by a plug-in, the handler is loaded and executed to display content within a window region determined by browser [NPA96]. But plug-ins suffer two shortcomings that prevent them from taking full advantage of the medium: (1) users must explicitly request that a new plug-in be downloaded, and (2) users must manually install them which usually requires quitting and restarting the browser so that the new plug-in can be recognized.
Java applets and ActiveX components are two mechanisms for implementing applets. From our perspective, the most significant differences between the two are (a) ActiveX components are applets written for specific platforms whereas Java applets are byte-code interpreted and chiefly platform independent; and (b) the security model adopt by them. The ActiveX security model resembles that of a software retail store in which the company that developed the applet is identified and the user is asked to approve its execution. Once approved, the applet has unrestricted access to the client machine. The Java applet security model is based the "sandbox" model, in which applets are executed without explicit user approval but has severely restricted access to the client machine.
Unlike plug-ins, ActiveX and Java applets are downloaded, installed, and executed automatically and without user involvement. But both suffer several shortcomings that restrict the degree to which they can leverage the medium. Both technologies restrict the applet's execution scope to a single Web page. As such, an applet's execution context cannot be preserved beyond a Web page unless the context is transmitted to the Web server as the user leaves the source page, and subsequently downloaded when the user arrives at the destination page.
Security restrictions inherent in the Java "sandbox" model provides further restricts on Java applets. Java applets cannot tailor their behavior to the user's environment since they are restricted from querying and otherwise accessing the client machine. Since each Java applet runs in its own sandbox, direct inter-applet communication is prohibited. Applets can only communicate if (a) both were downloaded from the same Web server, (b) each is explicitly aware of one other, and (c) all communication is routed through the common Web server.
Marimba's Castanet technology is representative of early efforts at extending the Web communications medium to support the push model. Two components comprise the functionality: a client-side component that allows the user to register interest in and receive content from multiple sources, and a server-side component that maintains user interests, manages distribution, and transmits the content as it changes.
Castanet distributions are independent of browser Web pages, so distributed content may persists until the user explicitly unregisters interest in the content. This alleviates the execution scope limitations inherent in the Java applet and ActiveX approaches. Castanet's server-side component may be extended using a plug-in mechanism, thereby permitting the content it distributes to be personalized on a user-by-user basis.
Existing Castanet technology is based on Java applications, thereby avoiding the severe security restrictions of Java applets. But Castanet content has limited access to the users client machine, for example file I/O is restricted to a private directory.
But because a separate Java virtual machine is used to execute content provided by each source site, communication among content provided by different sites is restricted.
We have done preliminary work in building an environment that supports access to the Web medium which is less restrictive than the existing technologies in the hopes of investigating the consequences of the medium freely. Although our prototype is incomplete, experiments with it have been encouraging.
Our environment consists of a Web browser, a component repository, a command shell, and an applet incorporation handler. Using the environment, the user can locate a desired applet. By clicking on the applet, the user explicitly requests that it be downloaded. The Web browser then downloads the applet binary and invokes the incorporation handler to process the applet. The incorporation handler uncompresses the applet and deposits it into the component repository. Once applets have been placed in the repository, users can invoke them using the command shell.
Applets in our environment adhere to a canonical structure which requires that they communicate exclusively using event broadcasts. By controlling the event routing mechanism between applets, the command shell allows the user to compose applets in arbitrary ways. In this sense, our command shell is similar to the ability of a UNIX command shell in allowing users to combine UNIX filter applications using UNIX pipes.
All the tools in the environment are written in the Java programming language. The JFox Web browser [Wen96] was integrated by modifying it to recognize our applet content type and to handle the content type using our incorporation handler.
Although simplistic, our environment is unique in that it allows applets downloaded from different sources to communicate under user control. Applets may freely query the client machine and utilize facilities of the host operating system.
The current implementation has only allowed us to investigate the pull model aspects of the Web medium. In the future, we plan on integrating existing push content technology into the environment to enable further investigation.
The properties of the Web medium raise many interesting issues and questions that should be considered and investigated by the software engineering community. Some interesting questions include: