Upcoming Events

Cloud Connect
Santa Clara
Feb 13-16, 2012

Cloud Connect brings together the entire cloud eco-system to better understand the transformation we're experiencing and promises to be the defining event of the cloud computing industry. Learn about the latest cloud technologies and platforms from thought leaders in Cloud Connect’s comprehensive conference.

Register Now!

More Events »

Subscribe to Newsletter

  • Keep up with all of the latest news and analysis on the fast-moving IT industry with Network Computing newsletters.
Sign Up

Client/Server Fundamentals
February 8, 1999

Object-Oriented Client/Server Internet Environments

2.5 Object-Oriented Client/Server Internet Environments

Object-oriented client/server Internet (OCSI) environments combine the object-orientation, client/server, and Internet concepts to deliver business functionality. In particular, several attempts are underway to combine distributed objects with Web (see the sidebar "Combining Web with Distributed Objects"). Figure 2.12 shows the main building blocks of OCSI environments. Let us discuss the main components of this environment.

2.5.1 Client/Server Processes–The Applications

Client processes perform the application functions on the client side. Client processes can range from simple user interfaces and spreadsheets to complete application systems. Increasingly, the client processes are becoming Internet-based (i.e., they utilize Web browsers to interact with end users). Server processes perform the application functions on the server side. A server process, commonly referred to as a server, provides a service to the client. Server processes can be very simple functions such as time of day (TOD), or sophisticated applications such as order processing, electronic funds transfer, or CAD/CAM services. Other examples of server processes are print services, database services, object servers, and mail services.

The World Wide Web is introducing a new dimension to the application architectures. The main impact, from an application point of view is that the end user interfaces are being replaced with Web browsers. The Web users can directly access HTML documents from the Web servers or access corporate databases by using Web gateways. In addition, Java has popularized the notion of downloadable code where the Java applets are brought to the Web browser and executed there.

Figure 2.12 Middleware in Object-Oriented Client/Server Internet Environment

Combining Web With Distributed Objects

Netscape’s IIOP and Microsoft’s Active Platform

Web browsers are very suitable for human to computer communications, and distributed objects fit well for computer to computer communications. Pioneer work in combining these two technologies was done at the ANSA Consortium (http://www.ansa.co.uk) by developing the ANSAWEB prototype that allowed Web users to invoke CORBA applications. At present, this concept is being adopted by many industry products. Netscape’s IIOP support and Microsoft’s Active Platform are examples.

Netscape’s IIOP (Internet Inter-ORB Protocol) provides CORBA support directly from Netscape browsers. IIOP is the core protocol of the CORBA distributed object model. This support allows Netscape browsers to directly interact with CORBA objects, in addition to accessing HTML documents and Web gateways through HTTP. Visit the Netscape site (http://www.netscape.cm) for more details.

Microsoft’s Active Platform is a platform for developing Web-based distributed object applications and to integrate PC-based tools with Web tools. The Active Platform consists of three components (visit http://www.microsoft.com/webden/ for a white paper on Active Platform):

l Active Desktop that provides scripting, dynamic HTML, and component.

l Active Server to aid in Web server applications

l ActiveX to allow software components to communicate across a machine or a network.

Figure 2.13 shows a few OCSI architectures that allow Web users to access remote databases through a combination of distributed object and "classical" client/server technologies (e.g., RPC, remote SQL). Ideally, the clients and servers are viewed as objects from Web browsers that communicate through remote OO calls. We will discuss such architectures in great detail in Chapter 6.

Figure 2.13 OCSI Application Sample Architectures

2.5.2 Middleware for OCSI Environments

The middleware enables applications and provides a wide range of functionality such as establishment of sessions between client and server processes, security, compression/decompression, and failure handling. Detailed discussion about middleware can be found in the companion book [Umar 1997].

The middleware itself can be viewed in terms of client middleware that resides on every client machine and server middleware that resides on the server platforms. Let us look at the client and server side of middleware. Client middleware provides the interfaces between client processes and remote server processes. Client middleware is essentially a set of software modules which can be invoked by the client processes through an application programming interface (API). For example, many SQL servers provide API/SQL software that a client process can use to send SQL statements to the SQL servers. Examples of client middleware are Web browsers, Open Database Connect (ODBC) drivers, and CORBA client middleware. Server middleware monitors the client requests and invokes appropriate server processes. Server middleware receives a client request from the network services and parses the request. In order to parse, the server middleware must be able to understand the format in which the message was sent by the client middleware. This exchange protocol between the client/server middleware is a key to C/S interoperability (in many cases this exchange protocol is proprietary and thus requires clients from vendor X to interoperate with servers from vendor X only).

The middleware services have evolved, and continue to evolve, since the mid-1980s. Figure 2.14 shows this evolution in terms of middleware layers. Each layer has added more functionality and made it easier to develop and deploy distributed applications.The services provided by each layer are made available to the application programs through APIs. Examples of middleware layers are:

Network programming services that are used to invoke network services through APIs. Examples of this low-level middleware are TCP/IP sockets, SNA Logical Unit 6.2 (LU6.2), IBM’s NetBIOS for LANs, and AT&T’s Transport Layer Interface (TLI). This middleware, also known as the first generation C/S middleware, is difficult to use (it is similar to writing assembly language code).

Basic C/S middleware that includes Remote Procedure Call (RPC), Remote Data Access (RDA), and Message Oriented Middleware (MOM). This middleware is typically built on top of the network transport services (e.g., RPC uses TCP/IP sockets; RDA uses TCP/IP sockets as well as LU6.2).

Distributed data and transaction management middleware that is responsible for access, manipulation, and update of distributed as well as replicated data. We categorize this middleware in the following two broad categories: distributed data access middleware that allows users to primarily retrieve data dispersed around a network, and client/server transaction processing middleware that handles the knotty issue of updating related data in distributed environments.

Object-oriented services that send messages to objects in the network. Examples of these services and standards are the Object Management Group’s Common Object Request Broker Architecture (OMG CORBA) and Microsoft’s ActiveX. Some of these services are built on top of the Basic C/S middleware (e.g., ActiveX is developed on top of RPCs).

World Wide Web middleware that includes Hypertext Transfer Protocol (HTTP), Hypertext Markup Language (HTML), Java, Web browsers, and Web gateways to access non-Web applications.

Figure 2.14 Layered View of Middleware

 

Special purpose middleware that is being developed for emerging applications. Examples of this middleware are the wireless middleware for mobile computing applications, middleware for distributed multimedia applications, middleware for groupware (e.g., Lotus Notes), and middleware legacy system access/integration.

In addition to these layers, the middleware also provides a variety of management and support services such as security services, directory services, time services and management services. Although these services can span several layers, it is best to view them as part of the basic C/S middleware layer.

OCSI applications can use any of these middleware services. In general, there is a trade-off between the complexity of application and the complexity of the middleware. If the services provided by the middleware are simple and do not meet the application requirements, then this complexity shifts to the application developers.

Once again, these middleware layers are discussed in Chapters 3 through 9 in Umar [1997].

2.5.3 Network Services

Communication networks, or just networks, provide the lowest level of service (i.e., information transport) in distributed computing and C/S environments. In this context, a communication network is a collection of equipment and physical media, viewed as one autonomous whole that interconnects two or more computers. A wide variety of network configurations exists in enterprises. For example, a network may consist of three desktops connected through a cable, or it may serve an international airlines reservation system that employs global communication satellites, large processors, and thousands of terminals and workstations.

A network can be configured as a wide area network (WAN), which utilizes common carrier facilities for communications; a local area network (LAN), which utilizes vendor supplied cables for connecting computers within a building; a metropolitan area network (MAN) within a region, which may use the communication facilities of Cable TV, or a combination of LANs, MANs, and WANs. In addition, the communication between computing devices on a network can use analog or digital data transmission facilities over copper, wireless, or fiber optic communication media. The state-of-the-art advancement in network transmission technologies is the development of high-speed local and wide area transmissions, typically in the range of 100 million bits per second (Mbps) or higher. Another area of advancement is the integration of voice, data, and video images for multimedia applications such as teleconferencing and group problem solving, among others. Examples of the evolving network communication technologies are Asynchronous Transfer Mode (ATM), Frame Relay, Fiber Distributed Data Interface (FDDI), and wireless networks. In general, networks are becoming faster, ubiquitous, and more reliable.

 

A network architecture describes the physical components, the functions performed by the components, and the interfaces between the components of a network. Network architecture standards are needed to interconnect different networks from different vendors with different capabilities. For example, a Chicago bank that uses a Sun-supported network needs to communicate with a New York bank that uses an IBM supplied network. The Open System Interconnection (OSI) Reference Model specifies standards for networks from different vendors to exchange information freely. The OSI Model casts the functions needed to exchange information between interconnected computers in terms of seven layers (see Figure 2.15). Many network architectures have evolved in the last 20 years. Examples of the state of the market/practice network architectures are the Transmission Control Protocol/Internet Protocol (called TCP/IP) stack, IBM’s System Network Architecture (SNA), Novell’s Netware LAN, and the Open System Interconnection (OSI) Model. See Umar [1997, Chapter 11] for a brief overview of these network architectures.

Figure 2.15 The OSI Reference Model

 

Network services provide the basic addressing and transport mechanisms across a network. These services communicate with the server and client middleware. Network services are provided typically by TCP/IP, SNA, and LAN protocols such as NetBIOS and Novell Netware SPX/IPX. Network interconnectivity is the key issue addressed by network services in enterprisewide networks to provide interfaces and transport of messages between remotely located client and server processes. The principal network interconnectivity devices are:

Bridges connect two LANs to form a larger LAN. Bridges are simple devices that do not deal with the issues of routing and session control needed in enterprisewide networks.

Routers find a path for a message in larger networks and then send the message over the selected path. A router is more sophisticated than a bridge because it knows alternate routes for a message and uses the alternate routes if needed. In most cases, enterprises have replaced bridges with routers. Over the years, routers have accumulated additional functionality such as security checking ("the fire walls").

Gateways translate one type of protocol to another. In most large networks, protocols of some subnetworks need to be converted to protocols of other subnetworks for end- to-end communications. A gateway connects two dissimilar network architectures and is essentially a protocol converter. A gateway may be a special purpose computer, a workstation with associated software (e.g., a PS2 with gateway software), or a software module that runs as a task in a mainframe. Examples of gateways for network interconnectivity are TCP/IP to SNA gateway and Novell Netware to mainframe gateway.

Routers and gateways are used commonly in enterprisewide networks. For example, if a client spreadsheet on a UNIX TCP/IP network in Chicago needs to access a database server on an MVS SNA network in New York, then a series of routers would be needed to find the path between the client and server process. In addition, a TCP/IP to SNA gateway will be needed for translating messages from TCP/IP to SNA protocols.

Figure 2.16 shows a realistic enterprise network that uses TCP/IP very heavily, except for the SNA network at the mainframe. The routers are used between all TCP/IP network segments and a gateway is used to convert the TCP/IP messages to SNA.

Detailed discussion of network issues are beyond the scope of this book.

2.5.4 Local Software

The local software in an OCSI environment provides access and manipulation of data and processes located on the machines in a C/S environment. Examples of the local software are:

l Database managers

l Transaction managers

l File managers

l Print managers

Figure 2.16 Network Interconnectivity in Client/Server Environment

Database managers, also known as database management systems (DBMSs) provide access to databases for on-line and batch users. In a typical database environment, different users can view, access and manipulate the data in a database. A DBMS is designed to (a) manage logical views of data so that different users can access and manipulate the data without having to know the physical representation of data, (b) manage concurrent access to data by multiple users, enforcing logical isolation of transactions, (c) enforce security to allow access to authorized users only, and provide integrity controls and backup/recovery of a database. Relational database managers such as DB2, Oracle, Sybase, and/or Informix are typically used in many contemporary applications. Older systems use hierarchical database managers such as IMS. Object-oriented databases are still in their infancy (see Appendix A). The key issue in C/S environments is to access remotely located databases from a variety of client processes. This issue is discussed in detail in Umar [1997, Chapter 4].

Transaction managers (TMs), also known as transaction processing monitor (TP monitor), monitor the execution of transactions (sequence of statements that must be executed as a unit). TMs specialize in managing transactions from their point of origin to their termination (planned or unplanned). Some TM facilities are integrated with the DBMS facilities to allow database queries from different transactions to access/update to one or several data items (IBM’s IMS DB/DC is an example). However, some TMs only specialize in handling transactions (CICS, Tuxedo, and Encina are examples). The key issue in C/S environments is how to extend the scope of local transaction management to managing the execution of transactions across multiple sites. See Umar [1997, Chapter 5] for a detailed discussion of this topic.

File managers are responsible for providing access and manipulation of text documents, diagrams, charts, images, and indexed files. A very wide range of file managers have been developed since the 1960s. An important issue in C/S environments is to provide access to files that are dispersed around a network. This issue has been addressed by middleware such as the SUN Network File Server (NFS).

Print managers are responsible for printing operations. Obviously, different types of print managers are available for different type of print devices. Almost all LANs, at present, provide access to print managers on the LAN.

 


Go Home | Page 1 | 2 | 3 | 4 | 5 | 6 | Next Page


Print This Page


e-mail E-mail this URL

Research and Reports

Hypervisor Derby
August 2011

Network Computing: August 2011

TechWeb Careers