HK1118114A - System and method for synchronizing a blackberry with a macintosh - Google Patents
System and method for synchronizing a blackberry with a macintosh Download PDFInfo
- Publication number
- HK1118114A HK1118114A HK08109147.5A HK08109147A HK1118114A HK 1118114 A HK1118114 A HK 1118114A HK 08109147 A HK08109147 A HK 08109147A HK 1118114 A HK1118114 A HK 1118114A
- Authority
- HK
- Hong Kong
- Prior art keywords
- data
- blackberry
- macintosh
- macintosh computer
- synchronizing
- Prior art date
Links
Description
Technical Field
The present invention relates generally to synchronization of data between electronic devices, and more particularly, but not exclusively, provides a system and method for synchronizing data from a Macintosh computer with a BlackBerry (BlackBerry) device.
Background
File synchronization (hereinafter synchronization) relates to the synchronization of data between two devices. Users wish to synchronize data between devices so that they can access the same data on either device. For example, a user may use a desktop computer at home and a personal digital assistant such as a blackberry outside, but want to access the same data on both devices. To access the same data, a BlackBerry, which is a wireless handheld device that provides email, telephony, text messaging, and web browsing, is synchronized with a computer running a Windows Operating System (OS) through a Software package such as a BlackBerry Desktop Software or BlackBerry Enterprise Server. For example, data files such as appointments, contacts, tasks, notes, etc. may be synchronized between a blackberry and a Windows Personal Computer (PC) so that the files on both devices are the same.
However, no such synchronization software is available to Macintosh computer users. Accordingly, Macintosh computer users cannot automatically synchronize their computers with their blackberries. Instead, they must 1) manually compare and enter data in both devices; 2) transferring data from the Macintosh computer to the Windows PC, and then synchronizing the Windows PC with the blackberry is a one-time solution; and/or 3) use of SynchAgain software, which requires the use of a Windows PC to install the software, requires the use of a Macintosh computer to be constantly connected to the Internet and thus may be attacked. All of the above methods are very time consuming and perhaps only the latter two methods require the purchase of a Windows PC for synchronization purposes, and the purchase of a Windows PC for a single purpose is a costly purchase.
Therefore, there is a need for a new system and method for automatically synchronizing a Macintosh computer with a blackberry device without having to purchase a Windows PC.
Disclosure of Invention
The system and method enable blackberry devices to be synchronized with a Macintosh computer. In an embodiment of the invention, the system includes a device driver, an interface driver, a library, and an application. The device driver can add configuration zero ok to the register. The interface driver can be connected to the blackberry device (interfacing). The library is capable of receiving data from the blackberry device. An application communicatively coupled to the library is capable of synchronizing the received data with the data from the Macintosh computer.
In an embodiment of the invention, the method comprises: adding configuration zero ok to the register; is connected with the blackberry device; receiving data from the blackberry device; and synchronizing the received data with data from the Macintosh computer.
Drawings
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
Fig. 1 is a diagram illustrating a network system including a blackberry device communicatively coupled to a Macintosh computer;
FIG. 2 is a block diagram illustrating the Macintosh computer of FIG. 1;
FIG. 3 is a block diagram illustrating the persistent memory of a Macintosh computer;
FIG. 4 is a block diagram illustrating a library of the memory;
FIG. 5 is a block diagram illustrating a driver for the memory;
FIG. 6 is a table illustrating parsed data received from a blackberry;
FIG. 7 is a diagram illustrating XML encoded data; and
fig. 8 is a flow chart illustrating data synchronization between a Macintosh computer and a blackberry.
Detailed Description
The following description is presented to enable any person having ordinary skill in the art to make and use the invention, and is provided in the context of a particular application and its requirements. It will be readily apparent to those skilled in the art that various modifications can be made to the embodiments and that the principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles, features and teachings disclosed herein.
Fig. 1 is a diagram illustrating a network system 100 including a blackberry device 110, the blackberry device 110 communicatively coupled to a Macintosh computer 120, such as an iMac, through a wired or wireless connection 130, such as a USB or serial wired connection. The wireless connection may be local (e.g., short range) such as Wi-Fi, ultrawide band (UWB), or bluetooth, or long range such as WiMax. In an embodiment of the present invention, the Macintosh computer 120 may be communicatively coupled to a network of Macintosh computers.
During operation of the network 100, the blackberry device 110 and the Macintosh computer 120 exchange data to perform synchronization to ensure that the data on the two devices match. As will be described in further detail below, the blackberry device 110 sends a data set to the Macintosh computer 120, and the Macintosh computer 120 compares the data set to the data set stored in the Macintosh computer 120 and then synchronizes the blackberry data set with the Macintosh data set, ensuring that the two data sets are identical. For example, if an entry is deleted from the blackberry 110 dataset, synchronization will cause deletion of the entry in the Macintosh dataset. If an entry is modified in the Macintosh dataset, the entry is modified in the blackberry dataset accordingly. Data that may be synchronized between the Macintosh computer 120 and the blackberry 110 includes email, contact information, customer relationship management data, files, software (e.g., executable files), and the like.
Fig. 2 is a block diagram illustrating the Macintosh computer 120. The computer 120 includes a Central Processing Unit (CPU) 205; a working memory 210; a persistent memory 220; an input/output (I/O) interface 230; a display 240; and input devices 250, all communicatively coupled to each other through a bus 260. CPU205 may include a Motorola POWERPC microprocessor, or any other processor capable of executing software stored in persistent memory 220. The working memory 210 may comprise Random Access Memory (RAM) or any other type of read/write memory device or combination of memory devices. Persistent storage 220 may include a hard drive, Read Only Memory (ROM), or any other type of memory device or combination of memory devices that can retain data after computer 120 is turned off. The I/O interface 230 is communicatively coupled to the blackberry 110 via wired or wireless technology. The display 240 may include a flat panel display, a cathode ray tube display, or any other display device. The input device 250, which is optional as other components of the invention, may include a keyboard, mouse, or other device for inputting data or a combination of devices for inputting data.
Those skilled in the art will recognize that computer 120 may also include additional devices such as network connections, additional memory, additional processors, LANs, input/output lines for communicating information over hardware channels, the Internet, or an intranet, and the like. Those skilled in the art will also recognize that the programs and data described are received and stored in the present system in alternative ways.
Fig. 3 is a block diagram illustrating the persistent memory 220 of the Macintosh computer 120. The persistent storage 220 includes a Macintosh operating system (Mac OS)300, one or more applications 310, a library 320, and a driver 330. The Mac OS300 may comprise any version of Mac OS including Mac OS X. The application 310 as seen by the user manipulates data from the blackberry 110, performs synchronization, prompts the user for additional input, and the like. In an embodiment of the present invention, application 310 comprises Microsoft Enterprise X; microsoft energy 2004/11; now Contact; now Up-to-Date; stickies; DayLite 1.7; apple OS X Address Book; and Apple iCal. In another embodiment of the present invention, the applications 310 also include Lotus Notes and MeetingMaker, among other applications.
In embodiments of the present invention, the application 310 is also able to synchronize multiple blackberries 110 with Macintosh computers 120 having different users. For example, the application 310 may examine the blackberry 110 user information, determine the user file in the Macintosh computer 120, and then synchronize only that user file (as compared to other user files in the Macintosh computer 120). In another embodiment of the present invention, the application 310 backs up files stored in the blackberry 110 to the Macintosh computer 120 by requesting the files from the blackberry 110, receiving the files from the blackberry 110, and storing the files in the persistent storage 220.
In another embodiment, the application 310 synchronizes data obtained from the blackberry 110 to one or more Macintosh computers connected to the Macintosh computer 120 over a network. For example, changes to the contact information in the blackberry 110 can be communicated to all Macintosh computers in the network and then synchronized with the contact information stored in each computer so that all Macintosh computers include the same contact information as the blackberry 110.
As will be discussed in further detail in connection with fig. 4, the library 320 includes general functionality that abstracts some of the communication protocol elements in a manner that allows the application 310 to more easily communicate with the blackberry 110, i.e., the library 320 is a collection of routines that help the application 310 communicate with the blackberry 110, parse data from the blackberry 110, and generally manage communications with the blackberry 110. The library 320 also provides a layer of abstraction between the code of the application 310 that calls the library 320 and the code that includes the library 320. That is, the underlying details of how library 320 works and what it does may change, but the individual routines available to application 310 may not.
As will be discussed in further detail below in connection with fig. 5, the driver 330 is responsible for making the blackberry 110 available to the Macintosh computer 120 in a form that enables other software, such as the application 310 to interact with it, charge its battery, and the like. In particular, the driver 330 makes the interface provided by the blackberry 110 appear to the MacOS 300 as a serial port.
Fig. 4 is a block diagram illustrating a library 320. The library 320 includes an initialization engine 400, a setup Database (DB) access engine 405, a setup protocol engine 410, a get DB list engine 415, a get DB records engine 420, a clear DB engine 425, a get first DB records engine 430, a get next DB records engine 435, a modify DB records engine 440, an upload DB records engine 445, a delete DB records engine 450, a DB lock engine 455, a DB verification engine 460, a confirm records engine 465, a DB query engine 470, a termination engine 475, an App remove engine 480, and a load files engine 485.
The initialization engine 400 obtains basic information required for synchronization, such as a unique ID of a blackberry device, so that individual handheld devices can be distinguished. The set DB access engine 405 sets access to the database on the blackberry 110 so that the database can be read and written. The setup protocol engine 410 sets up the desktop protocol (seen on the user's desktop) as well as other protocols, such as the modem (modem) protocol that tells the blackberry which operation it will be used to, for example, exchange data, install software, or act as a modem. The get DB list engine 415 gets a list of DBs in the blackberry 110. The get DB record count engine 420 gets the number of records in the selected DB. The clear DB engine 425, which may be disabled, erases the DB. The get first DB record engine 430 gets a first DB record in the DB. The get next DB record engine 435 gets the next DB record. The modify DB record engine 440 modifies the record. The upload DB record engine 445 uploads the new record to the blackberry 110. The delete DB record engine 450 deletes the DB record. The DB lock engine 455 locks the DB so that it cannot be deleted or modified. The DB check engine 460 ensures the integrity of the data written to the blackberry by the update. The acknowledgement recording engine 465 provides a "commit sync" point for the blackberry to let it know that a set of operations is completed. The DB query engine 470 searches the DB for records that match the criteria specified in the query. The termination engine 475 terminates the connection with the blackberry 110. The App remove engine 480 deletes the applications stored in the blackberry 110. The load file engine 485 loads files into the blackberry 110. In embodiments of the present invention, library 320 includes additional engines.
Fig. 5 is a block diagram illustrating the driver 330. The driver 330 includes an interface driver 330A and a device driver 330B. The drivers 330A and 330B are special pieces of software that enable communication between the blackberry 110 and the Macintosh computer 120. The drivers 330A and 330B convert general commands from applications on the Macintosh computer 120 into commands that the blackberry 110 can understand. In particular, when the blackberry 110 is connected to the Macintosh computer 120 via a USB cable or other connection 130, the drivers 330A and 330B take the interface provided by the blackberry 110 and make the blackberry 110 appear as a serial port to the rest of the Mac operating system 300.
According to the USB specification, one of the software versions used on blackberry is essentially "out of specification". That is, v3.7.1.21 of the blackberry operating system that contains a bug that causes it to publish a bad "descriptor" (platform 1.6.1.23).
In a USB device, a descriptor specifies the method by which the device operates and is divided into multiple parts. One descriptor defines the device itself, another defines the device configuration, followed by the interface descriptor and the last pipe (pipe) descriptor.
According to the USB implementer forum document, the value of the configuration descriptor is set to be an illegal value 0(zero) in the blackberry device. Apple IOUSBFamily provides a solution to this problem by adding a "configure Zero OK" attribute to IORegistry. However, this only works for the interface driver and not for the device driver.
While Windows computers do not have strict requirements for USB devices and specifications, Apple is not. Also, the driver comprises two components: the blackberry device driver 330B, which was initially loaded, adds a "configure Zero OK" attribute to IORegistry, and then instantiates these interfaces and starts the loading process of the interface driver 330A. IOUSBFamino will allow essentially illegal blackberry interface drivers 330A to load due to the attribute added to IORegistry.
Fig. 6 is a table illustrating parsed data 600 received from the blackberry 110. The get first DB record engine 430 and get next DB engine 435 retrieve DB records, parse the retrieved DB records and convert them to XML. An example of parsed data 600 is shown in fig. 6 in sixteen steps. When the Macintosh computer 120 retrieves a DB record, the DB record is a pure string of numbers. Engines 430 and 435 parse the data into chunks (chunks) that can be easily converted into XML. The parsed data 600 may be parsed into the following fields: command, database ID, version, record handle, data length, field ID, and data. The command field is a numeric identifier of the operation (command) we issue to the device. That is, each value corresponds to a particular action. The command (0x44) shown in fig. 6 is a "download records command", or a request from our software to the blackberry for a record for the database that is currently open. The database ID field is then used to identify the database from which we request the data. The version field identifies the database version. As it appears, this is related to how long (historically) the blackberry device has provided a particular database. The record handle field uniquely identifies the record sent by the blackberry within the database so that it can be more efficiently referenced in any future operations (delete, modify, etc.) performed on it. The data length field tells us how many bytes worth of data are contained in the record. The field ID uniquely identifies a column of data (or field) recorded within the database. The data field is the actual data for a particular field or column within the record. There may be multiple field ID/data pairs in a given record.
Fig. 7 is a diagram illustrating XML code data 700. Once parsed, the data 600 is converted into XML code data, such as the data 700 shown in FIG. 7. In this way, the data can be easily made machine-readable or software-readable, while at the same time, it can also be easily made human-readable.
The data in XML format is compared to the XML format representation of the Macintosh data and then discarded. The modifications to be applied to the blackberry are then stored as XML documents that can then be easily processed by the rest of the system, such as by the modify DB record engine 440 or the upload DB record engine 445.
Fig. 8 is a flow chart of a method 800 of synchronizing data between the Macintosh computer 120 and the blackberry 110. In an embodiment of the present invention, library 320 and driver 330 perform method 800. Further, multiple instances of the method may be instantiated substantially simultaneously to enable synchronization of one or more Macintosh computers 120 with one or more blackberries 110. After communicatively coupling one or more Macintosh computers 120 with one or more blackberries 110, a configuration Zero OK is added 810 to the IORegistry. The Macintosh computer 120 then connects (interfaced) with the blackberry 110 (820). The data is then received and parsed (830) from the blackberry. The received parsed data is then formatted (840) into XML and passed (850) to an application for synchronization, which includes comparing the received formatted data to data stored in the Macintosh computer 120; data indicative of the difference is generated and then forwarded to the blackberry 110 to update the blackberry's data. Further, synchronization may occur across multiple Macintosh computers 120 or multiple blackberries 110.
The foregoing description of the exemplary embodiments of the invention has been presented by way of example only, and other variations and modifications of the above-described embodiments and methods may be made in light of the foregoing description. Although the engines are described as separate and distinct, those skilled in the art will recognize that these engines may be part of an entire work station (site), may each comprise portions of multiple engines, or may comprise a combination of separate and multiple engines. Furthermore, elements of the present invention may be implemented using a programmed general purpose digital computer, using application specific integrated circuits or using a network of interconnected conventional elements and circuits. The connection may be wired, wireless, modem, etc. The embodiments described herein are not intended to be exhaustive or limiting. The invention is limited only by the following claims.
Claims (18)
1. A method of synchronizing a blackberry device with a Macintosh computer, comprising:
adding configuration zero ok to IORegistry;
connecting with blackberry equipment;
receiving data from the blackberry device; and
synchronizing the received data with data from the Macintosh computer.
2. The method of claim 1, further comprising parsing the received data.
3. The method of claim 2, further comprising formatting the parsed received data as XML formatted data.
4. The method of claim 1, further comprising storing a file from the blackberry device on the Macintosh computer.
5. The method of claim 4, wherein the file is an executable file.
6. The method of claim 1, further comprising synchronizing the received data with data in a plurality of Macintosh computers communicatively coupled to the Macintosh computer.
7. The method of claim 1, wherein the synchronizing comprises synchronizing data in the Macintosh computer belonging to a user of the blackberry device.
8. The method of claim 1, wherein the connection causes the blackberry device to appear to the Macintosh computer as a serial port.
9. A system, comprising:
means for adding configuration zero ok to IORegistry;
means for interfacing with a blackberry device;
means for receiving data from the blackberry device; and
means for synchronizing said received data with data from a Macintosh computer.
10. A computer-readable medium having stored thereon a set of instructions for causing a computer to perform a method comprising:
adding configuration zero ok to IORegistry;
connecting with blackberry equipment;
receiving data from the blackberry device; and
synchronizing the received data with data from a Macintosh computer.
11. A system, comprising:
a device driver capable of adding configuration zero ok to IORegistry;
an interface driver connectable with the blackberry device;
a repository capable of receiving data from the blackberry device; and
an application, communicatively coupled to the library, capable of synchronizing the received data with data from a Macintosh computer.
12. The system of claim 11, wherein the library is further capable of parsing the received data.
13. The system of claim 12, wherein the library is further capable of formatting the parsed received data into XML formatted data.
14. The system of claim 11, wherein the library is further capable of storing files from the blackberry device onto the Macintosh computer.
15. The system of claim 14, wherein the file is an executable file.
16. The system of claim 11, wherein the application is further capable of synchronizing the received data with data in a plurality of Macintosh computers communicatively coupled to the Macintosh computer.
17. The system of claim 11, wherein the application is further capable of synchronizing data in the Macintosh computer belonging to a user of the blackberry device.
18. The system of claim 11, wherein the interface driver causes the blackberry device to appear as a serial port to the Macintosh computer.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60/691,455 | 2005-06-16 | ||
| US11/163,751 | 2005-10-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1118114A true HK1118114A (en) | 2009-01-30 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2021937B1 (en) | Techniques to perform gradual upgrades | |
| KR101384387B1 (en) | System and method for provisioning a user device | |
| KR100994139B1 (en) | Method and apparatus for synchronizing the way data is stored in multiple data stores | |
| KR100421624B1 (en) | Platform Independent Software Automatic Searching/Distribution/Install Apparatus and The method of Searching and Distribution for that apparatus | |
| KR101138491B1 (en) | Synchronizat10n methods and systems | |
| US7316015B2 (en) | Method, apparatus, and program for constructing an execution environment, and computer readable medium recording program thereof | |
| KR101212872B1 (en) | Synchronizati0n methods and systems | |
| US20090198772A1 (en) | Data synchronization method and system between devices | |
| CN107423436A (en) | A kind of method migrated for online data between distinct type data-base | |
| CN1545252A (en) | A method for implementing foreground data configuration in network management system | |
| US8862937B2 (en) | Method and system for migrating data from multiple sources | |
| CN102272751A (en) | Data integrity through background synchronization in a database environment | |
| CN110688305B (en) | Test environment synchronization method, device, medium and electronic equipment | |
| US20060253499A1 (en) | System and method for automatically transferring data from one database to another | |
| EP1736900A2 (en) | System and Method for Synchonizing a Blackberry with a Macintosh | |
| HK1118114A (en) | System and method for synchronizing a blackberry with a macintosh | |
| CN101228516A (en) | System and method for synchronizing a blackberry with a macintosh | |
| KR100884543B1 (en) | Data synchronization method and resulting data synchronization gateway | |
| US20100106746A1 (en) | Modular interface for database conversion | |
| EP2494465A1 (en) | Modular interface for database conversion | |
| US9251153B1 (en) | Systems and methods for populating and maintaining a local cache with archived data items | |
| JP2005010875A (en) | Operation method for configuration management target file in software configuration management system, operation program for configuration management target file, and computer-readable recording medium recording this program | |
| JP2005078503A (en) | Client/server system with master data reflecting means, master data reflection method and program | |
| KR20040075495A (en) | Method for managing a board information in server system |