Embodiment
Provide following instructions so that anyone with ordinary skill can make and use this invention, and this instructions is provided in the context of special applications and demand thereof.It will be apparent to one skilled in the art that and easily to carry out various modifications, can be applied to other embodiment and application in the principle of this definition and do not deviate from the spirit and scope of the present invention embodiment.Therefore, the embodiment shown in the present invention does not attempt to be restricted to, but will be consistent with the corresponding to wide region of principle disclosed herein, feature and explanation.
Fig. 1 is the figure that explanation comprises the network system 100 of blackberry device 110, and blackberry device 110 is coupled to macintosh computer 120 such as on the iMac by wired or wireless connection 130 communicatedly such as USB or serial wired connection.Wireless connections can be local (for example, short distance) such as Wi-Fi, UltraWideBand (UWB) or bluetooth, or long distance is such as WiMax.In an embodiment of the present invention, macintosh computer 120 can be coupled to the network of macintosh computer communicatedly.
At network 100 run durations, blackberry device 110 and macintosh computer 120 swap datas are to carry out the Data Matching of guaranteeing synchronously on two equipment.As below describing in further detail, blackberry device 110 is to macintosh computer 120 transmit data sets, macintosh computer 120 compares this data set and the data set that is stored in the macintosh computer 120, synchronous then blackberry, blueberry data set and Macintosh data set guarantee that two data sets are identical.For example, if clauses and subclauses then will be caused the deletion of these clauses and subclauses of Macintosh data centralization synchronously by the data centralization deletion from blackberry, blueberry 110.If be modified, correspondingly also can be modified in these clauses and subclauses of blackberry dataset in Macintosh data centralization one clauses and subclauses.Can between macintosh computer 120 and blackberry, blueberry 110, data in synchronization comprise email, contact details, customer relation management data, file, software (for example, executable file) etc.
Fig. 2 is the block diagram of explanation macintosh computer 120.This computing machine 120 comprises CPU (central processing unit) (CPU) 205; Working storage 210; Permanent storage 220; I/O (I/O) interface 230; Display 240; And input equipment 250, all coupled to each other communicatedly by bus 260.CPU205 can comprise Motorola POWERPC microprocessor, or any other can be carried out the processor that is stored in the software in the permanent storage 220.Working storage 210 can comprise the read/write memory devices of random access storage device (RAM) or any other type or the combination of memory devices.Permanent storage 220 can comprise the memory devices of hard disk drive, ROM (read-only memory) (ROM) or any other type or can cut out the combination that the back keeps memory of data equipment at computing machine 120.By wired or wireless technology, I/O interface 230 is coupled to blackberry, blueberry 110 communicatedly.Display 240 can comprise flat-panel monitor, cathode-ray tube display or any other display device.Can comprise that as the selectable input equipment 250 of other parts of the present invention keyboard, mouse or other are used to the combination of importing the equipment of data or being used to import the equipment of data.
Those skilled in the art will recognize that computing machine 120 can also comprise optional equipment, such as network connection, annex memory, additional processor, LANs, be used to cross over input/output line, Internet or the intranet etc. that hardware corridor transmits information.Those skilled in the art can also recognize by other selectable modes and receive and store described program and data in native system.
Fig. 3 is the block diagram of the permanent storage 220 of explanation macintosh computer 120.This permanent storage 220 comprises Macintosh operating system (Mac OS) 300, one or more application program 310, storehouse 320 and driver 330.This Mac OS300 can comprise the Mac OS of any version that comprises Mac OS X.Application program 310 operations that the user sees are from the data of blackberry, blueberry 110, the input that execution is synchronous, the prompting user is other etc.In an embodiment of the present invention, application program 310 comprises Microsoft Entourage X; Microsoft Entourage 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, application program 310 also comprises Lotus Notes and MeetingMaker and other application program.
In an embodiment of the present invention, application program 310 can also be synchronous with the macintosh computer 120 with different user with a plurality of blackberry, blueberry 110.For example, application program 310 can check blackberry, blueberry 110 user profile, determine the user file in the macintosh computer 120, then only synchronously this user file (with other user file in the macintosh computer 120 relatively).In another embodiment of the present invention, by from blackberry, blueberry 110 demand files, receive this document and this document is stored in the permanent storage 220 from blackberry, blueberry 110, application program 310 will be stored in file backup in the blackberry, blueberry 110 in macintosh computer 120.
In another embodiment, the application program 310 synchronous data that obtain from blackberry, blueberry 110 are to the one or more macintosh computers that are connected to macintosh computer 120 by network.For example, the change of contact details can be transmitted to all macintosh computers in the network in the blackberry, blueberry 110, synchronous with the contact details that are stored in each computing machine then, all macintosh computers just comprise the contact details identical with blackberry, blueberry 110 like this.
As will further going through in conjunction with Fig. 4, storehouse 320 comprises the general utility functions that extracts some communication protocol elements in the mode that allows application program 310 more easily to communicate by letter with blackberry, blueberry 110, that is, storehouse 320 is to help application program 310 to communicate by letter with blackberry, blueberry 110, resolve from the data of blackberry, blueberry 110 and the set of managing the routine of communicating by letter with blackberry, blueberry 110 usually.Storehouse 320 also provides the code of the application program 310 of calling storehouse 320 and comprises level of abstraction between the code in storehouse 320.That is to say how work in storehouse 320 and it is made and so on the bottom details and can change, but application program 310 available independent routines are immutable.
As further going through below in conjunction with Fig. 5, driver 330 be responsible for so that other software for example application program 310 can to carry out alternately with it, its forms such as battery charge are made blackberry, blueberry 110 be available for macintosh computer 120.Especially, driver 330 makes the interface that is provided by blackberry, blueberry 110 show as serial port to MacOS 300.
Fig. 4 is the block diagram in explanation storehouse 320.This storehouse 320 comprises initialization engine 400, database (DB) access engine 405 is set, protocol engine 410 is set, obtain DB list engine 415, obtain DB record number engine 420, remove DB engine 425, obtain DB record engine 430, obtain next DB record engine 435, revise DB record engine 440, upload DB record engine 445, deletion DB record engine 450, DB locks engine 455, DB verification engine 460, confirm record engine 465, DB query engine 470, stop engine 475, App removes engine 480 and load document engine 485.
Initialization engine 400 obtains the synchronous essential information that needs, such as, unique ID of blackberry device can distinguish independent handheld device like this.DB access engine 405 is set is provided with access of database on the blackberry, blueberry 110, database can be read and write like this.Protocol engine 410 is set desktop protocol (seeing on user's desktop) and other agreement is set, such as tell blackberry, blueberry it will be used to swap data for example, install software or as modulator-demodular unit (modem) agreement of which kind of operation of modulator-demodular unit.Obtain the tabulation that DB list engine 415 obtains DBs in the blackberry, blueberry 110.Obtain the number that DB record number engine 420 obtains the record number in selected DB.The removing DB engine 425 that can be lost efficacy is wiped DB.Obtain the DB record that DB record engine 430 obtains among the DB.Obtain next DB record engine 435 and obtain next DB record.Revise DB record engine 440 amendment records.Upload DB record engine 445 new record is uploaded to blackberry, blueberry 110.Deletion DB record engine 450 deletion DB records.DB lock engine 455 pins DB, and it can not deleted or modification like this.DB verification engine 460 guarantees to be updated/written to the integrality of the data of blackberry, blueberry.Confirm that record engine 465 provides " commit sync " point to allow it know that one group of operation is done for blackberry, blueberry.DB query engine 470 search DB are to find the record of coupling standard of appointment in inquiry.475 terminations of termination engine are connected with blackberry, blueberry 110.This App removes engine 480 and deletes the application program that is stored in the blackberry, blueberry 110.Load document engine 485 with file load in blackberry, blueberry 110.In an embodiment of the present invention, storehouse 320 comprises other engine.
Fig. 5 is the block diagram of explanation driver 330.Driver 330 comprises interface driver 330A and device driver 330B.Driver 330A and 330B make it possible to the special piece of software that communicates between blackberry, blueberry 110 and macintosh computer 120.Driver 330A and 330B will convert the order that blackberry, blueberry 110 can be understood to from the generic command of application program on the macintosh computer 120.Especially, when blackberry, blueberry 110 is connected to macintosh computer 120 by USB cable or other connection 130, the interface that is provided by blackberry, blueberry 110 is provided for driver 330A and 330B, and makes blackberry, blueberry 110 show as serial port concerning Mac operating system 300 remainders.
According to the USB standard, one of software version that uses on the blackberry, blueberry is " illegal " basically.That is exactly to comprise the v3.7.1.21 (platform 1.6.1.23) of the blackberry, blueberry operating system of the bug that causes its announcement bad " descriptor ".
In USB device, descriptor is specified the method for this operation of equipment and is divided into a plurality of parts.A descriptor definition equipment itself, another device configuration, interface descriptor and last pipeline (pipe) descriptor are followed in the back.
According to USB implementor forum document, the value of configuration descriptor is set to be illegal value 0 (zero) in blackberry device.By adding " configuration Zero OK " attribute to IORegistry, Apple IOUSBFamily provides the method that addresses this problem.Yet, this only the docking port driver work, and device driver is not worked.
Though the Windows computing machine is not strict to USB device and code requirement, Apple is not.Equally, this driver comprises two parts: the blackberry device driver 330B that loads when initial also adds " configuration Zero OK " attribute to IORegistry, then these interfaces of instantiation and start the loading procedure of interface driver 330A.Owing to add the attribute of IORegistry to, IOUSBFamily will allow illegal in essence blackberry, blueberry interface driver 330A to load.
Fig. 6 is the table that explanation is received from the resolution data 600 of blackberry, blueberry 110.This obtains DB record engine 430 and obtains next DB engine 435 retrieval DB to write down, resolve the DB record that retrieves and convert them to XML.The example of resolution data 600 is displayed among Fig. 6 with sexadecimal.When macintosh computer 120 retrieval DB records, this DB record is pure numeric string.Engine 430 becomes the piece (chunks) that can easily be converted to XML with 435 with this data parsing.The field of this resolution data 600 below can resolved one-tenth: order, database ID, version, record handle, data length, Field ID and data.Command field is the numeric identifier of our operation (order) of sending to equipment.That is to say that each is worth corresponding to specific action.The order that shows in Fig. 6 (0x44) is " Download History order ", or from our software to the request of blackberry, blueberry request when the record of the database of front opening.Then, the database id field is used to discern the database of our request msg.Version field identification database version.(in history) is relevant to seem this how long to provide particular database with blackberry device.The record that blackberry, blueberry sends in the unique identification database of record handle field, it can be by more effectively reference in the operation of any future it being carried out (deletion, modification etc.) like this.The data that data length field tells us to be equivalent to how many bytes are comprised in this record.A column data (or field) of record in the unique identification database of Field ID.Data field is the real data of interior special field of this record or row.In given record, can there be a plurality of Field ID/data right.
Fig. 7 is the figure of explanation xml code data 700.In case resolved, data 600 just are converted to the xml code data, such as data presented among Fig. 7 700.In this way, these data both can easily become machine-readable or software readable, and simultaneously, it is readable also can easily to become to behave.
The XML form of data in the XML form and Macintosh data is represented to compare, and is dropped then.The modification that will be applied to blackberry, blueberry then is stored as the XML document that can easily be handled by the remainder of this system subsequently, such as being modified DB record engine 440 or uploading DB record engine 445 and handle.
Fig. 8 is the process flow diagram to the method 800 of the data sync between macintosh computer 120 and the blackberry, blueberry 110.In an embodiment of the present invention, storehouse 320 and driver 330 manners of execution 800.Further, a plurality of examples of this method can be basically simultaneously by instantiation so that one or more macintosh computer 120 can be synchronous with one or more blackberry, blueberry 110.After one or more macintosh computers 120 were coupled communicatedly with one or more blackberry, blueberry 110, configuration Zero OK was added (810) to IORegistry.Macintosh computer 120 is connected (interfaced) (820) with blackberry, blueberry 110 then.Receive and resolve (830) data from blackberry, blueberry then.The resolution data of Jie Shouing formatted (840) also transmits (850) to being used for synchronous application program for XML then, and this application program comprises that formatted data that will receive and the data that are stored in the macintosh computer 120 compare; Produce other data of indicator and then it is transmitted to blackberry, blueberry 110 to upgrade the data of blackberry, blueberry.In addition, can occur in synchronously on a plurality of macintosh computers 120 or a plurality of blackberry, blueberry 110.
The aforementioned description of example embodiment of the present invention is only carried out by means of example, and other variation of the foregoing description and method and modification can realize according to above stated specification.Though described engine is described to independent with different, those skilled in the art will recognize that, these engines can be the parts of whole equipment (site), and each also can comprise the part of a plurality of engines, maybe can comprise the combination of independent and a plurality of engines.In addition, parts of the present invention can use the universal digital computer programming, use special IC or use the legacy device of interconnection and the network of circuit to realize.Connection can be wired, wireless, modulator-demodular unit etc.It is exclusive or restrictive that embodiment described here is not planned.The present invention is only by following claim restriction.