Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Chapter -3 THE CLIENT
  2. 2. Syllabus <ul><li>Role of client </li></ul><ul><li>Client services </li></ul><ul><li>Remote procedure call </li></ul><ul><li>Print services </li></ul><ul><li>Remote services </li></ul><ul><li>Utility services </li></ul><ul><li>Message services </li></ul><ul><li>Network services </li></ul><ul><li>Application services </li></ul><ul><li>Database services </li></ul><ul><li>Dynamic Data exchange (DDE) </li></ul><ul><li>Object Linking and Embedding (OLE) </li></ul><ul><li>Common Object Request Broker Architecture (CORBA) </li></ul><ul><li>Client tools – Non GUI, GUI, Object Oriented User Interface clients (OOUI) </li></ul>
  3. 3. <ul><li>The client is a desktop workstation. </li></ul><ul><li>Any workstation that is used by a single user is a client. </li></ul><ul><li>when shared simultaneously by multiple users, is a server. </li></ul><ul><li>no specific technological characteristic of a client. </li></ul><ul><li>workstation performance has improved now a days </li></ul><ul><li>For the same cost, workstation CPU performance increased by 50 times, main memory has increased by 25 times, and permanent disk storage has increased by 30 times. </li></ul>The Client
  4. 4. <ul><li>This growth allows sophisticated applications to be run from the desktop. </li></ul><ul><li>May use the DOS, Windows, Windows NT, OS/2 or UNIX operating system. </li></ul><ul><li>Provides personal productivity functions(word processing) </li></ul><ul><li>When the client workstation is connected to a LAN, it has access to the services provided by the network operating system (NOS) in addition to those provided by the client workstation. </li></ul>The Client
  5. 5. The Client <ul><li>Can print to a remote printer through the NOS. </li></ul><ul><li>Used as a terminal to access applications resident on a host minicomputer or mainframe processor. </li></ul><ul><li>This enables the single workstation to replace the terminal. </li></ul><ul><li>It is important to understand that a workstation can operate as a client in some instances while acting as a server in other instances. </li></ul>
  6. 6. <ul><li>Always provides presentation services. </li></ul><ul><li>User input and final output, if any, are presented at the client workstation. </li></ul><ul><li>Current technology provides cost effective support for a graphical user interface (GUI). </li></ul><ul><li>All new applications, with direct interaction by a human, be developed using a GUI. </li></ul><ul><li>functions as word processing, spreadsheet, e-mail, and presentation graphics—in addition to the custom applications built by the organization—can be active simultaneously. (multi sessions) </li></ul>The Client
  7. 7. <ul><li>Windows 3.x and Mac System 7 do not support true multitasking; </li></ul><ul><li>Windows NT, OS/2, and UNIX are preemptive multitasking operating systems </li></ul>The Client
  8. 8. <ul><li>Uses a local operating system to host both basic services and the network operating system interfaces. </li></ul><ul><li>This operating system may be the same or different from that of the server. </li></ul><ul><li>Most personal computer users today use DOS or Windows as their client operating system. </li></ul>The Client
  9. 9. The Role of the Client <ul><li>Multiple hardware and software platforms to interact. </li></ul><ul><li>servers may grow and change their operating system and hardware platforms without changing the client applications. </li></ul><ul><li>Clients can be entry-level machines or very powerful RISC-based workstations, and run the same application issuing the same requests for service as long as the standard requester-server discipline is maintained. </li></ul><ul><li>Traditional host applications that use the client for presentation services operate only by sending and receiving a character data stream to and from a server. </li></ul>
  10. 10. The Role of the Client <ul><li>All application logic resides on the server. </li></ul><ul><li>First-generation client/server applications using software such as Easel enable the input and output data streams to be reformatted at the client without changes to the host applications. </li></ul><ul><li>They use an API that defines the data stream format. </li></ul><ul><li>Easel uses the IBM-defined Extended High Level Language Application Program Interface (EHLLAPI). </li></ul>
  11. 11. The Role of the Client <ul><li>GUI front ends adds additional functionality, such as the capability to select items for input from a list, selectively use color, or merge other data into the presentation without changing the host application. </li></ul>
  12. 12. The Role of the Client <ul><li>The workstation user deals only with a GUI. </li></ul><ul><li>The GUI front end, enables the items to be shown in a window and selected by using a mouse pointer. </li></ul><ul><li>reduces the cost of execution but can significantly reduce errors, increase productivity. </li></ul>
  13. 13. The Role of the Client <ul><li>GUIs enable users to be more productive with less training. </li></ul><ul><li>It increases the productivity and learning curve greater than 200 percent for users of GUI applications. </li></ul>
  14. 14. The Role of the Client <ul><li>functionality can be further extended by adding logic that is not implemented in the host server application. </li></ul><ul><li>Which decreases the workload of the host server. </li></ul>
  15. 15. The Role of the Client <ul><li>It is possible to make fundamental changes in the business process, using a Business Process Reengineering (BPR) methodology and client/server computing. </li></ul>
  16. 16. The Role of the Client <ul><li>Why is workstation technology so effective? </li></ul><ul><li>It supports the new business paradigm. </li></ul><ul><li>The capability of powerful workstation technology reduce cost and improve service </li></ul>
  17. 17. Request for Service <ul><li>Client workstations request services from the attached server. </li></ul><ul><li>Whether this server is in fact the same processor or a network processor, the application format of the request is the same. </li></ul><ul><li>For Interprocess communication (IPC) these processes might be on the same computer, across the LAN, or across the WAN. </li></ul>
  18. 18. Request for Service <ul><li>The most basic service provided by the NOS is redirection . </li></ul><ul><li>This service intercept client workstation operating system calls and redirects them to the server operating system. </li></ul>
  19. 19. Remote Procedure Call (RPC) <ul><li>Over the years, good programmers have developed modular code using structured techniques and subroutine logic. </li></ul><ul><li>Today, developers want subroutines to be stored as a named objects &quot;somewhere&quot; and made available to everyone with the right to use them. </li></ul><ul><li>Remote procedure calls (RPCs) provide this capability. </li></ul>
  20. 20. Remote Procedure Call (RPC) <ul><li>A remote procedure call makes a call to a remote service look like a local call </li></ul><ul><li>RPC makes transparent whether server is local or remote </li></ul><ul><li>RPC allows applications to become distributed transparently </li></ul>
  21. 21. Problem with messages <ul><li>Messages are flexible, but </li></ul><ul><li>They are not a natural programming model </li></ul><ul><li>Programmers have to worry about message formats </li></ul><ul><li>messages have to be decoded by server to figure out what is requested </li></ul><ul><li>they may require special error handling functions </li></ul>
  22. 22. Procedure Call <ul><li>A more natural way to communicate </li></ul><ul><li>every programming language supports it </li></ul><ul><li>semantics are well defined and understood </li></ul><ul><li>natural for programmers to use </li></ul><ul><li>Define a server as a module that exports a set of procedures that can be called by client programs. </li></ul>Client Server Call Return
  23. 23. (Remote) Procedure Call <ul><li>Use procedure call as a model for distributed </li></ul><ul><li>communication. </li></ul><ul><li>Many issues: </li></ul><ul><li>how do we make this invisible to the programmer? </li></ul><ul><li>what are the semantics of parameter passing? </li></ul><ul><li>how is binding done (locating the server)? </li></ul><ul><li>how do we support heterogeneity (OS, arch., language) </li></ul><ul><li>etc. </li></ul>
  24. 24. (Remote) Procedure Call <ul><li>Goal – make RPC look as much like local PC as possible. </li></ul><ul><li>Uses computer/language support. </li></ul><ul><li>There are 3 components on each side: </li></ul><ul><ul><li>a user program (client or server) </li></ul></ul><ul><ul><li>a set of stub procedures </li></ul></ul><ul><ul><li>RPC runtime support </li></ul></ul>
  25. 25. RPC Stubs <ul><li>A client-side stub is a procedure that looks to the client as if it were a callable server procedure. </li></ul><ul><li>A server-side stub looks to the server as if it’s a calling client. </li></ul><ul><li>The stubs send messages to each other to make RPC happen. </li></ul>
  26. 26. Remote procedure call <ul><li>A remote procedure call makes a call to a remote service look like a local call </li></ul><ul><li>RPC makes transparent whether server is local or remote </li></ul><ul><li>RPC allows applications to become distributed transparently </li></ul><ul><li>RPC makes architecture of remote machine transparent </li></ul>
  27. 27. Fax/Print Services <ul><li>The NOS enables the client to generate print requests even when the printer is busy. </li></ul><ul><li>These are redirected by the NOS redirector software and managed by the print server queue manager. </li></ul><ul><li>The client workstation can view the status of the print queues at any time. </li></ul><ul><li>Many print servers notify the client workstation when the print request is completed. </li></ul><ul><li>Fax services are made available in exactly the same manner as print servers, with the same requester server interface and notification made available. </li></ul>
  28. 28. Window Services <ul><li>A client workstation may have several windows open on-screen at any time. </li></ul><ul><li>The capability to activate, view, move, size, or hide a particular window is provided by the window services of the client operating system. </li></ul><ul><li>These services are essential in a client/server implementation, because they interact with message services provided to notify the user of events that occur on a server. </li></ul><ul><li>Each application is written with the assumption that it has a virtual screen. This virtual screen can be an arbitrary size and can even be larger than the physical screen. </li></ul>
  29. 29. <ul><li>The application, using GUI software, places this greatly simplifies application development, because there is no need for the developer to build or manage the windowing services. </li></ul><ul><li>The client user is totally in control of his or her desktop and can give priority to the most important tasks at hand simply by positioning the window of interest to the &quot;front and center.&quot; </li></ul><ul><li>The NOS provides software on the client workstation to manage the creation of pop-up windows that display alerts generated from remote servers. </li></ul><ul><li>E-mail receipt, print complete, Fax available, and application termination are examples of alerts that might generate a pop-up window to notify the client user. </li></ul>
  30. 30. Remote Boot Services <ul><li>Some applications operate well on workstations without any local disk storage; X-terminals and workstations used in secure locations are examples. </li></ul><ul><li>The client workstation must provide sufficient software burned into erasable programmable read-only memory (E-PROM) to start the initial program load (IPL)—that is, boot—process. E-PROM is included in all workstations to hold the Basic Input/Output System (BIOS) services. </li></ul><ul><li>This mini-operating system is powerful enough to load the remote software that provides the remaining services and applications functions to the client workstation or X-terminal. </li></ul>
  31. 31. Utility Services <ul><li>The operating system provides local functions such as copy, move, edit, compare, and help that execute on the client workstation. </li></ul>
  32. 32. Network Services <ul><li>The client workstation communicates with the network through a set of services and APIs that create, send, receive, and format network messages. </li></ul><ul><li>These services provide support for communications protocols, such as NetBIOS, TCP/IP, Ethernet, Token Ring, , X.25 etc. </li></ul>
  33. 33. Application Services <ul><li>In addition to the remote execution services that the NOS provides, custom applications will use their own APIs embedded in an RPC to invoke specialized services from a remote server. </li></ul>
  34. 34. Database service <ul><li>Database requests are made using the SQL syntax. </li></ul><ul><li>SQL is an industry standard language supported by many vendors. Because the language uses a standard form, the same application may be run on multiple platforms. </li></ul><ul><li>There are syntactical differences and product extensions available from most vendors. </li></ul><ul><li>These are provided to improve developer productivity and system performance </li></ul><ul><li>The use of stored procedures is often a way of avoiding programmer use of proprietary extensions needed for performance. </li></ul>
  35. 35. Network Management Services-Alerts <ul><li>Most network interface cards (NICs) can generate alerts to signify detected errors and perhaps to signify messages sent and received. </li></ul><ul><li>These alerts are valuable in remote LAN management to enable early detection of failures. </li></ul><ul><li>Because many errors are transient at first, simple remote detection may allow problems to be resolved before they become critical. </li></ul><ul><li>Applications may also generate alerts to signify real or potential problems. </li></ul><ul><li>Certain error conditions indicate that important procedures are not being followed. </li></ul><ul><li>Application program failure may occur because current versions of software are not being used . </li></ul>
  36. 36. Dynamic Data Exchange <ul><li>Dynamic Data Exchange is a feature of Windows that allows two programs to share data or send commands directly to each other. </li></ul><ul><li>DDE can be thought of as a direct conversation between two application programs. </li></ul><ul><li>In most cases, one application is providing some form of data (either text or graphics) to another application. </li></ul><ul><li>The application that is the source of the data is called the &quot;server&quot; and the application that is receiving the data is called the &quot;client&quot;. Each data item that a server application can provide has a unique identifier consisting of three parts, a DDE Application Name, a DDE Topic, and a DDE Item Name. </li></ul>
  37. 37. <ul><li>The DDE Application Name is almost always the executable filename for the server application (without the .EXE extension). </li></ul><ul><li>The DDE Topic typically identifies a group or category of data in the server application </li></ul><ul><li>and each data item that a server can provide has a unique DDE Item Name. Thus, the Application Name, Topic, and Item Name identify the exact source of the data in a server application that is to be linked. (Similar to a telephone number with the three parts: Area Code, Exchange and Number.) </li></ul>
  38. 38. <ul><li>The primary function of DDE is to allow Windows applications to share data. For example, a cell in Microsoft Excel could be linked to a value in another application and when the value changed, it would be automatically updated in the Excel spreadsheet. </li></ul><ul><li>The DDE protocol identifies the units of data passed between the client and server with a three-level hierarchy of application, topic, and item names. </li></ul><ul><li>For example, if a user wanted to pull a value from Microsoft Excel which was contained in a spreadsheet called &quot;Book1.xls&quot; in the cell in the first row and first column, the application would be &quot;Excel&quot;, the topic &quot;Book1.xls&quot; and the item &quot;r1c1 </li></ul>
  39. 39. OLE <ul><li>OLE is an extension to DDE that enables objects to be created with the object components software aware . </li></ul><ul><li>Aware means that a reference to the object or one of its components automatically launches the appropriate software to manipulate the data. For example, a document created with a word processor may include an image created by a graphics package. </li></ul><ul><li>The image can be converted to the internal graphics form of the word processor, such as WPG form for WordPerfect. </li></ul><ul><li>With OLE, the image can be included in its original form within the document object; whenever the image is selected or highlighted, the graphics package will take control to manipulate the image. </li></ul><ul><li>Activation of the software is totally transparent to the users as they navigate through the document. </li></ul><ul><li>Currently with OLE, one software package accesses data created from another through the use of a viewer or launcher . </li></ul>
  40. 40. OLE cont… <ul><li>These viewers and launchers must be custom built for every application. </li></ul><ul><li>With the viewer, users can see data from one software package while they are running another package. </li></ul><ul><li>Launchers invoke the software package that created the data and thus provide the full functionality of the launched software. </li></ul><ul><li>Both these techniques require the user to be aware of the difference between data sources. DDE and OLE provide a substantial advantage: any DDE- or OLE-enabled application can use any software that supports these data interchange APIs. An e-mail application will be able to attach any number of components into the mail object without the need to provide custom viewers or launchers. </li></ul>
  41. 41. OLE cont… <ul><li>OLE 2.0 extends OLE capabilities to enable a group of data to be defined as an object and saved into a database. This object can then be dragged and dropped into other applications and edited without the need to switch back to the application which created it. This provides a more seamless interface for the user. In OLE 1.x, double-clicking a Lotus 1-2-3 for Windows spreadsheet embedded in a Microsoft Word for Windows document launches 1-2-3 and opens the document in a 1-2-3 window. Under OLE 2.0, the active window (Word's) menu and toolbar change to that of 1-2-3. The user deals only with the object, with no need to be aware of the multiple software being loaded. </li></ul>
  42. 42. Common Object Request Broker Architecture (CORBA) <ul><li>CORBA is a specification from the Object Management Group (OMG), a UNIX vendor consortium. </li></ul><ul><li>OLE focuses on data sharing between applications on a single desktop, and CORBA addresses cross-platform data transfer and the process of moving objects over networks. </li></ul><ul><li>CORBA enables Windows and UNIX clients to share objects. A word processor operating on a Windows desktop can include graphics generated from a UNIX workstation. </li></ul><ul><li>It allows a distributed, heterogeneous collection of objects to interoperate. </li></ul>
  43. 43. CORBA Architecture <ul><li>CORBA defines an architecture for distributed objects. The basic CORBA paradigm is that of a request for services of a distributed object. </li></ul><ul><li>The services that an object provides are given by its interface . Interfaces are defined in OMG's Interface Definition Language (IDL). Distributed objects are identified by object references, which are typed by IDL interfaces. </li></ul><ul><li>The figure below graphically depicts a request. A client holds an object reference to a distributed object. The object reference is typed by an interface. In the figure below the object reference is typed by the Rabbit interface. The Object Request Broker, or ORB, delivers the request to the object and returns any results to the client. </li></ul>
  44. 44. ORB <ul><li>The ORB is the distributed service that implements the request to the remote object. It locates the remote object on the network, communicates the request to the object, waits for the results and when available communicates those results back to the client. </li></ul><ul><li>The ORB implements location transparency. Exactly the same request mechanism is used by the client and the CORBA object regardless of where the object is located. It might be in the same process with the client, down the hall or across the planet. The client cannot tell the difference. </li></ul><ul><li>The ORB implements programming language independence for the request. The client issuing the request can be written in a different programming language from the implementation of the CORBA object. The ORB does the necessary translation between programming languages. Language bindings are defined for all popular programming languages. </li></ul>
  45. 45. CORBA <ul><li>clients and object implementations are portable. </li></ul><ul><li>The CORBA specification defines an application programmer's interface (API) for clients of a distributed object as well as an API for the implementation of a CORBA object. </li></ul><ul><li>This means that code written for one vendor's CORBA product could, with a minimum of effort, be rewritten to work with a different vendor's product. </li></ul><ul><li>However, the reality of CORBA products on the market today is that CORBA clients are portable but object implementations need some rework to port from one CORBA product to another. </li></ul><ul><li>CORBA 2.0 added interoperability as a goal in the specification. </li></ul>
  46. 46. CORBA Products <ul><li>CORBA is a specification; it is a guide for implementing products. Several vendors provide CORBA products for various programming languages. The CORBA products that support the Java programming language include: </li></ul>
  47. 47. CORBA Products The Java 2 ORB The Java 2 ORB comes with Sun's Java 2 SDK. It is missing several features. VisiBroker for Java A popular Java ORB from Inprise Corporation. VisiBroker is also embedded in other products. For example, it is the ORB that is embedded in the Netscape Communicator browser. OrbixWeb A popular Java ORB from Iona Technologies. WebSphere A popular application server with an ORB from IBM. Netscape Communicator Netscape browsers have a version of VisiBroker embedded in them. Applets can issue request on CORBA objects without downloading ORB classes into the browser. They are already there. Various free or shareware ORBs CORBA implementations for various languages are available for download on the web from various sources.