A Thin-Client Application Framework
Total Page:16
File Type:pdf, Size:1020Kb
The following paper was originally published in the Proceedings of the Third USENIX Conference on Object-Oriented Technologies and Systems Portland, Oregon, June 1997 Metis: A Thin-Client Application Framework Deborra J. Zukowski, Apratim Purakayastha, Ajay Mohindra, Murthy Devarakonda IBM Thomas J. Watson Research Center Yorktown Hts, NY For more information about USENIX Association contact: 1. Phone: 510 528-8649 2. FAX: 510 548-5738 3. Email: [email protected] 4. WWW URL: http://www.usenix.org Metis: A Thin-Client Application Framework Deb orra J. Zukowski Apratim Purakayastha Ajay Mohindra Murthy Devarakonda IBM Thomas J. Watson Research Center, P. O. Box 704, Yorktown Hts, NY 10598. Abstract This pap er intro duces a thin-client pro- the Java programming language[1], Java Develop- gramming mo del and then presents an ob ject- ment Kit JDK [2], Java comp onent technology oriented framework for developing applications using [3], and remote access mechanisms [4, 5] enable the mo del. The programming mo del and the frame- platform-indep endent programming, they are only work haveevolved from interactions with develop ers a set of building blo cks. Previous work in ob ject- and users of commercial applications. The key as- oriented systems suggests that frameworks [6] can p ects of the thin-client programming mo del are that b e a promising wayofachieving widespread use and the clientdownloads application front ends from the reuse of software architecture. Therefore, there is a network; that these applications rely only on ser- need for a thin-client application framework that is vices found on network servers; that the services capable of bringing together all parts of an applica- are b ound as late as p ossible; and that the appli- tion the front-ends running on the client and the cations interact with each other within the con nes services available on network servers and supp ort- of a workspace. We implemented the framework us- ing the whole with system services. Lacking sucha ing Java Beans and JDK 1.1, and develop ed several framework, develop ers may nd it dicult to b o ot- sample applications using the framework. strap themselves into the new paradigm, and they might resort to an older and less p ortable metho d- 1 Intro duction ology such as the Microsoft Windows environment. TM Metis, the thin-client application framework pre- Fueled by Java and other Internet technologies, sented in this pap er, is a related, inter-op erable set of new re-engineering e orts are underwaytodevelop ob jects that enable robust application development commercial applications using a thin-client program- in the thin-client paradigm. The goal of Metis is to ming mo del. In a thin-client programming mo del, create a fully server-managed environment for an ap- the software clientwould b e substantially thinner plication, as opp osed to the traditional client-server in that it contains only the graphical user interface approach. Towards this end, the framework advo- GUI and a small amount of essential application cates and supp orts a thin-client programming mo del logic. Most of the application logic runs as services where an application consists of application front on various servers throughout the network. The ends AFEs and a collection of backend application- client software is written using Java so that it can sp eci c services. AFEs rely solely on application- run on any client hardware. The thin-client mo del sp eci c services and system services provided by one is distinct from its hardware counterpart, known in or more network servers. Thus, AFEs do not dep end the industry as the Network Computer. However, on lo cal op erating system functions. AFEs request the thin-client programming mo del can b e the force services in an abstract manner without sp ecifying that makes Network Computers widely deployed. the physical lo cation of a service provider. That is, An application development paradigm b ecomes p op- a requested service can b e any one of the appropri- ular if appropriate to ols are available that enable ate service instances available in the network. AFEs develop ers to leverage its b ene ts easily. While bind, on demand, to these network services. The 2 Thin-Client Programming Mo del late binding of services allows server manageability, The key asp ects of the Metis thin-client program- exibility, and fault-tolerance. ming mo del are that the clientdownloads AFEs Metis provides Java classes on the client side for from the network; that these AFEs rely only on ser- lo cating and binding to a service instance and vices found on network servers; that the services are for switching to an alternate service instance in b ound as late as p ossible; and that AFEs interact case of a failure. In addition, Metis provides a with each other within the con nes of a workspace. workspace-based clientenvironment suggested bya AFEs are securely installed and downloaded using common commercial application characteristic: in- a co de service. They are also made `thin' by imple- teracting sub-applications. The Metis workspace menting most of the application logic as one or more hosts and manages a set of sub-applications; each services. Late binding to these services provides: sub-application is in the form of an AFE. The work- manageability, b ecause services can b e moved space manager provides visual to ols to customize the across server machines without impacting workspace by adding or deleting AFEs. Workspace AFEs; con guration information is stored on a server. exibility, b ecause services can b e selected based on server load; and In the current implementation, the Metis workspace fault-tolerance, b ecause a service can b e ob- provides the following ob ject instances for use by the tained from an alternate server. AFEs, and the list may grow as additional ob jects of common applicability are identi ed: The workspace is a container for AFEs, allowing for interaction, as well as providing a shared environ- ment. One imp ortant part of that environmentis Service lo cation and binding ob ject; the authorization information that can b e read from User authentication ob ject; a smart card or provided as part of a logon pro cess Controller ob jects for accessing and managing from an authentication service. The authorization system services such as printing and data stor- information is used rst to determine if a user is al- age. lowed to use the system, and then to identify the user's access rights to available AFEs. Afterwards, this information can b e used directly by the AFEs On the server side, the Metis framework dep ends on to authenticate themselves to the service providers. supp ort services including an authorization service Figure 1 outlines the various building blo cks of the that ensures controlled access to the system, a co de thin-client programming mo del. It shows three im- service that maintains a secure rep ository of trusted p ortant parts { the clientworkspace, application- AFEs, and a directory service that presents a search- sp eci c services, and supp ort services needed to pro- able access to services. These supp ort services must vide full thin-client functionality. b e fault-tolerant and scalable b esides using industry standard proto cols. Therefore, Metis uses a direc- 2.1 ClientWorkspace tory service supp orting the Light-weight Directory Access Proto col LDAP [7]. Such directory services The clientworkspace provides a combination of func- are likely to b ecome common place and even more tions in Metis. It provides the AFE container func- robust in the future. tion, some of the conventional desktop functions, and a virtual environment of network services. These In addition to the ab ove mentioned services, Metis will b e discussed in detail in this section. requires printing and data-storage services, and a mechanism for launching and managing application- Visually, the clientworkspace has a customizable sp eci c services on various servers. The latter can b e layout that can b e con gured on a p er-user basis accomplished, for example, using the servlets mech- using con guration information stored on a server. anism [2]. When a user logs on, all framework ob jects are in- stantiated. The rest of the pap er is organized as follows. Sec- tion 2 presents the Metis thin-client programming UserPro le: The user pro le includes an autho- mo del, sections 3 and 4 describ e the Metis frame- rization ob ject that contains user information in- work and implementation resp ectively. Section 5 cluding name and time of logon. The authorization discusses the related work, and Section 6 concludes ob ject is passed with directory and co de service re- the pap er. Client Workspace Metis Support Services User profile Authentication object Authentication Server Directory Client Application Access Control Front Logic Ends Virtual Environment Manager (VEM) 1 2 Service Directory 3 Service Stub Loader Access Control AFE Loader/Launcher Logic Data Controller Code Server to/from DataStore Print Controller (with Access Control) to Printer Application Specific Services Application-Specific Service Support Figure 1: The schematic shows the three imp ortant parts of the thin-client application mo del: the client workspace, supp ort services, and application-sp eci c services. The clientworkspace contains user pro le and authentication ob jects, ob jects to nd and bind to services, and controllers for data and print. AFEs execute in the context of the clientworkspace. quests. These supp ort services recognize the ob ject Virtual Environment Manager: A virtual en- and restrict the user to only those AFEs and services vironment manager VEM is a fundamental client that allow access by the user.