IP Library Granted Patent US 7,584,468
Granted Patent B2
US 7,584,468 · App. 11/157,306 · Granted Sep 1, 2009

Distributing and synchronizing objects

Assignee: Apple Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,584,468
App. No.
11/157,306
Granted
Sep 1, 2009
Kind
B2
Abstract

Distributing and synchronizing objects is disclosed. An object (including the data and behavior for the object) is copied into local address space. The state of the various object copies across a network may not be synchronized due to local changes and modifications. To synchronize the objects, a policy that specifies conditions as to when objects are synchronized is used. For example, a policy may provide for synchronization that is based temporally (e.g., every 10 minutes or daily at 10:00 P.M.) or based on the type or number of messages transmitted. A default policy may provide for the synchronization of local objects whenever a client issues a request from the remote server. The remote server transmits any updated object information when it responds to the local object request. The updated object information may be utilized to synchronize the objects.

Claims (35)

1. A method for synchronizing distributed software objects comprising:

copying a first object having data and behavior from a first computer across a network to a second computers;

creating a second object having at least parts of said data and behavior, wherein said second object is capable of executing without having all parts of said data and behavior of said first object, wherein said second object includes at least one method of the first object and omitting from said second object at least one other method of the first object, wherein the at least one method comprises a first computer code executable by the second computer to perform the at least one method, and the at least one other method comprises a second computer code executable by the first computer to perform the at least one other method;

executing said second object on said second computer, wherein said executing comprises sending a plurality of messages between said first computer and said second computer, said plurality of messages comprising remote accessing by said second object of said at least one other method of said first object;

obtaining a policy for synchronizing said first object and second object between said first computer and said second computer; and

synchronizing said first object and said second object between said first computer and said second computer based on said policy, wherein said synchronizing comprises transferring and merging differences between said first object and said second object.

2. The method of claim 1 , wherein said synchronizing is temporally based.

3. The method of claim 1 , wherein said synchronizing is based on a type of said plurality of messages.

4. The method of claim 1 , wherein said synchronizing is based on a quantity of said plurality of messages.

5. The method of claim 1 further comprising a developer configuring a policy for said synchronizing.

6. The method of claim 1 , wherein said synchronizing comprises synchronizing said first object and said second object when a request is transmitted from said first computer to said second computer.

7. The method of claim 1 , wherein said synchronizing is based on user input.

8. A system comprising:

a first software object having data and behavior stored on a first computer;

a second software object comprising a partial copy of said first software object obtained on a second computer, wherein said partial copy includes at least one method of the first software object and does not include at least one other method of the first software object, wherein the at least one method comprises a first computer code executable by the second computer to perform the at least one method, and the at least one other method comprises a second computer code executable by the first computer to perform the at least one other method, wherein said second software object is capable of executing without having all parts of said first software object by remotely accessing said at least one other method of said software object on said first computer;

a policy obtained for synchronizing said first object and second object between said first computer and said second computer; and

code configured to synchronize said first software object and said second software object based on said policy, wherein said code is enabled to transfer and merge differences between said first software object and said second software object.

9. The system of claim 8 further comprising a temporally based synchronizing policy.

10. The system of claim 8 further comprising a synchronizing policy based on a type of said plurality of messages.

11. The system of claim 8 further comprising a synchronizing policy based on a quantity of said plurality of messages.

12. The system of claim 8 , further comprising a developer-configurable synchronizing policy.

13. The system of claim 8 , further comprising a synchronizing policy that provides for synchronizing said software object and said copy of said software object when a request is transmitted from said first computer to said second computer.

14. The system of claim 8 , further comprising a synchronizing policy based on user input.

15. A computer program product comprising:

a computer usable medium having computer readable program code embodied therein which when executed by a computer causes the computer to synchronize distributed software objects, said computer program product comprising computer readable code which when executed by a computer causes the computer to perform the steps of:

copying a first object having data and behavior from a first computer across a network to a second computer;

creating a second object having at least parts of said data and behavior, wherein said second object is capable of executing without having all parts of said data and behavior of said first object, wherein said second object includes at least one method of the first object and omitting from said second object at least one other method of the first object, wherein the at least one method comprises a first computer code executable by the second computer to perform the at least one method, and the at least one other method comprises a second computer code executable by the first computer to perform the at least one other method;

executing said second object on said second computer, wherein said executing comprises sending a plurality of messages between said first computer and said second computer, said plurality of messages comprising remote accessing by said second object of said at least one other method of said first object;

obtaining a policy for synchronizing said first object and second object between said first computer and said second computer; and

synchronizing said first object and said second object between said first computer and said second computer based on said policy, wherein said synchronizing comprises transferring and merging differences between said first object and said second object.

16. The computer program product of claim 15 , wherein said synchronizing is temporally based.

17. The computer program product of claim 15 , wherein said synchronizing is based on a type of said plurality of messages.

18. The computer program product of claim 15 , wherein said synchronizing is based on a quantity of said plurality of messages.

19. The computer program product of claim 15 , wherein said synchronizing may be configured by a developer.

20. The computer program product of claim 15 , wherein said synchronizing said is performed when a request is transmitted from said first computer to said second computer.

Assignments (3)
CHANGE OF NAME Recorded May 3, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019246/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2006
From: FEDERIGHI, CRAIG
To: APPLE COMPUTER, INC.
Reel/Frame 017465/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2005
From: GATES, PATRICK; NOYAU, ERIC
To: APPLE COMPUTER, INC.
Reel/Frame 016719/0015 →
Continuity (3)
Continuation 1015049400 · May 16, 2002
Continuation 0930924600 · May 10, 1999
Related Publication 20050268307A1 · Dec 1, 2005