Patent US5457797A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5457797A Expired / Lapsed US ⏱️ 0.0 years remaining

Flexible multi-platform partitioning for computer applications

Assignee: Sun Microsystems Inc
•
Filing: 1995-03-22
•
Granted: 1995-10-10
•
Expires: 2015-03-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Paul Butterworth
  • 👤 Joseph Cortopassi
  • 👤 Sean Fitts

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 08:25
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5027; G06F2209/00; G06F2209/50; G06F2209/5017

Claims Analysis

Total Claims: 55
Claim 1
Independent Claim 275 words
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.
Claim 2
Independent Claim 275 words
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.
Claim 3
Dependent Claim 107 words
A method of loading an application program comprising designing an application program using the method of claim 1 and further comprising 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.
Claim 4
Dependent Claim 36 words
A method of executing an application program comprising loading an application program using the method of claim 2 and further comprising executing each of said first, second and third service objects to execute said application program.
Claim 5
Dependent Claim 36 words
The method of claim 1 of designing an application program further comprising defining a first means for message transfer for passing a message to transfer information between said first service object and said second service object.
Claim 6
Dependent Claim 52 words
The method of claim 1 of designing an application program further comprising defining a first service object request broker, capable of execution on substantially any one of said second plurality of computers, connectable to and in communication with said first service object for relaying communications to and from said first service object.
Claim 7
Dependent Claim 52 words
The method of claim 5 of designing an application program further comprising defining a second service object request broker, capable of execution on substantially any one of said first plurality of computers, connectable to and in communication with said second service object for relaying communications to and from said second service object.
Claim 8
Dependent Claim 50 words
The method of claim 6 of designing an application program further comprising defining a second means for message transfer for passing a first message from said second or said third service object to said first service object request broker, then forwarding a second, corresponding message to said first service object.
Claim 9
Dependent Claim 57 words
The method of claim 7 of designing 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.
Claim 10
Dependent Claim 72 words
The method of claim 8 of designing an application program further comprising defining said first, second and third service object request brokers and communications between respective ones of said first, second and third service objects and said first, second and third service object request brokers as needed to allow said application program to rim as if each of said first, second and third service objects were in a single physical address space.
Claim 11
Dependent Claim 20 words
The method of claim 1 of designing an application program wherein said first class of computers supports a user interface.
Claim 12
Dependent Claim 43 words
The method of claim 1 of designing an application program wherein said first class of computers comprises one or more computers selected from the group consisting of a workstation, a personal computer, a laptop computer, a palmtop computer and a personal digital assistant.
Claim 13
Dependent Claim 23 words
The method of claim 1 of designing an application program wherein a first computer in said second class of computers comprises a server.
Claim 14
Dependent Claim 39 words
The method of claim 11 of designing an application program wherein said second class of computers comprises one or more computers selected from the group consisting of a mainframe, a minicomputer, a superminicomputer, a workstation and a personal computer.
Claim 15
Independent Claim 459 words
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.
Claim 16
Independent Claim 459 words
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.
Claim 17
Dependent Claim 41 words
The method of claim 14 of executing an application program further comprising loading said third service object on said first computer of said and, for each other object, selecting the other object for execution on one of said first heterogeneous environment.
Claim 18
Dependent Claim 30 words
The method of claim 15 of executing an application program further comprising moving said third service object from said first computer to said second computer of said first heterogeneous environment.
Claim 19
Dependent Claim 63 words
The method of claim 14 of executing an application program further comprising selecting said third service object to execute on said first computer in said first heterogeneous environment and selecting said third service object to execute on said second computer in said second heterogeneous environment without changing the overall operation of said application program in said first compared to said second heterogeneous environments.
Claim 20
Dependent Claim 36 words
The method of claim 3 of executing an application program further comprising replicating said third service object as a duplicate third service object and loading said duplicate third service object for execution on said second computer.
Claim 21
Dependent Claim 28 words
The method of claim 3 of executing an application program further comprising executing both said third service object and said duplicate third service object to provide load balancing.
Claim 22
Dependent Claim 27 words
The method of claim 3 of executing an application program further comprising using said third service object and said duplicate third service object to provide fault tolerance.
Claim 23
Dependent Claim 32 words
The method of claim 1 of designing an application program wherein said first and said second computers are respectively a first CPU and a second CPU tightly coupled to said first CPU.
Claim 24
Dependent Claim 24 words
The method of claim 1 of designing an application program wherein said first computer is a client and said second computer is a server.
Claim 25
Dependent Claim 26 words
The method of claim 1 of designing an application program wherein said first computer is a first server and said second computer is a second server.
Claim 26
Dependent Claim 25 words
The method of claim 3 of executing an application program further comprising deactivating said third service object after said duplicate third service object begins execution.
Claim 27
Dependent Claim 25 words
The method of claim 3 of executing an application program further comprising moving said third service object from said first computer to said second computer.
Claim 28
Dependent Claim 21 words
The method of claim 3 of executing an application program further comprising replicating said third service object on said second computer.
Claim 29
Dependent Claim 115 words
A method of loading an application program comprising designing an application program using the method of claim 1 and further comprising 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 selectively loading said third service object on one of either said first computer or said second computer.
Claim 30
Dependent Claim 36 words
A method of executing an application program comprising loading an application program using the method of claim 31 and further comprising executing each of said first, second and third service objects to execute said application program.
Claim 31
Dependent Claim 72 words
The method of claim 1 of designing an application program further comprising defining a third service object request broker, 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, said third object request broker connectable to and in communication with said third service object for relaying communications to and from said third service object.
Claim 32
Dependent Claim 41 words
A method of executing an application program comprising loading an application program using the method of claim 14 and further comprising executing each of said first, second and third service objects to execute said application program in said first heterogeneous environment.
Claim 33
Dependent Claim 41 words
A method of executing an application program comprising loading an application program using the method of claim 14 and further comprising executing each of said first, second and third service objects to execute said application program in said second heterogeneous environment.
Claim 34
Independent Claim 374 words
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.
Claim 35
Independent Claim 374 words
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.
Claim 36
Dependent Claim 25 words
The method of claim 32 of executing an application program further comprising moving said third service object from said first computer to said second computer.
Claim 37
Dependent Claim 21 words
The method of claim 32 of executing an application program further comprising replicating said third service object on said second computer.
Claim 38
Dependent Claim 41 words
The method of claim 32 of executing an application program further comprising not loading said third service object on said first computer, but instead selectively loading said third service object on one of either said first computer or said second computer.
Claim 39
Dependent Claim 43 words
The method of claim 32 of executing an application program wherein said first class of computers comprises one or more computers selected from the group consisting of a workstation, a personal computer, a laptop computer, a palmtop computer and a personal digital assistant.
Claim 40
Dependent Claim 39 words
The method of claim 32 of executing an application program wherein said second class of computers comprises one or more computers selected from the group consisting of a mainframe, a minicomputer, a superminicomputer, a workstation and a personal computer.
Claim 41
Dependent Claim 24 words
The method of claim 32 of executing an application program wherein said first computer is a client and said second computer is a server.
Claim 42
Dependent Claim 36 words
The method of claim 32 of executing an application program further comprising defining a first means for message transfer for passing a message to transfer information between said first service object and said second service object.
Claim 43
Dependent Claim 52 words
The method of claim 39 of executing an application program further comprising defining a first service object request broker, capable of execution on substantially any one of said second plurality of computers, connectable to and in communication with said first service object for relaying communications to and from said first service object.
Claim 44
Dependent Claim 57 words
The method of claim 40 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.
Claim 45
Independent Claim 284 words
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.
Claim 46
Independent Claim 284 words
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.
Claim 47
Dependent Claim 25 words
The method of claim 42 of executing an application program further comprising moving said third service object from said first computer to said second computer.
Claim 48
Dependent Claim 21 words
The method of claim 42 of executing an application program further comprising replicating said third service object on said second computer.
Claim 49
Dependent Claim 21 words
The method of claim 42 of executing an application program further comprising loading said third service object on said first computer.
Claim 50
Dependent Claim 43 words
The method of claim 42 of executing an application program wherein said first class of computers comprises one or more computers selected from the group consisting of a workstation, a personal computer, a laptop computer, a palmtop computer and a personal digital assistant.
Claim 51
Dependent Claim 39 words
The method of claim 42 of executing an application program wherein said second class of computers comprises one or more computers selected from the group consisting of a mainframe, a minicomputer, a superminicomputer, a workstation and a personal computer.
Claim 52
Dependent Claim 24 words
The method of claim 42 of executing an application program wherein said first computer is a client and said second computer is a server.
Claim 53
Dependent Claim 36 words
The method of claim 42 of executing an application program further comprising defining a first means for message transfer for passing a message to transfer information between said first service object and said second service object.
Claim 54
Dependent Claim 52 words
The method of claim 49 of executing an application program further comprising defining a first service object request broker, capable of execution on substantially any one of said second plurality of computers, connectable to and in communication with said first service object for relaying communications to and from said first service object.
Claim 55
Dependent Claim 57 words
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.

References Cited (Backward Citations)

US4742467A Cited
US5056000A Cited
US5261095A Cited
US5295222A Cited
GB2242293A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-10-09 1999-04-10 1999-10-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-10-09 2003-04-10 2003-10-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-10-09 2007-04-10 2007-10-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag