BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
FIG. 1 is a diagram of a network;
FIG. 2 is a flow diagram of a method for adding a protocol adapter to the protocol factory; and
FIG. 3 is a flow diagram of a method for selecting a protocol adapter to be implemented by the client in a client-server network.
DETAILED DESCRIPTION
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communication with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
Shown in FIG. 1 is a diagram of a network, which is indicated generally at 10. Network 10 includes two data servers 26a and 26b. Data server 26a is configured according to the Windows Management Instrumentation (WMI) protocol and data server 26b is implemented according to the OpenWBEM protocol. Servers 26a and 26b are coupled to a network node or network cloud 24 to a client, which is indicated at 12. Each of the data servers 26 may provide any form of information to client 12, including files, web pages, or data in any other form. In operation, servers 26 and client 12 may operate according to different communications protocols. To resolve any incompatibility among the protocols, client 12 loads and runs a protocol adapter. A protocol adapter is a software application or utility that converts communications from a first protocol—used by the client—to the second protocol of the server.
Included within client 12 is a protocol factory 16. A client application 14 is coupled to protocol factory 16. Protocol factory 16 is internal to client 12 and acts as an interface to and a server of protocol adapters to client 12 from protocol library 18. Protocol library 18 includes a number of protocol adapters. Among the protocol adapters are a protocol adapter 20 for an open source Open WBEM protocol and a protocol adapter for Windows (WMI). In operation, protocol factory 16 loads one of the protocol adapters dynamically at startup or at run-time of an application seeking access to one of the servers 26. The selection of the protocol adapter to be loaded by the protocol factory is made on the basis of the Internet Protocol (IP) address of the server. The identification of the IP address of the server is made through an online discovery process in which client 12 accesses the network 24 to identify the IP address of the data server 26.
Protocol adapters can be added to the protocol library over time. Through the addition of protocol adapters to protocol library 18, protocol factory 16 can select one of the additional protocols to account for the addition of communications protocol and servers to network 10. Shown in FIG. 2 is a flow diagram of a method for adding a protocol adapter to the protocol library. Protocol factory 16 includes an interface program in which an administrator can add a protocol adapter to the protocol library. After the administrators saves the new protocol adapter to the protocol library, all protocol adapters included in the library are loaded and included in a discovery process during the next following initiation of an application 14 in client 12 seeking access to one of the servers 26. Protocol adapters are often added to protocol library 18 in groups of adapters known as protocol libraries.
With reference to FIG. 2, an application on client 12 is started at step 30. At step 32, the client accesses protocol factory 16 and attempts to discover whether any additional protocol libraries exist within the protocol library 18. As part of the discovery process, the application compares the existing libraries in protocol library 18 with the most recent list of libraries in protocol library 18. At step 34, it is determined if a new library has been saved to protocol factory 18. If a new library has been saved to protocol library 18, the library is loaded at step 36 and is identified by the protocol factory as being a newly added library within the library of protocol adapters in protocol library 18. After the completion of step 36, the flow diagram loops back to step 32 to continue the process of locating all of the previously unrecognized libraries in protocol library 18. If it is determined at step 34 that a new library has not been added to the protocol factory or once it is determined that all newly added protocol libraries have been loaded, the flow diagram continues at step 38, where the client determines if new protocol adapters exist in protocol library 18. If, for example, a new library has been added to protocol library 18, at least one new protocol adapter will be present in the protocol library. At step 40, it is determined if a new protocol adapter is present in protocol factory 20. If a new protocol adapter is present, the protocol adapter is loaded at step 42 and identified by the protocol factory as being an available protocol adapter. Following step 42, the flow diagram loops to step 38, where the process of identifying each newly added protocol adapter continues. If it is determined at step 40 that the protocol library includes no new protocol adapters or once it is determined that all newly added protocol adapters have been loaded, the protocol load process ends at step 44.
FIG. 3 is a flow diagram of a method for selecting a protocol adapter to be used by the client 12. At step 50, client 12 calls protocol factory 16. The call by the client to the protocol factory to retrieve a protocol adapter can be made at the initiation of the client, the initiation of an application at the client, or at a run-time on the basis of a predetermined event, such as an attempt by the client 12 to access one of the servers 26. At step 52, the protocol factory loads a first or next protocol adapter from protocol library 18. At step 54, the client executes a connection program to determine if the client can execute the protocol adapter to communicate with the selected server 26. If the connection is not successful, the protocol adapter is returned to the protocol library at step 53 and the flow diagram loops back to step 52, where the next protocol adapter from protocol library is loaded. Once it is determined at step 54 that client 12 can execute the retrieved protocol adapter and communicate successfully with server 26, the client uses the protocol adapter for the purpose of converting communications to and from the protocol of the client to the protocol of the server. At step 56, protocol adapter discovery ends. The process of identifying the correct protocol for the client occurs in a manner that is transparent to the client. As such, the client is not aware that a discovery process is being conducted, and the client is also not aware of the protocol adapter that is selected for communications with the data server.
The system and method disclosed herein is advantageous because the client can communicate with any number of N data servers in a heterogenous environment. Thus, regardless of the communications protocol of a particular data server, the client can select an appropriate protocol adapter and communicate with the data server. In addition, the placement of the protocol adapters on each client removes the need of loading each of the protocol adapters on each of the servers of a network. Instead, the protocol adapters are loaded on each of the client computers of the network.
The system and method disclosed herein is additionally advantageous in that it provides for the dynamic loading and execution of adapters to enable communications with servers in a WBEM environment. The system and method disclosed herein allows any client to communicate with any server without the pre-installation of adapter software on the server and regardless of the communications protocol in place at the server. As the WBEM standard becomes more prevalent and is applied to other devices, such as printers and other networked items, additional protocols can be added to the system described herein to permit clients of the system to communicate with these devices. It should also be recognized that the system and method disclosed herein is not limited in its application to clients and severs that implement the WBEM standard. Rather, the system and method disclosed herein may be employed to facilitate communication between any two endpoints that communicate according to different communication standards. Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the invention as defined by the appended claims.