Frameworks For Component-Based Client/Server Computing
Scott M. Lewandowski
Department of Computer Science
Brown University
Providence, RI  02912-1910
scl@cs.brown.edu
Abstract
This paper presents two frameworks for client/server computing that rely on a new model involving distributed objects and Java. It introduces client/server computing and distributed objects and discusses how Java and distributed objects can be used to provide a robust system for client/server computing. After discussing the shift from objects to components, two popular component models (CORBA and DCOM) are presented, with an emphasis on a three-tier client/server model. The role of Java in a component-based client/server system is discussed, and the integration of Java and CORBA is presente
d as the optimal framework for component-driven client/server computing. A brief discussion of frameworks is then given and two frameworks are presented: a system for supplying business objects based on CORBA and a client model relying on the compound document paradigm.
Table Of Contents
1. OVERVIEW4
2. WHAT IS CLIENT/SERVER COMPUTING?4
2.1 Clients6
2.2 Servers6
2.3 Middleware6
2.4 Fat Servers vs. Fat Clients7
2.5 N-Tiered Systems9
2.6 Functions and Benefits of Client/Server Systems10
3. DISTRIBUTED OBJECTS AND COMPONENTS11
3.1 From Objects to Distributed Objects11
3.2 Benefits of Distributed Objects11
3.3 Components13
4. A NEW MODEL FOR CLIENT/SERVER COMPUTING14
4.1 Client/Server Using Distributed Objects14
4.1.1 Client/Server with CORBA14
4.1.2 Client/Server with DCOM19
4.1.3 CORBA as the Dominant Model23
4.2 Using Java For Client/Server Applications23
4.3 Client/Server Using Java and CORBA26
5. FRAMEWORKS28
5.1 What Are Frameworks?28
5.2 Business Objects as a Client/Server Framework29
5.3 Compound Documents as a Client Framework33
6. CONCLUSIONS37
7. REFERENCES38
spring framework是什么框架的
Frameworks For Component-Based
Client/Server Computing
1.Overview
This paper introduces the basics of client/server computing and component technologies and then proposes two frameworks for client/server computing using distributed objects. Topics affecting client/server frameworks are discussed, with a focus on the delegation of responsibilities between clien
ts and servers and the stratification of client/server systems into levels. The component technologies discussed are CORBA, the Object Management Group’s proposal for a distributed object framework and DCOM, Microsoft’s system for creating and using objects on remote machines while maintaining the common paradigm for interaction among libraries, applications, and system software that COM provides [Chap]. ActiveXs, components built from COM-based technologies, are treated as an important example of DCOM parts in client/server systems. It should be noted that JavaBeans is not discussed, since it is a language-specific technology, not suitable for use in an environment when all participating components are not necessarily written in Java. The Java programming language is discussed in terms of its contributions to an effective framework for client/server computing using the distributed object services of CORBA. Java applications, which are suitable for downloading to a local machine from the World Wide Web, are discussed as a Java component unit providing a total integration framework for client/server computing while using distributed objects.
2.What is Client/Server Computing?
Client/server computing systems are comprised of two logical parts: a server that provides services and a client that requests services of the servers. Together, the two form a complete computing system with a very distinct division of responsibility. More technically, client/server computing relates two or mo
re threads of execution using a consumer/producer relationship. Clients serve as the consumers in a client/server system. That is, they make requests to servers for services or information and then use the response to carry out the purpose of the client. The server plays the role of the producer, filling data or service requests made of it by clients.
Client/server computing attempts to leverage the capabilities of the networks used by typical corporations that are composed of many relatively powerful workstations and a limited number of dedic
ated servers. Client/server computing has gained popularity in the recent years due to the proliferation of low-cost hardware and the increasingly apparent truth of the theory that a model relying on monolithic applications fails when the number of users accessing a system grows too high or when too many features are integrated into a single system.
A good example of a client/server system is a simple automated teller machine (ATM) network. Users typically use ATMs as clients to interface with a small sub-server, which collaborates with a larger server that manages all of the smaller servers. In this model, the sub-servers are servers to the ATMs and clients to the master server. ATMs provide the user interface and can be customized (for multilingual support, as an example) as required, while the intermediate servers provide the application logic, such as checking on account balances and transferring money between accounts. The sub-servers allow the system to be scaled since adding servers allows an increased number of ATMs to be supported. However, the application logic can be provided only with the help of the centralized server. The results of these services are communicated to the user through the ATMs. The centralized server provides additional application logic, such as ensuring that concurrent transactions are handled correctly. It also serves as a central brokerage for all account information so that users can access their accounts from any ATM worldwide.
2.1Clients
Many clients have a modern graphical user interface (GUI) that presents each resource accessible by the user as an independent object; the GUI is usually provided with the help of the OS so consistency across multiple applications is maintained. A typical example of a GUI is the common desktop metaphor in which each storage device, file, and printer is depicted as an independent entity. Clients can also offer services to other clients. Normal models of client/server computing place no limit on the number of servers a client can access simultaneously.
2.2Servers
“Traditional” servers are entities that passively await requests from clients and then act on them, but recent research in this area encompasses systems fulfilling the theoretical organization of client/server systems in which servers can actively search out changes in the state of clients and take appropriate action. Servers typically fill one specific need and encapsulate the provided services so the state of the server is protected and so that the means by which the service is provided is hidden from the client. In order to accommodate workstation clients as first-rate network members, servers must handle peer-to-peer protocols that are used for “file sharing” on PCs, handle PC messages, and service PC resources
using native formats. An important consideration in determining the granularity of services that a server will offer is the possibility of having servers act as clients to other servers. Using this model, a server can execute a task by dividing it into subtasks and then having other servers complete the subtasks.
2.3Middleware
The distributed software required to facilitate client/server interaction is referred to as middleware. Transparent access to non-local services and resources distributed across a network is usually provided  through middleware, which serves as a framework for communication between the client and server portions of a system. Middleware can be thought of as the networking between the components of a client/server system; it is what allows the various components to communicate in a structured manner. It is defined to include the APIs used by clients to request a service from a server, the physical transmission of the request to the network (or the communication of the service request to a local server), and the resulting transmission of data for the client back to the network. Middleware is run on both the client and server ends of a transaction.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。