throbber
US005926636A
`5,926,636
`(11) Patent Number:
`115
`United States Patent
`
` Lam etal. [45] Date of Patent: *Jul. 20, 1999
`
`
`[54] REMOTE PROCEDURAL CALL
`COMPONENT MANAGEMENT METHOD
`NPeworieEROGENEOUS COMPUTER
`
`[75]
`
`Inventors: Geoffrey T. Lam, San Jose; Ajay
`Malik, Fremont; Senthil K.
`Ponnuswamy, San Jose; Thomas M.
`Battle, Los Altos Hills, all of Calif.
`
`[73] Assignee: Adaptec, Inc., Milpitas, Calif.
`
`[*] Notice:
`
`This patent issued on a continued pros-
`ecution application filed under 37 CFR
`1.53(d), and is subject to the twenty year
`patent
`term provisions of 35 U.S.C.
`154(a)(2).
`
`[21] Appl. No.: 08/603,531
`.
`Filed:
`[22]
`Feb. 21, 1996
`[51] Unt, CLS oe eeeceesseesentnee GO6F 13/14; GO6F 9/44
`[52] US. Ch coaccccccccscn395/683; 395/200.62; 395/684
`[58] Field of Search oe 395/683, 200.01,
`395/800, 615, 670, 200.12, 200.15, 210.16
`672. 335. 326. 200.61. 200.57. 684. 800.23
`200 79 00 31 500 62: 37960 >45: 329194 3.
`60
`
`[56]
`
`References Cited
`
`5,278,955
`5,329,619
`5,434,908
`
`U.S. PATENT DOCUMENTS
`1/1994 Fortéet ale
`ccecsssssssesssesseeeee 305/200.01
`7/1994 Pagé et al. occ 395/200.01
`7/1995 Klein wee cesecessceeeeseeceneeeeeens 379/88
`
`5,475,836
`12/1995 Harris et al. eee 395/681
`5,581,461
`12/1996 Coll et ab. occeeccccccceesseecseses 395/205
`Primary Examiner—Daniel H. Pan
`Attorney, Agent, or Firm—Forrest Gunnison
`[57]
`ABSTRACT
`
`In response to a component management function call by a
`remote client application, the component managementappli-
`cation programming interface (API) generates a message
`that identifies the called function and the version of the
`component management API. The component management
`APTcalls a local message transfer RPC commandto send the
`message to a RPC command module. The RPC command
`module processes the local message transfer RPC command,
`and packages the message for transfer as a RPC over the
`heterogenous network. The RPC command module sends
`the packaged RPCto a network stack whichin turn transmits
`the packaged RPC over the heterogenous network to a
`network stack in the server computer. The server network
`stack provides the packaged RPC to a server RPC command
`module that unpacks the RPC in a conventional mannerto
`obtain the original message. The message is passed to a
`server component management API. The server component
`management API parses the message to determine the com-
`puter architecture of the client computer. With this
`information, server component management APIreads the
`version specified in the message. If the specified version is
`incompatible with the version of the server component
`management API, a reply indicating the version incompat-
`ibility is transmitted to remote client application and other-
`wise the message is processed further by the server compo-
`Rent management API.
`
`15 Claims, 7 Drawing Sheets
`
`uNoOWS
`CLIENT
`
`
`
`505
`
`
`
`
`
`
`
`
`
`540-1 /
`COMPONENT]
`1
`
`*
`
`*
`

`
`540-n
`COMPONENT
`n
`
`
`
`
`
`SERVER COMPUTER 520
`
`Google Exhibit 1068
`Google v. VirtaMove
`
`REMOTE CLIENT
`APP
`
`
`“APL FEN ©)
`COMPONENT MANAGE [~912
`
`
`API
`TRANSFER
`
`RPC_MESSAGE
`BUFFER
`
`REMOTE RPC
`[515
`
`COMMAND MODULE
`
`NETWORK TRANSPORT [~516
`STACK
`510
`500
`
`z
`
`t
`NETWORK TRANSPORT]
`UNIX
`NT
`see
`SERVER a SERVER
`SERVER RPC
`525
`COMMAND MODULE
`TRANSFER
`T
`RPC_MESSACE
`506
`BUFTER
`SERVER COMPONENT }-522
`
`MANAGEMENT API.
`
`0s/2
`CLIENT
`
`
`
`
`
`
`
` 7
`
`be1Pc_NESSAGE
`[530
`1/0 MANAGER
`
`*
`
`Google Exhibit 1068
`Google v. VirtaMove
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 1 of 7
`
`5,926,636
`
`
`OS|OL\0908||dv
`MGAYSSZ/SOYMOMLININ
`
`
`
`‘a0S)NETASESEISENNETASESS
`OC171SMOCNIM¢/S050d
`INAMNOZ|OL|
`SOz/SOsod
`LNALNaN9
`
`LayYOId1old
`
`oor
`
`XIN
`
`(NAS
`
`SMOGNIM
`
`ddVdd¥
`
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 2 of 7
`
`5,926,636
`
`
`XDR
` DCE
`SUN
`
`NDR
`
`
`
`
`
`
`
`
`
`
`IEEE
`802.5
`
`(TOKEN RING)|
`
`
`NET BIOS
`
`SOCKETS
`
`TLI
`
`TCP
`IP
`
`SPX
`IPX
`
`NET BEUI
`
`2200
`
`290
`
`
`
`IEEE 802.2
`
`ODI
`
`
`
`IEEE
`802.3
`(ETHERNET)
`
`SDLC
`
`ISDN
`
`FIBER
`OPTIC
`
`COAX
`
`TWISTED
`PAIR
`
`
`
`FIG. ¢
`PRIOR_ART
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 3 of 7
`
`5,926,636
`
`
`
`
`
`U-LO¢é—1OeL-LO¢
`
`LNANJDVNVA
`
`ddV
`
`ddV
`
`LNAWADVNVA
`
`ddV
`
`LWNol6Old
`YAAV]
`LNAWSOVNVIN
`
`AIW
`
`ASVEVLV
`
`SOIAUSS JOVAYSLNI
`
`LNSNFOVNVA
`
`L-c0¢ JOVIYSLNI
`
`!—20¢6—-C0E
`
`LNANOdNOD
`
`00¢
`
`
`
`
`
`

`

`FT 71
`REMOTE
`|
`
`12
`|
`:
`REMOTE
`\~415
`
`!
`CLIENT
`ss
`
`IPC
`!
`MODULE
`FC
`
`a 4
`RPC COMMAND
`414
`CLIENT
`
`
`
` Be 4
`
`
`|
`|
`
`!
`|
`
`| |
`
`|
`|
`
`!
`L a
`
`LOCAL
`CLIENT APP
`
`l | | |
`
`|
`|
`
`!
`
`| | | | | | l | j
`
`l
`
`NETWORK STACK
`
`(7429
`
`RPC COMMAND
`SERVER
`
`424
`
`SERVER
`IPC MODULE
`
`403
`
`RPC
`
`|
`
`LOCAL
`IOMAPT |
`422
`|
`___ |
`
`435
`
`ato
`
`430
`
`
`1/0
`
`
`
`MANAGER
`
`W IPC INTERFACE
`
`
`TO SERVER
`
`
`IPC MODULE
`
`
`
`
`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 4 of 7
`
`5,926,636
`
`CLIENT |
`COMPUTER 410
`|
`!
`
`! | |
`
`¥—411
`
`
`
`
`REMOTE
`CLIENT
`APP
`
`
`IOMAPI
`
`|
`:
`|
`|
`RPC
`!
`|
`
`NETWORKstack[7° |
`
`! |
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 5 of 7
`
`
`
`WINDOWS
`CLIENT
`
`TRANSFER
`RPC_MESSAGE
`BUFFER
`
`NETWORK TRANSPORT
`STACK
`
`[~516
`
`5,926,636
`
`902
`
`0S/2
`CLIENT
`
`500
`
`UNIX
`SERVER
`
`506
`
`
`
`NETWORK TRANSPORT
`Stat
`
`
`TRANSFER
`RPC_MESSAGE
`BUFFER
`
`
`
`
`
`COMPONENT
`n
`
`
`
`
`SERVER COMPUTER 520
`
`NT
`SERVER
`
`505
`
`FIG. 5
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 6 of 7
`
`5,926,636
`
`
`
`REMOTE
`CLIENT
`APPLICATION
`
`
`
`
`CLIENT
`REMOTE
`COMPONENT
`RPC ADMIN
`MANAGEMENT
`FCN MODULE
`MODULE
`
`CLIENT
`| COMPONENT. _
`
`
`TRANSFER
`
`RPC_MESSAGE
`ADMIN API
`BUFFER
`FCN CALL
`
`REMOTE RPC
`COMMAND
`MODULE
`
`PACKAGED
`RPC
`
`
`
`
`NETWORK
`STACK
`
`

`

`U.S. Patent
`
`Jul. 20, 1999
`
`Sheet 7 of 7
`
`5,926,636
`
` n
`
`COMPONENT
`i/o
`MANAGER
`
`oe COMPUTER 520 |
`
`| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
`
`SERVER
`623
`
`
`COMPONENT
`
`
`MANAGEMENT
`
`
`FCN MODULE
`
`
`odd
`!
`SERVER
`|
`COMPONENT
`|
`| MANAGEMENT
`|
`|
`API
`poAPLNAP |
`FCN CALL
`
`TRANSFER
`RPC_MESSAGE
`LOCAL
`
`BUFFER
`CLIENT
`
`
` APPLICATION
`
`
` SERVER RPC
`
`
`RPC
` PACKAGED
` NETWORK
`STACK
`
`
`COMMAND
`MODULE
`
`SERVER
`
`

`

`5,926,636
`
`2
`DCEis associated with an interface definition language
`(IDL) and compiler that facilitate creation of RPCs. The IDL
`compiler creates source code stubs for both the client and
`server sides of an application. The stubs are compiled and
`linked to the RPC run-time library, which is responsible for
`finding servers in a distributed system, performing the
`message exchanges, packing and unpacking the message
`parameters, and processing any errors that occur. The DCE
`RPC does not support transactions.
`One problem encountered in using RPCsis the represen-
`tation of data across a network with multiple platforms,
`because different CPUs represent data structures differently,
`for example, Big-Endian versus Little-Endian. To maintain
`machine independence, the RPC uses some level of data
`format translation across systems.
`With DCE,the client chooses one of the multiple data
`format representations from the network data representation
`(NDR)service. (See FIG. 2.) The client chooses the data
`format, typically its own native data representation; tags the
`data with the chosen format; and the server must transform
`the data into a format that the server understands.
`
`10
`
`15
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Another common RPCis provided by Sun Microsystems
`of Mountain View, Calif. RPC on Sun Microsystems com-
`puters requires that the client convert the data to a neutral
`canonical
`format using an external data representation
`(XDR). (See FIG. 2.) With the Sun approach,all clients look
`the same to a server.
`In FIG. 2, NetBios, sockets and
`transport layer interface (TLD) are all interfaces between
`RPC and the various network transport stacks. Network
`transport stacks include TCP/IP, NetBIOS,
`IPX/SPX,
`DECnet, AppleTalk, OSI, and SNA/APPN, for example.
`Thereis a logical interface to the network device drivers at
`the bottom of the network transport stack. Examples of
`widely supported logical interfaces to network device driv-
`ers are Microsoft/3Com’s NDIS and Novell’s ODI. The
`remainder of the standards, drivers, and communication
`protocols in FIG. 2 are knownto those of skill in the art and
`are shown only for completeness. A more complete discus-
`Clients and servers are loosely coupled systems that
`interact over network 100. Each interaction betweenaclient
`40
`sion of transport stacks is provided,
`for example,
`in
`Tannenbaum, Computer Networks, Prentice Hall, (1988).
`and a servertells a server which service is requested. After
`Herein, a network stack refers to network stack 250.
`the server receives the request, the server determines how to
`RPCsare used widely. However, for desktop management
`perform the service specified in the request.
`Communications between a client and a server over
`of components within a single desktop computer system,
`another approach is used. A Desktop ManagementInterface
`(DMD) has been defined by the Desktop Management Task
`Force, MIS JF2-51, 2111 N.E. 25th Avenue, Hillsboro, Oreg.
`97124. DMIisa localinterface between management appli-
`cations that manipulate information on components, e.g.,
`physical or logical entities in a computer system, and the
`components. For a detailed description of DMI, see the
`Desktop Management Interface Specification, Version 1.0,
`Apr. 29, 1994, which is incorporated herein by reference in
`its entirety.
`FIG. 3 is a block diagram of DMI within computer system
`300. Management applications 301-1 to 301-n use a man-
`agementinterface 310 to manage components 302-1 to 302-i
`within computer system 300. Management applications
`include a management console, a desktop management
`application, and a local area network management applica-
`tion. In general, a management application is a remote or
`local application thal changes, interrogates, controls, tracks,
`or lists components of a desktop computer system.
`Managementinterface 310 shiclds management applica-
`tions 301-1 to 301-n from the different mechanisms used to
`obtain management information from components 302-1 to
`302-1 within computcr system 300. Typical componcnts
`
`1
`REMOTE PROCEDURAL CALL
`COMPONENT MANAGEMENT METHOD
`FOR A HETEROGENEOUS COMPUTER
`NETWORK
`BACKGROUND OF THE INVENTION
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent documentorthe patent
`disclosure, as it appears in the Patent and ‘lrademark Office
`patent files or records, but atherwise reservesall copyright
`rights whatsoever.
`1. Field of the Invention
`
`The present invention is related generally to communica-
`tions across a computer system network and more specifi-
`cally to methods for managing components in a heteroge-
`neous computer system network.
`2. Description of Related Art
`A current trend in computing is to interconnect a variety
`of computer architectures and computer operating systems
`in a single network 100. As illustrated in FIG. 1, network
`100 includes a variety of servers, 1.e., a Unix server 150, a
`Netware server 160, an OS/2 server 170, and a Windows NT
`server 180. Herein, network 100 and similar networks are
`referred to as heterogeneous networks. Heterogeneous net-
`works include local area networks.
`
`One configuration commonly used for performing opera-
`tions over a network, such as network 100,is a client/server
`architecture. A server process executing on a server com-
`puter is a provider of services. Servers includefile servers,
`database servers, transaction servers, groupware servers and
`object servers.
`is executing either on a server
`that
`A client process,
`computer or another computer, is a consumer of services
`provided bythe server. Thus, in PIG. 1, three computers 110,
`120 and 130, that are each running a client process, are
`illustrated.
`
`heterogeneous network 100 require a method for transport-
`ing requests over network 100 from a client running under
`one operating system to a serverthat is either running under
`another operating system, or the same operating system. One
`widely used method for communication over heterogeneous
`network 100 is a remote procedure call (RPC). Techniques
`for implementing client/server applications, and client/
`server applications with remote procedure calls are knownto
`those skilled in the art. A remote procedure call (RPC) hides
`the physical structure of network 100 and makesa server on
`network 100 appear to be one function call away.
`Specifically, a remote procedure call hides the details of
`network 100 by using a procedure call mechanism that is
`well known.
`
`A common wayto illustrate implementation of a remote
`procedure call is a stack. FIG. 2 is an example of one prior
`art representation of a stack 200 that includes two common
`implementations of a RPC. One widely used RPC standard
`is distributed computing environment (DCE) RPC (FIG.2).
`ADCERPCallowsa clicnt to interoperate with one or more
`servers on other computing platforms, even whenthe client
`and server are from different vendors with different operat-
`ing systems.
`
`

`

`5,926,636
`
`3
`include software applications, operating systems, hardware
`products, peripheral products, and system hardware. Each
`component has a management information file (MIF), that
`describes the manageable characteristics of the component,
`stored in a MIFdatabase 340 within computer system 300.
`Managementinterface 310 is a data interface, as opposed
`to the procedural
`interface used in a RPC. Data blocks
`describe the format for data transfer instead of parameters to
`a function call. Thus, a command is issued from a manage-
`ment application,
`for example, management application
`301-1, to build a data block and pass the data block to
`service layer 320. All commandsare specified with data
`blocks, but there is one function call provided to pass the
`command to service layer 320.
`Service layer 320 is a desk-top resident application that
`controls the flow of information between managementinter-
`face 310 and a componentinterface 330. Service layer 320
`is a permanent background process that is always ready to
`handle an asynchronous request. The operations of the
`service layer are documented in Chapter 2 of the Desktop
`Management Interface Specification.
`Componentinterface 330 receivescalls from service layer
`320. Componentinterface 330 alsois a data interface, and so
`data blocks describe the format for data transfer. Commu-
`nication between componentinterface 330 and service layer
`320 is operating system dependent.
`While DMI provides a useful function for the desktop, the
`data interface, i.c., command blocks, is a departure from
`RPC. The current trend for management of components in a
`heterogeneous network is to use RPC.
`FIG. 4 is a block diagram of a client/server architecture
`used over a network, e.g. a heterogeneous network,
`to
`manage hardware components. A remote client application
`411, that needs to interact with a hardware component on
`server computer 420, uses RPCs to communicate over
`heterogeneous network 400 with server computer 420.
`For example, remote client application 411 is a graphic
`user interface (GUI) such as that used on a Windows
`workstation. A remote I/O management application pro-
`gramming interface 412 COMAPI 412)
`is provided to
`remote client application 411 by a remote client interprocess
`communication module 413.
`
`IOMAPI412 includes general I/O managementfunctions,
`RAID management functions, and an administration appli-
`cation programming interface (API). The functions available
`to remote client application 411 in IOMAPI 412 are the same
`as those made available to a local client application 435 on
`server computer 420 by server IPC module 423. Tunction
`calls to IOMAPI 412 by remote client application 411 result
`in I/O management on server computer 420. The adminis-
`tration calls by remote client application 411 through
`IOMAPI 412 are used for establishing a network session,
`and for ensuring the authentication and access rights of
`applications issuing IOMAPIcalls.
`A call to a function in IOMAPI 412 by remote client
`application 411 is passed to RPC commandclient 414. RPC
`command client 414 packages the function call in a con-
`ventional fashion and transmits the packaged function call to
`network stack 415, which in tum controls transmission of
`the packaged function call over network 400 to network
`stack 425 of server computer 420.
`To package the request, RPC command client 414 con-
`verts the function call and any associated data to a neutral
`canonical
`format using an external data representation
`(XDR). Thus, in FIG. 4, TJOMAPT 412 and RPC command
`clicnt 414 arc functionally the RPC layer of FIG. 2.
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Networkstack 425 transmits the packaged functioncall to
`server RPC command module 424. Server RPC command
`
`module 424 extracts the function call from the packaged
`request. If the function call is an administration function
`call, server RPC command module 424 processes the admin-
`istration function call and replies to RPC command client
`414that in turn communicates with remote client application
`411. However, if the function call is an IOMAPI function
`call, server RPC command module 424 passes the function
`call to server IPC module 423 Server IPC module 423
`
`transfers the specified function call via a message buffer
`IPC_MESSAGEto an I/O manager 430 with an interface to
`server IPC module 423. Message buffer IPC_MESSAGE,
`sometimes called message IPC_MESSAGE,is transmitted
`using an interprocess communication. In response to mes-
`sage IPC_MESSAGE,I/O manager 430issuesa call to the
`appropriate managementfunction.
`I/O manager 430 performs the called management func-
`tion and returns the result to server IPC module 423. The
`results are returned from server IPC module 423 to remote
`client application 411 in the normal manner for a RPC.
`While the architecture of FIG. 4 overcomes the limita-
`tions of DMI by using a RPC mechanism,the use of RPCs
`introduces limitations on updates and modifications. Any
`change in remote LOMAPI 412 and/or local IOMAPI 422
`requires a change in RPC commandclient 414 and RPC
`command module 424. Any change in RPC commandclient
`414 and RPC command module 424 implies changes in
`remote client application 411. The RPC interface must
`support cvery single commandthat’s defined in the list of
`procedure calls for every possible version and must support
`every one of the parameters that are passed with each of
`these procedure calls.
`Hence, RPC may not work properly in an environment
`with mixed versions of remote JOMAPI 412 and local
`
`IOMAPI422. To assure version capability across heteroge-
`neous network 400, remote client IPC module 413, client
`RPC command module 414, server RPC command module
`424 and server IPC module 423 must be updated to support
`each version, recompiled, and relinked for each of the
`computers on network 400. For heterogeneous networks,
`this is a formidable task. Thus, while the trend is to imple-
`ment RPC for component managementover a heterogeneous
`network, the requirementof the current RPC architecture for
`either consistent versions or support of all versions through-
`out such a network will limit the actual utilization of RPC
`for component management.
`SUMMARY OF THE INVENTION
`
`According to the principles of this invention, a computer
`process for using remote procedure calls over a hetcroge-
`neous computer network overcomesthe problemsassociated
`with supporting different versions of application program-
`ming interfaces by remote procedure call modules on client
`and server computers,
`i.e.,
`first and second computers.
`Moreover, the remote procedure call process of this inven-
`tion is independent of the architecture of the computer
`platforms on the network,
`i.e.,
`the process can be used
`between computers having different computer architectures.
`Unlike prior art RPC modules that were required to
`support every single command that was defined inthelist of
`procedurecalls for every possible version, the RPC modules
`of this invention support only a single RPC commandthat
`transfers a buffer of information. The particular information
`in the buffer does not affect
`the operation of the RPC
`module. Consequently, the RPC modules are independent of
`
`

`

`5,926,636
`
`5
`the client applications and application programming inter-
`faces with which the RPC modulesinteract.
`
`In one embodiment, a message buffer in a first computer
`is filled with information (including a version of an appli-
`cation programming interface on the first computer) by the
`client application, executing on the first computer, calling a
`function in the application programming interface. The
`application programminginterface issues a messagetransfer
`remote procedure call to a remote procedure call module on
`the first computer to transfer the message buffer over the
`heterogeneous computer network to a second computer.
`Each ofa plurality of functions called in the application
`programming interface fill the message buffer and then call
`the single remote procedure call commandto transfer the
`message buffer. Preferably, the information in the message
`buffer is one byte-aligned.
`When the message buffer is received in the second
`computer, the version of the application programminginter-
`face in the message buffer is compared with a version of an
`application programminginterface on the second computer.
`Specifically, in one embodiment a plurality of version iden-
`tifiers of the application programming interface on thefirst
`computer are compared with a plurality of version identifiers
`of the application programming interface on the second
`computer.
`If the comparison of the version of the application pro-
`gramminginterface in the message buffer with a version of
`an application programming interface on the second com-
`puter indicates that the versions are compatible, processing
`of the message is continued on the second computer.
`Conversely, if the versions are incompatible, an error is
`placed in the message and the message is returnedto the first
`computer.
`Prior to comparing the versions on the second computer,
`a field is read in the messagethat includesanidentifier of the
`computer architectureofthe first computer, e.g., the address-
`ing format. If the computer architecture of the first computer
`is incompatible with the computer architecture of the second
`computer, the message is converted to a form that is com-
`patible with the second computerprior to making the version
`comparison.
`In another embodiment of this invention, a component
`management function call is issued from a remote client
`application on a remote client computer to a remote client
`component managementapplication programminginterface
`on the remote client computer. In response to the remote
`client component management function call,
`the remote
`client component management application programming
`interface builds a message in a buffer memoryof the remote
`client computer. The message includes an identifier for the
`called component managementfunction and a version ofthe
`component managementapplication programminginterface.
`The remote client component management application
`programming interface sends the message to a server com-
`puter on a heterogeneous computer network using a remote
`procedure call command module. The remote procedure call
`command module is independent of the called component
`management function.
`Specifically, to send the message, the remote client com-
`ponent management application programming interface
`calls a local message transfer remote procedure call com-
`mand to transfer the message from the client component
`management application programming interface to the
`remote procedure call module on the client computer.
`The remote procedure call module packages the message
`for transfer over the hetcrogencous computer network. The
`
`10
`
`20
`
`25
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`remote call module transmits the packaged messageto a first
`network stack on the client computer whichin turn transmits
`the packaged message from the first network stack to a
`second network stack on a server computer. The packaged
`message is transmitted from the second network stack to a
`server RPC command module on the server computer. The
`server RPC command module converts the packaged mes-
`sage back to the message. The message is then transferred
`from the server RPC command module to a server compo-
`nent managementapplication programminginterface on the
`server computer.
`The server component managementapplication program-
`ming, interface reads a field in the message to determine
`whether an addressing format of the client computer is
`compatible with an addressing format of the server com-
`puter. If the addressing formats are not compatible,
`the
`server component management application programming
`interface converts the message to an addressing format
`compatible with the server computer.
`After the checking of the addressing format and the
`conversion if necessary,
`the versions are checked as
`described above. The elimination of the version dependency
`of the RPC module facilitates use of RPCs in a wide variety
`of heterogeneous networks.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram of a prior art heterogeneous network.
`FIG. 2 is an illustration of a prior art network stack.
`FIG. 3 is a diagram of the prior art desktop management
`interface in a desktop computer system.
`FIG. 4 is anillustration of a structure used to implement
`RPCsover a heterogeneous network for management of a
`RAID structure.
`
`FIG. 5 is an illustration of a structure and processof this
`invention for implementing, over helerogeneous networks,
`version independent RPCs for component management.
`FIGS. 6A and 6B are a more detailed illustration of the
`
`structure and process of this invention for implementing,
`over heterogeneous networks, version independent RPCsfor
`component management.
`
`DETAILED DESCRIPTION
`
`According to the principles of this invention, a remote
`procedure call process for management of components on a
`heterogeneous network 500 eliminates problems associated
`with differing versions of the remote procedure call process
`on a client and a server. The remote procedure call process
`of this invention minimizes, and in some applications
`eliminates, updating the remote procedure call modules;
`simplifies the distribution of updates; and is platform inde-
`pendent.
`In this embodiment, heterogeneous network 500 includes
`multiple types of clients, e.g. Windowsclient 501, remote
`client application 511, and OS/2 client 502, and multiple
`types of servers, e.g., Windows NT server 505, a server
`computer 520 that includes I/O manager server 530, and
`Unix server 506. According to the principles of this
`invention, a remote client component management applica-
`tion programming interface 512 is interposed between a
`remote client application 511 on a remote client computer
`510 and a remote client RPC command module 515. Herein,
`a clicnt application, application programming intcrfaccs,
`modules, and stacks are referenced. Those skilled in the art
`will understand that such applications, interfaces and mod-
`ules represent software processes that execute on a computer
`
`

`

`5,926,636
`
`7
`while a network slack represents a combination of software
`processes and hardware operations.
`Remote client component managementapplication pro-
`gramming interface 512 does not directly provide compo-
`nent managementfunction calls with parameters to remote
`clicnt RPC command module 515, as in prior art RPC.
`Rather, according to the principles of this invention,
`in
`response to a component management function call by
`remote client application 511, remote client component
`management application programming interface (API) 512
`generates a message RPC_MESSAGEREQUEST that
`identifies the called function and the version of remote client
`
`10
`
`15
`
`8
`RPCis the local message transfer RPC command, message
`RPC_MESSAGE_REQUESTis passed to server compo-
`nent managementapplication programming interface 522.
`Server component managementapplication programming
`interface 522 parses message RPC_MESSAGE _
`REQUESTpassed from server RPC command module 525
`to determine the computer architecture of remote client
`computer 510, ¢.g., the addressing format used on remote
`client computer 510. With this information, server compo-
`nent management API 522 reads the version specified in
`message RPC MESSAGE REQUEST.Thespecified ver-
`sion is compared with the version of server component
`management API 522. If the specified version is incompat-
`component management API 512.
`ible with the version of server component management API
`After remote client component management API 512
`522, a reply indicating the version incompatibility is placed
`builds message RPC_MESSAGE_REQUEST,remotecli-
`in the message that in turn is transmitted to remote client
`ent component management API 512 calls a local message
`application 511 by server component management API 522.
`transfer RPC command to send message RPC_
`MESSAGE_REQUEST 1o remote client RPC command
`When the specified version is compatible with server
`component management API 522, message RPC_
`module 515. Consequently, remote client RPC command
`20
`MESSAGE_REQUESTis passed to I/O manager 530, as
`module 515 supports only a single function call and not each
`message IPC_MESSAGEin a format compatible with I/O
`component management function supported by server com-
`manager 530, using standard operating system interprocess
`ponent managementapplication programminginterface 522.
`communication. As is known to those of skill in the art, the
`This configuration decouples the RPC from the particular
`addressing format may not be the same on remote client
`version of server component management API 522, and so
`computer 510 and server computer 520. It is the responsi-
`eliminates the prior art problems associated with incompat-
`bility of server component management API 522 to assure
`ible versions of function calls supported by remote client
`and server RPC command modules 515, and 525 over
`that message RPC_MESSAGE_REQUESTis converted to
`message IPC_MESSAGE in a form, ¢.g., addressing
`network 500. This configuration also supports changes to
`format, that can be processed by I/O manager 530. If no
`remote client RPC command module 515 without affecting
`conversion is necessary, message RPC_MESSAGE_
`component management APIs 512 and 522, and converscly.
`REQUESTis simply passed through as message IPC__
`In addition to the single function call for all component
`MESSAGEafter the version comparison.
`management function calls, in one embodiment, adminis-
`In this embodiment, I/O manager 530 interfaces with a
`tration application programming interface calls by remote
`plurality of components 540-1 to 540-n. Components 540-1
`client application 511 to component management API 512
`to 540-n can include software applications, operating
`are passed to remote client RPC command module 515.
`systems, hardware products, peripheral devices, and system
`Administration application programming interface calls are
`used to establish a network session, and to ensure the
`hardware. In response to message IPC_MESSAGE, I/O
`manager 530 performsthe called function for the specified
`authentication and access rights of remote applications issu-
`component and if necessary places a reply in message
`ing component managementfunction calls.
`IPC_MESSAGE.
`Thus, in this embodiment, remote client RPC command
`module 515 supports two sets of operations. A first set of
`operations processes the local message transfer RPC
`command, and packages the message for transfer as a RPC
`over network 500. A second set of operations handles the
`administration functions supported by the administration
`API, and packages the administration function call for
`transfer as a RPC over network 500. In both cases,
`the
`message is packaged using the prior art techniques for the
`particular type of RPC implemented on remote client com-
`puter 510.
`Remote clicnt RPC command module 515 scnds the
`
`35
`
`40
`
`45
`
`50
`
`packaged RPC to network stack 516 which in turn transmits
`the packaged RPC over heterogeneous network 500 to
`network stack 526 in server computer 520. Any of the
`various network stacks illustrated in FIG. 2 may used with
`this invention. Server computer 520 is not identified as any
`particular type of server, because the principles of this
`invention are independent of the particular type of server.
`Those skilled in the art, in view of this disclosure, will be
`able to implement the invention in a wide variety of servers.
`Network stack 526 provides the packaged RPC to server
`RPC command module 525. Server RPC command module
`
`525 unpacks the packaged RPC in a conventional mannerto
`obtain the RPC. If the RPC is a procedure call
`to the
`administration API, server RPC command module 525 pro-
`cesses the procedure call and responds appropriatcly. If the
`
`55
`
`60
`
`65
`
`/O manager 530 returns message [IPC_MESSAGE,that
`includes the result, to server component management API
`522. Server component management API 522 passes
`returned message IPC_MESSAGE as message RPC__
`MESSAGE_RESULT

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket