Flexible multi-platform partitioning for computer applications
First Claim
1. A method of using a computer to design an application program to be executed on at least two interconnected computers, selected from at least two classes of computers, said method comprisingselecting a first class of computers comprising a first plurality of computers, each of distinct types,selecting a second class of computers comprising a second plurality of computers, each of distinct types, any one of said second plurality of computers interconnectable with arty one of said first plurality of computers, andpreparing a logical application definition for an application program, said logical application definition comprisingdefining a first service object,defining a second service object, anddefining a third service object, such that each of said first second and third service objects can communicate with at least one of the other said service objects,said first service object capable of execution on substantially any one of said first plurality of computers,said second service object capable of execution on substantially any one of said second plurality of computers,said third service object capable of execution on substantially any one of said first plurality of computers and also capable of execution on substantially any one of said second plurality of computers,but without selecting, at the time of preparing the logical application definition,a specific one of said first plurality of computers on which to execute said first service object,a specific one of said second plurality of computers on which to execute said second service object, ora specific one of said first plurality of computers or a specific one of said second plurality of computers on which to execute said third service object.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of partitioning an application program by defining an application program for execution on at least two interconnected computers, selected from at least two classes of computers without considering what specific machine environment will be used at run time. Partitioning includes defining two or more objects as components of the application program, where a first object is capable of execution on one class of computers and a second object is capable of execution on a second class of computers. Once the objects are defined, the method includes selecting an environment for the application program, and partitioning the application by selecting each object to execute on the computer of the corresponding class. A system using the method can generate a default partitioning scheme to partition the application program as a series of partitions, each of which is assigned to a computer among available computing resources. The original partitioning selected by the computer can be modified automatically or by a user.
-
Citations
51 Claims
-
1. A method of using a computer to design an application program to be executed on at least two interconnected computers, selected from at least two classes of computers, said method comprising
selecting a first class of computers comprising a first plurality of computers, each of distinct types, selecting a second class of computers comprising a second plurality of computers, each of distinct types, any one of said second plurality of computers interconnectable with arty one of said first plurality of computers, and preparing a logical application definition for an application program, said logical application definition comprising defining a first service object, defining a second service object, and defining a third service object, such that each of said first second and third service objects can communicate with at least one of the other said service objects, said first service object capable of execution on substantially any one of said first plurality of computers, said second service object capable of execution on substantially any one of said second plurality of computers, said third service object capable of execution on substantially any one of said first plurality of computers and also capable of execution on substantially any one of said second plurality of computers, but without selecting, at the time of preparing the logical application definition, a specific one of said first plurality of computers on which to execute said first service object, a specific one of said second plurality of computers on which to execute said second service object, or a specific one of said first plurality of computers or a specific one of said second plurality of computers on which to execute said third service object.
-
14. A method of loading an application program on interconnected computers selected from at least two classes of computers, said method comprising
selecting a first class of computers comprising a first plurality of computers, each of distinct types, selecting a second class of computers comprising a second plurality of computers, each of distinct types, any one of said second plurality of computers interconnectable with any one of said first plurality of computers, and preparing a logical application definition for an .application program, said logical application definition comprising a first service object, a second service object, and a third service object, such that each of said first, second and third service objects can communicate with at least one of the other said service objects, said first service object capable of execution on substantially any one of said first plurality of computers, said second service object capable of execution on substantially any one of said second plurality of computers, said third service object capable of execution on substantially any one of said first plurality of computers and also capable of execution on substantially any one of said second plurality of computers, but without selecting, at the time of preparing the logical application definition, a specific one of said first plurality of computers on which to execute said first service object, a specific one of said second plurality of computers on which to execute said second service object, or a specific one of said first plurality of computers or a specific one of said second plurality of computers on which to execute said third service object, then providing a plurality of heterogeneous environments in each of which said application can execute independently, each heterogeneous environment comprising a first computer for said heterogeneous environment, selected from said first plurality of computers and a second computer for said heterogeneous environment, selected from said second plurality of computers and interconnected with said first computer for said heterogeneous environment, selecting a first heterogeneous environment of said plurality of heterogeneous environments, loading said first service object on said first computer of said first heterogeneous environment, loading said second service object on said second computer of said first heterogeneous environment, and selectively loading said third service object on one of said first computer or said second computer of said first heterogeneous environment, and selecting a second heterogeneous environment of said plurality of heterogeneous environments, loading said first service object on said first computer of said second heterogeneous environment, loading said second service object on said second computer of said second heterogeneous environment, and selectively loading said third service object on one of said first computer or said second computer of said second heterogeneous environment, independent of the selective loading of the third service object in said first heterogeneous environment.
-
32. A method of using a computer to execute an application program on at least two interconnected computers, selected from at least two classes of computers, said method comprising
selecting a first class of computers comprising a first plurality of computers, each of distinct types, selecting a second class of computers comprising a second plurality of computers, each of distinct types, any one of said second plurality of computers interconnectable with any one of said first plurality of computers, and preparing a logical application definition for an application program, said logical application definition comprising defining a first service object, defining a second service object, and defining a third service object, such that each of said first, second and third service objects can communicate with at least one of the other said service objects, said first service object capable of execution on substantially any one of said first plurality of computers, said second service object capable of execution on substantially any one of said second plurality of computers, said third service object capable of execution on substantially any one of said first plurality of computers and also capable of execution on substantially any one of said second plurality of computers, but without selecting, at the time of preparing the logical application definition, a specific one of said first plurality of computers on which to execute said first service object, a specific one of said second plurality of computers on which to execute said second service object, or a specific one of said first plurality of computers or a specific one of said second plurality of computers on which to execute said third service object, providing a heterogeneous environment in which said application can execute, said heterogeneous environment comprising a first computer selected from said first class of computers and a second computer selected from said second class of computers, said second computer interconnected with said first computer, said second computer of a different type than said first computer, selecting said heterogeneous environment, loading said first service object on said first computer, loading said second service object on said second computer, and loading said third service object on said first computer, then executing each of said first, second and third service objects to execute said application program.
-
42. A method of using a computer to execute an application program on at least two interconnected computers, selected from at least two classes of computers, said method comprising
selecting a first class of computers comprising a first plurality of computers, each of distinct types, selecting a second class of computers comprising a second plurality of computers, each of distinct types, any one of said second plurality of computers interconnectable with any one of said first plurality of computers, and selecting a first service object, selecting a second service object, and selecting a third service object, where each of said first, second and third service objects can communicate with at least one of the other said service objects, said first service object capable of execution on substantially any one of said first plurality of computers, said second service object capable of execution on substantially any one of said second plurality of computers, said third service object capable of execution on substantially any one of said first plurality of computers and also capable of execution on substantially any one of said second plurality of computers, providing a heterogeneous environment comprising a first computer selected from said first class of computers and a second computer selected from said second class of computers, said second computer interconnected with said first computer, said second computer of a different type than said first computer, selecting said heterogeneous environment, loading said first service object on said first computer, loading said second service object on said second computer, and selectively loading said third service object on one of either said first computer or said second computer, then executing each of said first, second and third service objects to execute said application program.
-
51. The method of claim 51 of executing an application program further comprising defining a means for asynchronously passing a message from one of said second or third service objects to said first service object by sending a message to said first service object request broker, storing said message, then forwarding said message to said first service object.
Specification