Title of Invention

A METHOD OF SYNCHRONIZING INFORMATION

Abstract Systems and methods consistent with the present invention provide an interface to facilitate the communication between systems. A source system (310) translates data into an XML format and transmits the data to a synchronizer interface tool. The synchronizer tool stores data in a persistent intermediate storage, such as queue (325), allowing the source system to go offline or perform other tasks while the data is transmitted to the target system. The synchronizer tool initiates the transmission I of the data .to the target system. If the target system indicates that it received the data, then the synchronizer tool sends an acknowledgement to the source system indicating the data was received. If the target system does not receive the transmission, the synchronizer tool maintains the data in the present intermediate storage and reinitiates transmission of the data to the target system (300).
Full Text

DATA SYNCHRONIZATION INTERFACE
CilOSS-REFEltECNCE TO RELATED APPLICATION
This application claims- the benefit of Provisional Application No. 60/312,737, filed Augiuit 15,2001> pending, which application is incorporated herein by reference in il;3 tmrety.
BACKGROUND OF THE INVENTION
JPiiikt of tiie Invention
The present invention generally relates to communication between systems. ':M:.irs particularly, :he invention relates to a communication interface to aid transferring of lata acd infonii.atio:a between systems and/or databases,
IT, Description of the Related Art
Wireless devices, such as cellular triephoaes, personal digital assistants ("PDAs")* p^-jers, laptops v/iih wireless eo^eetSvity, etc., communicate packets including *oice and data o\er a wrxe'less i.;,;i:»vork. These wireless devices have installed application programming bttafacg'-s ^"AJ?!^') onto their local computer platform that allow software developers to create software applications that operate on the wireless device. The API sits between i[-iO wire-Jess dtvice system software and the software application, making the wireless device functionality available to the application without requiring the m software i-avelofer to h:.sw tha specific wireless device system source code,
The&2- v.aeless devices typically need to communicate with other systems and natab&es within the other systems. Unfortunately> the wireless, device may lose a ,'jgnal dnrir.,;!, communication ox be otherwise unavailable when transmitting uforaation to other systems. This may cause errors when attempting to access a database wh;ui :he signal is lost. The wireless device ma}' be required to reinitiate fee database access anci resubmit the database request when the signal is reacquired.
Exti! nctod beyon d wireless devices, often wire-baaed systems need to communicsjx; with each other but do not share a similar '"language" for communication. 'For example:, is with wireless devices, one system may need to communicate with the database fa:, (mother system to receive or insert data. To communicate with the database, the system must be aware of the database language, record and field structures, and.

tx-iniuts in order to access tmd store information in the database. While current •:(:chuolngie:s provide for the ability for the interface between the system and the difr.\>asa to include the language, structure and format of the database, this becomes rj.o.r; complex v/hi-m multiple databases., possibly requiring multiple unique database 1 :n|: uages, etc., ruied to be accessed.
Furthermore:, when data is to be sent to multiple systems, or conversely received Iron multiple ^/sterns, a common interface doss not exist to integrate across the ;xn tiple systems to simplify the date transmission. This is problematic for systems ;o. lmunicating; with several other systems.
T'lerefan::,, what is needed in the art is an Interface that simplifies the communication between one or multiple databases and provides reliable and secure transfer cf information between multiple systems,
Cmteui methods in the art do not address this need. Database replication . si,; 'Vices- and cu-tom built database interfaces can become very complex and unwieldy if iti altiplc database:;; need to be accessed. In addition, all systems that access the custom database must have that interface. Also, custom built databases are required to stay c: uine for trail? anions to occur.
.'31ectroiic Data Interchange (EDI) only addresses- the need for pre-defined j.i .essago type;; and content specific to electronic commerce. The EDI message formats cz> not address the data exchange needs as it relates to wireless services, system ;. ltegraiion considerations and billing specificity.
SUMMARY OF TIDE INVENTION
Systems and methods consistent with the present invention overcome the iliortcoirun&s of existing systems by allowing an application access to a device's resources bas.;d on a set of permissions associated with the application.
In one embodiment, the present invention provides a method of processing information -.n an interface comprising receiving data in a first format from a source system, storing the data in a persistent intermediate storage, initiating the transmission of the infenaation to the target system while retaining the. information, receiving an indication that the transmission of information to the target system was unsuccessful, and reinitiating the transmission of the information to the target system. The method 0iay further include storing data received from multiple; source systems, associated with

iriul\: pie target systems, and initiating the transmission of the data from multiple source av&fc'ms to the stscciated multiple target systems. Also, the method may include :n:-ceivii)g im source system acknowledgement indicating die acknowledgement was ri :ce-. ved and remcvi:;ig the data from the persistent intermediate storage.
Odlier objsc-'s, advantages, and features of the present invention wiU become apparent after rcsvicw of the hereinafter sat forth Brief Description of the Drawings, :. »Ki; uled Inscription of the Invention, and the Claims*
'BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of siltf specification, illustrate presently preferred embodiments of the invention and, soother with the general description given above and the detailed description of the prif erred embodiments given oelow, serve to explain the principles of the invention. In thii drawings:
figure ;, is a representative diagram of a. wireless network and the computer hfidwaiM and wireless devices that can be used in an exemplary embodiment of the pi esent invention:
Figure 2 i& a block diagram of the hardware components of the wireless network j:» "ovidixig communication between different wireless devices, an application download ! ;;rver, and a database in an exemplary embodiment of the present invention;
Figure 3 is a block diagram detecting the architecture of the synchronizer tool :. iterfac e in an exemplary embodiment of the present invention; and
Figu::£ 4 ;is a flowcheirt depicting the process of the synchronizer tool interface in ;*n exemplary embodiment cf the present invention.
DETAILED DESCRIPTION OF THE I?*VENTION
Refer sax will now be made in detail to the presently exemplar/ and preferred ambodimenfc; <::: the invention as illustrated in accompanying drawings which like ffiferenos characters designate or corresponding parts throughout several nature objectives and advantages of present will become more appimini. to those skilled art after considering following detailed d connection with drawings.>
Figure 1 illustrates an ;irchirecture in which one embodiment o! the present i.'..v>;:ation may ';>■: implemented using one or more wireless The application download server 16 is shown here on a local server-side network hi with other computer elements in communication with the wireless network 14, such i: a daiabase; US with stored, applications and data that contains software applications „\& daM.a that ;w:e accessible a'ad downloadable to the wireless devices 12,18,20,22,
Figure 2 is a block diagram of toe hardware components of the wireless network :rovidhig communication between different wireless devices, an application download erver., and i, database in an exemplary embodiment of the present invention. The /ireiess network 14 is merely exemplary and can include any system whereby remote codulus. such as wireless devices 12,18,20,22, communicate over-the-air between and maong each other and/or between and among components of a wireless network 14, nclucling, without limitation, wireless network carriers and/or servers. The application lownload server ("ADS") 16 and the stored applications database 28 will be present on :ie cellular data network with any other components that are needed to provide cellular sleccaimunication services. The server 32 may provide; other functions used by one or rther components, such as application management functions for the application :OWlj:.oad sw."V3r. The server 32 and ADS may use a synchronizer interface tool (not hown) to communicate data between the systems. The server or other components of >ie system -x&y interface with other systems not shown to transmit or receive data. The

syi iclr;onizcc tool may be; used in supporting communication with these other systems as
\V:11.
The application download server 16, and/or other servers communicate with a Ci;':rii,r network40,through a data link, such as the Internet, a secure LAN, WAN, or of her network. The carrier network 40 controls messages (generally being data packets) 3;;nt to a messaging service controller: ("MSC) 42. The carrier network 40 c >Ktaiumc.ates v/.tb the MSC 42 by a network, the Internet and/or POTS ("plain c:d: ,iary telephone uystem")- Typically, the network or Internet connection between the career network 40 and the MSC 42 transfers data, and the POTS Transfers voice (herniation.: Trie MSC 42 is connected to multiple base stations ("BTS") 44, In a iJiDiilai' iruumer to the carrier network, the MSC 42 is typically connected to the BTS 44 ,>y o-oth die neiwork and/or Internet for data transfer and POTS for voice information. Ft: BTS 44 ul'iuiately broadcasts messages wirelessly to the wireless devices, such, as celkilar telephone 12, by short messaging service (WSMS?*)» or other over-the-air m.:.thod& krown in the art.
Tie wifeless device, such as cellular telephone 12, has a computer platform 50 th a can receive; ;,3:;:td execute software applications and display data transmitted from the amplication dcwnload server 16. The computer platform 50 also allows the wireless device to interact with data and applications resident on network servers. The computer j;:'.atform 50 includes, among other components, a display driver 52 that drives the j;!:raphic.'i dispky 13 and renUsis images on tlie graphics display 13 based upon graphics Jata received i& i:he computer platform 50, The computer platform 50 also includes an ;;pplica'don-spett:fic integrated circuit (".ASIC") 54, or otter processor, microprocessor, logic circuit, or other data processing device. The ASIC 52 is installed a': the time of manufiicture cf the wireless device and is not normally upgradeable. The ASIC 52 or ■yther processor executes the application programming interface ("APT') layer 56 that interfaces with any resident programs in the memory 58 of the wireless device. The memory car. be comprised, of read-only or random-access memory (RAM and ROM), EPRCM, EHPROM, flash cards, or any memory common, to computer platforms. The computer platform 50 also includes a local database 60 that can hold the software applications not actively used in memory 58, such ;is the software applications downloaded from the application download server 16. The local database 60 is typiciiUy comprised of one or more flash memory cells, but can be any secondary or

M;ti*;..y storage device as known in the art, such as magnetic media, EPROM, EliPkOM, optical media, tape, or soft or hard disk.
The wirelssfi device, such as cellular telephone 12, csm access and download n: £ii: / type;;; of applications, such as games find stock monitors, or simply data such as r.sv. . and sport* reflated data. The downloaded data can be immediately displayed on the i iisplaj or stored in the local database 60 when not in use. The software applications <:. treated a regular software application resident on the wireless device . and user of can selectively upload stored from tine local database to memory for execution api rax th also delete lication fron tfee> Fi.jure 3 is a block diagram depicting the architecture of a synchronizer tool in. scface in an Mempiary embodiment of the present invention. In one embodiment, the sv-whroflizer roal ,305 enables tables in one RDBMS system to be synchronized with a destination sy&r.:;::ii via a standard XML interface. It will be recognised by those skilled it. the ar: that 'ike; .XML language is an implementation choice and other languages may b: used. Furthermore, it will also be recognized that the synchronizer tool may be used i IP based
Data ;;;!:cdved from the RDBMS 320 in the source system 310 is stored in the i [ueue 325 of the synchronizer tool 305, This data is translated into a common file ■'ormat such w, XML- By having a storage mechanism, such as a queue, the synchronizes: tool can maintain the data for the RDBMS 315 even if the source system 310 is off Una, The synchronizer tool 305 may also be implemented to provide an aclmowledgemrat to the source system 310 when the data sent to the target system 315 is repHcatec. m the RDBMS 315 (the target system may provide an acknowledgement to the s^/ncto:»nia:er tool 305 indicating this replication has occurred, acknowledge the receipt of the data, or aclcnowledge other processing was performed).

The sourca system 310 is connected to the synchronizer tool 305. This unuection may ■:■£ !jy any comnunication mechanism, including wireless and/or wire-i3 The target system receives the information from the synchronizer tool 305 and my respond wi:h an acknowledgement to the synchronizer tool 305. Alternatively, the iyi.chromzer tool may interact directly with a subsystem in the target system 300 (such :is. ii RDSMS 315) to perform a task such as data replication.
Note tha definition of a target system 300 and source .system 310 is somewhat fc!>;trar/ In one instance a system may be the source system sending data to a target $^.rtem> while i.n another instance the same system is acting as the target system a; 3sivin;g datfc iirom Mother system.
figure A h a flowchart depicting the process of the synchronizer tool interface in ar: exemplary embodiment of the present invention. The method begins by having the source system tnmslate data into a XML format (Step 400) or some other common f.i innat. This data may be in the form of scalar data for the target system, a request for i:iform.£.tion from the target system or other information to be transferred for processing 1:3' the target, svy^tenx- Next the data is transmitted to and received by the synchronizer ;lol(Sljep40;5).
The da tiii. is stored in a persistent intermediate storage (Step 405), sach as a queue within a synchronizer tool. This allows some independence between the source and iirget systems. The source system may make the request, have it stored in Hie queue md can go offline while the request gets transmitted to and/or processed by the target .system. In addition, the iaynchronizer tool may send aa acknowledgement to the source system that it received the data.
The data in XML format is then transmitted from the synchronizer tool to the target system (Step 415). Note that the "data" can be any piece of information desired :o be sent ;;: the target system. It may be data used for replication into an RDBMS of

tli;: target sjstem. .AJteniatively, it rnay be any type of command or information sent to til:. t;i rget s ystem ::t;ir possible processing by the target system. Li addition, there may be rcilfiple target systems receiving this data. The synchronization tool may queue null; pie data, tni'isriissicm requests for multiple destinations, including multi-target sysfc: m destination inquests.
Ths methc-d continues to initiate the translated command on a KDBMS (Step 415,'.. MKX translating the command into the appropriate language for the RDBMS, it i* tit i Ates this command by direct access to the target system's KDBMS or by sending the oar.'inand to a processor, such as one in fee target system, for execution.
If the d2.i1, i;;; received at the target (Step 420), the "Yes" branch is followed and .ij.i adaiowledgaaiant is sent to the source system (Step 425). The source system ::b:; xi&ts This acknowledgement into a format readable by the source system, such as in >C* IL. If the so^jrce system is not online, the acknowledgement may be queued and further attempts, may be made to the? source system to inform it that the data was triKismiued to "ho target system. The synchronizer tool may determine if the data was i;et ;i»ved by receiving an acknowledgement from the target system.
If data is .received at the target as determined in Step 420, such as may occur v,ren tin targtfl system orKDBMS is offline, then the "No** branch is followed and the cU:a remains to the cueue and will re'ery (Step 430) to initiate a transmission of the data t, the UiTget :ijst'ian as described in Step 415. There are many queuing algorithms and ti me parameters possible to determine when to initiaie another transmission to the target ■;/stem. The preferred -algorithm and time is based on the processing capacity, ■•■fficier.cy, avail able resources (such as, available queuing memory) as well as other implementation factors of the systems involved.
The fon-going description of an implementation of the invention has been presented for purposes of illustration and description. It is not exhaustive and does not jmit Ihe invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the invention. Fee example, the described implementation includes software but one embodiment of the present invention may be implemented as a combination of hardware ;and software or in hardware alone. The invention may be implemented with both object-oriented and non-object-oriented programming systems. Additionally, although aspects of die present invention are described as being stored in memory, those skilled

if. tit5 art will appreciate that these aspects can also be stored on other types of suu:niter-n;adablJ; media, such as secondary storage devices, like hard disks, floppy d: 5k; ? or CD-ROM: a carrier wave from the Internet or other propagation medium; or obey forms* of RAM or ROM,
In addition, it should be noted that various changes and modifications could be nade herein without departing from the scope of the invention as defined by the ;: ppwded claims and their equivalents. Furthermore, although elements of the invention i::ii.;,; be described or claimed in the singular, the plural is contemplated unless 'limitation 'o i."'i« singular is; explicitly stated.


CLAIMS
What is claimed is.
1. A method of processing information, comprising:
receiving the information from a source system in a common formal;
storing the information;
initiating the transmission of the information to the target system while retaining the idbnnation,
receiving an target system acknowledgement indicating the target system ■■et: rived the information; and
seeding an acknowledgement to the source system upon receiving a target system acknowdgement
2. The method of claim 1, wherein the common format is an XML format.
3. The method of claim 1. wherein the target system is a database; and the iviformtitioa includes data for replication in the database.
4. Tils method of claim I, wherein the information is a command directed n ward die target system and the sending the target system acknowledgement indicates i.'. ie corrmancl v/as processed..
5. A method of processing information in an interface, comprising:
receiving, data in a first format from a source system;
storing flua data in a persistent intermediate storage;
iTiitiac: nt;; the transmission of the information to the target system wiiile retaining tae information;
receiving an indication that the transmission of information to the target system was msuccessfu.l and
reinitiating the transmission of the information to the target system.

6. Tlie: method of claim 5 further comprising;
ston'ng ctaa received from multiple source systems associated with multiple t irg-iji: systems; and
infriaiinj; fte transmission of the data from multiple source systems to the i-ss:.:dated multiple target systems.
7. The method of claim 5 further comprising:
receiving ;a source system acknowledgement indicating the acknowledgement vv.ii * received; and
removing the data from the persistent intermediate storage.
b\ xui interface, comprising;
a connection to a source system and a target system;
a storage to store d&a from the source system;
i. processor configured to receive data from the source system, to stors die data f.\ die storage, Jo initiate the transmission of the data to the target system, to receive a target system acknowledgement from, lie target system, and to send an „j;kno\vledgejJ:e;ut to the source system-
9. The interface from claim 8, wherein the processor is further configured
lo reinitiate \hz transmission of data to die target system.
10. A system for processing information in an interface, comprising:
mea:.i;; fnr receiving the information from a source system in a common format;
mean.1; for storing the information;
mean;, for initiating the transmission of the information to the target system while retaining the information;
means for receiving an target; system acknowledgement indicating ihe target systean rt*.C(;i >/ad the information; and
me 3i"is for sending an acknowledgement to the source system upon receiving a targe; system acknowledgement

11. A computer-readable medium containing computer-executable ir st; idiom for allowing access to a device resource that when executed perform a t-et^od, comprising;
receiving; the infonnation from a source system in a common format;
storing thfi information;
initiating the transmission of the information to the target -system while retaining ;ne infonaation;
receiving an target system acknowledgement indicating the target system ..■etoived the information; and
sending m acknowledgement to the source system upon receiving a target ay i tern aci&owjerfgeinent

12. A method of processing information substantially as herein described with reference to the accompanying drawings.


Documents:

306-chenp-2004 abstract.pdf

306-chenp-2004 claims granted.pdf

306-chenp-2004 correspondence others.pdf

306-chenp-2004 correspondence po.pdf

306-chenp-2004 form 18.pdf

306-chenp-2004 form 2.pdf

306-chenp-2004 form 3.pdf

306-chenp-2004 petition.pdf

306-chenp-2004 power of attorney.pdf

306-chenp-2004-claims.pdf

306-chenp-2004-correspondnece-others.pdf

306-chenp-2004-correspondnece-po.pdf

306-chenp-2004-description(complete).pdf

306-chenp-2004-drawings.pdf

306-chenp-2004-form 1.pdf

306-chenp-2004-form 26.pdf

306-chenp-2004-form 3.pdf

306-chenp-2004-form 5.pdf

306-chenp-2004-pct.pdf


Patent Number 234065
Indian Patent Application Number 306/CHENP/2004
PG Journal Number 22/2009
Publication Date 29-May-2009
Grant Date 05-May-2009
Date of Filing 13-Feb-2004
Name of Patentee QUALCOMM INCORPORATED
Applicant Address 5775 MOREHOUSE DRIVE, SAN DIEGO, CALIFORNIA 92121,
Inventors:
# Inventor's Name Inventor's Address
1 HOREL, JERRY 6500 TORIN ROAD, BRENTWOOD BAY, BRITISH COLUMBIA V8M2H5,
2 TRUITT, ROBERT 10198 WATERIDGE CIRCLE #158, SAN DIEGO, CA 92121,
3 YU, JULIE 48700 ALGONIUM COURT, SAN DIEGO, CALIFORNIA 92130,
PCT International Classification Number G06F 17/60
PCT International Application Number PCT/US02/26035
PCT International Filing date 2002-08-15
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 60/312,737 2001-08-15 U.S.A.