Check out the new USENIX Web site. next up previous
Next: Thin-Client Programming Model Up: Metis: A Thin-Client Application Previous: Metis: A Thin-Client Application

Introduction

  Fueled by tex2html_wrap_inline442 and other Internet technologies, new re-engineering efforts are underway to develop commercial applications using a thin-client programming model. In a thin-client programming model, the software client would be substantially thinner in that it contains only the graphical user interface (GUI) and a small amount of essential application logic. Most of the application logic runs as services on various servers throughout the network. The client software is written using Java so that it can run on any client hardware. The thin-client model is distinct from its hardware counterpart, known in the industry as the Network Computer. However, the thin-client programming model can be the force that makes Network Computers widely deployed.

An application development paradigm becomes popular if appropriate tools are available that enable developers to leverage its benefits easily. While the Java programming language[1], Java Development Kit (JDK) [2], Java component technology [3], and remote access mechanisms [4, 5] enable platform-independent programming, they are only a set of building blocks. Previous work in object-oriented systems suggests that frameworks [6] can be a promising way of achieving widespread use and reuse of software architecture. Therefore, there is a need for a thin-client application framework that is capable of bringing together all parts of an application (the front-ends running on the client and the services available on network servers) and supporting the whole with system services. Lacking such a framework, developers may find it difficult to bootstrap themselves into the new paradigm, and they might resort to an older and less portable methodology such as the Microsoft Windows environment.

Metis, the thin-client application framework presented in this paper, is a related, inter-operable set of objects that enable robust application development in the thin-client paradigm. The goal of Metis is to create a fully server-managed environment for an application, as opposed to the traditional client-server approach. Towards this end, the framework advocates and supports a thin-client programming model where an application consists of application front ends (AFEs) and a collection of backend application-specific services. AFEs rely solely on application-specific services and system services provided by one or more network servers. Thus, AFEs do not depend on local operating system functions. AFEs request services in an abstract manner without specifying the physical location of a service provider. That is, a requested service can be any one of the appropriate service instances available in the network. AFEs bind, on demand, to these network services. The late binding of services allows server manageability, flexibility, and fault-tolerance.

Metis provides Java classes on the client side for locating and binding to a service instance and for switching to an alternate service instance in case of a failure. In addition, Metis provides a workspace-based client environment suggested by a common commercial application characteristic: interacting sub-applications. The Metis workspace hosts and manages a set of sub-applications; each sub-application is in the form of an AFE. The workspace manager provides visual tools to customize the workspace by adding or deleting AFEs. Workspace configuration information is stored on a server.

In the current implementation, the Metis workspace provides the following object instances for use by the AFEs, and the list may grow as additional objects of common applicability are identified:

On the server side, the Metis framework depends on support services including an authorization service that ensures controlled access to the system, a code service that maintains a secure repository of trusted AFEs, and a directory service that presents a searchable access to services. These support services must be fault-tolerant and scalable besides using industry standard protocols. Therefore, Metis uses a directory service supporting the Light-weight Directory Access Protocol (LDAP) [7]. Such directory services are likely to become common place and even more robust in the future.

In addition to the above mentioned services, Metis requires printing and data-storage services, and a mechanism for launching and managing application-specific services on various servers. The latter can be accomplished, for example, using the servlets mechanism [2].

The rest of the paper is organized as follows. Section 2 presents the Metis thin-client programming model, sections 3 and 4 describe the Metis framework and implementation respectively. Section 5 discusses the related work, and Section 6 concludes the paper.


next up previous
Next: Thin-Client Programming Model Up: Metis: A Thin-Client Application Previous: Metis: A Thin-Client Application

A. Purakayastha
Mon May 5 15:03:42 EDT 1997