Apparatus and method for determining a program neighborhood for a client node in a client-server network
First Claim
1. In a network including a client system and a plurality of servers including a host server, the plurality of servers hosting application programs, a method for executing an application programs that is available for use, the method comprising:
- executing, by the host server, a neighborhood application to collect application-related information from the plurality of servers concerning application programs hosted by the plurality of servers;
determining for each application program hosted by the plurality of servers whether that hosted application program is available to the client system based on the application-related information;
transmitting information from the host server to the client system indicating to the client system each hosted application program in the plurality of servers determined to be available to the client system for execution, receiving, from the client, a request to execute one of the available hosted application programs;
choosing, from the plurality of servers, a second server hosting the requested application program;
establishing, in response to the request, a first connection between the host server and the second server hosting the requested application;
executing the requested application program at the second server;
providing output from the executing application program to the host server; and
providing the output from the host server to the client system.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method for determining a program neighborhood of a client node in a client-server network is described. The program neighborhood of the client node includes application programs hosted by application servers on the network. The present invention enables a user of a client node to learn of these application programs. The user is not required to know where to find such applications or to manually establish links to such applications. To make the client node aware of its program neighborhood, a host server collects application-related information corresponding to application programs hosted by the servers in the network. The application-related information can include the application name, the server location of the application, minimum capabilities required of client nodes for executing the application, and those users who are authorized to use that application. User credentials are received from the client system. The user credentials are used to filter the application-related information. Information representing those application programs that are available to the client node is transmitted from the host server to the client system for display. In a Windows-based client node, the information can be represented by a graphical icon for each available application program.
-
Citations
29 Claims
-
1. In a network including a client system and a plurality of servers including a host server, the plurality of servers hosting application programs, a method for executing an application programs that is available for use, the method comprising:
-
executing, by the host server, a neighborhood application to collect application-related information from the plurality of servers concerning application programs hosted by the plurality of servers;
determining for each application program hosted by the plurality of servers whether that hosted application program is available to the client system based on the application-related information;
transmitting information from the host server to the client system indicating to the client system each hosted application program in the plurality of servers determined to be available to the client system for execution, receiving, from the client, a request to execute one of the available hosted application programs;
choosing, from the plurality of servers, a second server hosting the requested application program;
establishing, in response to the request, a first connection between the host server and the second server hosting the requested application;
executing the requested application program at the second server;
providing output from the executing application program to the host server; and
providing the output from the host server to the client system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
receiving a second request to execute a second one of the available hosted application programs;
choosing, from the plurality of servers, a third server hosting the second requested application program;
establishing in response to the second request a second connection between the host server and the third server hosting the second requested application;
executing the second requested application at the third server;
providing output from the second executing application program to the host server; and
providing the output from the second program from the host server to the client system.
-
-
5. The method of claim 4 further comprising merging the information received from the second and third servers for transmission to the client system.
-
6. The method of claim 1 wherein the transmitted information is displayeds at the client system as icons representing the available application programs in a graphical user interface window.
-
7. The method of claim 1 further comprising establishing a communications link between the host server and the client system, wherein the communications link includes at least one virtual channel.
-
8. The method of claim 1 further comprising:
-
receiving user credentials from the client system;
authenticating at the host server the user of the client system based on the received user credentials; and
executing a selected one of the available application programs hosted by one of the plurality of servers other than the host server without requiring further input of user credentials by the user of the client system.
-
-
9. The method of claim 8 wherein the host server uses the user credentials to determine whether the user of the client system is authorized to access the host server and to determine those application programs that the user of the client system is authorized to execute.
-
10. The method of claim 1 wherein the host server transmits the available application information in response to a request for the available application information by the client system.
-
11. The method of claim 1 further comprising maintaining a database at the host server for storing the application-related information, wherein the database is accessible to each of the other servers of the plurality.
-
12. The method of claim 1 further comprising maintaining a database at each of the plurality of servers for storing the application-related information.
-
13. The method of claim 1 wherein the transmitted information further discloses to the user of the client system each hosted application program that the user of the client system is unauthorized to use.
-
14. The method of claim 1 further comprising transmitting by each server application-related information associated with each application program hosted by that server to a centralized database.
-
15. The method of claim 1 further comprising transmitting by each server application-related information associated with each application program hosted by that server to each of the other servers.
-
16. The method of claim 1 further comprising receiving user credentials from the client system for use in determining the availability of a hosted application program to the client system.
-
17. The method of claim 1 wherein the neighborhood application is executed in response to the receipt of a request to execute a hosted application program.
-
18. The method of claim 1 wherein the availability of the hosted application program is determined in part using the execution loads on the plurality of servers.
-
19. In a network including a client system and a plurality of servers hosting application programs, a server comprising:
-
a service module collecting application-related information corresponding to application programs hosted by the plurality of servers;
a database storing the collected application-related information wherein the service module determines for each application program hosted by the plurality of servers whether that hosted application program is available to the client system for execution based on the application-related information stored in the database;
a transmitter transmitting information to the client system indicating to the client system each hosted application program in the plurality of servers determined to be available to the client system for execution;
a receiver receiving a request to execute one of the available hosted application programs and choosing, from the plurality of servers, a second server hosting the requested application program; and
a transceiver providing a connection between the client system and the second server for providing output from the execution of an application program. - View Dependent Claims (20, 21, 22, 23)
-
-
24. In a network including a client node, a master server node, and plurality of application servers hosting application programs, a method for remotely executing an application program, the method comprising:
-
transmitting information from a first application server to the client node indicating to the client node each hosted application program in the plurality of servers available to the client for execution;
receiving from a client node, by the first application server, a request to execute an application program;
transmitting the request to the master server node;
indicating, by the master server node, the availability of the application program on a second application server selected from the plurality of appl. server to the first application server;
executing the application program at the second application server;
providing the output from the executing application program to the first application server; and
providing, by the first application server, the output to the client node. - View Dependent Claims (25, 26)
-
-
27. In a network including a client node, a master server node, and a plurality of application servers hosting application programs, a method for remotely executing an application program, the method comprising:
-
transmitting information from a first application server to the client node indicating to the client node each hosted application program in the plurality of servers available to the client for execution;
displaying, at the client node, a graphical display for requesting the execution of an application program;
requesting from the first application server, by the client node, the execution of the application program;
providing to the client node, by the first application server, application-related information concerning the execution of the application program;
communicating with the master server node to determine, by the master server node, a second application server selected from the plurality for executing the application program;
establishing a connection between the client node and the second application server;
executing the application program at the second application server; and
providing output associated with the execution of the requested application program from the second application server to the client node, wherein the determination of the second application server utilizes, in part, the provided application-related information. - View Dependent Claims (28)
-
-
29. In a network including a client system and a plurality of servers, the plurality of servers hosting application programs, a method for executing an application program that is available for use, the method comprising:
-
executing, by the client system, a neighborhood application to collect application-related information from the plurality of servers concerning application programs hosted by the plurality of servers;
determining for each application program hosted by the plurality of servers whether that hosted application program is available to the client system based on the application-related information;
receiving a request to execute one of the available hosted application programs;
choosing, from the plurality of servers, a first server hosting the requested application program;
establishing in response to the request a connection between the client system and the first server;
executing the requested application program at the first server; and
providing output from the execution of the requested application program to the client system.
-
Specification