Synchronizing databases
First Claim
1. A computer implemented method of synchronizing at least a first and a second database comprising:
- identifying a plurality of records of the second database storing a span of information stored in a record of the first database; and
synchronizing the first database and the second database based on the results of the identifying, wherein the span of information represented by the record of the first database includes date-bearing information, wherein the date-bearing information includes recurring date-bearing information, wherein the span of information has a starting time and date and an ending time and date which span a continuous period of time, wherein the continuous period of time is longer than a period of time permitted by the second database, further comprising identifying the plurality of records of the second database as storing the span of information stored in the record of the first database, wherein each of the identified plurality of the records of the second database stores a portion of the span of the information, wherein the identified plurality of records of the second database in combination store a selected segment of the span of information, and wherein the identified plurality of records of the second database includes a recurring record.
3 Assignments
0 Petitions

Accused Products

Abstract
A computer program and a computer implemented method are provided for synchronizing two databases by attempting to identify a plurality of records of the second database storing a span of information stored in a record of the first database and synchronizing the first database and the second database based on the results of the attempt. The computer program and a computer implemented can also store a record of a first database in a second database where the record of the first database stores a span of information and the second database is not capable of storing such span of information in a single record. To do so, a plurality of records of the second database are generated to store the span of information of the record of the first database, each of the plurality of the records of the second database storing a portion of the span of the information, where the plurality of records of the second database in combination store a selected segment of the span of information less than the entirety of the span of information.
339 Citations
Synchronization view | ||
Patent #
US 7,870,097 B2
Filed 02/09/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
MAINTAINING AN IP CONNECTION IN A MOBILE NETWORK | ||
Patent #
US 20110051610A1
Filed 08/09/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Collaborative data and intelligent synchronization for mobile devices | ||
Patent #
US 7,890,091 B2
Filed 05/08/2003
|
Current Assignee
Blackberry Limited
|
Original Assignee
Good Technology Incorporated
|
Network-initiated data transfer in a mobile network | ||
Patent #
US 7,904,101 B2
Filed 06/21/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
NETWORK-INITIATED DATA TRANSFER IN A MOBILE NETWORK | ||
Patent #
US 20110047232A1
Filed 08/20/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Tracking file system changes for backup | ||
Patent #
US 7,974,952 B1
Filed 12/29/2005
|
Current Assignee
Emc IP Holding Company LLC
|
Original Assignee
EMC Corporation
|
Flexible billing architecture | ||
Patent #
US 8,010,082 B2
Filed 10/19/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detecting low fidelity sync data | ||
Patent #
US 8,019,898 B2
Filed 03/04/2008
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Managing user-to-user contact with inferred presence information | ||
Patent #
US 8,069,166 B2
Filed 02/27/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Multiple data store authentication | ||
Patent #
US 8,064,583 B1
Filed 09/21/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 7,774,007 B2
Filed 06/21/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
System and Method for Dynamically Processing Electronic Data Between Multiple Data Sources | ||
Patent #
US 20100198947A1
Filed 02/04/2009
|
Current Assignee
Raytheon Company
|
Original Assignee
Raytheon Company
|
Connectivity function for forwarding e-mail | ||
Patent #
US 7,769,400 B2
Filed 08/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Secure transport for mobile communication network | ||
Patent #
US 7,827,597 B2
Filed 10/19/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US 7,680,281 B2
Filed 09/16/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for simplified provisioning | ||
Patent #
US 7,796,742 B1
Filed 04/21/2005
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Data security in a mobile e-mail service | ||
Patent #
US 7,706,781 B2
Filed 11/21/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Techniques for synchronizing data store tables | ||
Patent #
US 7,739,234 B1
Filed 12/15/2005
|
Current Assignee
Teradata US Inc.
|
Original Assignee
Teradata US Inc.
|
Schema Based User Interface Mechanisms | ||
Patent #
US 20100262902A1
Filed 04/08/2009
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
METHOD AND APPARATUS FOR INTERCEPTING EVENTS IN A COMMUNICATION SYSTEM | ||
Patent #
US 20090016526A1
Filed 09/16/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Connectivity function for forwarding e-mail | ||
Patent #
US 20090075683A1
Filed 08/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Method and Apparatus for Content Pre-Fetching and Preparation | ||
Patent #
US 20090287750A1
Filed 07/29/2009
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Maintaining time-date information for syncing low fidelity devices | ||
Patent #
US 7,620,663 B2
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
ASYNCHRONOUS DATA MIRRORING WITH LOOK-AHEAD SYNCHRONIZATION RECORD | ||
Patent #
US 20090327601A1
Filed 06/30/2008
|
Current Assignee
Aviad Zlotnick, Shachar Fienblit, Martin Tross
|
Original Assignee
Aviad Zlotnick, Shachar Fienblit, Martin Tross
|
Method And Apparatus for Propagating Tables While Preserving Cyclic Foreign Key Relationships | ||
Patent #
US 20080005183A1
Filed 06/30/2006
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
SECURE TRANSPORT FOR MOBILE COMMUNICATION NETWORK | ||
Patent #
US 20080037787A1
Filed 10/19/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
SYNCHRONIZING VITAL PRODUCT DATA FOR COMPUTER PROCESSOR SUBSYSTEMS | ||
Patent #
US 20080126522A1
Filed 09/22/2006
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Maintaining time-date information for syncing low fidelity devices | ||
Patent #
US 7,370,067 B2
Filed 06/24/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
DETECTING LOW FIDELITY SYNC DATA | ||
Patent #
US 20080155122A1
Filed 03/04/2008
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Asynchronous data mirroring with look-ahead synchronization record | ||
Patent #
US 7,412,464 B2
Filed 09/29/2003
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Enhanced Search System and Method for Providing Search Results With Selectivity or Prioritization of Search and Display Operations | ||
Patent #
US 20080208834A1
Filed 02/28/2007
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Method and system for synchronizing multiple user revisions, updating other strategy maps in the databases that are associated with the balanced scorecard | ||
Patent #
US 7,440,978 B2
Filed 01/14/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US 7,441,271 B2
Filed 10/20/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Method and apparatus for non-redundant search results | ||
Patent #
US 20070011142A1
Filed 07/06/2005
|
Current Assignee
SAP SE
|
Original Assignee
SAP SE
|
Network-initiated data transfer in a mobile network | ||
Patent #
US 20070019611A1
Filed 06/21/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
CONNECTION ARCHITECTURE FOR A MOBILE NETWORK | ||
Patent #
US 20070027832A1
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and system for synchronizing identity information | ||
Patent #
US 7,181,472 B2
Filed 10/23/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Determining when a low fidelity property value has changed during a sync | ||
Patent #
US 7,216,134 B2
Filed 07/18/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Techniques to manage contact information | ||
Patent #
US 20070143364A1
Filed 12/21/2005
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Method, system and computer program for identification of data and translation of data between storage locations | ||
Patent #
US 7,243,158 B1
Filed 01/28/2003
|
Current Assignee
Thomas Gutchigian
|
Original Assignee
Thomas Gutchigian
|
Preserving memory resources by limiting time-date information for a subset of properties | ||
Patent #
US 7,269,609 B2
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Determining when a low fidelity property value has changed during a SYNC | ||
Patent #
US 7,284,021 B2
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Secure transport for mobile communication network | ||
Patent #
US 7,305,700 B2
Filed 01/08/2003
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Preserving memory resources by limiting time-date information for a subset of properties | ||
Patent #
US 7,305,423 B2
Filed 05/06/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Connection architecture for a mobile network | ||
Patent #
US 7,139,565 B2
Filed 01/08/2003
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cross-pollination synchronization of data | ||
Patent #
US 20060020804A1
Filed 04/25/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Preserving memory resources by limiting time-date information for a subset of properties | ||
Patent #
US 7,007,045 B2
Filed 06/28/2004
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US 20060093135A1
Filed 10/20/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Synchronization View | ||
Patent #
US 20060117368A1
Filed 02/09/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and system for synchronizing multiple user revisions to a balanced scorecard | ||
Patent #
US 20060161596A1
Filed 01/14/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Database synchronization | ||
Patent #
US 20060149794A1
Filed 12/08/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Database synchronization via a mobile network | ||
Patent #
US 20060184591A1
Filed 12/28/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Data security in a mobile e-mail service | ||
Patent #
US 20060240804A1
Filed 11/21/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Method, system, and program product for using analysis views to identify data synchronization problems between databases | ||
Patent #
US 20060253485A1
Filed 05/05/2005
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 20060277265A1
Filed 11/30/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Asynchronous data mirroring with look-head synchronization record | ||
Patent #
US 20050071388A1
Filed 09/29/2003
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for synchronizing identity information | ||
Patent #
US 20050091290A1
Filed 10/23/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining time-date information for syncing low fidelity devices | ||
Patent #
US 6,944,636 B1
Filed 04/30/2004
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Determining when a low fidelity property value has changed during a sync | ||
Patent #
US 6,950,835 B1
Filed 06/28/2004
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining time-date information for syncing low fidelity devices | ||
Patent #
US 20050246462A1
Filed 06/24/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
PRESERVING MEMORY RESOURCES BY LIMITING TIME-DATE INFORMATION FOR A SUBSET OF PROPERTIES | ||
Patent #
US 20050246399A1
Filed 06/28/2004
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Determining when a low fidelity property value has changed during a sync | ||
Patent #
US 20050251414A1
Filed 07/18/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining time-date information for syncing low fidelity devices | ||
Patent #
US 20050246400A1
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Preserving memory resources by liimiting time-date information for a subset of properties | ||
Patent #
US 20050256995A1
Filed 05/06/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Automatic program generation technology using data structure resolution unit | ||
Patent #
US 6,973,639 B2
Filed 01/24/2001
|
Current Assignee
Fujitsu Limited
|
Original Assignee
Fujitsu Limited
|
Determining when a low fidelity property value has changed during a SYNC | ||
Patent #
US 20050289196A1
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Preserving memory resources by limiting time-date information for a subset of properties | ||
Patent #
US 20050289194A1
Filed 04/20/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
System and method for managing parameter exchange between telecommunications operators | ||
Patent #
US 20040005892A1
Filed 04/18/2003
|
Current Assignee
Arnaldo Mayer, Irit Mayer Sterdiner
|
Original Assignee
Arnaldo Mayer, Irit Mayer Sterdiner
|
Playback graph for data synchronization | ||
Patent #
US 20040199548A1
Filed 04/03/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Collaborative data and intelligent synchronization for mobile devices | ||
Patent #
US 20040224675A1
Filed 05/08/2003
|
Current Assignee
Blackberry Limited
|
Original Assignee
JP Mobile Operating L.P.
|
Image forming apparatus and function key assignment method | ||
Patent #
US 20040239973A1
Filed 03/12/2004
|
Current Assignee
Ricoh Company Limited
|
Original Assignee
Ricoh Company Limited
|
Connection architecture for a mobile network | ||
Patent #
US 20030157947A1
Filed 01/08/2003
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Secure transport for mobile communication network | ||
Patent #
US 20030235308A1
Filed 01/08/2003
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Automatic program generation technology using data structure resolution unit | ||
Patent #
US 20010044932A1
Filed 01/24/2001
|
Current Assignee
Fujitsu Limited
|
Original Assignee
Fujitsu Limited
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,127,342 B2
Filed 09/23/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Playback graph for data synchronization | ||
Patent #
US 7,308,465 B2
Filed 04/03/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Provisioning applications for a mobile device | ||
Patent #
US 8,078,158 B2
Filed 06/26/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,116,214 B2
Filed 11/30/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,107,921 B2
Filed 01/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,166,164 B1
Filed 10/14/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,190,701 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 8,285,200 B2
Filed 08/09/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Method and apparatus for propagating tables while preserving cyclic foreign key relationships | ||
Patent #
US 8,285,677 B2
Filed 06/30/2006
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,291,076 B2
Filed 03/05/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Social caching for device resource sharing and management | ||
Patent #
US 8,316,098 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed management of keep-alive message signaling for mobile network resource conservation and optimization | ||
Patent #
US 8,326,985 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 8,356,080 B2
Filed 07/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,364,181 B2
Filed 12/10/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cross-pollination synchronization of data | ||
Patent #
US 8,386,558 B2
Filed 04/25/2005
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Synchronizing vital product data for computer processor subsystems | ||
Patent #
US 8,392,909 B2
Filed 09/22/2006
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Location tracking for mobile computing device | ||
Patent #
US 8,395,547 B2
Filed 09/29/2010
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Hewlett-Packard Development Company L.P.
|
Context aware data presentation | ||
Patent #
US 8,412,675 B2
Filed 02/24/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Aligning data transfer to optimize connections established for transmission over a wireless network | ||
Patent #
US 8,417,823 B2
Filed 11/18/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Flexible real-time inbox access | ||
Patent #
US 8,438,633 B1
Filed 12/18/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
PORTFOLIO RISK MANAGER | ||
Patent #
US 20130151398A1
Filed 12/07/2012
|
Current Assignee
DUN Bradstreet Business Information Solutions Limited
|
Original Assignee
Dun Bradstreet Business Information Solutions Ltd.
|
Publishing data in an information community | ||
Patent #
US 8,468,126 B2
Filed 12/14/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed caching in a wireless network of content delivered for a mobile application over a long-held request | ||
Patent #
US 8,484,314 B2
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning applications for a mobile device | ||
Patent #
US 8,494,510 B2
Filed 12/06/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management with optimized polling intervals | ||
Patent #
US 8,539,040 B2
Filed 02/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,549,587 B2
Filed 02/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Schema based user interface mechanisms | ||
Patent #
US 8,560,941 B2
Filed 04/08/2009
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
System and method for executing commands that are non-native to the native environment of a mobile device | ||
Patent #
US 8,561,086 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Database synchronization via a mobile network | ||
Patent #
US 8,620,858 B2
Filed 12/28/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Detecting and preserving state for satisfying application requests in a distributed proxy and cache system | ||
Patent #
US 8,621,075 B2
Filed 04/27/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Cache state management on a mobile device to preserve user experience | ||
Patent #
US 8,635,339 B2
Filed 08/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Polling | ||
Patent #
US 8,693,494 B2
Filed 03/31/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,700,728 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Eventually-consistent data stream consolidation | ||
Patent #
US 8,705,537 B1
Filed 06/10/2012
|
Current Assignee
Jolly Seven Series 70 of Allied Security Trust I
|
Original Assignee
Andrei Teodor Borac
|
Cross-platform event engine | ||
Patent #
US 8,209,709 B2
Filed 07/05/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,204,953 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Transmitting a calendar event in target calendaring system format | ||
Patent #
US 8,719,842 B2
Filed 03/28/2013
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Dynamic adjustment of keep-alive message intervals in a mobile network | ||
Patent #
US 8,731,542 B2
Filed 03/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,738,050 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network | ||
Patent #
US 8,750,123 B1
Filed 07/31/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Propagating tables while preserving cyclic foreign key relationships | ||
Patent #
US 8,756,196 B2
Filed 09/07/2012
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Use of wireless access point ID for position determination | ||
Patent #
US 8,755,815 B2
Filed 08/31/2010
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 8,761,756 B2
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Integrated messaging | ||
Patent #
US 8,774,844 B2
Filed 04/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications | ||
Patent #
US 8,775,631 B2
Filed 02/25/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Data synchronization with eventual consistency | ||
Patent #
US 8,775,682 B1
Filed 05/08/2012
|
Current Assignee
Google LLC
|
Original Assignee
Google Inc.
|
Timing of keep-alive messages used in a system for mobile network resource conservation and optimization | ||
Patent #
US 8,782,222 B2
Filed 09/05/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application discovery on mobile devices | ||
Patent #
US 8,787,947 B2
Filed 06/18/2008
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Content delivery to a mobile device from a content service | ||
Patent #
US 8,793,305 B2
Filed 12/13/2007
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method of a relay server for managing communications and notification between a mobile device and a web access server | ||
Patent #
US 8,799,410 B2
Filed 04/13/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Maintaining mobile terminal information for secure communications | ||
Patent #
US 8,805,334 B2
Filed 09/05/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Integrated messaging | ||
Patent #
US 8,805,425 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device power management in data synchronization over a mobile network with or without a trigger notification | ||
Patent #
US 8,811,952 B2
Filed 05/05/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and system for management of a virtual network connection without heartbeat messages | ||
Patent #
US 8,812,695 B2
Filed 04/03/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for tracking billing events in a mobile wireless network for a network operator | ||
Patent #
US 8,831,561 B2
Filed 04/28/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief | ||
Patent #
US 8,832,228 B2
Filed 04/26/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed caching for resource and mobile network traffic management | ||
Patent #
US 8,838,783 B2
Filed 07/05/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Flexible real-time inbox access | ||
Patent #
US 8,839,412 B1
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Web-based access to data objects | ||
Patent #
US 8,838,744 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile traffic categorization and policy for network use optimization while preserving user experience | ||
Patent #
US 8,843,153 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System for providing policy based content service in a mobile network | ||
Patent #
US 8,849,902 B2
Filed 06/24/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization | ||
Patent #
US 8,861,354 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Policy based content service | ||
Patent #
US 8,862,657 B2
Filed 01/25/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation | ||
Patent #
US 8,868,753 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,873,411 B2
Filed 01/12/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols | ||
Patent #
US 8,874,761 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile application traffic optimization | ||
Patent #
US 8,886,176 B2
Filed 07/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of resource polling intervals to satisfy mobile device requests | ||
Patent #
US 8,903,954 B2
Filed 11/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,909,192 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Bandwidth measurement | ||
Patent #
US 8,909,759 B2
Filed 10/12/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detection and management of user interactions with foreground applications on a mobile device in distributed caching | ||
Patent #
US 8,909,202 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for providing a network service in a distributed fashion to a mobile device | ||
Patent #
US 8,914,002 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of mobile traffic directed to private networks and operator configurability thereof | ||
Patent #
US 8,918,503 B2
Filed 08/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US RE45,348 E1
Filed 03/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Content pre-fetching and preparation | ||
Patent #
US 8,949,420 B2
Filed 07/29/2009
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,966,066 B2
Filed 10/12/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation | ||
Patent #
US 8,977,755 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring mobile application activities for malicious traffic on a mobile device | ||
Patent #
US 8,984,581 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Connection architecture for a mobile network | ||
Patent #
US 8,989,728 B2
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Network-initiated data transfer in a mobile network | ||
Patent #
US 9,001,746 B2
Filed 08/20/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Predictive content delivery | ||
Patent #
US 9,002,828 B2
Filed 01/02/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation | ||
Patent #
US 9,009,250 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system | ||
Patent #
US 9,021,021 B2
Filed 12/10/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for persisting data between web pages | ||
Patent #
US 9,026,578 B2
Filed 05/14/2004
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
3D mobile user interface with configurable workspace management | ||
Patent #
US 9,043,731 B2
Filed 03/30/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,043,433 B2
Filed 05/25/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Intelligent rendering of information in a limited display environment | ||
Patent #
US 9,047,142 B2
Filed 12/16/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,049,179 B2
Filed 01/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method, system, and program product for using analysis views to identify data synchronization problems between databases | ||
Patent #
US 9,053,164 B2
Filed 05/05/2005
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Location-based operations and messaging | ||
Patent #
US 9,055,102 B2
Filed 08/02/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic | ||
Patent #
US 9,060,032 B2
Filed 05/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network | ||
Patent #
US 9,065,765 B2
Filed 10/08/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed implementation of dynamic wireless traffic policy | ||
Patent #
US 9,077,630 B2
Filed 07/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Device resources sharing for network resource conservation | ||
Patent #
US 9,084,105 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management | ||
Patent #
US 9,100,873 B2
Filed 09/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Location tracking for mobile computing device | ||
Patent #
US 9,097,544 B2
Filed 02/19/2013
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Managing cache to prevent overloading of a wireless network due to user activity | ||
Patent #
US 9,131,397 B2
Filed 06/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion | ||
Patent #
US 9,161,258 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,173,128 B2
Filed 03/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Use of wireless access point ID for position determination | ||
Patent #
US 9,191,781 B2
Filed 05/02/2014
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Dynamic categorization of applications for network access in a mobile network | ||
Patent #
US 9,203,864 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor | ||
Patent #
US 9,208,123 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile device with application or context aware fast dormancy | ||
Patent #
US 9,241,314 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network | ||
Patent #
US 9,239,800 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Extending user relationships | ||
Patent #
US 9,251,193 B2
Filed 10/28/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application or context aware fast dormancy | ||
Patent #
US 9,271,238 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Request and response characteristics based adaptation of distributed caching in a mobile network | ||
Patent #
US 9,275,163 B2
Filed 10/17/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,277,443 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Cross-pollination synchronization of data | ||
Patent #
US 9,292,585 B2
Filed 01/29/2013
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Technology Licensing LLC
|
Prioritized search results based on monitored data | ||
Patent #
US 9,298,721 B2
Filed 02/28/2007
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Qualcomm Inc.
|
Database synchronization | ||
Patent #
US 9,298,792 B2
Filed 12/08/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 9,300,719 B2
Filed 01/14/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for application management of mobile device radio state promotion and demotion | ||
Patent #
US 9,307,493 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for reduction of mobile network traffic used for domain name system (DNS) queries | ||
Patent #
US 9,325,662 B2
Filed 01/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
User as an end point for profiling and optimizing the delivery of content and data in a wireless network | ||
Patent #
US 9,326,189 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Wireless traffic management system cache optimization using http headers | ||
Patent #
US 9,330,196 B2
Filed 06/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile application traffic optimization | ||
Patent #
US 9,407,713 B2
Filed 01/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Local key-value database synchronization | ||
Patent #
US 9,703,814 B1
Filed 10/15/2013
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Mobile device configured for communicating with another mobile device associated with an associated user | ||
Patent #
US 9,712,986 B2
Filed 03/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic | ||
Patent #
US 9,832,095 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Database synchronization via a mobile network | ||
Patent #
US 10,089,376 B2
Filed 08/30/2016
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Local key-value database synchronization | ||
Patent #
US 10,176,242 B2
Filed 07/10/2017
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Local key-value database synchronization | ||
Patent #
US 10,242,084 B2
Filed 07/10/2017
|
Current Assignee
Amazon Technologies
|
Original Assignee
Amazon Technologies
|
Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network | ||
Patent #
US 10,263,899 B2
Filed 04/10/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Wireless information processing terminal and controlling method thereof | ||
Patent #
US 6,233,452 B1
Filed 07/02/1998
|
Current Assignee
Lenovo PC International Limited
|
Original Assignee
International Business Machines Corporation
|
Distributed systems with replicated files | ||
Patent #
US 5,689,706 A
Filed 10/10/1996
|
Current Assignee
Nokia of America Corporation
|
Original Assignee
Lucent Technologies Inc.
|
System and method for database synchronization | ||
Patent #
US 5,758,150 A
Filed 10/06/1995
|
Current Assignee
Tele-Communications Inc.
|
Original Assignee
Tele-Communications Inc.
|
Method and apparatus for synchronizing data transmission with on-demand links of a network | ||
Patent #
US 5,596,574 A
Filed 07/06/1995
|
Current Assignee
EMC Corporation
|
Original Assignee
Novell Incorporated
|
Distributing database differences corresponding to database change events made to a database table located on a server computer | ||
Patent #
US 5,999,947 A
Filed 05/27/1997
|
Current Assignee
Pure Data Systems LLC
|
Original Assignee
Arkona LLC
|
Intranet-based system with methods for co-active delivery of information to multiple users | ||
Patent #
US 5,892,909 A
Filed 01/31/1997
|
Current Assignee
Ip Ot Sub Ulc
|
Original Assignee
Diffusion Inc.
|
Reliable database administration arrangement | ||
Patent #
US 5,136,707 A
Filed 10/28/1988
|
Current Assignee
ATT Information Systems Inc., American Telephone Telegraph
|
Original Assignee
ATT Inc.
|
Method and architecture for the creation, control and deployment of services within a distributed computer environment | ||
Patent #
US 5,790,789 A
Filed 08/02/1996
|
Current Assignee
Larry Suarez
|
Original Assignee
Larry Suarez
|
Maintaining consistency of database replicas | ||
Patent #
US 6,098,078 A
Filed 12/23/1996
|
Current Assignee
Alcatel-Lucent USA Inc.
|
Original Assignee
Lucent Technologies Inc.
|
System for synchronizing shared data between computers | ||
Patent #
US 5,884,325 A
Filed 10/09/1996
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle Corporation
|
Gap recovery for off-site data storage and recovery systems | ||
Patent #
US 5,412,801 A
Filed 01/17/1990
|
Current Assignee
E--Net Incorporated
|
Original Assignee
E--Net Incorporated
|
Method and system for broadcasting and querying a database using a multi-function module | ||
Patent #
US 5,530,939 A
Filed 09/29/1994
|
Current Assignee
TTI Inventions C LLC
|
Original Assignee
Bell Communications Research Inc.
|
PBX data retrieval and reporting system and method | ||
Patent #
US 5,623,540 A
Filed 10/05/1994
|
Current Assignee
Siemens Enterprise Communications Inc.
|
Original Assignee
Siemens Rolm Communications Inc.
|
Methods, systems and computer program products for transferring files from a data processing server to a remote/mobile data processing node | ||
Patent #
US 5,819,274 A
Filed 06/06/1997
|
Current Assignee
iAnywhere Solutions Incorporated
|
Original Assignee
XcelleNet Inc.
|
Database system for facilitating comparison of related information stored in a distributed resource | ||
Patent #
US 5,475,833 A
Filed 09/04/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Telecommunications installation and management system and method | ||
Patent #
US 5,875,242 A
Filed 07/26/1996
|
Current Assignee
Hanger Solutions LLC
|
Original Assignee
Lawrence F. Glaser, Brian E. Stowers
|
Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users | ||
Patent #
US 5,333,316 A
Filed 08/16/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time | ||
Patent #
US 5,170,480 A
Filed 09/25/1989
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Registration of resources for commit procedures | ||
Patent #
US 5,276,876 A
Filed 05/16/1990
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Communication apparatus | ||
Patent #
US 6,212,221 B1
Filed 03/11/1998
|
Current Assignee
Brother Kogyo Kabushiki Kaisha
|
Original Assignee
Brother Kogyo Kabushiki Kaisha
|
Method and apparatus for generating recurring events in a calendar/schedule system | ||
Patent #
US 6,272,074 B1
Filed 07/01/1997
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle Corporation
|
Synchronization of databases | ||
Patent #
US 6,330,568 B1
Filed 11/05/1997
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Pumatech Inc.
|
Using distributed history files in synchronizing databases | ||
Patent #
US 6,044,381 A
Filed 09/11/1997
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
Computer database synchronization method | ||
Patent #
US 6,081,806 A
Filed 01/15/1998
|
Current Assignee
Inventec Corporation
|
Original Assignee
Inventec Corporation
|
Continuous object sychronization between object stores on different computers | ||
Patent #
US 6,125,369 A
Filed 10/27/1997
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Synchronization of databases with date range | ||
Patent #
US 6,141,664 A
Filed 11/13/1996
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
System for synchronizing data between computers using a before-image of data | ||
Patent #
US 5,870,759 A
Filed 10/09/1996
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle Corporation
|
Database synchronizer | ||
Patent #
US 5,870,765 A
Filed 10/09/1996
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle Corporation
|
Controlling access to objects in a hierarchical database | ||
Patent #
US 5,878,415 A
Filed 03/20/1997
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Novell Incorporated
|
User interface for synchronously and independently scrolling windows | ||
Patent #
US 5,877,760 A
Filed 06/06/1996
|
Current Assignee
Mitsubishi Electric Corporation
|
Original Assignee
Mitsubishi Electric Corporation
|
Agent for replicating data based on a client defined replication period | ||
Patent #
US 5,884,324 A
Filed 07/23/1996
|
Current Assignee
Google LLC
|
Original Assignee
International Business Machines Corporation
|
Extendible method and apparatus for synchronizing files on two different computer systems | ||
Patent #
US 5,884,323 A
Filed 10/13/1995
|
Current Assignee
Access Company Limited
|
Original Assignee
3Com Corporation
|
Method and system of associating, synchronizing and reconciling computer files in an operating system | ||
Patent #
US 5,897,640 A
Filed 03/26/1997
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels therebetween | ||
Patent #
US 5,928,329 A
Filed 05/20/1997
|
Current Assignee
Hewlett-Packard Development Company L.P.
|
Original Assignee
Compaq Computer Corporation
|
Independent distributed database system | ||
Patent #
US 5,924,094 A
Filed 11/01/1996
|
Current Assignee
Progress Software Corporation
|
Original Assignee
CURRENT NETWORK TECHNOLOGIES CORPORATION
|
System and method for retrieving a document by inputting a desired attribute and the number of areas in which the attribute occurs as a retrieval condition | ||
Patent #
US 5,926,824 A
Filed 11/14/1995
|
Current Assignee
Canon Kabushiki Kaisha
|
Original Assignee
Canon Kabushiki Kaisha
|
Synchronization of recurring records in incompatible databases | ||
Patent #
US 5,943,676 A
Filed 11/13/1996
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
Creation of manageable management collections using filters | ||
Patent #
US 5,956,508 A
Filed 04/07/1997
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements | ||
Patent #
US 5,974,238 A
Filed 08/07/1996
|
Current Assignee
Hewlett-Packard Development Company L.P.
|
Original Assignee
Compaq Computer Corporation
|
Method and apparatus for scaling large electronic mail databases for devices with limited storage | ||
Patent #
US 5,966,714 A
Filed 04/30/1996
|
Current Assignee
Intel Corporation
|
Original Assignee
Intel Corporation
|
System for providing synchronization between a local area network and a distributing computer environment | ||
Patent #
US 5,978,813 A
Filed 09/25/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
System and method for database update replication | ||
Patent #
US 5,995,980 A
Filed 07/23/1996
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
Informix Corporation
|
Method for synchronizing and archiving information between computer systems | ||
Patent #
US 5,710,922 A
Filed 12/18/1995
|
Current Assignee
Apple Inc.
|
Original Assignee
Apple Computer Incorporated
|
Micro personal digital assistant | ||
Patent #
US 5,708,840 A
Filed 03/04/1996
|
Current Assignee
Inpro II Licensing SARL
|
Original Assignee
Elonex IP Holdings Limited
|
Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers | ||
Patent #
US 5,706,452 A
Filed 12/06/1995
|
Current Assignee
Vladimir I. Ivanov
|
Original Assignee
Vladimir I. Ivanov
|
Application independent record level synchronization | ||
Patent #
US 5,706,509 A
Filed 04/28/1995
|
Current Assignee
Intel Corporation
|
Original Assignee
Intel Corporation
|
Method and apparatus for Migrating from a source domain network controller to a target domain network controller | ||
Patent #
US 5,708,812 A
Filed 01/18/1996
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and apparatus for synchronizing information on two different computer systems | ||
Patent #
US 5,727,202 A
Filed 10/18/1995
|
Current Assignee
Access Company Limited
|
Original Assignee
Palm Inc.
|
Remote database file synchronizer | ||
Patent #
US 5,729,735 A
Filed 02/08/1995
|
Current Assignee
Samuel C. Meyering
|
Original Assignee
Samuel C. Meyering
|
Prescription creation system | ||
Patent #
US 5,737,539 A
Filed 10/28/1994
|
Current Assignee
Cybear LLC
|
Original Assignee
ADVANCED HEALTH MED-E-SYSTEMS CORP.
|
Graphical programming system and methods for assisting a user with creating screen objects on a screen device | ||
Patent #
US 5,745,712 A
Filed 12/28/1995
|
Current Assignee
Borland Software Corporation
|
Original Assignee
Borland International Inc.
|
Synchronization of server database with client database using distribution tables | ||
Patent #
US 5,758,355 A
Filed 08/07/1996
|
Current Assignee
Aurum Software Inc.
|
Original Assignee
Aurum Software Inc.
|
Method and system for sharing information between network managers | ||
Patent #
US 5,758,083 A
Filed 10/30/1995
|
Current Assignee
Oracle America Inc.
|
Original Assignee
Sun Microsystems Incorporated
|
Method of processing a synchronization point in a database management system to assure a database version using update logs from accumulated transactions | ||
Patent #
US 5,778,388 A
Filed 09/15/1995
|
Current Assignee
Hitachi America Limited
|
Original Assignee
Hitachi Software Engineering Co. Ltd., Hitachi America Limited
|
File data synchronizer in a distributed data computer network | ||
Patent #
US 5,781,908 A
Filed 12/18/1995
|
Current Assignee
JD Edwards World Source Company
|
Original Assignee
JD Edwards World Source Company
|
Method for rapidly and efficiently hashing records of large databases | ||
Patent #
US 5,809,494 A
Filed 11/16/1995
|
Current Assignee
SpeechWorks International Inc.
|
Original Assignee
APPLIED LANGUAGE TECHNOLOGIES INC.
|
Computer based records management system method | ||
Patent #
US 5,813,009 A
Filed 07/28/1995
|
Current Assignee
Univirtual Corporation
|
Original Assignee
Univirtual Corporation
|
Record tracking in database replication | ||
Patent #
US 5,819,272 A
Filed 07/12/1996
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and apparatus for synchronizing information on two different computer systems | ||
Patent #
US 5,832,489 A
Filed 10/08/1997
|
Current Assignee
Access Company Limited
|
Original Assignee
3Com Corporation
|
Client/server electronic mail system for providng off-line client utilization and seamless server resynchronization | ||
Patent #
US 5,832,218 A
Filed 12/14/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for synchronizing computer mail user directories | ||
Patent #
US 5,838,923 A
Filed 07/22/1996
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and system of associating, synchronizing and reconciling computer files in an operating system | ||
Patent #
US 5,845,293 A
Filed 03/26/1997
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and apparatus for reconciling different versions of a file | ||
Patent #
US 5,600,834 A
Filed 04/05/1995
|
Current Assignee
Binary Services LLC
|
Original Assignee
Mitsubishi Electric Information Technology Center America Inc.
|
Consistent recreation of events from activity logs | ||
Patent #
US 5,613,113 A
Filed 06/07/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Apparatus and method for performing the backup of a primary database using a back up database | ||
Patent #
US 5,615,364 A
Filed 07/06/1995
|
Current Assignee
Siemens Industry Incorporated
|
Original Assignee
Siemens Energy Automation Incorporated
|
Stand-in Computer file server providing fast recovery from computer file server failures | ||
Patent #
US 5,608,865 A
Filed 03/14/1995
|
Current Assignee
Autonomy Incorporated
|
Original Assignee
NETWORK INTEGRITY INC.
|
Method of and system for generating feasible, profit maximizing requisition sets | ||
Patent #
US 5,615,109 A
Filed 05/24/1995
|
Current Assignee
Jeffrey Eder
|
Original Assignee
Jeff Eder
|
Method and apparatus for confirming delivery of files in a file broadcast system with rebroadcast timing at the receiver | ||
Patent #
US 5,619,689 A
Filed 10/19/1993
|
Current Assignee
JP Morgan Chase Bank N.A.
|
Original Assignee
Hughes Electronics Corporation
|
Connection resource manager displaying link-status information using a traffic light iconic representation | ||
Patent #
US 5,630,081 A
Filed 09/07/1995
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
Apparatus and method for organizing timeline data | ||
Patent #
US 5,649,182 A
Filed 03/17/1995
|
Current Assignee
RPX Corporation
|
Original Assignee
Carl A. Reitz
|
Computer system and method for storing medical histories using a carrying size card | ||
Patent #
US 5,659,741 A
Filed 04/17/1995
|
Current Assignee
Information Retrieval Acquisition LLC
|
Original Assignee
Stuart S. Bowie
|
Application-specific conflict detection for weakly consistent replicated databases | ||
Patent #
US 5,671,407 A
Filed 12/07/1994
|
Current Assignee
Yoranso Consulting LLC
|
Original Assignee
Xerox Corporation
|
System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between | ||
Patent #
US 5,666,530 A
Filed 12/02/1992
|
Current Assignee
Qualcomm Inc.
|
Original Assignee
Compaq Computer Corporation
|
Method for mapping, translating, and dynamically reconciling data between disparate computer platforms | ||
Patent #
US 5,666,553 A
Filed 07/22/1994
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
Databank system with methods for efficiently storing non-uniform data records | ||
Patent #
US 5,682,524 A
Filed 05/26/1995
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Starfish Software Inc.
|
Synchronization and replication of object databases | ||
Patent #
US 5,684,984 A
Filed 09/29/1994
|
Current Assignee
Apple Inc.
|
Original Assignee
Apple Computer Incorporated
|
Synchronization of disparate databases | ||
Patent #
US 5,684,990 A
Filed 01/11/1995
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
Method for mapping, translating, and dynamically reconciling data between disparate computer platforms | ||
Patent #
US 5,701,423 A
Filed 04/07/1994
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Puma Technology Inc.
|
System and method for completing an electronic form | ||
Patent #
US 5,704,029 A
Filed 05/23/1994
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Wright Strategies Inc.
|
Networked facilities management system with time stamp comparison for data base updates | ||
Patent #
US 5,511,188 A
Filed 12/30/1993
|
Current Assignee
Johnson Controls Technology Company
|
Original Assignee
Johnson Service Company
|
System and methods for appointment reconciliation | ||
Patent #
US 5,519,606 A
Filed 01/21/1992
|
Current Assignee
Intellisync Corporation
|
Original Assignee
Starfish Software Inc.
|
Method for filtering items in a computer application program container object using filter data for related entries in a container object of another application program | ||
Patent #
US 5,530,853 A
Filed 03/06/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Methods and systems for object-based relational distributed databases | ||
Patent #
US 5,560,005 A
Filed 02/25/1994
|
Current Assignee
WebMD Health Corporation
|
Original Assignee
ActaMed Corp.
|
Trusted agents for open electronic commerce | ||
Patent #
US 5,557,518 A
Filed 04/28/1994
|
Current Assignee
Citibank South Dakota NA
|
Original Assignee
Citibank South Dakota NA
|
Communication server for communicating with a remote device | ||
Patent #
US 5,568,402 A
Filed 04/11/1994
|
Current Assignee
Schneider Electric Software Canada Inc.
|
Original Assignee
GSE Process Solutions Inc.
|
Communication server for communicating with a remote device | ||
Patent #
US 5,583,793 A
Filed 03/04/1996
|
Current Assignee
Schneider Electric Software Canada Inc.
|
Original Assignee
GSE Process Solutions Inc.
|
Methodology for managing weakly consistent replicated databases | ||
Patent #
US 5,581,754 A
Filed 12/07/1994
|
Current Assignee
Yoranso Consulting LLC
|
Original Assignee
Xerox Corporation
|
Method for providing session consistency guarantees | ||
Patent #
US 5,581,753 A
Filed 09/28/1994
|
Current Assignee
Yoranso Consulting LLC
|
Original Assignee
Xerox Corporation
|
Method for mapping, translating, and dynamically reconciling data between disparate computer platforms | ||
Patent #
US 5,392,390 A
Filed 04/10/1992
|
Current Assignee
Intellisync Corporation
|
Original Assignee
IntelliLink Corp
|
Data tracking arrangement for improving the quality of data stored in a database | ||
Patent #
US 5,396,612 A
Filed 05/02/1991
|
Current Assignee
Teradata US Inc.
|
Original Assignee
ATT Inc.
|
Multitasking computer system for integrating the operation of different application programs which manipulate data objects of different types | ||
Patent #
US 5,421,012 A
Filed 05/20/1993
|
Current Assignee
Eastman Kodak Company
|
Original Assignee
Wang Laboratories Incorporated
|
System and method for maintaining replicated data coherency in a data processing system | ||
Patent #
US 5,434,994 A
Filed 05/23/1994
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method of accessing configured nodes in a facilities management system with a non-configured device | ||
Patent #
US 5,444,851 A
Filed 01/21/1994
|
Current Assignee
Johnson Controls Technology Company
|
Original Assignee
Johnson Service Company
|
System and method for dynamically displaying entering, and updating data from a database | ||
Patent #
US 5,455,945 A
Filed 05/19/1993
|
Current Assignee
Yardley Benham And Rasch LLC
|
Original Assignee
Richard Vanderdrift
|
Method of downloading information stored in an arching device to destination network controller through intermediate network controllers in accordance with routing information | ||
Patent #
US 5,463,735 A
Filed 02/03/1994
|
Current Assignee
Johnson Controls Technology Company
|
Original Assignee
Johnson Service Company
|
Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures | ||
Patent #
US 5,278,982 A
Filed 12/23/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system | ||
Patent #
US 5,278,978 A
Filed 03/26/1990
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Automatic document format conversion in an electronic mail system based upon user preference | ||
Patent #
US 5,283,887 A
Filed 12/19/1990
|
Current Assignee
BULL HN INFORMATION SYSTEMS INC. TECHNOLOGY PARK
|
Original Assignee
Bull HN Information Systems Incorporated
|
Method for adjusting curent clock counts in a distributed computer system | ||
Patent #
US 5,293,627 A
Filed 05/22/1991
|
Current Assignee
Toshiba Corporation
|
Original Assignee
Toshiba Corporation
|
Manipulating data in a relational data base having operational manipulations defined in an input table and displayed results in an output table with a line displayed designating direction of data flow | ||
Patent #
US 5,301,313 A
Filed 07/15/1991
|
Current Assignee
Matsushita Electric Industrial Company Limited, Sanyo Electric Company Limited, Mitsubishi Electric Corporation, Sharp Electronics Corporation
|
Original Assignee
Matsushita Electric Industrial Company Limited, Sanyo Electric Company Limited, Mitsubishi Electric Corporation, Sharp Electronics Corporation
|
Method and apparatus for transforming objects in data models | ||
Patent #
US 5,315,709 A
Filed 12/03/1990
|
Current Assignee
Computer Associates Think Inc.
|
Original Assignee
Bachman Information Systems Inc.
|
Method and system for graphic representation of meeting parameters in a data processing system | ||
Patent #
US 5,323,314 A
Filed 12/31/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method for reconciling entries in a plurality of schedules | ||
Patent #
US 5,327,555 A
Filed 02/14/1991
|
Current Assignee
HP Inc.
|
Original Assignee
HP Inc.
|
Replicated data processing method in distributed processing system | ||
Patent #
US 5,333,265 A
Filed 10/22/1991
|
Current Assignee
Hitachi Ltd.
|
Original Assignee
Hitachi America Limited
|
Interface for arranging order of fields | ||
Patent #
US 5,333,252 A
Filed 06/30/1993
|
Current Assignee
Apple Inc.
|
Original Assignee
Claris Lifesciences Limited
|
Apparatus and method for creation of a user definable video displayed document showing changes in real time data | ||
Patent #
US 5,339,392 A
Filed 12/28/1990
|
Current Assignee
Thomson Reuters Global Resources Unlimited Company
|
Original Assignee
Reuters Limited
|
Heterogeneous data translation system | ||
Patent #
US 5,339,434 A
Filed 12/07/1992
|
Current Assignee
TRW Limited
|
Original Assignee
TRW Limited
|
File update apparatus for generating a matrix representing a subset of files and the update correspondence between directories and files | ||
Patent #
US 5,355,476 A
Filed 12/02/1991
|
Current Assignee
Casio Computer Company
|
Original Assignee
Casio Computer Company
|
Data dictionary manager for maintaining an active data dictionary | ||
Patent #
US 5,375,234 A
Filed 01/28/1994
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes | ||
Patent #
US 5,187,787 A
Filed 07/27/1989
|
Current Assignee
Reuters Limited
|
Original Assignee
Teknekron Software Systems Inc.
|
Method of scheduling meetings | ||
Patent #
US 5,197,000 A
Filed 05/15/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for building a database and performing marketing based upon prior shopping history | ||
Patent #
US 5,201,010 A
Filed 05/19/1992
|
Current Assignee
Catalina Marketing Corporation
|
Original Assignee
Credit Verification Corporation
|
Database system and matching method between databases | ||
Patent #
US 5,210,868 A
Filed 12/19/1990
|
Current Assignee
Korea Electric Power Corporation, Hitachi Ltd.
|
Original Assignee
Korea Electric Power Corporation, Hitachi Ltd.
|
Data processing apparatus with schedule creation, prioritization, display and control functions | ||
Patent #
US 5,220,540 A
Filed 02/12/1992
|
Current Assignee
Sharp Corporation
|
Original Assignee
Sharp Electronics Corporation
|
Knowledge base management system | ||
Patent #
US 5,228,116 A
Filed 05/17/1991
|
Current Assignee
AICorp Inc.
|
Original Assignee
AICorp Inc.
|
System for storing and manipulating information in an information base | ||
Patent #
US 5,237,678 A
Filed 03/02/1989
|
Current Assignee
William L. Kuechler, David W. Kuechler
|
Original Assignee
William L. Kuechler, David W. Kuechler
|
Method and apparatus for diagnosing the state of a machine | ||
Patent #
US 5,251,151 A
Filed 12/24/1990
|
Current Assignee
The Research Foundation for The State University of New York
|
Original Assignee
The Research Foundation for The State University of New York
|
Method of selectively transferring video displayed information | ||
Patent #
US 5,251,291 A
Filed 07/30/1992
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method of exchanging entries from a plurality of different electronic calendars based on interactively entered criteria | ||
Patent #
US 5,261,045 A
Filed 04/19/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Asynchronous replication of data changes by distributed update requests | ||
Patent #
US 5,261,094 A
Filed 04/08/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for aggregating tables having dissimilar formats | ||
Patent #
US 5,272,628 A
Filed 04/16/1990
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Meeting management device | ||
Patent #
US 5,124,912 A
Filed 05/15/1987
|
Current Assignee
AD Technologies LLC
|
Original Assignee
Wang Laboratories Incorporated
|
Computer aided reconfiliation method and apparatus | ||
Patent #
US 5,134,564 A
Filed 10/19/1989
|
Current Assignee
Intuit Inc.
|
Original Assignee
Intuit Inc.
|
Method and apparatus for visually comparing files in a data processing system | ||
Patent #
US 5,142,619 A
Filed 08/23/1991
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for maintaining a time frame selective document history log in a data processing system | ||
Patent #
US 5,155,850 A
Filed 02/23/1990
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Portable data storage and editing device | ||
Patent #
US 5,065,360 A
Filed 01/10/1989
|
Current Assignee
Renaissance Learning Incorporated
|
Original Assignee
Douglas J. Kelly
|
Outline-driven database editing and retrieval system | ||
Patent #
US 4,939,689 A
Filed 04/09/1987
|
Current Assignee
Crowninshield Software Inc.
|
Original Assignee
Crowninshield Software Inc.
|
Method for canonical ordering of binary data for portable operating systems | ||
Patent #
US 4,956,809 A
Filed 12/29/1988
|
Current Assignee
Mark Williams Co.
|
Original Assignee
Mark Williams Co.
|
Method and apparatus for diagnosing the state of a machine | ||
Patent #
US 4,980,844 A
Filed 05/27/1988
|
Current Assignee
Electric Power Research Institute, The Research Foundation for The State University of New York
|
Original Assignee
Electric Power Research Institute, The Research Foundation for The State University of New York
|
Electronic calendaring method for confirmation of resource availability during event calendaring | ||
Patent #
US 4,807,155 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Apparatus and method for comparing data groups | ||
Patent #
US 4,807,182 A
Filed 03/12/1986
|
Current Assignee
Advanced Software Inc.
|
Original Assignee
Advanced Software Inc.
|
Method for developing automatic replies in an interactive electronic calendaring system | ||
Patent #
US 4,807,154 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Electronic calendaring method which provides for automatic assignment of alternates in requested events | ||
Patent #
US 4,817,018 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Database index journaling for enhanced recovery | ||
Patent #
US 4,819,156 A
Filed 06/13/1986
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Electronic calendaring method to establish calendar floating triggers for calendared events and processes | ||
Patent #
US 4,819,191 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method for concurrently displaying entries from a plurality of different electronic calendars based on interactively entered non-temporal criteria | ||
Patent #
US 4,831,552 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Computer integrated manufacturing system | ||
Patent #
US 4,827,423 A
Filed 05/26/1987
|
Current Assignee
R J Reynolds Tobacco Company
|
Original Assignee
R J Reynolds Tobacco Company
|
Method for automatically reconciling entries on two copies of independently maintained electronic calendars | ||
Patent #
US 4,866,611 A
Filed 01/29/1987
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system | ||
Patent #
US 4,875,159 A
Filed 12/22/1987
|
Current Assignee
Amdahl Corporation
|
Original Assignee
Amdahl Corporation
|
Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system | ||
Patent #
US 4,432,057 A
Filed 11/27/1981
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Electronic calendar and diary | ||
Patent #
US 4,162,610 A
Filed 12/31/1975
|
Current Assignee
Alfred B. Levine
|
Original Assignee
Alfred B. Levine
|
1 Claim
-
1. A computer implemented method of synchronizing at least a first and a second database comprising:
-
identifying a plurality of records of the second database storing a span of information stored in a record of the first database; and
synchronizing the first database and the second database based on the results of the identifying, wherein the span of information represented by the record of the first database includes date-bearing information, wherein the date-bearing information includes recurring date-bearing information, wherein the span of information has a starting time and date and an ending time and date which span a continuous period of time, wherein the continuous period of time is longer than a period of time permitted by the second database, further comprising identifying the plurality of records of the second database as storing the span of information stored in the record of the first database, wherein each of the identified plurality of the records of the second database stores a portion of the span of the information, wherein the identified plurality of records of the second database in combination store a selected segment of the span of information, and wherein the identified plurality of records of the second database includes a recurring record.
-
1 Specification
This application is a continuation of U.S. application Ser. No. 09/169,199, filed Oct. 9, 1998, now U.S. Pat. No. 6,405,218 which is a continuation-in-part of U.S. application Ser. No. 08/752,490, filed Nov. 13, 1996, now issued U.S. Pat. No. 5,943,676. The disclosures of the prior applications are considered part of (and are incorporated by reference in) the disclosure of this application.
This invention relates to synchronizing databases.
Databases are collections of data entries which are organized, stored, and manipulated in a manner specified by applications known as database managers (hereinafter also referred to as “Applications”; hereinafter, the term “database” also refers to a database manager combined with a database proper). The manner in which database entries are organized in a database is known as the data structure of the database. There are generally two types of database managers. First are general purpose database managers in which the user determines (usually at the outset, but subject to future revisions) what the data structure is. These Applications often have their own programming language and provide great flexibility to the user. Second are special purpose database managers that are specifically designed to create and manage a database having a preset data structure. Examples of these special purpose database managers are various scheduling, diary, and contact manager applications for desktop and handheld computers. Database managers organize the information in a database into records, with each record made up of fields. Fields and records of a database may have many different characteristics depending on the database manager'"'"'s purpose and utility.
Databases can be said to be incompatible with one another when the data structure of one is not the same as the data structure of another, even though some of the content of the records is substantially the same.
Often users of incompatible databases want to be able to synchronize them with one another. For example, in the context of scheduling and contact manager Applications, a person might use one application on a desktop computer at work while another on his handheld computer or his laptop computer while away from work. It is desirable for many of these users to be able to synchronize the entries on one with entries on another. U.S. patents of the assignee hereof, Puma Technology, Inc. of San Jose, Calif. (U.S. Pat. No. 5,392,390, hereinafter, “the '"'"'390 patent”, incorporated by reference herein; and U.S. Pat. No. 5,684,990, filed on Jan. 11, 1995, incorporated by reference herein) show two methods for synchronizing incompatible databases and solving some of the problems arising from incompatibility of databases.
In one aspect, the invention features a computer program and a computer implemented method for synchronizing two databases by attempting to identify a plurality of records of the second database storing a span of information stored in a record of the first database and synchronizing the first database and the second database based on the results of the attempt.
Preferred embodiments of the invention may include one or more of the following features.
To synchronize the first database and the second database, the plurality of records of the second database are processed to generate a record representative of a span of information represented by the plurality of records of the second database. The generated record is then compared to the record of the first database and synchronization action is taken based on the comparison.
The span of information represented by the record of the first database may include date-bearing information such as recurring date-bearing information or a continuous span of information. If the span of information includes recurring date-bearing information, the identified plurality of records of the second database may represent instances of a recurring date-bearing record.
The span of information may be a continuous period of time. In that case, the starting time and date and the ending time and date of the record of the first database span a period of time longer than a period permitted by the second database. Each of the identified plurality of the records of the second database stores a portion of the span of the information, where the identified plurality of records of the second database in combination store the span of information or a selected segment thereof. The continuous period of time can be longer than a period of time permitted by the second database. The identified plurality of records of the second database may include a recurring record. Note that the record of the first database may also be a recurring record where each instance stores a span of information greater than that permitted by the second database.
Synchronizing the first database and the second database includes adding, modifying, or deleting one of the records.
The record of the first database is deleted, if the attempt to identify the plurality of records of the second database is unsuccessful.
If a plurality of records of the second database is identified as storing the span of information stored in the record of the first database, synchronizing the first database and the second database includes comparing the record of the first database to the identified plurality of records of the second database and synchronizing the identified plurality of records of the second database with the record of the first database based on the results of the comparison.
The identified plurality of records of the second database are processed to generate a span of information representative of information stored in the identified plurality of records of the second database. Then, comparing the record of the first database to the records of the second database includes comparing the span of information stored in the record of the first database to the generated span of information. In addition, a record is generated based on the identified plurality of records of the second database where the record stores the generated span of information. This generated record is then used for comparing the record of the first database to the identified plurality of the second database.
A history file stores information reflecting the records of the first and second databases at a previous synchronization. The record of the first database and the identified plurality of records of the second database are compared to the information in the history file. Synchronizing the first database and the second database then includes synchronizing based on results of the comparison to the history file.
The records of the second database can be compared to the information in the history file to identify the plurality of records of the second database based on the results of the comparison. Alternatively, the record of the first database can be compared to the records of the second database to identify the plurality of records of the second database.
Additionally, the record of the first database can be a record which was present during the previous synchronization and which was deleted from the first database prior to the current synchronization. Synchronizing the first database and the second database then includes deleting the identified plurality of records of the second database.
To identify the plurality of records of the second database, a plurality of instances are generated based on a previously determined pattern for generating a plurality of instances which in combination represent the span of information stored by the record of the first database. A second plurality of the records of the second database are then correlated to the plurality of generated instances by comparing the plurality of generated instances to the records of the second database. The second plurality of the records of the second database is then determined to be the identified plurality of records of the second database.
The previously determined pattern is selected based on a characteristic of the span of information stored in the record of the first database. Also, the plurality of generated instances are generated using the record of the first database or a corresponding history file record.
Further, at a previous synchronization, a plurality of instances of the second database is generated based on a second previously determined pattern for generating a plurality of instances which in combination represent a span of information. At the previous synchronization, information is stored in the history file reflecting the second previously determined pattern. That information is then retrieved from the history file during the current synchronization. The retrieved information determines the pattern used for generating the second plurality of records of the second database.
In some embodiments, for example, when a history file is not available, to identify a plurality of records of the second database to the record of the first database, a first plurality of instances are generated based on a first previously determined pattern for generating a plurality of instances which in combination represent the span of information stored by the record of the first database. A second plurality of the records of the second database are then correlated to the first plurality of generated instances by comparing the first plurality of generated instances to the records of the second database. A second plurality of instances are generated based on a second previously determined pattern for generating a plurality of instances which in combination represent a span of information. A third plurality of the records of the second database are correlated to the second plurality of generated instances by performing a comparison of the second plurality of generated instances to the records of the second database. The identified plurality of records of the second database are then identified based on the results of correlating the second plurality of the second database to the first plurality of generated instances and the third plurality of the second database records to the second plurality of generated instances. To do so, the number of records in the second plurality of instances of the second database is then compared to the number of records in the third plurality of instances of the second database.
In some embodiments, when the records of the second database are assigned unique identifications, a plurality of instances are generated, at a previous synchronization, based on a previously determined pattern for generating a plurality of instances which in combination represent the span of information stored by the record of the first database. At the previous synchronization, the generated records are stored in the second database. Also, at the previous synchronization, information is stored in a history file to reflect the unique identifications of the generated instances stored in the second database. In this case, to identify a plurality of records of the second database to the record of the first database further, the history file information is retrieved and correlated to unique identifications of the records of the second database. The identified records of the second database are determined to be the correlated records of the second database.
The span of information represented by the record of the first database may be textual information, where size of the textual information is larger than that permitted by the second database. The plurality of records of the second database then include textual information, the textual information of the plurality of records of the second database in combination represent the textual information represented by the record of the first database.
In another aspect, the invention features a computer program and a computer implemented method for storing a record of a first database in a second database where the record of the first database stores a span of information and the second database is not capable of storing such span of information in a single record. A plurality of records of the second database are generated to store the span of information of the record of the first database, each of the plurality of the records of the second database storing a portion of the span of the information, where the plurality of records of the second database in combination store a selected segment of the span of information less than the entirety of the span of information.
Preferred embodiments of the invention may include one or more of the following features.
The selected segment is a selected date range narrower than the date range of the second database. The selected date range is determined relative to a selected date by applying a rule. The rule can be a preference for future dates compared to a current date over past dates compared to the current date, a preference for dates closer to a current date over dates further from the current date, and a limit on a total number of generated records.
The invention may be implemented in hardware or software, or a combination of both. Preferably, the technique is implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code is applied to data entered using the input device to perform the functions described above and to generate output information. The output information is applied to one or more output devices.
Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on a storage medium or device (e.g., ROM or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Other features and advantages of the invention will become apparent from the following description of preferred embodiments, including the drawings, and from the claims.
FIG. 1 shows two computers connected via a data transfer link.
FIG. 2 is a schematic drawing of the various modules constituting an embodiment of a synchronization program.
FIG. 3 is a representation of a workspace data array used by the synchronization program of FIG. 2.
Pseudo Code Listing 1 is the pseudo code for a Translation Engine Control Module of the synchronization program of FIG. 2.
Pseudo Code Listing 2 is the pseudo code for loading a history file.
Pseudo Code Listing 3 is the pseudo code for the steps taken by a translator to load records of a database.
Pseudo Code Listing 4 is the pseudo code for the steps taken by the synchronizer module of the synchronization program of FIG. 2 for correlating records of the local database, the remote database, and the history file to one another.
Pseudo Code Listing 5 is the pseudo code for the steps taken by a translator to unload records to a database.
Below are the above five pseudo code listings:
We will describe embodiments of the invention in detail below, but briefly, referring to FIGS. 1 and 2, a synchronization program 100 runs on a local computer 20 (e.g. a desktop or server computer) which is typically connected to a remote computer 22 (e.g. a handheld or notebook computer) via a data transfer link 24 enabling the computers to transfer data between them. Data transfer link 24 may be a serial infrared link, serial cable, modem and telephone line combination, or other such data transfer links. Each of the local and remote computers stores a corresponding local or remote database, which may, for example, be a scheduling database (such as those sold under the tradenames Microsoft Schedule+ and Lotus Organizer).
Synchronization program 100 synchronizes the records of the local and remote databases typically using a history file that contains records reflecting the records of the two databases at the end of a previous synchronization. The synchronization program 100 uses the history file to determine, for example, which records have been changed, added or deleted since the previous synchronization and which records of the two databases correspond to one another.
As part of the synchronization process, synchronization program 100 can synchronize a local or remote database record which has a span or expanse of information not permitted by the other database. The local or remote database record may be a date bearing record spanning a continuous period of time (e.g. from 8:00 a.m. on Monday to 5 p.m. on Friday) larger than is permitted in a corresponding record of the other database. Such record may also be a date bearing recurring record (e.g. a record representing a recurring appointment or event) having a recurrence pattern not permitted by the other database. For example, the local or remote database record may have a recurrence pattern of “every other week” where such a pattern is not permitted in the other database.
In synchronizing such records, synchronization program uses multiple records of the other database to store or reflect the span of information represented by such records. Each of the multiple records of the other database then would store a portion of the span of information and, taken together, the plurality of records store the entire or at least a useful portion of the span of information stored in the remote or database record.
We will now describe in detail the structure of synchronization program 100 and the method it uses to synchronize the local and remote databases where at least one of them includes a record which stores a span of information which can not be stored in a single record of the other database.
FIG. 2 shows the relationship between various modules of an embodiment of synchronization program 100. Synchronization program 100 includes a Translation Engine 1. Translation Engine 1 comprises a Control Module 2 and a Parameter Table Generator 3. Control Module 2 is responsible for controlling the synchronizing process by instructing various modules to perform specific tasks on the records of the two databases being synchronized. (Pseudo Code Listing 1 is the pseudo code for the steps taken by this module.)
Parameter Table Generator 3 is responsible for creating a Parameter_Table 4 which is used by all other modules for synchronizing the databases. Generally, Parameter_Table 4 stores various information which may be used by the modules of synchronization program 100. The information stored in Parameter_Table 4 includes user preferences, the names and locations of the databases, and the names and locations of various files stored on disk including the name and location of the history file from a previous synchronization.
A synchronizer 15 has the primary responsibility for carrying out the core synchronizing functions. It is a table-driven program which is capable of synchronizing various types of databases whose characteristics are provided in Parameter_Table 4. Synchronizer 15 creates and uses workspace 16 (also shown in FIG. 3), which is a temporary data array used during the synchronization process.
Synchronization program 100 has two translator modules 5 and 9 which are generally responsible for data communication between synchronization program 100 and databases 13 and 14. Translator (L_translator) 5 is assigned to the local database (L_database) 13 and translator 9 (R_translator) to the remote database (R_database) 14. Each of the database translators 5 and 9 comprises three modules: reader modules 6 and 10 (L_reader and R_reader) which load (or read) records from databases 13 and 14; unloader modules 8 and 12 (L_unloader and R_unloader) which analyze and unload records from workspace 16 into databases 13 and 14; and sanitizing modules 7 and 11 (L_sanitizer and R_sanitizer) which analyze the records of the opposing database when they are loaded into the workspace and modify them according to rules of data value of the modules'"'"'s own database. Briefly stated, rules of data value are generally rules that define the permitted content of the fields of the records of a database. An example of such a rule would be that no more than 100 characters may be present in a field, or that content of a field designating a priority for a “to do” item should be limited to 1, 2, or 3. Sanitizing a record is to change the content of the fields of a record of one database to conform to the rules of data value of another database. Rules of data value and sanitization are described in detail in the following commonly owned U.S. patent applications, incorporated in their entirety by reference, “Synchronization of Recurring Records in Incompatible Databases”, Ser. No. 08/752,490, now U.S. Pat. No. 5,943,676 filed on Nov. 13, 1996 (hereinafter, “application '"'"'490”); “Synchronization of Databases with Record Sanitizing and Intelligent Comparison,” Ser. No. 08/749,926, filed Nov. 13, 1996 (hereinafter, “application '"'"'926”) now abandoned; “Synchronization of Databases with Date Range,” Ser. No. 08/748,645, now U.S. Pat. No. 6,141,664 filed Nov. 13, 1996 (hereinafter, “application '"'"'645”).
In the described embodiment, the modules of L_translator 5 are designed specifically for interacting with local database 13 and local application 17. The design of the modules of L_translator 5 is specifically based on the record and field structures and the rules of data value imposed on them by the local application, the Application Program Interface (API) requirements and limitations of local application 17 and other characteristics of the local database and application. The same is true of the modules of R_translator 9. These translators are typically not able to interact with other databases or Applications and are only aware of the characteristics of the database and application for which they are designed. Therefore, when the user chooses two applications for synchronization, Translation Engine 1 chooses the two translators which are able to interact with those applications. In an alternate embodiment, the translators can be designed as table-driven programs, where a general translator is able to interact with a variety of applications and databases based on supplied parameters.
Generally, a translator is designed, among other functions and capabilities, for determining whether a span of information can be stored in a single record of its associated database or whether multiple records must be generated to store the information. Additionally, a translator is designed to generate multiple records to store the span of information to be stored. A translator generates such multiple records using predetermined patterns for generating multiple records. What pattern is used generally depends on the nature of the span of information and the limitations of the database.
We will now describe an example of patterns used for generating multiple records to store a span of information. One exemplary pattern is to generate multiple records, each storing information with respect to one instance of a recurring record. The patterns used to generate such instances and records will be referred to as fanning patterns and the process of generating instances and records according to this pattern will be referred to as fanning. Instances and records generated using a fanning pattern will be referred to as fanned instances and records.
Another exemplary pattern is to generate multiple records each of which stores information with respect to one of a number of instances, where the instances in combination span a continuous period of time represented by a single record of the other database. For example, in the case of an appointment which spans from Monday at 8 a.m. to Friday at 5 p.m., multiple daily records may be generated to cover or tile over this span, such as Monday 8 a.m. to 11:59 p.m., Tuesday 12 a.m. to 11:59 p.m., Wednesday 12 a.m. to 11:59 p.m., Thursday 12 a.m. to 11:59 p.m., and Friday 12 a.m. to 5 p.m. Such a record can also be based on the following pattern: Monday 8 a.m. to 11:59 p.m., 3-day Daily repeat 12 a.m. to 11:59 p.m. covering Tuesday through Thursday, and Friday 12 a.m. to 5 p.m. The patterns used to generate such instances and records will be referred to as tiling patterns and the process of generating instances and records according to this pattern will be referred to as tiling. Instances and records generated using a tiling pattern will be referred to as tiled instances and records.
Translators can also use combinations of fanning and tiling patterns to generate multiple records. Table 1 shows various examples of patterns which may be used.
Referring back to FIG. 1, having described the structure of synchronization program 100 in reference to its various modules, we will now describe the operation of synchronization program 100. During synchronizing two database, Control Module 2 instructs the various modules in synchronization program 100 to perform specific tasks. In this manner, Control Module 2 controls the operation of various modules of synchronization program 100. Hence, we will describe the operation of synchronization program 100 by describing the steps taken by Control Module 2 (as set out in the pseudo code in Pseudo Code Listing 1) and describing in detail the actions by the various modules of synchronization program 100 as they are instructed by Control Module 2.
Referring to Pseudo Code Listing 1, in the first step of synchronizing the two databases, Control Module 2 instructs the Parameter Table Generator 3 to create parameter table 4 (Step 100). In this step, as part of creating parameter table 4, Parameter Table Generator 3 obtains from the user various parameters governing user preferences to be used during synchronization or alternatively accesses a previously stored set of user preferences. One of these user preferences can be a date range which is then used to limit synchronization to that date range. There are two types of date ranges which the user can select. One type of date range is a static date range which remains the same from one synchronization to the next. An example of a static date range is one being from Jan. 1, 1998 to Dec. 31, 1998. Another type of date range is a dynamic date range which is typically anchored to a preselected reference date and changes as that reference date changes. An example of dynamic date ranges is one being from the beginning to the end of the current quarter. Another is one from a month before today to a month after. Date ranges and synchronization of databases using date ranges are described in detail in the '"'"'490, '"'"'926, and '"'"'645 applications and U.S. patent application Ser. No. 09/036,400, “Synchronization Of Databases Using Filters”, filed on Mar. 5, 1998, incorporated by reference in its entirety.
After Parameter Table Generator 3 creates the parameter table 4, Control Module 2 of the Translation Engine 1 instructs synchronizer 15 to initialize itself (step 101). Synchronizer 15 in response creates the workspace data array 16. Control Module 2 of the Translation Engine 1 then instructs synchronizer 15 to load history file 19 into workspace 16 (step 102). History file 19 is a file that was saved at the end of last synchronization and contains records reflecting the records of the two databases at the end of the previous synchronization. Synchronizer 15 uses history file 19 during current synchronization to analyze the records of the local and remote database to determine changes, additions, and deletions in each of two databases since the previous synchronization. Synchronizer 15, as result of this analysis, then can determine what additions, deletions, or updates need be made to synchronize the records of the two databases.
In various situations, synchronizer 15 does not load history file 19. For example, if no history file from a previous synchronization exists or if the user chooses to synchronize not using the history file, synchronizer 15 will not load history file 19. Obviously, in the case where a history file is not loaded, synchronizer 15 synchronizes the two databases without using a history file.
Pseudo Code Listing 2 is the pseudo code for the steps taken by synchronizer 15 to load history file 19. For each Record in history file 19 (step 200), synchronizer 15 first loads the record (step 201) and then writes the loaded record into workspace 16 (step 202). Synchronizer 15 repeats these steps until all of the records of the history file are loaded into the workspace.
Referring back to Pseudo Code Listing 1, after the history file is loaded into the workspace, Control Module 2 instructs R_translator 13 to load the remote database records (step 103). Pseudo Code Listing 3 is the pseudo code for the steps taken by R_translator 13 to load the remote database records. For each record of the remote database (step 301), R_reader module 11 of the R_translator first loads the record (step 302). If a date range is being used, then R_reader module 11 applies the current date range to the loaded record (step 303). This step can also be performed by synchronizer 15. If the record passes (i.e., falls within) the date range then R_reader module 11 marks the record as having passed the date range (step 304). If the record does not pass the date range then R_reader module 11 marks the record as having failed the date range (step 305). R_reader module 11 then sends the record to synchronizer 15 (step 307) and synchronizer 15 writes the loaded record into workspace 16 (step 308).
At this point, if the record has a unique identification code (hereinafter, also referred to as “unique ID”) which was assigned by the remote database, the unique ID is compared to unique IDs, if any, stored in the history file records. A history file record may store either a unique ID of a single record of the remote database or a linked list of unique IDs (together with the content) of multiple records of the remote database. We will refer to the linked list as multiple instance group (MIG). The multiple records of the remote database associated with a MIG are remote database records which were previously generated (by being fanned or tiled) to store contents of a local database record. If the unique ID of the remote database record matches a stored unique ID in a MIG, the remote database record is then correlated to the matching instance in the MIG. If the unique ID of the remote database record matches unique ID stored in a history file record which corresponds to a single remote database record, then, in step 309, the remote database record is linked to the matching history file record in a corresponding item group (CIG), which will be described below.
Generally, as one of the steps in synchronizing the databases, synchronizer 15 processes the records of the databases, including comparing them to one another, in order to form them into groups of related records called corresponding item groups (CIGs). Each CIG may include at most one record from each of the databases and the history file. Each record in a CIG may be a single record or a group of related records (that is, a MIG) which together store a span of information which can be stored in a single record of the other database. In the case of such related records, based on the records, synchronizer 15 creates a model or synthetic single record which would store the span of information represented by those related records. Synchronizer 15 uses the model record during the synchronization process to represent the group of related records. Therefore, instead of comparing the entire group to another record, synchronizer 15 compares the model record to the other record and thereby increases the efficiency of any such comparison and the overall synchronization process. Synchronizer 15 includes the model recurring record in the CIG. Hereinafter, when referring to a “record” in a CIG, we also refer to such a group of related records in the CIG.
Following loading the remote database records, Control Module 2 instructs L_sanitizer module 8 of L_translator 5 to sanitize the remote database records in the workspace (step 104).
Control Module 2 of the Translation Engine 1 then instructs the L_translator 5 to load the records from the local database (step 105). L_translator 5 and synchronizer 15 load records of the local database in the same manner as described for R_translator 9 in reference to Pseudo Code Listing 3, except for one difference. As synchronizer 15 receives each local database record from the L_reader module 7 of the L_translator 5, synchronizer 15 maps that record using a local database to remote database map before writing the record into the next available spot in workspace 16. In the described embodiment, the local database records are mapped because the records in the workspace are stored according to the remote database data structure.
Referring back to Pseudo Code Listing 1, after all records from the remote local database records, and the history file, are loaded into the workspace, Control Module 2 instructs synchronizer 15 to perform a Conflict Analysis and Resolution (“CAAR”) procedure on the records in the workspace (step 107), CAAR procedure is described in detail in the '"'"'490, '"'"'926 and '"'"'645 applications. Briefly, referring to Pseudo Code Listing 4, synchronizer 15 processes the records in the workspace, including comparing them to one another, in order to form them into corresponding item groups (CIGs). As noted above, synchronizer 15 begins forming CIGs as records are loaded into the workspace and completes the process as the first step in CAAR.
We will now describe in detail the CAAR procedure as it applies to synchronizing records which cannot be stored in the other database using single records and for which multiple records must be generated or were already generated during a previous synchronization.
Generally, the type of processing in CAAR depends on whether a history file is being used. If a history file is being used, synchronizer 15 is able to use two types of information stored in the history file. First, if one or both databases assign unique IDs to the records, the unique IDs from the previous synchronization would be stored in the history file. Synchronizer 15 can then use these stored unique IDs to match the records of the two databases and the history file records. Second, if a pattern was used to generate multiple records of one database to store a span of information of a single record of the other database, that pattern would be stored in history file with a corresponding history file record. Synchronizer 15 can use that pattern for matching the records of the two databases and the history file records.
Referring to Pseudo Code Listing 4, to process a local database record in CAAR, synchronizer 15 first determines whether a history file is being used during the current synchronization (step 401). If so, synchronizer 15 determines whether the remote database assign unique IDs (step 402). If so, synchronizer 15 attempts to match the record to a history record by the unique IDs assigned by the remote database. If synchronizer 15 matches the record to a history file record and the history file record has a MIG (step 403), synchronizer 15 uses the records which have been matched to members of the MIG to generate a model record storing the span of information stored in the records in the linked list (step 404). Synchronizer 15 then links the generated model record to the history file record and the local database record in a CIG.
If the local database record matches a history file record which does not have a MIG, then synchronizer 15 links, in a CIG, the local database record to the history file record and a matching remote database record, if any (step 407). If synchronizer 15 does not match the record to a history file record (step 408) then synchronizer 15 processes the local database record as in the case where a history file is not used during synchronization (steps 427-439), which will be described in detail below.
If a history file is not used or if the remote database does not assign unique IDs, then synchronizer 15 must use other means to determine whether multiple records of the remote database store the span of information stored in the local database record and also identify those records.
If a history file is being used but the remote database does not assign unique IDs, then synchronizer 15 determines whether the local database record being processed matches a history file record and the matched history file record indicates that multiple remote database records were generated during a previous synchronization to store a span of information stored in a local database record (step 412). In that case, the matching history file record stores information identifying the pattern used to generate the multiple remote database records during the previous synchronization. Synchronizer 15 retrieves that pattern and sends it to the remote database translator (step 413). The translator uses the pattern to generate multiple instances based on the history file record (step 414). In other embodiments, synchronizer 15 uses the local database record for generating the instances. These generated records are placed in a linked list attached to the local database record or the history file record (step 415).
Synchronizer 15 then attempts to match records of the remote database to the generated records (step 416). Synchronizer 15 uses a matching technique which uses two levels of match between records. A first level match between two records, or a strong match, is one where all synchronized fields match. A second level match, or a weak match, is one where only some preselected fields (e.g. the keyfields) of the synchronized fields match. Synchronizer 15 attempts to find strong matches for all the instances in the linked list. Failing that, synchronizer 15 matches records using the second level match. The second level match essentially allows matching records which may have been modified in some respect but should nonetheless be recognized as a generated instance corresponding to the local database record.
After attempting to match remote database records to the generated instances (step 416), synchronizer 15 determines whether a predetermined number of remote database records have matched the generated instances and, if so, generates a model record based on the matched remote database records (step 417). Synchronizer 15 then links, in a CIG, the matching local database record to the history file record and the model record (step 418).
If a predetermined number of remote database records did not match the generated instances (step 420), then the local database record is marked as having been deleted from the remote database and therefore will be deleted from the local database (step 421). The generated instances are discarded since insufficient number of remote database records were matched against them. The remote database records which were matched against the generated instances remain in the workspace and continue to be processed like the other remote database records in the workspace. Unless subsequently linked to other records, these remote database records would be marked as records to be added to the local database in step 449, which will be described in detail below.
If the local database record does not match a record of the history file (steps 412 and 424), synchronizer 15 processes the local database record as in the case where a history file is not used during synchronization (step 425), which we will now describe is detail.
If a history file is not used for the current synchronization (step 427), unlike the above procedure, the pattern previously used can not be determined. Therefore, in that case, all possible patterns which may have previously used by the translator are used to generate instances. Synchronizer 15 then attempts to determine which pattern best fits the remote database records and generates a model or synthetic record based on the records matching the pattern.
Hence, in step 428, the translator determines whether the local database record can be stored as a single remote database record or whether multiple remote database records must be used to store the local database record. If multiple records must be used (step 429), then synchronizer 15 must determine whether multiple remote database records store the span of information in the local database record being processed. To do so, synchronizer 15 requests the remote database translator to generate all patterns of records which might be appropriate for storing the local database record in the remote database (step 430). Synchronizer 15 then stores each set of generated instances in a unique linked list (step 431). Synchronizer 15 then attempts to match remote database records to the instances in the linked lists (step 432). Synchronizer 15 then selects the linked list having the highest number of matches as the one most likely having the remote database records corresponding to the local database record (step 433). In other words, the pattern for generating that linked list is identified as representing the pattern which was previously used to generate the multiple instances of the local database record.
Synchronizer 15 next determines whether a predetermined number of remote database records have matched the generated instances. For example, synchronizer 15 may make such a determination if at least one third of the generated instances are matched. If so, synchronizer 15 generates a model or synthetic record based on the matched remote database records (step 434). Synchronizer 15 then links the local database record and the generated record in a CIG (step 435). If a predetermined number of remote database records did not match the generated instances (step 434), then the local and remote database records are not linked to one another at this point.
If synchronizer 15 determines that the local database record can be stored in a single record (steps 428, 441), then synchronizer 15 searches the workspace for a remote database record which strongly matches (i.e. a first level match) the local database record and if such a record is found, links the local database record to the remote database record (step 442).
Synchronizer 15 then processes unmatched remote database records in a similar manner as local database records, as described above in reference to steps 400-445 (step 446).
At this point, synchronizer 15 then attempts to determine what action to be taken for records which have been deleted since the previous synchronization, where the records were previously stored in the other database by generating multiple records of the other database. For such records, a history file record with an associated MIG or record generation pattern exits in the history file. Synchronizer 15 first searches the workspace for such history file records (step 448). Then, for each such record, synchronizer 15 attempts to match the instances in the MIG or generated using the stored pattern with records of the corresponding database, as indicated by the history file record (step 449). To find the appropriate matches, synchronizer 15 performs processing steps similar to those in steps 402-418, described above in detail. Therefore, if for example the history file record indicates that the local database record was stored by generating multiple remote database record, then synchronizer 15 attempts to match the history file record to the appropriate remote database records. These remote database records will eventually be deleted. Note that at this point, any remote or local database record not linked to any other record will eventually be added to the other database as a new record.
For each CIG synchronizer 15 then compares the records in the CIG to one another, determines their differences, and decides what synchronization action should be taken. In essence, synchronizer 15 determines which record in the CIG contains the most current data. Synchronizer 15 then determine what synchronization action should be taken to conform the other records in the CIG to the record with the most current data (i.e. how the other records in the CIG should be changed). Synchronization actions with respect to a record include updating, deleting, adding, or not modifying that record.
We will now provide some examples of the results obtained in the CAAR analysis. If after comparing the records in a CIG, synchronizer 15 determines that the record from the local database is unchanged and the one from remote database is changed, synchronizer 15 determines that the local database record should be changed to conform to the remote database record. Or, if both records are changed (an example of what we refer to as a “conflict” since there is no clear choice of synchronization action), synchronizer 15 may use a user-selected rule to decide what synchronization should be taken. The rule may require, for example, not modifying either of the records, changing the remote database record to conform to the local database record, or asking the user to resolve the conflict.
Where multiple records of a database are required to store a record and the CIG contains multiple records of that database, synchronizer 15 examines the records in the linked list to determine whether some of the records pass the value of the dynamic date range associated with a previous synchronization but fail the current value of the date range. If so, then the dynamic date range has changed in such a way that part of the set of related records fall outside of the current value of the dynamic date range. In the described embodiment, in such a situation, synchronizer 15 determines that new records should be generated and previously generated records should be deleted. To accomplish this, synchronizer 15 flags the appropriate record. The appropriate translator in response generates the appropriate database records and deletes the previous instances.
When synchronizer 15 finishes performing CAAR on the records, synchronizer 15 will have determined what synchronization action should be taken with respect to all records to be synchronized. The records may then be unloaded into their respective databases. The translators will perform the specific synchronization actions to be taken with respect to the records of the databases. However, prior to doing so, the user is asked to confirm proceeding with unloading (Pseudo Code Listing 1, steps 108-109). Up to this point, neither the databases nor the history file have been modified. The user may obtain through the Translation Engine'"'"'s User Interface various information regarding what synchronization actions are to be taken upon unloading.
If the user chooses to proceed with synchronization and to unload, the records are then unloaded. Unloader modules 6,10 of translators 5,9 perform the unloading for the databases. During unloading, translators may use the date range to limit the data that is unloaded to the databases. For example, the translators may unload only those records which fall within the date range and delete any record which falls outside of the date range. During unloading, synchronizer 15 also creates the history file and unloads information representative of the records of the databases into the history file. We will now describe the unloading of the records into the databases and the history file in detail.
Control Module 2 of Translation Engine 1 first instructs R_translator 9 to unload remote database records from workspace into the remote database (Pseudo Code Listing 1, step 110). Pseudo Code Listing 5 is the pseudo code for the steps taken by R_translator 9 to unload the records. For each remote database record in the workspace (step 500), R_translator 9 determines whether a dynamic date range is being used during synchronization. If a dynamic date range is being used, then R_translator 9 first determines whether the record to be unloaded passes or fails the date range. Note that a record is considered to pass a date range if a portion of the span of time represented by the record or an instance of a recurring record passes the date range.
If the record does not pass the current date range (step 501) then the record is skipped. In some embodiments, instead of being skipped, such a record may be deleted from the remote database. In other database, such a record may be synchronized in a particular manner depending on the nature of the synchronization action to be taken; for example, the record may be updated but not added or deleted, or the record may updated and added, but not deleted. In embodiments where records which fail the date range are deleted, R_translator 9 uses the date range to limit the size of the remote database. If the remote database is located on a handheld computer, R_translator manages the memory of the handheld device by limiting the size of the database stored on the handheld computer.
If the record passes the current date range (step 502), then R_translator 9 adds, deletes, or updates the record according to results of synchronization obtained during CAAR analysis. To do so, R_translator first determines what action is to be taken. If the record is to be added or updated (step 503), R_translator first determines whether multiple records should be generated to store or update the span of information stored by the record to be added (step 504). If multiple records should be generated (step 505), R_translator 9 uses a predetermined pattern, such as the ones described above, to generate the records (step 506). Note that the number of generated records may be limited, for example, because of limitations on memory storage. Such limitations may be based on a predetermined rule or a set of rules defining a useful number or range of records. For example, a set of rules may provide for preferring future records to past records, for preferring dates closer to the current date over dates further away, for limiting the number of generated records to a predetermined value, and for limiting the generated record to those falling within the current dynamic or static date range. Therefore, in some circumstances, for example, R_translator can generate a number of future records to be added to the remote. If future records cannot be added because they fall out of the current date range, synchronizer 15 can then generate past records and add them until the limit on the number of records is reached. (Note that the operation of R_translator with respect to recurring records in this regard is described in more detail in the '"'"'490, '"'"'926 and '"'"'645 applications. The teachings of those applications, in this regard at least, can also be applied to single records which represent continuous periods of time which can not be represented by a single record of the other database.)
The record or the generated records are then stored or updated, as appropriate (step 507). R-translator 9 then obtains the unique ID of any new records added to the remote database (step 508) and sends the unique ID to synchronizer 15 (step 509). Synchronizer 15 in turn stores the unique IDs in the history file (step 510). In the case of generated records, synchronizer 15 stores the unique IDs in a linked list attached to the history file copy of the single record for which records had to be generated.
Following unloading the remote database records, Control Module 2 instructs the L_translator 5 to unload the local database records from the workspace in a similar fashion as R_translator 9 (Pseudo Code Listing 1, step 111).
Control Module 2 next instructs synchronizer 15 to create a new history file (step 112, Pseudo Code Listing 1). The process of creating a history file is described in detail in the '"'"'490, '"'"'926 and '"'"'645 applications. Briefly, for each CIG, synchronizer 15 during the CAAR process determines which one of the records in the CIG should be saved as the history file record. Based on these results, synchronizer 15 creates a history file. Synchronizer 15 also stores with appropriate history file records the pattern, if any, used to generate records for storing the span of information stored by the record and unique IDS, if any, of such generated record.
Other embodiments are within the scope of the following claims.
For example, as described in reference to Pseudo Code Listing 4, when a history file is not used for the current synchronization, the pattern which was used previously to generate records of a database is not available. I described, in reference to Pseudo Code Listing 4, one technique of matching remote database records to a record of the local database which stores a span of information not storable in a single record of the remote database. In that technique, (see Pseudo Code Listing 4, steps 427-445) synchronizer 15 attempts to match up the records of the remote database to all possible patterns the remote database translator would use to generate records for the local database record. Synchronizer then determines which one best fits. In an alternative embodiment, instead of attempting to match against all possible patterns, the remote database translator selects a pattern which the translator would have chosen to generate records of the database to store the span of information in the local database, if the local database record was to be added to the remote database. This pattern is then used in the same manner as described above in reference to steps 412-423 in Pseudo Code Listing 4. In other words, the pattern is used by the translator to generate a number of instances and synchronizer 15 attempts to match records of the database to the generated instances, generates a model record if enough number of matches are found, and synchronizes the local database record with the model record (and, hence, the remote database records). By processing the records using a single pattern, the processing time required for synchronization is thus reduced.
In some embodiments, the span information represented by a record may be textual information. Consider the case where local database permits storing a 500 character field in a single record while the remote database permits storing a 100 character field in a record. In that case, multiple remote database records are generated to store the 500 character field.
Although we have generally described embodiments as generating multiple records, it should be understood that the term “generating multiple records” also encompasses embodiments in which multiple fields within single records are generated. This would be the case, for example, where a database allows a dynamic or self-defined record structure.
It is to be understood that while the invention has been described in conjunction with the detailed description thereof, the foregoing description is intended to illustrate and not limit the scope of the invention, which is defined by the scope of the appended claims. Other aspects, advantages, and embodiments are within the scope of the following claims.