|
Claims  |
|
|
What is claimed is:
1. An integrated system for providing resource management and distributed
remote execution services in a heterogenous computer network environment
having a plurality of resources loosely coupled to each other in the
network environment, the resources including at least two or more computer
processors executing different operating system programs, each different
operating system program having a set of kernel programs unique to that
operating system program and a unique file space, and any memory devices
and subordinate programs operating together with the computer processors,
at least some of the resources being available to perform remote execution
services, the integrated system comprising:
a plurality of interface means, each of the plurality of interface means
operably integrated with a unique one of a plurality of requestors in the
network environment without requiring the set of kernel programs of the
operating system program associated with that requester to be modified and
recompiled, each of the plurality of interface means for issuing both a
resource query and a resource request for a remote execution service, the
resource query including one or more query parameters specifying a set of
resources that can satisfy the resource request, the resource request
including information necessary to perform the remote execution service;
database means operably connected to the network environment for storing
one or more items of information about the resources in the network
environment, the items of information stored in the database means being
available to the plurality of requestors in the network environment and
including one or more items of dynamic information;
agent means operating on at least one of the computer processors for
periodically collecting across more than one file space the one or more
items of dynamic information about one or more computer processor and any
other resources operating together with the computer processors that are
available to perform remote execution services and providing the items of
information to the database means;
resource query means operably associated with the database means for
receiving a resource query for a remote execution service from any one of
the plurality of interface means, analyzing the database means to
determine which of the resources in the network environment match the
query parameters and are available to satisfy the resource request, and
returning to the interface means a list of resources which can be used to
satisfy the resource request; and
a remote execution service means operating on each of the computer
processors that is available to perform remote execution services without
requiring the set of kernel programs of the operating system program
associated with that requester to be modified and recompiled, each remote
execution service means for receiving the resource request for the remote
execution service from the interface means, performing the remote
execution service and returning any results from the remote execution
service to the interface means,
such that one or more computer processors are chosen by the requestor as
the resources to which to send the resource request in order to perform
the remote execution services based upon the list of resources provided by
the resource query means.
2. The integrated system of claim 1 wherein the query parameters include:
a set of resource requirements for the resource request; and
a scheduling policy for determining how the list of resources should be
ordered by the resource query means.
3. The integrated system of claim 1 wherein multiple resource requests are
sent to one or more computer processors using the list of resources
generated in response to a single resource query.
4. The integrated system of claim 1 where the computer processors selected
as the resources to perform the remote execution service are determined
automatically by the interface means using a predetermined criteria.
5. The integrated system of claim 1 wherein the requestor in the network is
an application program executing on one of the computer processors and
wherein the computer processors selected as the resources to perform the
remote execution service are determined by the application program.
6. The integrated system of claim 1 wherein the items of information about
the resources are stored as one or more property-value pairs for each
resource and wherein the integrated system further comprises:
resource definition database means operably connected to the database means
and the resource query means for storing a strongly typed value for each
property defined for a resource that together comprise the property-value
pair for that property for that resource.
7. The integrated system of claim 1 wherein the remote execution service
means includes:
first means executing on the computer processor for receiving the resource
requests from the interface means and monitoring the status of the
resource requests; and
second means operably initiated by the first means for each resource
request for performing the remote execution service in response to the
resource request.
8. The integrated system of claim 7 wherein the second means is capable of
responding to and initiating one or more control directives between the
second means and the interface means.
9. The integrated system of claim 8 further comprising:
third means capable of performing interactive input/output between the
interface means and the remote execution service.
10. The integrated system of claim 1 wherein the operating system programs
are different versions of Unix-based operating system programs.
11. A system for managing requests for remote execution services in a
heterogenous computer network environment having a plurality of resources
loosely coupled to each other in the network environment, the resources
including at least two or more computer processors executing different
operating system programs, each different operating system program having
a set of kernel programs unique to that operating system program and a
unique file space, and any memory devices and subordinate programs
operating together with the computer processors, at least some of the
resources being available to perform remote execution services, the system
comprising:
a plurality of interface means, each of the plurality of interface means
operably integrated with a unique one of a plurality of requestors in the
network environment without requiring the set of kernel programs of the
operating system program associated with that requester to be modified and
recompiled, each of the plurality of interface means for issuing a
resource query for a remote execution service, the resource query
including one or more query parameters specifying a set of resources that
can satisfy the resource request, the query parameters including:
a set of resource requirements for the resource request; and
a scheduling policy for determining how the list of resources should be
ordered;
database means operably connected to the network environment for storing
one or more items of information about the resources in the network
environment, the items of information stored in the database means being
available to the plurality of requestors in the network environment;
agent means operating on at least one of the computer processors for
periodically collecting across more than one file space the one or more
items of dynamic information about one or more computer processor and any
other resources operating together with the computer processors that are
available to perform remote execution services and providing the items of
information to the database means; and
resource query means operably associated with the database means for
receiving a resource query for a remote execution service from any one of
the plurality of interface means, analyzing the database means to
determine which of the resources in the network environment match the
query parameters and are available to satisfy the resource request, and
returning to the interface means a list of resources which can be used to
satisfy the resource request in an order specified by the scheduling
policy,
such that one or more computer processors are selected by the requestor as
the resources to which to send the resource request in order to perform
the remote execution services based upon the list of resources provided by
the resource query means.
12. The system of claim 11 where the computer processors selected as the
resources to perform the remote execution service are determined
automatically by the interface means using a predetermined criteria.
13. The system of claim 11 wherein the requestor in the network is an
application program executing on one of the computer processors and
wherein the computer processors selected as the resources to perform the
remote execution service are determined by the application program.
14. The system of claim 11 wherein the items of information about the
resources are stored as one or more property-value pairs for each resource
and wherein the integrated system further comprises:
resource definition database means operably connected to the database means
and the resource query means for storing a strongly typed value for each
property defined for a resource that together comprise the property-value
pair for that property for that resource.
15. A system for servicing distributed remote execution requests in a
heterogenous computer network environment having a plurality of resources
loosely coupled to each other in the network environment, the resources
including at least two or more types of computer processors, each
different operating system program having a set of kernel programs unique
to that operating system program and a unique file space, and any memory
devices and subordinate programs operating together with the computer
processors, at least some of the resources being available to perform
remote execution services in response to the remote execution requests,
the integrated system comprising:
a plurality of interface means, each of the plurality of interface means
operably integrated with a unique one of a plurality of requestors in the
network environment without requiring the set of kernel programs of the
operating system program associated with that requester to be modified and
recompiled, each of the plurality of interface means for issuing a
resource request for a remote execution service, the resource request
including information necessary to perform the remote execution service;
and
a remote execution service means operating on each of the computer
processors that is available to perform remote execution services without
modifying the operating system program associated with that computer
processor, each remote execution service means for receiving a resource
request for a remote execution service from one or more of the plurality
of interface means, performing the remote execution service and returning
any results from the remote execution service to the interface means, the
remote execution service means including:
first means executing on the computer processor for receiving the resource
requests from the interface means and monitoring the status of the
resource requests; and
second means operably initiated by the first means for each resource
request for performing the remote execution service in response to the
resource request.
16. The system of claim 15 wherein the second means is capable of
responding to and initiating one or more control directives between the
second means and the interface means.
17. The system of claim 16 further comprising:
third means capable of performing interactive input/output between the
interface means and the remote execution service.
18. An integrated method for providing resource management and distributed
remote execution services in a heterogenous computer network environment
having a plurality of resources loosely coupled to each other in the
network environment, the resources including at least two or more computer
processors executing different operating system programs, each different
operating system program having a set of kernel programs unique to that
operating system program and a unique file space, and any memory devices
and subordinate programs operating together with the computer processors,
at least some of the resources being available to perform remote execution
services, the method comprising the steps of:
(a) for each of the computer processors that is available to perform remote
execution services, performing the steps of:
(a1) periodically collecting one or more items of information about that
computer processor and the other resources operating together with that
computer processors, and
(a2) periodically providing the items of information to a resource
information database operably connected to the network environment for
storing the items of information about the resources in the network
environment;
(b) for each of a plurality of requestors in the network environment that
can utilize a remote execution service, using a remote execution interface
that is separate from the operating system program associated with the
requestor and does not require the kernel programs of the operating system
to be modified and recompiled to perform the steps of:
(b1) issuing a resource query for a remote execution service, the resource
query including one or more query parameters specifying a set of resources
that can satisfy the resource request, and
(b2) issuing a resource request for the remote execution service to one or
more selected computer processors, the resource request including
information necessary to perform the remote execution service;
(c) in a computer processor operably associated with the resource
information database, performing the steps of:
(c1) receiving a resource query for a remote execution service from an
application program from any of the plurality of requestors,
(c2) analyzing the database to determine which of the resources in the
network environment match the query parameters and are available to
satisfy the resource request, and
(c3) returning to the remote execution interface a list of available
resources which can be used to satisfy the resource request; and
(d) for each of the selected computer processors that is to perform the
remote execution service, using a remote execution service that is
separate from the operating system program associated with the resource
and does not require the kernel programs of the operating system to be
modified and recompiled to perform the steps of:
(d1) receiving the resource request for the remote execution service from
the remote execution interface,
(d2) performing the remote execution service, and
(d3) returning any results from the remote execution service to the remote
execution interface,
such that one or more selected computer processors are chosen by the
requestor as the resources to which to send the resource request in order
to perform the remote execution services based upon the list of resources
generated by analyzing the resource information database.
19. The integrated method of claim 18 wherein the query parameters include:
a set of resource requirements for the resource request; and
a scheduling policy for determining how the list of resources should be
ordered by the resource query means.
20. The integrated method of claim 18 wherein multiple resource requests
are sent to one or more computer processors using the list of resources
generated in response to a single resource query.
21. The integrated method of claim 18 where the selected computer
processors are determined automatically by the remote execution interface
using a predetermined criteria.
22. The integrated method of claim 18 wherein the requestor in the network
is an application program executing on one of the computer processors and
wherein the selected computer processors selected are determined by the
application program.
23. The integrated method of claim 18 wherein the items of information
about the resources are stored as one or more property-value pairs for
each resource in a resource definition database associated with the
resource information database.
24. The integrated method of claim 18 wherein step (d) is accomplished by
the steps of:
executing a first program on the selected computer processor to receive the
resource requests from the remote execution interface and monitor the
status of the resource requests; and
executing a second program for each resource request that is initiated by
the first program to perform the remote service in response to the
resource request.
25. The integrated method of claim 18 wherein the second program is capable
of responding and initiating one or more control directives between the
selected computer processor and the remote execution interface.
26. The integrated method of claim 18 wherein step (d) further comprises
the step of:
executing a third program for a selected resource request that is initiated
by the first program to perform interactive input/output between the
selected computer processor and the remote execution interface.
27. The integrated method of claim 18 wherein the operating system programs
are different versions of Unix-based operating system programs.
28. A method for managing distributed remote execution services in a
heterogenous computer network environment having a plurality of resources
loosely coupled to each other in the network environment, the resources
including at least two or more computer processors executing different
operating system programs, each different operating system program having
a set of kernel programs unique to that operating system program and a
unique file space, and any memory devices and subordinate programs
operating together with the computer processors, at least some of the
resources being available to perform remote execution services, the method
comprising the steps of:
(a) for each of the computer processors that is available to perform remote
execution services, performing the steps of:
(a1) periodically collecting one or more items of dynamic information about
that computer processor and the other resources operating together with
that computer processors, and
(a2) periodically providing the items of dynamic information to a resource
information database operably connected to the network environment for
storing the items of information about the resources in the network
environment from more than one file space;
(b) for each of a plurality of requestors in the network environment that
can utilize a remote execution service, issuing a resource query for a
remote execution service, the resource query including one or more query
parameters specifying a set of resources that can satisfy the resource
request, the query parameters including:
a set of resource requirements for the resource request; and
a scheduling policy for determining how the list of resources should be
ordered;
(c) in a computer processor operably associated with the resource
information database, performing the steps of:
(c1) receiving a resource query for a remote execution service from an
application program from any of the plurality of requestors,
(c2) analyzing the database to determine which of the resources in the
network environment match the query parameters and are available to
satisfy the resource request, and
(c3) returning to the remote execution interface a list of available
resources which can be used to satisfy the resource request in an order
specified by the scheduling policy,
such that one or more selected computer processors are chosen by the
requestor as the resources to which to send the resource request in order
to perform the remote execution services based upon the list of resources
generated by analyzing the resource information database.
29. The method of claim 28 wherein multiple resource requests are sent to
one or more computer processors using the list of resources generated in
response to a single resource query.
30. The method of claim 28 where the selected computer processors are
determined automatically by the remote execution interface using a
predetermined criteria.
31. The method of claim 28 wherein the requestor in the network is an
application program executing on one of the computer processors and
wherein the selected computer processors selected are determined by the
application program.
32. The method of claim 28 wherein the items of information about the
resources are stored as one or more property-value pairs for each resource
in a resource definition database associated with the resource information
database.
33. A method for servicing distributed remote execution requests in a
heterogenous computer network environment having a plurality of resources
loosely coupled to each other in the network environment, the resources
including at least two or more computer processors executing different
operating system programs, each different operating system program having
a set of kernel programs unique to that operating system program and a
unique file space, and any memory devices and subordinate programs
operating together with the computer processors, at least some of the
resources being available to perform remote execution services in response
to the remote execution requests, the method comprising the steps of:
(a) for each of a plurality of requestors in the network environment
comprised of an application program executing on one of the computer
processors that can utilize a remote execution service, using a remote
execution interface that is separate from, but compiled with, the
application program to issue a resource request for the remote execution
service to one or more selected computer processors, the resource request
including information necessary to perform the remote execution service;
and
(b) for each of the selected computer processors that is to perform the
remote execution service, executing a first program on the selected
computer processor separate from the operating system program and does not
require the kernel programs of the operating system to be modified and
recompiled for that computer processor to control communication with the
remote execution interface that has sent the resource request to perform
the steps of:
(b1) receiving the resource request for the remote execution service from
the remote execution interface, and
(b2) monitoring the status of the remote execution service; and
(c) for each of the selected computer processors that is to perform the
remote execution service, executing a second program separate from the
operating system program and does not require the kernel programs of the
operating system to be modified and recompiled for that computer processor
that is initiated by the first program to perform the remote execution
service in response to the resource request and return any results to the
remote execution interface.
34. The method of claim 33 wherein the second program is capable of
responding and initiating one or more control directives between the
selected computer processor and the remote execution interface.
35. The method of claim 33 further comprises the step of:
(d) executing a third program for a selected resource request that is
initiated by the first program to perform interactive input/output between
the selected computer processor and the remote execution interface.
36. The system of claim 1 wherein the remote execution service means
includes means for instantiating the remote execution service if necessary
prior to performing the remote execution service.
37. The system of claim 15 wherein the remote execution service means
includes means for instantiating the remote execution service if necessary
prior to performing the remote execution service.
38. The method of claim 18 further comprising the step of:
(d1a) instantiating the remote execution service if necessary prior to
performing the remote execution service. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
TECHNICAL FIELD
The present invention relates generally to networked computer processing
systems and, more particularly, to an integrated remote execution system
for managing resources and remote requests for those resources in a
heterogenous computer network environment, and for providing for the
distributed and remote execution of tasks in a heterogenous computer
network environment.
PRIOR ART
Networked computer processing systems allow several processors or
workstations to communicate with each other in a loosely coupled
environment where the processors generally do not share a common memory.
For a general background on networked computer processing systems,
reference is made to Stevens, W., Unix.RTM. Network Programming, Prentice
Hall (1990), Chpts 1 and 4, pgs. 1-10 and 171-196.
The first network environments only allowed for the sharing of information
or files among processors in the network. As network environments became
more popular due to the decreased cost and increased performance of
personal computers and workstations, a need to take advantage of the
potential for parallel and distributed processing of programs on the
network was recognized. The first response to this need was the
development of a remote execution capability as part of a common operating
system program that was running on all of the computers in the network.
This type of remote execution service, known as kernel-level remote
execution service, allowed for the remote instantiation, invocation and
termination of an entire process under the direct control of an
application program using various internal operating system routines.
Examples of kernel-level remote execution services in the prior art
include: Walker, B., Popek, G., English, E., Kline, C., Theil, A., "The
Locus Distributed Operating System", Proc. of the 9th ACM Symposium on
Operating System Principles, Dec. 1983, pgs. 49-70. Schantz, R., Thomas,
R., and Bono, G., "The Architecture of the Cronus Distributed Operating
System", Proc. of the 6th Int'l Conf. on Distributed Operating Systems,
May, 1986, pgs. 250-259. Acetta, M., Baron, R., Bolosky, W., Golub, D.,
Rashid, R., Tevanian, A., and Young, M., "MACH: A New Kernal Foundation
for UNIX Development", Proc. USENIX 1986 Summer Tech. Conf. and
Exhibition, June, 1986, pgs. 93-112.
Although the various types of kernel-level of remote execution services
fulfilled the need for remote execution of processes in a network, they
were necessarily restricted to a network environment where all of the
computer processors were executing an identical operating system program.
As network environments became larger and more complicated, it became
apparent that there was also a need to provide for remote execution
capabilities in a network environment where not all of the processors were
the same and where the processors were not executing the exact same
operating system program. For purposes of the present invention, a network
environment where all of the processors connected to the network are
executing identical operating system programs will be referred to as a
homogenous network environment. In contrast, a network environment where
different processors are executing different operating system programs, or
even different versions of the same operating system program, will be
referred to as a heterogenous network environment. Because the operating
system programs in a heterogenous network environment are necessarily
different, a heterogenous network environment cannot use the same type of
kernel-level solution for establishing a remote execution service in a
heterogenous network as was used to establish a remote execution service
in a homogenous network.
In response to the need for remote execution services in a heterogenous
network environment, two different types of services have been developed:
application-level remote execution services and remote procedure call
services. Application-level remote execution services operate above the
operating system and, therefore, do not need to modify any internal
operating system routines in order to implement the remote execution of
processes, including all of the steps of instantiating, executing, and
finally terminating those processes. Examples of application-level remote
execution services include: Shoch, J., and Hupp, J., "The `Worm`
Programs--Early Experience with a Distributed Computation", Comm. of the
ACM, Vol. 25, No. 3, March, 1982, pgs. 172-180; Nichols, D., "Using Idle
Workstations in a Shared Computing Environment", Comm. of the ACM, Vol.
11, No. 5, May, 1987, pgs. 5-12; Hewlett Packard Corp., "Task Broker for
Networked Environments based on the Unix.RTM. Operating System", Product
Brochure, May, 1990, the BSD rsh command Unix Programmer's Manual, 4.2 BSD
Virtual VAX-II Version, March, 1984 , and the Sun rex command Sun
Microsystems, Inc., Sun OS Reference Manual, Part No. 800-3827-b, March,
1990, pg. 2064. In contrast, the remote procedure call service, or rpc
facility, only allows for the remote execution of certain specially
designed procedures that have previously been instantiated on a remote
processor in the network. Examples of rpc facilities include: the Sun rpc
command Sun Microsystems, Inc., NetWork Programming Guide, Part No.
800-3850-10, March, 1990. Chpts. 2-7 and the NCS rpc command Kong, M.,
Dineen, T., Leach, P., Martin, E., Mishkin, N., Pato, J., and Wyant, G.,
Network Computing Systems Reference Manual, Prentice Hall, Englewood
Cliffs, N.J. (1990).
The primary differences between an application-level remote execution
service and an rpc facility are found in the ways in which the execution
of remote tasks are managed, especially the kinds of tasks which can be
remotely executed and the degree to which each service is or is not
tailored specifically for remote invocation. Basically, the rpc facility
is easy to use in terms of invoking the remote execution of a task;
however, much of the flexibility in terms of what type of tasks can be
performed by the rpc facility is sacrificed in order to make the rpc
facility easy to use. Each rpc procedure is generally a relatively short
or standardized procedure, that is specially coded to allow for the remote
invocation of that procedure on other processors on the network. The rpc
procedures cannot be remotely instantiated or terminated as only the
processor on which the procedure was to be executed can perform the steps
for installing or instantiating the rpc procedure, as well as the steps
for terminating that procedure. As a result, the rpc facility is generally
limited to providing those types of standardized procedures that would be
invoked by many different users on the network as one part of an entire
process being executed by those users. Unlike the rpc facility, a remote
execution service can operate on potentially any type of process, rather
than just a specially designed rpc procedure. Unfortunately, present
remote execution services are difficult to use, and there is no
standardization of usage from one application program to another. Thus,
although the marketplace for distributed applications is maturing to the
point where there are a growing number of applications that could take
advantage of the distributed processing capabilities of a heterogenous
computer network, there presently are no distributed computing tools that
can easily and intelligently implement a seamless and transparent remote
execution service in a heterogenous computer network environment.
Although prior art remote execution services have operated somewhat
effectively in a homogenous network environment, they have been difficult
to implement effectively in a heterogeneous network environment. Among the
problems which make remote execution difficult in a heterogenous network
environment are the fact that the prior art systems are not location
transparent and do not support a high level of operating system semantics.
Location transparency refers to whether a requestor must know the location
or identity of the remote resource being accessed. Unlike prior art
homogenous networks, prior art remote execution services for heterogeneous
network environments have required the requestor to know the location
(e.g., network identification) of the resource being requested. This
requirement imposes additional burdens on a user trying to execute a
request for a remote resource. For example, in most prior art heterogenous
networks, the requestor is assigned a specific remote resource in the form
of an idle processor in the network; however, if a local user logs onto
this idle processor, the remote execution request may be automatically
killed, and it is then up to the requestor to find another idle processor
and start the remote execution request all over again. Prior art remote
execution services for heterogenous networks also lack the ability to
support operating system semantics (i.e., the ability to execute some or
all of the operating system calls and routines) because such systems must
run on more than one type of operating system program. Unlike prior art
homogenous networks that make direct use of the operating system program,
the inability of a remote execution service in a heterogenous network
limits the ability of the remote execution service to monitor and control
the remote execution of requests, for example.
As the advantages of parallel processing on a network were being realized,
a need was also recognized for managing the various resources within a
network in order to increase the utilization of those resources. In
response to the need to manage the various resources in the network, a
variety of resource managers have been developed for efficiently managing
and scheduling the use of the resources by requestors in a network.
Examples of such resource managers include: U.S. Pat. Nos. 4,951,192 and
5,031,089; Stumm, M. "The Design and Implementation of a Decentralized
Scheduling Facility for a Workstation Cluster", 2nd IEEE Conf. on Computer
Workstations, Vol. CH-24, No. 41, pgs. 12-22 (1988); and Davis, M.,
Schreier, L. and Wrabetz, J., "A Processing Architecture for Survivable
Command, Control and Communication", Proceedings of MILCOM 87, Washington,
D.C. (1987).
As used within this patent, the term resource refers to any physical or
logical entity in the network about which attribute or state information
may be collected or stored. Resources would typically include the computer
processors connected to the network, and any of the memory devices such as
main memory or disk drives of each computer processor, as well as any
subordinate software programs that can execute on that computer processor.
For example, a resource might be a math co-processor on one of the
workstations in the network, a particular software package, or a disk
drive capable of storing files of a certain size. The term requestor will
be used to refer to any physical or logical entity that is making a
request for a resource in the network. Typically, this will be an
application program executing on a computer processor on behalf of a user
or a system management routine; although a requestor might also be an
operating system routine executing on a computer processor, or even a
remote procedure call or a daemon or agent process.
Generally, one of two models has been used for prior art resource
managers--distributed control vs. centralized control. In a distributed
control model, each requestor is provided with the intelligence to select
and schedule the resources required by that requestor. In a centralized
control model, each requestor submits a request to a central control
program which evaluates the requests and assigns resources in the network
to satisfy those requests. Within each model, two general paradigms have
been used to acquire information about the resources in the network--the
publish paradigm vs. the query paradigm. In resource managers that use the
publish paradigm, each resource periodically publishes or broadcasts
information about that resource to all other requestors in the network;
whereas in resource managers that use the query paradigm, each requestor
requests information about a resource only at the time that the requestor
needs to make use of that resource. Unfortunately, neither of these
paradigms provides an adequate solution to all of the problems confronted
by a resource manager. While the publish paradigm is more efficient in
terms of the amount of time a requestor must spend in order to select a
resource because all of the resource information is available locally, the
publish paradigm can dramatically increase network traffic and cannot
guarantee that the information about a resource is current. In contrast,
the query paradigm is less efficient at the time a request is made because
each resource must be queried for its current status; however, once
obtained, the status information is current and there is less traffic
generated on the network.
Resource management is more difficult in a heterogenous network environment
because of the lack of standardization of the resources that are available
in such a network and because of the lack of an intelligent allocation
mechanism. By its nature, a heterogenous network will necessarily have
resources with different capabilities and requirements. As a result,
additional information about each resource is required in order to
determine whether that resource is available to respond to a request.
Regardless of which model is used, prior art resource managers generally
have a very rudimentary system for acquiring information about resources.
In addition, prior art resource managers use one or more types of fixed
allocation mechanisms for assigning resources to requests with no ability
for individual requestors in such systems to request resources based on an
allocation paradigm other than the fixed allocation mechanism.
Consequently, the utilization of the resources in a heterogenous network
environment is usually an unpredictable function of how well the requests
in the system match up with what the fixed allocation mechanism expects
those requests to be at any given time.
Even if prior art remote execution services and resource managers could be
effectively implemented for a heterogenous network environment, which they
have not, a major factor causing the underutilization of computing
resources in a heterogenous network is that remote execution services and
resource management are treated as separate problems in the prior art. As
a result, there is little, if any, coordination and integration between
the process of managing the resources in a computer network and the
process of implementing the remote execution of requests to those
resources. This lack of coordination and integration forces the users to
assume almost all of the management and control over decisions regarding
management and selection of resources and the use of remote execution
services in a heterogenous network environment. This eliminates the
opportunity for truly location independent use of resources. It also
forces the users to interface with two separate systems in order to make
and execute a request for a remote resource. The result is that
unsophisticated users cannot access the entire resource power of the
network without understanding both the concepts of networking and
distributed execution on remote resources and the myriad of different
tools needed to find and use those resources. Even when a user can
navigate through the maze required to find and use a remote resource, it
is not uncommon for the computer overhead associated with a remote request
to take anywhere between several seconds to a minute or more of computer
time. The magnitude of this computer overhead limits the ability of a
requestor to make a remote request if the request does not involve a large
task that can effectively offset the time lost due to the computer
overhead. In other words, if it will take longer for a requestor to set up
a remote request than it would for the requestor to execute that request
locally, there is no advantage to making the remote request. When the
computer overhead associated with making a remote request is combined with
the additional programming effort required to understand and implement
distributed execution on a heterogenous network, the result is that users
do not take full advantage of the potential power of the network and the
various resources in the network are significantly underulitized.
Consequently, there is a need for an integrated solution to resource
management and remote execution in a heterogenous computer network
environment that provides seamless and transparent access to all of the
resources in the network in such a way that the user can easily interface
with the system and that the overhead associated with making and executing
remote requests is decreased. In addition, there is a need for a system
for providing remote execution services in a heterogenous computer network
environment that can overcome the problems with prior art systems and more
closely emulate the features and advantages of remote execution services
that are available for homogenous computer network environments. In a
heterogenous network environment, it is also imperative to provide a
system for managing remote execution services that is able to make
individualized and intelligent decisions about dynamically allocating
remote resources to requests for remote execution services.
SUMMARY OF INVENTION
The present invention is an integrated r | | |