Chapter3

47
Chapter -3 Chapter -3 THE CLIENT THE CLIENT

Transcript of Chapter3

Page 1: Chapter3

Chapter -3Chapter -3

THE CLIENTTHE CLIENT

Page 2: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

SyllabusSyllabus Role of clientRole of client Client servicesClient services Remote procedure callRemote procedure call Print servicesPrint services Remote servicesRemote services Utility servicesUtility services Message servicesMessage services Network servicesNetwork services Application servicesApplication services Database servicesDatabase services Dynamic Data exchange (DDE) Dynamic Data exchange (DDE) Object Linking and Embedding (OLE)Object Linking and Embedding (OLE) Common Object Request Broker Architecture (CORBA)Common Object Request Broker Architecture (CORBA) Client tools – Non GUI, GUI, Object Oriented User Client tools – Non GUI, GUI, Object Oriented User

Interface clients (OOUI)Interface clients (OOUI)

Page 3: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The client is a desktop workstation. The client is a desktop workstation. Any workstation that is used by a single user Any workstation that is used by a single user

is a client. is a client. when shared simultaneously by multiple when shared simultaneously by multiple

users, is a server. users, is a server. no specific technological characteristic of a no specific technological characteristic of a

client.client. workstation performance has improved now workstation performance has improved now

a daysa days For the same cost, workstation CPU For the same cost, workstation CPU

performance increased by 50 times, main performance increased by 50 times, main memory has increased by 25 times, and memory has increased by 25 times, and permanent disk storage has increased by 30 permanent disk storage has increased by 30 times. times.

The ClientThe Client

Page 4: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

This growth allows sophisticated This growth allows sophisticated applications to be run from the applications to be run from the desktop. desktop.

May use the DOS, Windows, Windows May use the DOS, Windows, Windows NT, OS/2 or UNIX operating system. NT, OS/2 or UNIX operating system.

Provides personal productivity Provides personal productivity functions(word processing)functions(word processing)

When the client workstation is When the client workstation is connected to a LAN, it has access to connected to a LAN, it has access to the services provided by the network the services provided by the network operating system (NOS) in addition to operating system (NOS) in addition to those provided by the client those provided by the client workstation. workstation.

The ClientThe Client

Page 5: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The ClientThe Client Can print to a remote printer through Can print to a remote printer through

the NOS. the NOS. Used as a terminal to access Used as a terminal to access

applications resident on a host applications resident on a host minicomputer or mainframe processor. minicomputer or mainframe processor.

This enables the single workstation to This enables the single workstation to replace the terminal.replace the terminal.

It is important to understand that a It is important to understand that a workstation can operate as a client in workstation can operate as a client in some instances while acting as a some instances while acting as a server in other instances. server in other instances.

Page 6: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Always provides presentation services. Always provides presentation services. User input and final output, if any, are User input and final output, if any, are

presented at the client workstation. presented at the client workstation. Current technology provides cost effective Current technology provides cost effective

support for a graphical user interface support for a graphical user interface (GUI).(GUI).

All new applications, with direct All new applications, with direct interaction by a human, be developed interaction by a human, be developed using a GUI. using a GUI.

functions as word processing, spreadsheet, functions as word processing, spreadsheet, e-mail, and presentation graphics—in e-mail, and presentation graphics—in addition to the custom applications built addition to the custom applications built by the organization—can be active by the organization—can be active simultaneously. (multi sessions)simultaneously. (multi sessions)

The ClientThe Client

Page 7: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Windows 3.x and Mac System 7 do not Windows 3.x and Mac System 7 do not support true multitasking; support true multitasking;

Windows NT, OS/2, and UNIX are preemptive Windows NT, OS/2, and UNIX are preemptive multitasking operating systems multitasking operating systems

The ClientThe Client

Page 8: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Uses a local operating system to host Uses a local operating system to host both basic services and the network both basic services and the network operating system interfaces. operating system interfaces.

This operating system may be the same This operating system may be the same or different from that of the server. or different from that of the server.

Most personal computer users today Most personal computer users today use DOS or Windows as their client use DOS or Windows as their client operating system.operating system.

The ClientThe Client

Page 9: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client Multiple hardware and software platforms to Multiple hardware and software platforms to

interact. interact. servers may grow and change their operating servers may grow and change their operating

system and hardware platforms without system and hardware platforms without changing the client applications. changing the client applications.

Clients can be entry-level machines or very Clients can be entry-level machines or very powerful RISC-based workstations, and run the powerful RISC-based workstations, and run the same application issuing the same requests for same application issuing the same requests for service as long as the standard requester-service as long as the standard requester-server discipline is maintained.server discipline is maintained.

Traditional host applications that use the client Traditional host applications that use the client for presentation services operate only by for presentation services operate only by sending and receiving a character data stream sending and receiving a character data stream to and from a server. to and from a server.

Page 10: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client All application logic resides on the All application logic resides on the

server. server. First-generation client/server First-generation client/server

applications using software such as applications using software such as Easel enable the input and output data Easel enable the input and output data streams to be reformatted at the client streams to be reformatted at the client without changes to the host applications. without changes to the host applications.

They use an API that defines the data They use an API that defines the data stream format. stream format.

Easel uses the IBM-defined Extended Easel uses the IBM-defined Extended High Level Language Application High Level Language Application Program Interface (EHLLAPI). Program Interface (EHLLAPI).

Page 11: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client GUI front ends adds additional GUI front ends adds additional

functionality, such as the functionality, such as the capability to select items for capability to select items for input from a list, selectively use input from a list, selectively use color, or merge other data into color, or merge other data into the presentation without the presentation without changing the host application.changing the host application.

Page 12: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client The workstation user deals only with The workstation user deals only with

a GUI. a GUI. The GUI front end, enables the items The GUI front end, enables the items

to be shown in a window and to be shown in a window and selected by using a mouse pointer. selected by using a mouse pointer.

reduces the cost of execution but reduces the cost of execution but can significantly reduce errors, can significantly reduce errors, increase productivity.increase productivity.

Page 13: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client GUIs enable users to be more GUIs enable users to be more

productive with less training.productive with less training. It increases the productivity and It increases the productivity and

learning curve greater than 200 learning curve greater than 200 percent for users of GUI percent for users of GUI applications.applications.

Page 14: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client functionality can be further functionality can be further

extended by adding logic that is not extended by adding logic that is not implemented in the host server implemented in the host server application. application.

Which decreases the workload of the Which decreases the workload of the host server.host server.

Page 15: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client It is possible to make It is possible to make

fundamental changes in the fundamental changes in the business process, using a business process, using a Business Process Reengineering Business Process Reengineering (BPR) methodology and (BPR) methodology and client/server computing. client/server computing.

Page 16: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The Role of the ClientThe Role of the Client Why is workstation technology so Why is workstation technology so

effective? effective? It supports the new business It supports the new business

paradigm.paradigm. The capability of powerful The capability of powerful

workstation technology reduce cost workstation technology reduce cost and improve serviceand improve service

Page 17: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Request for Service Request for Service Client workstations request services from Client workstations request services from

the attached server. the attached server. Whether this server is in fact the same Whether this server is in fact the same

processor or a network processor, the processor or a network processor, the application format of the request is the application format of the request is the same. same.

For Interprocess communication (IPC) For Interprocess communication (IPC) these processes might be on the same these processes might be on the same computer, across the LAN, or across the computer, across the LAN, or across the WAN. WAN.

Page 18: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Request for ServiceRequest for Service The most basic service The most basic service

provided by the NOS is provided by the NOS is redirectionredirection. .

This service intercept client This service intercept client workstation operating system workstation operating system calls and redirects them to calls and redirects them to the server operating system. the server operating system.

Page 19: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Remote Procedure Call Remote Procedure Call (RPC) (RPC)

Over the years, good programmers have Over the years, good programmers have developed modular code using structured developed modular code using structured techniques and subroutine logic.techniques and subroutine logic.

Today, developers want subroutines to be Today, developers want subroutines to be stored as a named objects "somewhere" stored as a named objects "somewhere" and made available to everyone with the and made available to everyone with the right to use them. right to use them.

Remote procedure calls (RPCs) provide Remote procedure calls (RPCs) provide this capability. this capability.

Page 20: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Remote Procedure Call Remote Procedure Call (RPC)(RPC)

A remote procedure call makes a call to a remote service look like a local call

RPC makes transparent whether server is local or remote

RPC allows applications to become distributed transparently

Page 21: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Problem with messagesProblem with messages Messages are flexible, but They are not a natural programming

model Programmers have to worry about

message formats messages have to be decoded by server to

figure out what is requested they may require special error handling

functions

Page 22: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Procedure CallProcedure Call A more natural way to communicate every programming language supports it semantics are well defined and understood natural for programmers to useDefine a server as a module that exports a

set of procedures that can be called by client programs.

Client Server

Call

Return

Page 23: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

(Remote) Procedure Call

Use procedure call as a model for distributed

communication.Many issues:• how do we make this invisible to the

programmer?• what are the semantics of parameter

passing?• how is binding done (locating the

server)?• how do we support heterogeneity (OS,

arch., language)• etc.

Page 24: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

(Remote) Procedure Call Goal – make RPC look as much like

local PC as possible. Uses computer/language support. There are 3 components on each

side: a user program (client or server) a set of stub procedures RPC runtime support

Page 25: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

RPC StubsRPC Stubs A client-side stub is a procedure that

looks to the client as if it were a callable server procedure.

A server-side stub looks to the server as if it’s a calling client.

The stubs send messages to each other to make RPC happen.

Page 26: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Remote procedure call

• A remote procedure call makes a call to a remote service look like a local call

• RPC makes transparent whether server is local or remote

• RPC allows applications to become distributed transparently

• RPC makes architecture of remote machine transparent

Page 27: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Fax/Print Services Fax/Print Services The NOS enables the client to generate print The NOS enables the client to generate print

requests even when the printer is busy. requests even when the printer is busy. These are redirected by the NOS redirector These are redirected by the NOS redirector

software and managed by the print server software and managed by the print server queue manager. queue manager.

The client workstation can view the status of The client workstation can view the status of the print queues at any time. the print queues at any time.

Many print servers notify the client Many print servers notify the client workstation when the print request is workstation when the print request is completed. completed.

Fax services are made available in exactly the Fax services are made available in exactly the same manner as print servers, with the same same manner as print servers, with the same requester server interface and notification requester server interface and notification made available. made available.

Page 28: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Window Services Window Services A client workstation may have several windows A client workstation may have several windows

open on-screen at any time. open on-screen at any time. The capability to activate, view, move, size, or The capability to activate, view, move, size, or

hide a particular window is provided by the hide a particular window is provided by the window services of the client operating system. window services of the client operating system.

These services are essential in a client/server These services are essential in a client/server implementation, because they interact with implementation, because they interact with message services provided to notify the user of message services provided to notify the user of events that occur on a server. events that occur on a server.

Each application is written with the assumption Each application is written with the assumption that it has a virtual screen. This virtual screen that it has a virtual screen. This virtual screen can be an arbitrary size and can even be larger can be an arbitrary size and can even be larger than the physical screen. than the physical screen.

Page 29: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The application, using GUI software, places this The application, using GUI software, places this greatly simplifies application development, because greatly simplifies application development, because there is no need for the developer to build or manage there is no need for the developer to build or manage the windowing services. the windowing services.

The client user is totally in control of his or her The client user is totally in control of his or her desktop and can give priority to the most important desktop and can give priority to the most important tasks at hand simply by positioning the window of tasks at hand simply by positioning the window of interest to the "front and center." interest to the "front and center."

The NOS provides software on the client workstation The NOS provides software on the client workstation to manage the creation of pop-up windows that to manage the creation of pop-up windows that display alerts generated from remote servers. display alerts generated from remote servers.

E-mail receipt, print complete, Fax available, and E-mail receipt, print complete, Fax available, and application termination are examples of alerts that application termination are examples of alerts that might generate a pop-up window to notify the client might generate a pop-up window to notify the client user. user.

Page 30: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Remote Boot Services Remote Boot Services Some applications operate well on workstations Some applications operate well on workstations

without any local disk storage; X-terminals and without any local disk storage; X-terminals and workstations used in secure locations are workstations used in secure locations are examples. examples.

The client workstation must provide sufficient The client workstation must provide sufficient software burned into erasable programmable software burned into erasable programmable read-only memory (E-PROM) to start the initial read-only memory (E-PROM) to start the initial program load (IPL)—that is, boot—process. E-program load (IPL)—that is, boot—process. E-PROM is included in all workstations to hold the PROM is included in all workstations to hold the Basic Input/Output System (BIOS) services. Basic Input/Output System (BIOS) services.

This mini-operating system is powerful enough to This mini-operating system is powerful enough to load the remote software that provides the load the remote software that provides the remaining services and applications functions to remaining services and applications functions to the client workstation or X-terminal. the client workstation or X-terminal.

Page 31: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Utility ServicesUtility Services The operating system provides local The operating system provides local

functions such as copy, move, edit, functions such as copy, move, edit, compare, and help that execute on compare, and help that execute on the client workstation. the client workstation.

Page 32: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Network ServicesNetwork Services The client workstation communicates The client workstation communicates

with the network through a set of with the network through a set of services and APIs that create, send, services and APIs that create, send, receive, and format network receive, and format network messages. messages.

These services provide support for These services provide support for communications protocols, such as communications protocols, such as NetBIOS, TCP/IP, Ethernet, Token NetBIOS, TCP/IP, Ethernet, Token Ring, , X.25 etc. Ring, , X.25 etc.

Page 33: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Application ServicesApplication Services

In addition to the remote execution In addition to the remote execution services that the NOS provides, services that the NOS provides, custom applications will use their custom applications will use their own APIs embedded in an RPC to own APIs embedded in an RPC to invoke specialized services from a invoke specialized services from a remote server. remote server.

Page 34: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Database serviceDatabase service Database requests are made using the SQL Database requests are made using the SQL

syntax. syntax. SQL is an industry standard language supported SQL is an industry standard language supported

by many vendors. Because the language uses a by many vendors. Because the language uses a standard form, the same application may be run standard form, the same application may be run on multiple platforms. on multiple platforms.

There are syntactical differences and product There are syntactical differences and product extensions available from most vendors. extensions available from most vendors.

These are provided to improve developer These are provided to improve developer productivity and system performance productivity and system performance

The use of stored procedures is often a way of The use of stored procedures is often a way of avoiding programmer use of proprietary avoiding programmer use of proprietary extensions needed for performance. extensions needed for performance.

Page 35: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Network Management Network Management Services-Alerts Services-Alerts

Most network interface cards (NICs) can Most network interface cards (NICs) can generate alerts to signify detected errors and generate alerts to signify detected errors and perhaps to signify messages sent and received. perhaps to signify messages sent and received.

These alerts are valuable in remote LAN These alerts are valuable in remote LAN management to enable early detection of failures. management to enable early detection of failures.

Because many errors are transient at first, simple Because many errors are transient at first, simple remote detection may allow problems to be remote detection may allow problems to be resolved before they become critical. resolved before they become critical.

Applications may also generate alerts to signify Applications may also generate alerts to signify real or potential problems. real or potential problems.

Certain error conditions indicate that important Certain error conditions indicate that important procedures are not being followed. procedures are not being followed.

Application program failure may occur because Application program failure may occur because current versions of software are not being usedcurrent versions of software are not being used. .

Page 36: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Dynamic Data ExchangeDynamic Data Exchange Dynamic Data Exchange is a feature of Windows Dynamic Data Exchange is a feature of Windows

that allows two programs to share data or send that allows two programs to share data or send commands directly to each other. commands directly to each other.

DDE can be thought of as a direct conversation DDE can be thought of as a direct conversation between two application programs. between two application programs.

In most cases, one application is providing some In most cases, one application is providing some form of data (either text or graphics) to another form of data (either text or graphics) to another application. application.

The application that is the source of the data is The application that is the source of the data is called the "server" and the application that is called the "server" and the application that is receiving the data is called the "client". receiving the data is called the "client". Each data item that a server application can Each data item that a server application can provide has a unique identifier consisting of three provide has a unique identifier consisting of three parts, a DDE Application Name, a DDE Topic, and parts, a DDE Application Name, a DDE Topic, and a DDE Item Name.a DDE Item Name.

Page 37: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The DDE Application Name is almost always The DDE Application Name is almost always the executable filename for the server the executable filename for the server application (without the .EXE extension). application (without the .EXE extension).

The DDE Topic typically identifies a group or The DDE Topic typically identifies a group or category of data in the server application category of data in the server application

and each data item that a server can provide and each data item that a server can provide has a unique DDE Item Name. Thus, the has a unique DDE Item Name. Thus, the Application Name, Topic, and Item Name Application Name, Topic, and Item Name identify the exact source of the data in a identify the exact source of the data in a server application that is to be linked. (Similar server application that is to be linked. (Similar to a telephone number with the three parts: to a telephone number with the three parts: Area Code, Exchange and Number.)Area Code, Exchange and Number.)

Page 38: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

The primary function of DDE is to allow Windows The primary function of DDE is to allow Windows applications to share data. For example, a cell in applications to share data. For example, a cell in Microsoft Excel could be linked to a value in another Microsoft Excel could be linked to a value in another application and when the value changed, it would be application and when the value changed, it would be automatically updated in the Excel spreadsheet. automatically updated in the Excel spreadsheet.

The DDE protocol identifies the units of data passed The DDE protocol identifies the units of data passed between the client and server with a three-level between the client and server with a three-level hierarchy of application, topic, and item names. hierarchy of application, topic, and item names.

For example, if a user wanted to pull a value from For example, if a user wanted to pull a value from Microsoft Excel which was contained in a Microsoft Excel which was contained in a spreadsheet called "Book1.xls" in the cell in the first spreadsheet called "Book1.xls" in the cell in the first row and first column, the application would be row and first column, the application would be "Excel", the topic "Book1.xls" and the item "r1c1 "Excel", the topic "Book1.xls" and the item "r1c1

Page 39: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

OLE OLE OLE is an extension to DDE that enables objects to be OLE is an extension to DDE that enables objects to be

created with the object components software created with the object components software awareaware. . Aware means that a reference to the object or one of its Aware means that a reference to the object or one of its

components automatically launches the appropriate components automatically launches the appropriate software to manipulate the data. For example, a document software to manipulate the data. For example, a document created with a word processor may include an image created with a word processor may include an image created by a graphics package. created by a graphics package.

The image can be converted to the internal graphics form The image can be converted to the internal graphics form of the word processor, such as WPG form for WordPerfect. of the word processor, such as WPG form for WordPerfect.

With OLE, the image can be included in its original form With OLE, the image can be included in its original form within the document object; whenever the image is within the document object; whenever the image is selected or highlighted, the graphics package will take selected or highlighted, the graphics package will take control to manipulate the image. control to manipulate the image.

Activation of the software is totally transparent to the users Activation of the software is totally transparent to the users as they navigate through the document. as they navigate through the document.

Currently with OLE, one software package accesses data Currently with OLE, one software package accesses data created from another through the use of a created from another through the use of a viewerviewer or or launcherlauncher..

Page 40: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

OLE cont…OLE cont… These viewers and launchers must be custom built These viewers and launchers must be custom built

for every application. for every application. With the viewer, users can see data from one With the viewer, users can see data from one

software package while they are running another software package while they are running another package. package.

Launchers invoke the software package that created Launchers invoke the software package that created the data and thus provide the full functionality of the the data and thus provide the full functionality of the launched software.launched software.

Both these techniques require the user to be aware Both these techniques require the user to be aware of the difference between data sources. DDE and of the difference between data sources. DDE and OLE provide a substantial advantage: any DDE- or OLE provide a substantial advantage: any DDE- or OLE-enabled application can use any software that OLE-enabled application can use any software that supports these data interchange APIs. An e-mail supports these data interchange APIs. An e-mail application will be able to attach any number of application will be able to attach any number of components into the mail object without the need to components into the mail object without the need to provide custom viewers or launchers. provide custom viewers or launchers.

Page 41: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

OLE cont…OLE cont… OLE 2.0 extends OLE capabilities to enable a OLE 2.0 extends OLE capabilities to enable a

group of data to be defined as an object and group of data to be defined as an object and saved into a database. This object can then be saved into a database. This object can then be dragged and dropped into other applications and dragged and dropped into other applications and edited without the need to switch back to the edited without the need to switch back to the application which created it. This provides a application which created it. This provides a more seamless interface for the user. In OLE 1.x, more seamless interface for the user. In OLE 1.x, double-clicking a Lotus 1-2-3 for Windows double-clicking a Lotus 1-2-3 for Windows spreadsheet embedded in a Microsoft Word for spreadsheet embedded in a Microsoft Word for Windows document launches 1-2-3 and opens Windows document launches 1-2-3 and opens the document in a 1-2-3 window. Under OLE 2.0, the document in a 1-2-3 window. Under OLE 2.0, the active window (Word's) menu and toolbar the active window (Word's) menu and toolbar change to that of 1-2-3. The user deals only with change to that of 1-2-3. The user deals only with the object, with no need to be aware of the the object, with no need to be aware of the multiple software being loaded. multiple software being loaded.

Page 42: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

Common Object Request Broker Common Object Request Broker Architecture (CORBA)Architecture (CORBA)

CORBA is a specification from the Object CORBA is a specification from the Object Management Group (OMG), a UNIX vendor Management Group (OMG), a UNIX vendor consortium. consortium.

OLE focuses on data sharing between applications OLE focuses on data sharing between applications on a single desktop, and CORBA addresses cross-on a single desktop, and CORBA addresses cross-platform data transfer and the process of moving platform data transfer and the process of moving objects over networks. objects over networks.

CORBA enables Windows and UNIX clients to share CORBA enables Windows and UNIX clients to share objects. A word processor operating on a Windows objects. A word processor operating on a Windows desktop can include graphics generated from a desktop can include graphics generated from a UNIX workstation.UNIX workstation.

It allows a distributed, heterogeneous It allows a distributed, heterogeneous collection of objects to interoperate. collection of objects to interoperate.

Page 43: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

CORBA ArchitectureCORBA Architecture CORBA defines an architecture for distributed objects. The CORBA defines an architecture for distributed objects. The

basic CORBA paradigm is that of a request for services of basic CORBA paradigm is that of a request for services of a distributed object. a distributed object.

The services that an object provides are given by its The services that an object provides are given by its interfaceinterface. Interfaces are defined in OMG's Interface . Interfaces are defined in OMG's Interface Definition Language (IDL). Distributed objects are Definition Language (IDL). Distributed objects are identified by object references, which are typed by IDL identified by object references, which are typed by IDL interfaces. interfaces.

The figure below graphically depicts a request. A client The figure below graphically depicts a request. A client holds an object reference to a distributed object. The holds an object reference to a distributed object. The object reference is typed by an interface. In the figure object reference is typed by an interface. In the figure below the object reference is typed by the Rabbit interface. below the object reference is typed by the Rabbit interface. The Object Request Broker, or ORB, delivers the request The Object Request Broker, or ORB, delivers the request to the object and returns any results to the client. to the object and returns any results to the client.

Page 44: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

ORBORB The ORB is the distributed service that implements the The ORB is the distributed service that implements the

request to the remote object. It locates the remote request to the remote object. It locates the remote object on the network, communicates the request to the object on the network, communicates the request to the object, waits for the results and when available object, waits for the results and when available communicates those results back to the client.communicates those results back to the client.

The ORB implements location transparency. Exactly the The ORB implements location transparency. Exactly the same request mechanism is used by the client and the same request mechanism is used by the client and the CORBA object regardless of where the object is located. CORBA object regardless of where the object is located. It might be in the same process with the client, down It might be in the same process with the client, down the hall or across the planet. The client cannot tell the the hall or across the planet. The client cannot tell the difference.difference.

The ORB implements programming language The ORB implements programming language independence for the request. The client issuing the independence for the request. The client issuing the request can be written in a different programming request can be written in a different programming language from the implementation of the CORBA object. language from the implementation of the CORBA object. The ORB does the necessary translation between The ORB does the necessary translation between programming languages. Language bindings are defined programming languages. Language bindings are defined for all popular programming languages.for all popular programming languages.

Page 45: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

CORBACORBA clients and object implementations are portable. clients and object implementations are portable. The CORBA specification defines an application The CORBA specification defines an application

programmer's interface (API) for clients of a programmer's interface (API) for clients of a distributed object as well as an API for the distributed object as well as an API for the implementation of a CORBA object. implementation of a CORBA object.

This means that code written for one vendor's This means that code written for one vendor's CORBA product could, with a minimum of effort, CORBA product could, with a minimum of effort, be rewritten to work with a different vendor's be rewritten to work with a different vendor's product. product.

However, the reality of CORBA products on the However, the reality of CORBA products on the market today is that CORBA clients are portable market today is that CORBA clients are portable but object implementations need some rework but object implementations need some rework to port from one CORBA product to another. to port from one CORBA product to another.

CORBA 2.0 added interoperability as a goal in CORBA 2.0 added interoperability as a goal in the specification. the specification.

Page 46: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

CORBA ProductsCORBA Products

CORBA is a specification; it is a CORBA is a specification; it is a guide for implementing guide for implementing products. Several vendors products. Several vendors provide CORBA products for provide CORBA products for various programming languages. various programming languages. The CORBA products that The CORBA products that support the Java programming support the Java programming language include:language include:

Page 47: Chapter3

Prepared By Ms.Tabassum Ara, Lecturer HKBKCE, Bangalore

CORBA ProductsCORBA ProductsThe 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.