|
Full text of:
Hall, H. & Read, T. (1996). Java: an explosion on the Internet. In D.I Raitt & B. Jeapes (Eds.), Proceedings of the 20th International Online Meeting, London, December 3-5 1996 (pp. 49-55). Oxford: Learned Information. Keywords: application development; information retrieval; Java; network computing; programming languages. |
|||
|
Abstract Summer 1995 saw the release, with considerable media attention, of draft versions of Sun Microsystems' Java language and the HotJava browser. In the past few months Java has been heralded as the latest "killer" technology in the Internet explosion. Licensing terms have been agreed between Sun and numerous companies including Microsoft, IBM and Netscape. Java is set to change the way that people interact with Intra/Internet. Discussed in this paper are:
|
|||
|
1. Introduction: Domestic interface developer to Internet dream product Java was born as Oak, a programming language to be used for the development of user interfaces for consumer electronic devices such as video recorders, telephones and products of Video on Demand (VOD). Whilst anticipated growth of the VOD market has been slow to materialise, interest in the Internet has surged. Oak became Java and, with little active marketing, software developers rushed to adopt it to write their Intra/Internet applications. The attendance record of 6000 delegates per day at JavaOne, the first Java developers' conference held in San Francisco's Moscone Centre at the end of May 1996, demonstrates an unprecedented eagerness for such a young product. For information professionals curious about Java enthusiasm, this paper outlines the programming environment's characteristics and complementary products; its strengths as a software development tool; competitor products and online applications. Inevitably any discussion of this kind necessitates the use of technical terms and acronyms, and for this reason a glossary is appended to the paper. |
|||
|
2. Java environment and products Since the release of draft versions in Summer 1995 the Java environment has been the subject of an immense amount of media coverage. Several other complementary Sun products which use the Java name have also been developed, and subsequently discussed in the computing press. These include the HotJava browser; Java Virtual Machine; JavaOS and JavaChips. To the casual observer the inter-relationships of these products are difficult to distinguish. A discussion of this "Java jigsaw" serves to put the pieces together in a meaningful fashion. |
|||
|
2.1 Java programming environment
Figure 1 - A Java program |
|||
|
2.2 HotJava
|
|||
|
2.3 Java Virtual Machine
|
|||
|
2.4 JavaOS
|
|||
|
2.5 JavaChips
|
|||
|
3. Software developer and user dilemmas - Java's responses The extent to which a programming environment minimises the software developer's difficulties in the design of applications helps determine the rate of adoption of any new product. Similarly there are criteria of importance to those who want to use the technology to provide services, and to the end-user of applications, regardless of language. Java's potential can be assessed against the common problems of platform dependence; programming quality; procedural programming; security and inter-operability. |
|||
|
3.1 Java's platform independence: "Write once and run anywhere... safely"[1]
The biggest benefit of an application written in Java is that it can run on any major platform. The Java Virtual Machine described above provides the same functionality to Java applications regardless of hardware configuration. Windows NT, Windows 95, Windows 3.11, MacOS 7.x, Solaris, HP-UX, AIX, O/S2 and various network devices are all "Java-compatible". This represents a huge potential market for the software developer, and instead of putting effort into locating a potential client-base, the real priorities of software development emerge: the application's functionality, user interface and quality. The chore of learning and keeping up to date with programming languages for each different environment is eliminated. |
|||
|
3.2 Java promotes quality: reduced chance of program error
Certain features common to other computer languages have been deliberately left out of Java. For example, there are no pointers, no goto statements and no need to manage memory explicitly since "garbage collection" is automatic. By removing these, and a number of other unnecessary language constructs, the threat of programming error is greatly reduced. |
|||
|
3.3 Java and object-orientation: new, richer applications
Java is totally object-oriented so that developers can re-use applets and class libraries that have been developed by themselves and others to create new and richer applications. |
|||
|
3.4 Java security: cynical software, download limits and digital signatures
With this in mind the Java Virtual Machine, which runs Java applications, has been designed to be sceptical of any code that the user executes. It assumes the worst, checks the integrity of the byte-codes and passes them through a security algorithm. This is to ensure that none of the basic rules set in the specification are by-passed before a program is executed. Applications downloaded from the Intra/Internet are prevented by the Java Virtual Machine from performing many basic functions, such as reading from or writing to the hard disk, on the user's machine. Trusted applications or applets installed locally are exempt. Any applet performing in an MS DOS virus-like manner would normally be obstructed. Security scares relating to Java have been attributed to implementation errors within the Java Virtual Machine, or very specific circumstances such as situations where cyberthugs have persuaded their gullible prey to save and run unsafe programs locally. Security is under constant review in an attempt to close any loop-holes that might be exploited. Digital signatures will give users an additional assurance that download requests are met with the genuine article. |
|||
|
3.5 Java exploits the commercial promise of the network
In many cases Java expects that the classes or components that constitute an applet or application will be loaded from a remote server. The security scheme prevents the application from then communicating with any other system arbitrarily. Remote method invocation (RMI), however, allows interaction with the distant application. One major benefit of this is that little code needs to be downloaded. Another is that service providers are able to hide the actual implementation of what they offer. Examples of commercial uses of networked Java applications include the calculation of insurance policy payments or the execution of online searches based on remote user input. The commercial organisation protects its intellectual property rights to methods in use by limiting downloadable code to algorithms necessary to complete the transaction. |
|||
|
3.6 Java and application integration: "the network is the computer"[2]
The current de facto standard for integration on the desktop PC is Microsoft's Object Linked Embedding (OLE). This allows users to drop data into applications (OLE drag and drop); link or embed data from one application into another (OLE documents); automate data and function shipping between documents (OLE automation) and supplement the functionality of an application with custom extensions (OLE Custom Controls). The main thrust of this approach is to synthesise business solutions by bolting together "component" software on the desktop using a binary application interface standard (Ref 2). In the UNIX environment and beyond the picture is rather different. The network is the focus for application integration. The major players, such as IBM, Hewlett-Packard, Digital and Sun, conform to the Object Management Group's Common Object Request Broker Architecture (CORBA). Each company implements its own version of this standard. For example Sun uses NEO Workshop, which includes a CORBA compliant Object Request Broker (ORB). Applications components, written in any computer language and to this standard, can then be glued together across the network and upgraded or re-engineered as appropriate. Straddling the gap between these two approaches are products such as Iona Technologies Ltd's Orbix. Through use of Interface Definition Language (IDL) remote objects are described. The Orbix tools then create an OLE automation server for the PC. This can be called from applications such as Microsoft Excel via Visual Basic. This approach allows considerable freedom to integrate information found from a variety of sources across the Intra/Internet. Developers are striving to break down their software into smaller, more manageable pieces and thereby move away from single monolithic applications. If the interfaces are well defined and conform to standards then users should be able to choose to use and integrate "best of breed" software packages to fulfil their business requirements. The arrival of the Intra/Internet and dynamically extensible products such as Netscape v2.0 and the HotJava Browser have broken a potential Microsoft monopoly in this arena. Microsoft has been moving in the component software direction since the release of OLE v1.0, but until recently it has been firmly focused on the desktop only. Commercial agreements with Digital, Software AG and others are intended to make OLE/COM available on multiple platforms and, through the use of Distributed Computing Environment/Remote Procedure Calls (DCE/RPCs), network ready. In September 1993 IBM and Apple announced their equivalent technology called OpenDoc and DSOM which provides similar functionality in a multi-platform environment. This was an attempt to break the Microsoft stranglehold, but despite a number of supporters the project results have not met with much visible success or publicity (Ref 3). When Java was released in mid-1995 both source code and early access products were made freely available on the Internet for both commercial and academic review. It would now appear that Java has leap-frogged OpenDoc as the main competitor to OLE/COM as the preferred option for component software development. For it to succeed on the desktop it needs to provide peer level integration with Microsoft Internet Explorer as the potential vehicle (or "container" in the industry jargon) of choice. Java Beans fits the requirement of supporting OLE automation, drag and drop and OLE controls. This defines an API for application developers. The completed applets integrate tightly with the environment in which they are executed. A whole range of new opportunities for the implementation of a corporate desktop results from these developments. It is possible that over the coming years the browser becomes the container for application delivery with information and data being drawn from both the Intra and Internet seamlessly into a single interface. Just as the IBM PC supplanted the IBM 3270 terminal as the industry standard desktop, so may the low-cost network computing device slowly erode the dominance of the "Wintel" PC. This will be welcome news in organisations where computer administration costs are burdensome. A device that is simply plugged into the network is cheaper to service than a suite of PCs (Ref 4). |
|||
|
4. Java's competitors Developments in this sector of the information industry race ahead at speed. Alliances are formed and products launched, leapfrogged, re-packaged or dropped with alarming haste. The two other major players are Microsoft's ActiveX and Inferno from Lucent Technologies. |
|||
|
4.1 ActiveX
|
|||
|
4.2 Inferno
|
|||
|
5. Java applications Java and the Intra/Internet have the potential to change the way people work and obtain information, products and services over the networks. |
|||
|
5.1 Purchase of goods online
A route to market that involves much lower overheads than traditional options may be established. This could squeeze the market for established firms and in turn give rise to a new breed of provider of the Yahoo ilk (Ref 6). With only a Java'tised home page as the shop window the old maxim of "Caveat Emptor" may well be in order as there will be little to distinguish the major players from the small time outfits. |
|||
|
5.2 Improved access to corporate information resources
|
|||
|
5.3 Java applications and information services provision
One of the most obvious areas for application of Java in the library context is for information retrieval (IR). Applets have already been implemented for some IR purposes. Examples include an applet called Sketch and Fetch that offers an interface between a journal and a chemical database, which was announced in April 1996 (Ref 8); staff at Cambridge University Press have written code to allow hierarchical searching over subject areas (Ref 9). The Edinburgh Engineering Virtual Library (the EEVL Project based at Heriot-Watt University and funded as part of the British eLib Programme) uses Java as one of the tools for building a gateway to high quality web resources in engineering. Java was chosen for constructing a customised web server in preference to C++ because of its ready availability and ease of use. At the time of writing Java applets are being developed to support the searching and browsing options that EEVL provides. They will allow a free floating window containing the options so as to save users the trouble of reverting to the search page within the browser (Ref 10). This approach could be applied to OPAC design to improve interface and search capabilities. Applets incorporating help routines or to set and save user profiles and previous searches improve service to the library catalogue user. National Semi-conductor built a product catalogue of some 30,000 items with Java that satisfies customers on various platforms quickly (Ref 11). Java may become an important tool in user education. Multimedia tutorials can aid in developing information skills such as competence in database searching (Ref 12). It is relatively easy to suggest applications for a new technology in the library environment, and the examples given show that with adequate resources these can be brought to fruition. However, information services personnel face a number of difficulties in integrating technical innovations, and these can limit the adoption and exploitation of new technology which, in ideal circumstances, could serve user information needs. Java might be regarded as a perplexing "Just-Too-Fast" development (Ref 13) built up by excessive media hype, and library staff in particular may feel cautious in exploring its potential. As Crawford and Gorman (Ref 14) caution "... librarians have been urged to use almost every one of these innovations immediately to protect their libraries from becoming irrelevant" and the result has been library stock rooms littered with equipment defunct after six months of use. Many (often public) cash-poor library services may be obliged to sit and observe developments, unable to afford investment in equipment or training despite enthusiasm for what looks likely to become part of the standard set of tools to access information objects on the network. |
|||
|
6. Conclusions In the computer industry marketing matters, and any hype certainly helps focus attention on a product. Sometimes, however, it frustrates those who want to keep up to date with developments, yet find it difficult to penetrate beyond the hyped messages. At this stage it can be concluded that Java may not be relevant to everybody who follows the computing press or navigates the Internet. However, in the future few will avoid its influence. What Java does offer now is a greater choice of tools for software development for several platforms, easing developer decisions on market penetration and choice of programming language. End users can benefit from the enhancements Java brings to web page design. In the field of library and information science the most obvious applications are in information retrieval. Long term, Java's legacy is likely to lie in the shift towards true network computing. |
|||
|
References
1. Klein, Robert (1996) "Doing the Java jive" New electronics 27 February 1996, 39-40.
|
|||
|
Footnotes
[1]Dr Alan Baratz, JavaOne Conference, Moscone Centre San Francisco, 29th May 1996. |
|||
|
Glossary |
|||
| ActiveX | Microsoft's competitor of Java |
| Alpha | Digital chip family |
| API | Application Programmatic Interface |
| Applet | Programs created in Java |
| Blackbird | Microsoft Internet Studio product, now defunct. |
| Café | Symantec's development environment for writing Java applications |
| CISC | Complex Instruction Set Computer |
| Class library | Set of software components for a particular function |
| COM | Component Object Model |
| CORBA | Common Object Request Broker Architecture |
| DCE/RPC | Distributed Computing Environment/Remote Procedure Call |
| DIS | Virtual machine component of Inferno |
| DSOM | Distributed System Object Model |
| HotJava | Internet browser created in Java |
| IDL | Interface Definition Language |
| Inferno | Lucent Technology's competitor of Java |
| Internet Explorer | Virtual machine component of ActiveX |
| IR | Information Retrieval |
| Jakarta | Microsoft's development environment for writing Java applications |
| Java | Sun Microsystems Intra/Internet programming environment |
| Java Beans | A Java API that provides peer level integration with OLE |
| Java Virtual Machine | A "padded cell" environment for the running of programs written in Java |
| Java Wallet | An API for Internet commerce |
| Java Workshop | SunSoft's development environment for writing Java applications |
| JavaChips | Pico, micro and ultra Java CPU specifications |
| JavaOne | The first Java developers' conference held in San Francisco, May 1996 |
| JavaOS | Operating system to support the Java Virtual Machine |
| JDBC | Java Database Connectivity |
| Latte | Borland's development environment for writing Java applications |
| Limbo | Inferno's programming language |
| NEO workshop | A software development product including Sun's implementation of CORBA |
| Oak | Java's ancestor, a programming language for domestic appliance interfaces |
| ODBC | Open Database Connectivity |
| OLE | Object Link Embedding |
| OpenDoc | Apple/IBM strategy for component software |
| ORB | Object Request Broker |
| Orbix | Iona Technology's MS Windows/CORBA integration product |
| PDA | Personal Digital Assistant (e.g. the Apple Newton) |
| PowerPC | IBM chip architecture |
| RDBMS | Relational Database Management System |
| RISC | Reduced Instruction Set Computer |
| RMI | Remote Method Invocation |
| Solaris | Sun's UNIX operating system |
| SPARC | Scaleable Processor ARChitecture |
| Styx | Inferno's communication protocol |
| TV set top box | Control panel for VOD applications |
| VOD | Video on Demand |
| Wintel | Windows/Intel |
| Hazel :: CV :: Publications :: ESIS Home Page |