Of all the available technologies for implementing a distributed intranet, network computers (NCs) have received the most attention. NCs have been brought to market by computer giants such as Sun, IBM, Oracle, and others. Even Microsoft and Intel are trying to jump on the NC bandwagon with their NetPC. As you might have guessed, Java is the programming language of choice for NC software.
In this chapter you'll be introduced to NCs and learn about their advantages and disadvantages. You'll learn about the NC-1 specification and review the NCs that are currently in the market. You'll then focus on the architecture and operation of one particular NC--Sun's JavaStation. You'll learn how the JavaStation works and how it supports both intranet and Internet applications. When you finish this chapter, you'll understand what NCs are all about and how they may be deployed within your organization.
An NC is designed to operate as an integral component of a network rather than as a desktop computer with network connectivity. This difference is subtle, yet significant.
In a desktop PC computer environment, each desktop computer is its own separate domain. Each PC boots locally, maintains its own local file storage, and locally installs most of its applications. These applications are typically compiled into the machine code language that is native to the computer's microprocessor.
The desktop computer's resources consist mainly of application files (word processing, graphics, spreadsheet, database, and so on) that are developed by the desktop user. These resources are "owned" by the user and may be shared over the network. The desktop uses the network for file and printer sharing, access to client/server intranet applications, and access to Internet/Web services.
The desktop user is responsible for maintaining his computer using the help provided by his PC support group. The user is also responsible for backing up his files. If his computer fails, his productivity comes to a halt until his files are recovered and made available on a desktop of a similar configuration.
Contrast the desktop computer environment with that of the NC. In an NC environment, the network is a single common shared resource in which all corporate information resides. NCs extend this resource to employees. Business applications are installed on the network and execute in a distributed fashion across NCs and network servers.
NCs are clients that provide access to the information and applications served by the network. They boot from distributed network servers, load their application programs from these servers, and access files that are stored on the servers. Network applications execute as Java programs on NCs, but their current state is maintained on NC servers. This enables a high level of fault tolerance. If an NC breaks down, you can toss it, plug in a new one, and bring up your network application right where you left off.
Maintenance of network applications and the backing up of user files is periodically performed by server administrators.
The advantages of NCs are tremendous. First and foremost, deployment of NCs causes an important shift in the way computers are perceived and used within an organization. Instead of being the personal information repositories for individual users, NCs are the conduits by which corporate resources are accessed. This shift in perspective from the individual to the organization affects the way that information is created, stored, and disseminated. The end result is greater online collaboration, coordination, and communication. In a desktop environment, employees must leave their computers to attend meetings in order to collaborate, share information, reach consensus, and make decisions. In an NC environment, the enterprise network replaces unproductive meetings with dynamic, online information exchanges that solve critical problems in a timely manner.
NC applications are tailored to organizational and user needs. Instead of purchasing and installing mass market software applications that try to be all things to all people, network applications are developed around NC software products that are tailored to the needs of the enterprise as well as specific users.
The capability to tailor NC applications makes them easier to use. Instead of being locked into a windowed desktop metaphor, NC applications can be designed using whatever works best for the user. For example, the HotJava Views user environment eschews multiple overlapping windows for an easy-to-use pushbutton interface.
Network applications can also balance flexibility and ease of use with standardization. Users are free to tailor network applications to their needs, but they all use the same application. Gone are the problems associated with trying to disseminate files to users running PCs, Macs, and UNIX workstations that run incompatible versions of word processing, graphics, spreadsheet, and other desktop software. Once a new or upgraded network application is installed, it is immediately available throughout the enterprise. Because network applications are configured at the server, the days of scurrying around to each and every user's computer to install new software are gone for good.
Because software is installed centrally on network servers, the organization has more control over the software being run by users. This may mean that users will spend less time playing Free Cell and more time using work-related software.
In addition to the benefits described in the previous paragraphs, an NC is less than half the price of a PC and much cheaper to maintain. Because all software is installed and maintained on network servers, large organizations do not require the huge support staffs needed by those that deploy PCs.
The NC environment is based on the use of open standards. This means that proprietary bottlenecks are eliminated, lowering overall enterprise computing costs. This lower total cost of ownership is a primary consideration for organizations that deploy NCs.
Finally, NCs are based around the use of the Java Virtual Machine and Java Runtime Environment, greatly enhancing application security. In addition, network server security controls can be used to limit the access of individual users.
While there are a number of advantages to using NCs, there are also some disadvantages. The most significant shortcoming is the current lack of software applications. This disadvantage is quickly diminishing, however. Major software houses, such as Star Division GmbH, are porting complete office suites to Java. Given the current interest in Java, it is expected that additional vendors will develop Java application software.
Another short-term disadvantage of NCs is that they are new. Some individuals do not like change, and the transition to network computing is a significant one. In any organization there will be individuals who whine, "I liked it better when we used Windows."
NOTE: While the adoption of the NC-1 standard has completed the standardization of NCs, no standard has been adopted (as of this writing) for the network servers that are used to provide services to NCs. Sun, IBM, and other companies are currently developing this network server standard.
A common problem for any organization that moves to a network computing environment is figuring out what to do with legacy hardware and systems. Until legacy applications are ported to the network computing environment, the most prudent solution is to let the legacy systems peacefully coexist. After porting, the system hardware can be converted to network computing resources. (Sun is working on a product, called JavaPC, that will convert low-end PCs into NCs.) PCs, UNIX, and Macintosh systems can be used to run NC applications by running Java client software on browsers or local JDK installations.
Some people fear a lack of control when they make the transition to network computing. Because network applications are configured on network servers, users no longer need to tinker with their systems to install, uninstall, and reinstall software. This is a blessing in disguise. By removing the capability to install and configure applications, you are freeing users to perform their jobs instead of playing with their computers. On the other hand, any sizable NC environment will require a suitable stable of wizards to maintain the network servers.
Because NC applications are distributed across the enterprise network, continuous and reliable network service is essential to business operation. Any significant network failure can bring an organization to its knees. The potential for network failure can be offset by the use of redundant servers, network topologies, and routing strategies that minimize failure impacts.
Now that we've summarized the advantages and disadvantages of NCs, you're probably wondering exactly what an NC consists of. In order to standardize NCs, Sun, IBM, Oracle, Netscape, and Apple created the Network Computer-1 (NC-1) specification. This specification identifies the following minimum hardware and software capabilities:
From the preceding list, you can see that NCs are reasonably well-stocked. What's missing from the list is hard or floppy disk support. Instead, the specification encourages the use of the BOOTP protocol to boot the NC from a network server.
NOTE: Most companies provide additional features besides those identified in NC-1.
A number of vendors have released NC products that meet the NC-1 standard (or at least come close). These products are summarized in the following subsections. The Sun JavaStation is covered later in this chapter in the "JavaStation" section.
The IBM Network Station family of products (http://www.ibm.com) meet the NC-1 specification and run on PowerPC microprocessors. The Network Station 1000 is the most powerful product in this family. It comes with 32MB of RAM and is expandable to 64MB. All Network Stations provide extensive terminal emulation capabilities, including X Window, IBM 3270, and IBM 5250 terminal support. They also provide the capability to run Windows applications remotely.
The Network Computing Devices Explora NC (http://www.ncd.com) runs on a high-performance 64-bit R4700 processor. It offers a 1600¥1200 pixel monitor and an array of advanced multimedia options. It also provides options for accessing UNIX, using X-Windows, and Windows applications, using the WinCenter Windows Application Server.
The HDS Network Systems @workstation (http://www.ncns.com) is an NC that is comprised of an X terminal with the JVM and Netscape Navigator. It runs on the Intel i960 processor using the HDS netOS operating system. It comes with 4MB RAM and is expandable to 128MB. A number of other expansion options are available, such as hard and floppy disk drives and PCMCIA slots. A wireless version of the workstation is also available.
Network Computer, Inc. (http://www.nc.com) is a wholly owned subsidiary of Oracle that provides the NC Desktop, NC Server, and NC Card products. NC Desktop is a software product that provides an HTML- and Java-enabled interface for NCs as well as Web browsing, email, and other applications. The NC Server product provides the software needed to manage a network of NCs. The NC Card is used to authenticate NC users to the network.
The Sun JavaStation was the first computer to meet the NC-1 specification and is the premier NC on the market. It provides a 100MHz microSPARC II microprocessor and 8MB of RAM that is expandable to 64MB. It supports 10-BaseT or 100-BaseT Ethernet cards and a single RS-232C serial port. It adds 16-bit audio and a speaker.
The graphics card supports 8- or 16-bit color and screen resolutions up to 1024¥768 pixels. Both 14- and 17-inch monitors are available with .28 millimeter dot pitch. It comes with a PS-2 keyboard and a two-button mouse.
The best feature of the JavaStation isn't its hardware, but that it runs JavaSoft's JavaOS operating system, which is designed from the ground up to support Java applications in a networked environment. The JavaOS is a fast, small-memory-footprint operating system for NCs, PDAs, and consumer electronic devices. The JavaOS optimizes the JavaStation for distributed Java applications.
NOTE: Chapter 52, "JavaOS," is dedicated to the JavaOS.
The JavaStation also comes with the HotJava browser and the HotJava Views user interface environment. These applications provide Web browsing, email, distributed calendar, and other capabilities to NC users.
What makes the JavaStation so special is that it is a true NC--it boots from a network server, loads applications from the server, and uses the server's file system. Furthermore, the JavaStation is stateless in the sense that it maintains all information about the current state of an application on the server.
The fact that JavaStation relies so heavily on the server is a distinct advantage. It enables all client administration to be performed on the server. Support personnel never have to visit a JavaStation. Users never have to install or configure software. This provides a significant cost savings in terms of reduced maintenance costs and millions of man-hours spent by users tinkering with their computers.
The stateless nature of the JavaStation provides other advantages. The user never has to worry about losing data. If his JavaStation fails, he can replace it with a new one, even in the middle of an application. He never has to back up his data because it resides on the server and periodic backup is performed by the server administrator.
JavaStations depend heavily on the network server for their operation. When a JavaStation powers up, it boots the JavaOS from the server using the boot protocol (BOOTP).
After initializing JavaOS, the NC responds to user inputs by loading the client part of network applications from the server and executing this software on the NC. The NC maintains state information on the server and stores application information using the file systems of the network server and other dedicated file servers. The NC makes use of services provided by Web, FTP, mail, and other servers, and uses Java remote method invocation and database capabilities to interact with enterprisewide applications and information repositories.
The Netra j server is the server used by Sun to support NC applications that use the JavaStation. The Netra j server enables network booting of JavaStations using the BOOTP protocol. It also supports the centralized management of applications used by the JavaStations. The Netra j server provides connectivity to legacy systems and databases via the OpenConnect and OpenVista software packages.
Netra j runs the Solaris operating system on UltraSPARC computers. It comes with the Netscape Enterprise Server, JavaStation management and support software, Java software development tools, and Java applications written for the JavaStation. These tools make it easy to set up a JavaStation network. It only takes about an hour to install the Netra server and a JavaStation network.
Software for the JavaStation and other NC-1-compliant NCs is written as Java applets and applications. Applets are the preferred solution because they can be executed from the HotJava browser or other Java-enabled browsers that run on the NC. The use of applets is encouraged because they can also run on non-NC hosts via a browser interface.
NC software can be written as Java application programs. The advantages of applications over applets are that they do not run in the context of a browser window and the security restrictions associated with applets are removed. The disadvantages of applications are that they are less portable and are more difficult to distribute to non-NC hosts.
In general, any Java applet or application that runs on a browser or via the JDK will run on an NC. The advantage of using NCs stems from the low cost of the NC hardware and the even lower costs of maintaining the network application software.
What kinds of applications are being targeted to NCs? Although it is technically possible to run any application written in Java, some applications are more suited to the NC environment. Sun recommends that NC networks be used to initially support a single mission-critical business function (such as customer support, manufacturing, or shipping) and provide general office productivity software (such as Corel Office for Java).
The reason for focusing on a single business function is to make the NC network and its applications more focused and easier to deploy. It's much easier to deploy an NC network to replace a legacy inventory management system than it is to replace all corporate information systems. By handling off a single function at a time, your support staff will be able to incorporate valuable lessons learned into subsequent NC deployments.
The most well-suited applications for NCs are those that require information dissemination and access to databases, and that are limited to a few process-oriented software applications. A good example in the medical field is patient reception and registration. A receptionist could use a JavaStation to enter patient information into a database and schedule a room, nurse, and doctor to treat the patient. NCs could be provided to nurses, doctors, pharmacists, and cashiers for updating the patient's record, entering diagnosis and treatment notes, prescribing/dispensing medication, and billing.
Applications that are ill-suited to NCs are those that require extensive processing and memory support, such as modeling and simulation, event prediction, and software development. However, even these applications could be supported by NC clients as long as the bulk of the computation is performed on application-specific servers.
The focus of the JavaStation is the intranet, and it works well in this environment. A typical intranet deployment of the JavaStation is shown in Figure 42.1. JavaStation thin clients are managed by Netra j servers that provide boot-up, application loading, and data storage capabilities. The JavaStations also make use of other network file, print, mail, and directory servers. The Netra j servers support connectivity to legacy applications hosted on mainframes and high-end workstations. They also provide bridges to legacy database applications. New network applications are developed using open standards and make use of Web, database, multimedia, VRML, and other technologies. These applications are implemented on Web-, database-, and application-specific servers and are accessed via Java-based client software that executes on the JavaStations. The simplicity of JavaStation software maintenance makes it possible to deploy new network applications throughout an enterprise within a single day.
FIGURE 42.1. The integration of JavaStations within a company's intranet.
The JavaStation also supports Internet applications. The integrated HotJava browser and email capabilities, combined with telnet and FTP support, provide JavaStation users with the typical Internet client software used on PCs. The multimedia features of the JavaStation support the audio, video, and graphics capabilities expected by desktop PC users.
In this chapter you learned how NCs work and how they are deployed within an organization's intranet. You learned about a few of the popular NC products, but focused on Sun's JavaStation. This chapter completes Part IX, "Developing Distributed Applications." In Part X, "Database Programming," you'll learn how to connect Java applets and applications to databases.
© Copyright, Macmillan Computer Publishing. All rights reserved.