Remote computer communication
First Claim
1. Software stored on a computer readable medium for causing a remote computer to perform the function of:
- establishing a data communication path between the remote computer and a computing resource including determining a plurality of access paths for communicating between the remote computer and the computing resource wherein the plurality of access paths includes a plurality of telephone access paths that each includes a dialed telephone channel to a different telephone access number associated with that access path, determining a cost for each of the plurality of access paths, wherein each of the access paths is associated with a cost function and determining a cost for each of the access paths includes evaluating the cost function associated with said access path, selecting a first of the plurality of access paths based on the cost for each of the access paths, and initiating establishment of communication over the selected first of the access paths.
11 Assignments
0 Petitions
Accused Products
Abstract
A user of a remote typically has a choice of multiple access methods and telephone numbers using which the user can connect his remote computer to a local computer or a local area network. The remote user often user faces several problems. These problems include first knowing what numbers and access methods the user has a choice of, and knowing the cost of using those numbers and access methods. This first problem is exasperated by a large number of available access points, changes of access telephone numbers, changes in telephone and network access rates, and changes in quality of service provided by various service providers. Distributing, storing, and searching a comprehensive directory of access numbers and associated costs would, in general, be prohibitive on remote computers with limited storage and computation capacity, such as portable computers typically often used by mobile workers. Furthermore, if the user is not successful in establishing a desired communication path, several courses of action may be available to the user. The user'"'"'s second problem involves choosing an appropriate course of action which, in general, requires a diagnosis of the problem encountered in making the desired connection.
175 Citations
34 Claims
-
1. Software stored on a computer readable medium for causing a remote computer to perform the function of:
-
establishing a data communication path between the remote computer and a computing resource including determining a plurality of access paths for communicating between the remote computer and the computing resource wherein the plurality of access paths includes a plurality of telephone access paths that each includes a dialed telephone channel to a different telephone access number associated with that access path, determining a cost for each of the plurality of access paths, wherein each of the access paths is associated with a cost function and determining a cost for each of the access paths includes evaluating the cost function associated with said access path, selecting a first of the plurality of access paths based on the cost for each of the access paths, and initiating establishment of communication over the selected first of the access paths. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
accepting an identification of a location of the remote computer; and
whereindetermining the plurality of access paths includes determining a plurality of access paths according to telephone charges associated with use of dialed telephone channels from the location of the remote computer to each of the different telephone access numbers.
-
-
7. The software of claim 6 wherein the software further causes the computer to perform the functions of:
-
accepting an identification of a user of the remote computer; and
wherein the cost function associated with each of the access paths includes weighting terms associated with the identification of the user.
-
-
8. The software of claim 1 wherein the software further causes the computer to perform the functions of:
-
accepting a dialing database, including telephone access numbers;
accepting an identification of the computing resource; and
wherein determining the plurality of access paths for communicating between the remote computer and the computing resource includes retrieving information related to the identified computing resource from the dialing database.
-
-
9. The software of claim 1 wherein establishing the data communication path further includes:
-
if communication over the first of the plurality of access paths is not established, selecting a second of the plurality of access paths based on the determined cost for each of the plurality of access paths, and initiating establishment of communication over the second of the plurality of access paths.
-
-
10. The software of claim 1 wherein establishing the data communication path further includes:
-
if establishment of communication over the first of the plurality of access paths is not successful, automatically performing diagnostics related to unsuccessful establishment of communication over the first of the plurality of access paths.
-
-
11. The software of claim 10 wherein automatically performing diagnostics includes interpreting a diagnostic script implementing a diagnostic procedure to determine a cause of unsuccessful establishment of communication over the first of the plurality of access paths.
-
12. The software of claim 11 wherein the software further causes the computer to accept the diagnostic script from another computer.
-
13. The software of claim 11 wherein the diagnostic procedure includes:
-
contacting a reference site not on the remote computer; and
verifying that the remote computer can communicate with the reference site.
-
-
14. The software of claim 13 wherein contacting the reference site includes establishing a dialed telephone connection to a reference telephone number.
-
15. The software of claim 13 wherein contacting the reference site includes contacting a network device on a data network coupling the remote computer and the network device.
-
16. The software of claim 11 wherein the diagnostic procedure includes:
-
determining whether a software module on the remote computer requires installation; and
if so, installing that software module.
-
-
17. The software of claim 1 further causing the remote computer to:
-
accept credentials from a user of the remote computer, the credentials including an identification of the remote user;
authenticate the user by using the credentials and an authentication service on another computer; and
establish a management communication path to the other computer and accepting information including information for a dialing database over the management communication path;
wherein determining the plurality of access paths for communicating between the remote computer and the computing resource includes retrieving information related to the identification of the remote user from the dialing database.
-
-
18. The software of claim 17 wherein accepting information for the dialing database occurs while a communication path is established between the remote computer and the computing resource.
-
19. Software stored on a computer readable medium for causing a first computer to perform the functions of:
-
storing a dialing database that includes information for selecting an access path between a second computer and a computing resource;
establishing a management communication path between the first computer and the second computer, including authenticating the second computer; and
providing information from the dialing database, including information for selecting an access path between the second computer and the computing resource to the second computer, over the management communication path. - View Dependent Claims (20, 21, 22, 23)
accept master dialing information;
accept local information, including information related to computing resources accessible from the remote computer; and
maintain the dialing database using the master dialing information and the local information.
-
-
21. The software of claim 20 wherein the master dialing information includes telephone access numbers for access paths, and information related to a cost of communicating over dialed telephone connections to those access numbers from a plurality of remote locations.
-
22. The software of claim 21 wherein the information related to the cost of communicating over a dialed telephone connection to an access path includes monetary and performance related cost factors.
-
23. The software of claim 22 wherein the software further causes the computer to perform the functions of:
-
accepting performance related logging information from a plurality of remote computers; and
updating the performance related cost factors in accordance with the logging information.
-
-
24. A method for establishing a data communication path between a remote computer and a computing resource including:
-
determining a plurality of access paths for communicating between the remote computer and the computing resource wherein the plurality of access paths include a plurality telephone access paths that each includes a dialed telephone channel to a different telephone access number associated with that access path;
determining a cost for each of said access paths, including evaluating a cost function to arrive at a cost of communicating between the remote computer and the computing resource over each of said telephone access paths;
selecting a first of the access paths based on the cost for each of the access paths; and
initiating establishment of communication over the selected access path.
-
-
25. A method for distributing dialing information to remote computers comprising:
-
accepting master dialing information;
accepting local information, including information related to computing resources accessible from the remote computers;
maintaining a dialing database, which includes telephone access numbers for access paths from the remote computers to the computing resources, using the master dialing information and the local information;
establishing a management communication path to one of the remote computers, including authenticating the remote computer; and
providing information from the dialing database to the remote computer over the management communication path, for use on the remote computer in selecting an access path between the remote computer and one of the computing resources accessible from the remote computer.
-
-
26. A communication system on a remote computer comprising:
-
a user interface for accepting an identifier of a location of the remote computer;
a means for determining a plurality of telephone access paths for communicating between the location of the remote computer and a computing resource, including a local database for storing telephone access numbers and cost factors for the telephone access paths;
a means for evaluating a cost function for each telephone access path, the cost function for each telephone access path characterizing a cost of communicating between the location of the remote computer and the computing resource over that telephone access path;
a means for selecting one of the telephone access paths in accordance with the result of evaluating the cost functions for each of the telephone access paths; and
a communication interface for communication over the selected telephone access path.
-
-
27. A communication system comprising:
-
a management computer, including a dialing database for storing an association of a plurality of calling locations and corresponding subsets of a plurality of telephone access numbers for accessing a computing resource, and for storing an association of the telephone access numbers and monetary and performance factors related to data communication over dialed telephone connections from the calling location to the telephone access numbers; and
a plurality of remote computers, each including a local database for storing part of the information stored in the dialing database on the management computer;
wherein each of the remote computers further includes software for causing the remote computer to determine, using information stored in the local database, a plurality of telephone access paths for communicating between the remote computer and a computing resource, evaluate a cost function for each of the plurality of telephone access paths, the cost function for an access path characterizing a cost of communicating between the remote computer and the computing resource over that access path, select one of the plurality of telephone access paths in accordance with a result of evaluating the cost functions for each of the telephone access paths, and communicate over the selected telephone access path; and
wherein the management computer further includes software for causing the management computer to accept communication from each of the remote computers, and to provide information in the dialing database to the remote computers.
-
-
28. A diagnostic script stored on a computer readable medium including instructions that cause a computer to diagnose and correct a problem encountered while attempting to communicate with a computing resource remote from the computer, including instructions for contacting a reference site remote from the computer and verifying that the computer can communicate with the reference site wherein diagnosing and correcting the problem includes invoking a procedure to verify proper operation of a local modem on the computer, including establishing a telephone connection to a remote modem and transferring data between the local modem and the remote modem.
-
29. Software stored on a computer readable medium for causing a first computer to perform an authentication exchange with a second computer comprising:
-
sending a user identifier and a first challenge to the second computer;
receiving a second challenge from the second computer;
responding to the second challenge; and
accepting a response to the first challenge computing an encryption key based on content of the first and the second challenges.
-
-
30. A method of mutual authentication of a first computer and a second computer comprising:
-
sending a user identifier and a first challenge from the first computer to the second computer;
receiving at the first computer a second challenge from the second computer;
sending a response to the second challenge to the second computer;
receiving a response to the first challenge from the second computer;
sending the user identifier, information from the first challenge, and the response to the second challenge, to a server computer; and
receiving from the server computer the response to the first challenge.
-
-
31. A method of exchanging messages between software modules executing on different computers including:
-
at a first computer, authenticating a second computer based on credentials provided by a user of the second computer, including determining a level of trust of the second computer;
receiving a message from the second computer, the message indicating a destination and a trust level of the user of the second computer;
if, based on the trust level of the second computer and the trust level of the user of the second computer, the user of the second computer appears to be more trusted than the second computer, discarding the message, otherwise, forwarding the message to its destination. - View Dependent Claims (32)
-
-
33. A method for enforcing access policies for a plurality of classes of remote users comprising:
-
maintaining an access database characterizing access paths from a plurality of remote locations to a computing resource; and
distributing information from the access database to a plurality of remote computers, including distributing information to each remote computer such that software executing on a remote computer selects an access path from a remote location of the remote computer to the computing resource according to the class of the remote user of that remote computer. - View Dependent Claims (34)
-
Specification