CN102741829A - Message based synchronization for mobile business objects - Google Patents

Message based synchronization for mobile business objects Download PDF

Info

Publication number
CN102741829A
CN102741829A CN2010800601982A CN201080060198A CN102741829A CN 102741829 A CN102741829 A CN 102741829A CN 2010800601982 A CN2010800601982 A CN 2010800601982A CN 201080060198 A CN201080060198 A CN 201080060198A CN 102741829 A CN102741829 A CN 102741829A
Authority
CN
China
Prior art keywords
message
identifier
client
present
renewal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800601982A
Other languages
Chinese (zh)
Other versions
CN102741829B (en
Inventor
埃文·爱尔兰
大卫·克里格
迈克尔·弘
赫摩尔·潘迪亚
张国平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sybase Inc
Original Assignee
Sybase Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/813,104 external-priority patent/US9336291B2/en
Application filed by Sybase Inc filed Critical Sybase Inc
Publication of CN102741829A publication Critical patent/CN102741829A/en
Application granted granted Critical
Publication of CN102741829B publication Critical patent/CN102741829B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages

Abstract

A system, method, and computer program product are provided for executing a notification query derived from a download cursor for a business object to identify an updated subscription in order to provide updates to a client device in an import message. Additional systems, methods, and computer program products are provided for guaranteeing at-least-once delivery of a message.

Description

Be used for the message based synchronous of mobile service object
Technical field
The present invention relates generally to database synchronization, and more specifically, relate to the communication means that is used for data sync.
Background technology
No matter when the opportunity of user's appointment (usually), when the synchronous event through complete obtains connectedness, mobile device depend on traditionally with business system synchronously.In the time of for example in being positioned over butt joint frame (docking cradle), mobile device can have connectedness.Mobile device is carried out its data after butt joint complete synchronously, upload and download.
Yet when the information of uploading is out-of-date or when another mobile device has been carried out renewal during same disconnection connects, these traditional methods can't provide enough information to solve the conflict of the data aspect that equipment relies on.In addition, classic method does not comprise the communication means that makes mobile device can send and receive these renewals reliably.
Therefore, expectation obtains to be used to make data and the synchronous improved method of business system from mobile device.
Summary of the invention
Embodiment of the present invention comprises a method, and this method comprises: carry out the notice inquiry of obtaining from the download cursor that is used for business object, with the subscription of identification renewal; Subscription operation to this renewal should be downloaded cursor, to generate result's row; And, the input message in this as a result row be sent to client device.
Embodiment of the present invention comprises a kind of computer-readable medium in addition; It has the computer executable instructions that is stored thereon; If carry out by computing equipment; Then this computer executable instructions causes this computing equipment to implement the method that comprises the steps: carry out the notice inquiry of obtaining from the download cursor that is used for business object, with the subscription of identification renewal; Subscription operation to this renewal should be downloaded cursor, to generate result's row; And, the input message in this as a result row be sent to client device.
In addition, embodiment of the present invention comprises a kind of system in addition, and this system comprises storer, and it is set to preserve module; This module comprises: execution module, and it is set to carry out the notice inquiry of obtaining from the download cursor that is used for business object, with the subscription of identification renewal; The operation module, it is set to this download cursor of subscription operation to this renewal, to generate result's row; And, sending module, its be set to the input message in this as a result row be sent to client device; Said system also comprises one or more processor, and it is set to handle this module.
In addition, the present invention comprises a kind of method in addition, and this method comprises: receive message from client, this message comprises client identifier, message identifier and playback instructions; Search corresponding to before the client identifier and the right tabulation of message identifier of the message that receives; To confirm whether be received before this message corresponding to this client identifier and message identifier; In case confirm not to be received before this message, then handle this message; And, with this client identifier and message identifier add to corresponding to before in the right tabulation of client identifier and the message identifier of the message that receives.
In addition; Embodiment of the present invention comprises a kind of computer-readable medium; It has the computer executable instructions that is stored thereon; If carried out by computing equipment, then this computer executable instructions causes this computing equipment to implement the method that comprises the steps: receive the message from client, this message comprises client identifier, message identifier and playback instructions; Search corresponding to before the client identifier and the right tabulation of message identifier of the message that receives; To confirm whether be received before this message corresponding to this client identifier and message identifier; In case confirm not to be received before this message, then handle this message; And, with this client identifier and message identifier add to corresponding to before the client identifier and the right tabulation of message identifier of the message that receives.
In addition, embodiment of the present invention comprises a kind of system, and this system comprises storer, and it is set to preserve module; This module comprises: receiver module, and it is set to receive message from client, and this message comprises client identifier, message identifier and playback instructions; Search module; It is set to search for corresponding to before the client identifier and the right tabulation of message identifier of the message that receives; To confirm whether be received before this message corresponding to this client identifier and message identifier; In case confirm not to be received before this message, then handle this message; And, add module, its be set to this client identifier and message identifier add to corresponding to before in the right tabulation of client identifier and the message identifier of the message that receives; This system also comprises one or more processor, and it is set to handle this module.
Hereinafter, be described in detail with reference to the attached drawings the structure and the operation of other features and advantages of the present invention and each embodiment of the present invention.Should point out, the invention is not restricted to specific implementations described herein.At this, only present these embodiments for the purpose of description.Based on the instruction that is included in this, other embodiment will be conspicuous concerning various equivalent modifications.
Description of drawings
The accompanying drawing that comprises in this article and constitute the part of instructions shows embodiment of the present invention, and it is used for further explaining principle of the present invention and making various equivalent modifications can implement and use the present invention with instructions.
Fig. 1 is an enterprise network according to an embodiment of the present invention, exemplary.
Fig. 2 A is a process flow diagram according to an embodiment of the present invention, that show each step; Wherein, Can operate the client application of mobile device through these steps; Thereby submit establishment to, upgrade or deletion message to synchronization server to business object, be used to be sent to enterprise information system.
Fig. 2 B is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, enterprise information system is handled establishment, renewal or the deletion message that is received.
Fig. 3 is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, the client application on the mobile device is handled the synchronous event that receives from synchronization server.
Fig. 4 is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, client application starts the request of establishment.
Fig. 5 is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, client application starts to upgrade to be operated.
Fig. 6 is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, client application starts deletion action.
Fig. 7 is a process flow diagram according to an embodiment of the present invention, that show each step, wherein, is set to replay operations call back function (replay operation callback) is responded through these step client applications.
Fig. 8 is a process flow diagram according to an embodiment of the present invention, that show each step, wherein, is set to detect and abandon duplicate message through these step synchronization servers.
Fig. 9 is a process flow diagram according to an embodiment of the present invention, that show each step, wherein, through these steps, can through use cache table carry out based on duplicate synchronously.
Figure 10 is a process flow diagram according to an embodiment of the present invention, that show each step; Wherein, Through these steps; Can cache table and download cursor be used with entity subscribes (entity subscription), input (import) message is provided effectively with the client application that upgrades to request.
Figure 11 is a process flow diagram according to an embodiment of the present invention, that show each step, and wherein, through these steps, input message can be together by batch treatment.
Figure 12 is a process flow diagram according to an embodiment of the present invention, that show each step, wherein, through these steps accomplish by startup of server synchronously.
Figure 13 shows an example computer system, therein the embodiment of embodiment of the present invention.
Now, the present invention will be described with reference to the drawings.Usually, in the accompanying drawings, identical reference marker is represented identical or intimate element, in addition, normally, the accompanying drawing that the leftmost numeral reference marker of reference marker occurs for the first time.
Embodiment
I introduces
Now, the present invention will be described with reference to the drawings.Usually, in the accompanying drawings, identical reference marker is represented identical or intimate element, and in addition, normally, the leftmost numeral reference marker of reference marker appears at accompanying drawing wherein for the first time.
The ground that is described below, it will be apparent to those skilled in the art that can be in the entity shown in software, hardware, firmware and/or the accompanying drawing embodiment of the present invention.The software code of the reality that any specialized hardware with embodiment of the present invention is controlled is not limited to the present invention.Therefore, should be understood that modification and the variation that in scope of the present invention and spirit, can carry out embodiment, under this prerequisite, describe operating performance of the present invention.
To quoting of the module in this instructions and the claim mean with carry out appointed function be purpose, to the combination in any of hardware or component software.This module is not necessarily the entity that rigidity limits, and makes plurality of modules can on function, cover hardware and software component.For example, what software module referred to can be the single file code in the program, and program itself is as an independent software module.For example, those skilled in the relevant art will appreciate that, can limit the function of module according to multiple design or performance optimization technology.
Fig. 1 is an exemplary enterprise network 100 according to an embodiment of the present invention.According to another embodiment of the present invention, enterprise network 100 comprises mobile device 102.Exemplarily and without limitation; Mobile device 102 can comprise that blackberry, blueberry (BlackBerry) or the storehouse, California of Waterloo, Ontario, Canada city action research company (Research In Motion) for example are than Dinon Apple (Apple Computer, the mobile device of i Phone Inc.) (Apple iPhone).Various equivalent modifications will recognize that the technology that can be used for mobile device 102 described herein also can be used for non-mobile device, for example personal computer usually.
According to an embodiment of the present invention, mobile device 102 can have client application mounted thereto 104.According to an embodiment of the present invention, client application 104 can with equipment input and output (" I/O ") 106 interfaces, these equipment input and output are for example watch-dog, keyboard or touch-screen display.Client application 104 also can with local data base 108 interfaces, the data set that this local data library storage supplies client application 104 to use.
According to an embodiment of the present invention, mobile device 102 is communicated by letter with synchronization server 110.According to another embodiment of the present invention, similarly, extra mobile device 112a-c communicates by letter with synchronization server 110.As can be understood by various equivalent modifications, can various mobile devices be connected to synchronization server 110 through any one or a plurality of communication port.In one embodiment, for example, mobile device 102 can be connected with synchronization server 110 by cellular communications networks and communication on the internet point (communication hops) that jumps.It itself can be public or private network a little that various communications jump, and can comprise the assembly that is positioned on internet and the various privately owned in-house network.
According to an embodiment of the present invention, synchronization server 110 is positioned at one or more mobile device 102,112a-c and enterprise information system (" EIS ") between 114.Synchronization server 110 helps to catch the change to related data that is produced by EIS 114, and this change is offered mobile device 102 and 112a-c.Synchronization server 110 also helps to catch by the change of mobile device 102 with the 112a-c generation, and this change is provided to EIS 114.The data that can obtain by mobile device 102 in the local data base 108 by this way, can with from the respective data storage of EIS 114 and the data sync of business data system 116.According to an embodiment of the present invention, synchronization server 110 keeps buffer memory, and this buffer memory reflection is from the data of business data system 116.
According to an embodiment of the present invention, EIS 114 is connected to synchronization server 110, to allow synchronization server 110 above-mentioned data synchronization service is provided.As can be understood by various equivalent modifications, EIS 114 can communicate by letter with synchronization server 110 through any communication port equally.Various equivalent modifications also will be understood, and EIS 114 and synchronization server 110 can be shared same physical server or distributed server as wherein stand alone software assembly, perhaps even can be compiled into a Combination application program.Therefore, should be understood that EIS 114 and synchronization server 110 can be distributed on a plurality of diverse locations of enterprise network 100, are shown as independent computing equipment with exemplary approach, but are not limited thereto in Fig. 1.
According to an embodiment of the present invention, described in preamble, EIS 114 also comprises business system 116 or is connected to business system 116 with communication mode.According to another embodiment of the present invention, the data in the local data base 108 for example comprise the subclass from the data of business system 116.According to an embodiment of the present invention, these data can be the form of mobile service object (" MBO ").MBO is a kind of business object that can between enterprise information system 114 and mobile device 102, be synchronized.MBO can be preserved by the storage in the local data base 108, to allow during not being connected to EIS 114 by mobile device 102 visits.12/503 of " the mobile service object of metadata driven (the Metadata Driven Mobile Business Objects) " by name that submits in July in 2009 15; The example of MBO is provided in No. 573 U.S. Patent applications (lawyer's case number 1933.0720001); This document mode integral body by reference is incorporated into this, but the invention is not restricted to this.
Various equivalent modifications will recognize, can handle communicating by letter between client application 104 and the synchronization server 110 through different ways.According to an embodiment of the present invention, communications framework directly embeds as in the client application 104 that is provided by code generator or developer.According to of the present invention one extra embodiment, can be on mobile device 102 the DBCA application program, should communication with management.
The exemplary business object model of II
According to an embodiment of the present invention, can use and be called as specialized language XML application program (" AFX "), that can use XML based on the public the MBO modeling.Corresponding those skilled in the art will recognize, can comprise through using visual modeling tool with the graphics mode modeling or through using specialized language (like the AFX text) with the text mode modeling through different modes to the MBO modeling.Correspondingly, be illustrative rather than restrictive at this through using the example that AFX appeared and discussed.
According to an embodiment of the present invention, routine package definition (package definition) provides the database definition, class database (database-class) definition and zero or a plurality of substantial definitions of the title that is used to define the local data base in the mobile device 102.The class database definition is used to discern the class of representing local data base 108.If there is a substantial definition, its each corresponding MBO then.Substantial definition is transferred the title of the class of define and represent corresponding M BO.
According to an embodiment of the present invention, entity itself is stored in the local data base 108.According to another embodiment of the present invention, key in entity through using at least one surrogate (surrogate key) and alternative key (alternate key).Surrogate is by mobile device 102 employed key assignments, fails to visit the reason of the key constructive process of EIS ' 114 with the explanation mobile device.Have EIS 114 keys that are used for entity if client is realized, then this key can be used as alternative key.According to another embodiment of the present invention, by synchronization server 110 surrogate is provided to mobile device 102, with as a collection of key that will be assigned with as required.
According to another embodiment of the present invention, substantial definition comprises the operation definition to the corresponding change in the EIS 114.Exemplarily and without limitation, this operation definition is used to create, upgrade or delete the data in the EIS 114.According to an embodiment of the present invention, substantial definition also can provide the name inquiry, and the name inquiry is can be by the predefine inquiry to local data base 108 of mobile device 102 propositions.According to another embodiment of the present invention, substantial definition also comprises: the definition of synchronization server 110 can be openly given the change that is produced by mobile device 102 in expression, and this definition is also represented the change that EIS produces is subscribed to mobile device 102, to be used for download.
In conjunction with theing contents are as follows of the nonrestrictive exemplary object model of above-mentioned key element:
Figure BDA00001833088200081
In above-mentioned exemplary object model, comprise the single entities of " Account " by name with the relevant routine package " com.example.bank " of local data base 108 " my-bank " by class " MyDatabase " expression.This entity is keyed in by surrogate, has the alternative key by account ID (account ID) definition, and should substitute key in the case is the unique key by the employed reality of background system of EIS 114.
According to another embodiment of the present invention, the account entity also has a plurality of attributes, comprises above-mentioned surrogate and name on account, also comprises ID and account balance corresponding to account.The account entity also defines an inquiry " findByCustomer ", and under the situation of MBO, its particular account number that allows to have corresponding ID is searched and used.
In addition, according to another embodiment of the present invention, a plurality of operations of account substantial definition, said a plurality of operations describe be used to create, the EIS operation of renewal and deleted data, it is corresponding to the entity from business data system 116.
According to another embodiment of the present invention, code generator operation in the routine package definition is included in the code in the client application 104 thereby produce.This allows developer's quick active client application 104 of client application 104, with the download of coordinating the change between mobile device 102 and the synchronization server 11 and upload.According to another embodiment of the present invention, code generator also can generate the code that is used for execution on synchronization server 110.
Based on above-mentioned exemplary routine package definition, can encode to client application 104, carry out specific function to use the generating code that from the routine package definition, derives from by code generator.For example, can call the code that is produced by the said procedure package definition, to resolve following code sample from client application 104:
Figure BDA00001833088200091
According to an embodiment of the present invention, this code calls the class that is produced automatically by code generator.For example, section Account.findByCustomer (" 123 ") utilizes name inquiry " findByCustomer " that the account of coupling is back in " accounts " variable.Then, each result " a " in " accounts " can show corresponding account ID and remaining sum.
According to an embodiment of the present invention, do not use name inquiry " findByCustomer ", the terminal user can specify the choice criteria in the dynamic queries.Code generator can be specified a plurality of options, is used for the developer and when the required inquiry of definition, therefrom selects.For example, can customize the account that following sample code matees with search and particular community by the developer:
Figure BDA00001833088200101
According to an embodiment of the present invention, can be the developer pull-down menu or other input interface functions are provided, to customize attribute and the test value that in above-mentioned example, uses.
In above-mentioned example, each account is represented the instance of a MBO.Aforesaid, and as shown in the exemplary object model, according to an embodiment of the present invention, MBO can support to activate the function to the change explanation of EIS 114.In an illustrative embodiments, these changes are establishment, renewal or deletion actions of on MBO, carrying out.Continuation is an example with above-mentioned example account entity, but without limitation, can pass through following code update account balance:
Figure BDA00001833088200102
This exemplary code segment is selected account to be changed, and confirms the amount of money that prestores, and it is applied to account balance.According to an embodiment of the present invention, when the preparation application should be changed, call account.update () method.Similarly, if create new account, then call account.create () method, will submit to local data base 108 account.Account.delete () method can be deleted the account from local data base 108.According to an embodiment of the present invention, these changes all are stored in the local data base 108, as the change of hanging up.According to another embodiment of the present invention, local data base 108 keeps the copy of the original state before the change.When the data playback that carries out to business data system 116 because of any former reason EIS 114 was failed, if needed, this allowed to recover local data base 108.
According to an embodiment of the present invention; The change of preparing to hang up when client application 104 is submitted to synchronization server 110 to be used for EIS 114 when synchronous; Call submitPending () method (for example account.submitPending ()), thereby the change of hanging up is sorted to be used for transmission.According to another embodiment of the present invention, in message, send the change of said hang-up, this will hereinafter describe in detail.
According to another embodiment of the present invention, the message that is sent to synchronization server 110 comprises the change of said hang-up, also comprises original state.Through submitting suspended state and original state to, EIS 114 can avoid, deletes or solve some conflicts.Continuation is an example with previous exemplary physical, can not know other more under the news, upgrades the remaining sum of same account by two mobile devices, so that each equipment is inconsistent to the initial basis of this change.For example, in chronological order:
● equipment 1 is downloaded 100 remaining sum to account 123.
● equipment 2 is downloaded 100 remaining sum to account 123.
● equipment 1 is balance updates to 200, but do not call immediately
account.submitPending()。
● equipment 2 is balance updates to 150, and calls account.submitPending ().
● EIS receives the renewal request from equipment 2, and in the business data system with current balance updates to 150.
● equipment 1 call this moment account.submitPending () with expression original state remaining sum be 100 and hang up change to 200.
● based on the applied renewal from equipment 2, EIS compares original state remaining sum 100 and the current remaining sum of itself reporting 150.Identify and do not match, EIS can be applied to current remaining sum 150 with the remaining sum of the hang-up that receives and the difference of original state remaining sum (for example 200-100).
● equipment 1 all is synchronized to new balance 250 with equipment 2.
According to an embodiment of the present invention, under the situation that EIS 114 can not manage conflict, if or EIS 114 expectation mobile devices 102 solve should conflict, then EIS 114 can provide failure notification to client application 104.According to another embodiment of the present invention, EIS 114 also can provide successfully the notice of replay operations for client 104.
Fig. 2 A is flow process Figure 200 according to an embodiment of the present invention, that show each step; Wherein, Can operate the client application 104 of mobile device 102 through these steps; Thereby submit establishment to, upgrade or deletion (" CUD ") message, to synchronization server 110 to be used to be sent to EIS 114 to business object.This method begins to proceed to step 204 from step 202, wherein produces establishment, renewal or the deletion of MBO.According to an embodiment of the present invention, in step 206, CUD message is submitted to synchronization server 110, and this message comprises the change and the original state of hang-up.
According to an embodiment of the present invention, in step 208, client application 104 receives call back function (callback).According to an embodiment of the present invention, this call back function can represent that EIS ' 114 is to business data system 116 and the trial of playback CUD message is success or failure.The part of the client application 104 that is generated by code generator according to an embodiment of the present invention, is responsible for reception notification and this notice of response and is adjusted back registered function.According to another embodiment of the present invention, when receiving notice, the extra section registered callbacks processor of client application 104 is to receive call back function.Step 210 has been described about whether resetting the successful determination flow process.If this is reset successfully, then this method finishes in step 218.
According to an embodiment of the present invention, unsuccessful if this is reset on the other hand, then in step 212, carry out conflict and solve flow process.In above-mentioned example, when two equipment sent afoul balance updates, EIS 114 selected to solve this contradiction through in second balance updates, using said difference, is added to the number in the account with reflection.Those skilled in the relevant art will figure out, and need in different conflict scenes, solve conflict in a different manner, and this exemplary conflict solution flow process can not be applicable to all situations.Correspondingly, suitable dirigibility is provided, handles conflict suitably to allow the developer at this.
For example, do not attempt to be based on the data that slave unit 1 receives in the above-mentioned example and solve remaining sum, on the contrary, EIS 114 can refuse to use the renewal that receives for the second time, and sends the notice that failure is upgraded in expression to equipment 1.In step 212, when client application 104 is learnt this playback failure through EIS114, if needed, then can use the conflict solution of itself.
According to an embodiment of the present invention, in step 214, determine whether to resubmit CUD message.If need resubmit this message, then in step 206, carry out needed change to correct conflict and to resubmit this message.In addition, according to another embodiment of the present invention, in step 216, cancel this change from the suspended state data of local data base 108 through deletion.This method finishes in step 218.
Fig. 2 B is the process flow diagram that shows each step 250 according to an embodiment of the present invention, and wherein, through these steps, EIS 114 handles the CUD message that is received.This method begins from step 252, and proceeds to step 254, in this step, receives CUD message, and this message comprises the change and the initial state information of hang-up.
In step 256, the original state that is stored in corresponding current data and appointment in the change request in the business data system 116 is compared.Confirm in step 258 whether current data is identical with primary data.If identical, then EIS 114 clears up same original state baseline with client application 104, and can easily the change of hanging up be applied to EIS 114.Therefore, the change of in step 266, resetting and hanging up to business data system 116, and in step 268, call the successful processor of any registered playback.
On the other hand, according to an embodiment of the present invention,, then in step 260, attempt the conflict solution if current data is different with initial condition data.For example, can use the above-mentioned nonrestrictive exemplary conflict of upgrading to the conflict account balance to solve flow process.In step 262, determine whether to have solved conflict, if solved conflict, then can be in step 266 replay data, and in step 268, confirm the callback processor success.For example, select to use aforementioned solution flow process to solve remaining sum as if EIS 114, then IES 114 will have the change that enough information is directed against the 116 playback hang-up of business data system, and in step 268, send into function signal.
Yet, according to an embodiment of the present invention,, or, in step 264, generate the failure call back function of resetting if EIS 114 has been set to not attempt solve this conflict if can not manage conflict.This method finishes in step 270.
IV suspended state administrative skill
Though provide this ability of the change of hang-up to make EIS 114 can solve a plurality of conflicts with original state; And if needed; Also allow the change of the said hang-up of client application 104 reversing, provide in the process of these changes that a kind of to keep the mechanism of all information on the mobile device 102 reliably be useful through EIS 114 operations its oneself.According to an embodiment of the present invention; Point out that until EIS 114 thereby business data system 116 has been updated the change that reflection is hung up; It is final (that is submission) change that the change of the hang-up that just will in local data base 108, be produced by client application 104 is regarded as.Those skilled in the relevant art will recognize, can comprise the change to one or more attributes of the MBO that exists in the local data base 108 to the change of existing data.
Code generator this information that can be set to assist management.According to an embodiment of the present invention, when code generator moves,, in local data base 108, generate two tables for each entity.According to an embodiment of the present invention, these two tables are called " master meter (main table) " and " original state table (original state table) ".
According to an embodiment of the present invention, master meter is used to reflect the last state of the data that received by mobile device 102.According to another embodiment of the present invention, no matter when,, these data are placed in the master meter as up-to-date known data when when synchronization server 110 receives data, usually it is regarded as reflecting the current state of business data system 116.Suppose that there is the possibility of intermittent connectivity in mobile device 102, and also have last chance that mobile device 102 and synchronization server 110 is synchronous, then the data in the master meter possibly be out-of-date.Yet conflict described here solves treatment scheme, comprises if needed and possibly delete change, can consider this situation that the effective current data of will this possibility the out-of-date data conduct of mobile device 102 is handled.
In addition, no matter when, when client terminal start-up during to the change (upgrading or delete function through carrying out usually) of available data, then the original state of these data at first is stored in the original state table, and the change that will hang up is added into master meter.Hereinafter, will describe in further detail and can client application 104 be set to handle establishment, upgrade and delete the variety of way of asking with reference to figure 4,5 and 6.
Continuation is exemplified as example with aforesaid entity, can have following form based on the master meter of account entity:
Original state table based on the account entity can have following form:
Figure BDA00001833088200152
In above-mentioned exemplary master meter, according to an embodiment of the present invention, the attribute relevant with entity can be created as the row in this table.In addition, add pendingFlag, and it is used in combination with surrogateKey, with key as credit (Account table).Hereinafter territory pendingChange, replayCounter, replayPending and replayFailure will be described in further detail.The original state table is preserved initial attribute, and it is keyed in through using surrogate (surrogate key).
Be used in combination through sign (pending flag) and key in this master meter, possibly have two entities for same surrogate with surrogate and hang-up.When hang up be designated " vacation " time, these two entities are corresponding to the up-to-date download version of these data, and when hang up be designated " very " time, these two entities are corresponding to the change of hang-up.Those skilled in the relevant art recognize, exist other to be used to manage the method for suspended state and the status data of being downloaded, and shown setting is illustrative rather than restrictive.
Fig. 3 is the process flow diagram that shows each step 300 according to an embodiment of the present invention, and wherein, through these steps, the client application on the mobile device 102 is handled the synchronous event that receives from synchronization server 110.Those skilled in the relevant art will recognize, be based on disclosing of this, can several different methods handle synchronously, comprise traditional method for synchronous and this describe in further detail message based synchronously.
This method proceeds to step 304 from step 302 beginning, wherein, and the change that client application 104 receives from synchronization server 110.In step 306, confirm the change of particular type.According to an embodiment of the present invention, this can be to create 308a, upgrade 308b or delete the 308c request.
According to an embodiment of the present invention, if this request is for creating the 308a request, then in step 310a, client application 104 adds delegation through the master meter to the data that comprise new reception and handles this request.These data of representing the state of up-to-date download have the sign of the hang-up that is set to " vacation ".According to another embodiment of the present invention, if there has been entry (for example, identical surrogate in the table; It has the sign of the hang-up that is set to " vacation "); Then on the contrary, create the 308a request and can be regarded as renewal 308b, to guarantee keeping synchronous with EIS 114.The exemplary query of using said establishment 308a request can be:
Figure BDA00001833088200161
The line display of being created: the new clauses and subclauses corresponding to surrogate 1000 have the corresponding property value, and these new clauses and subclauses are not the changes of hanging up (that is, it is the state of up-to-date download).
According to an embodiment of the present invention, in step 308b, receive the request of renewal.In step 310b, using these data to have corresponding surrogate in to master meter upgrades with the row with sign of the hang-up that is set at " vacation ".According to another embodiment of the present invention, if there is not the corresponding row that will upgrade, then this renewal request is regarded as and creates 308a.Continue aforementioned exemplary, the exemplary query of using this renewal 308b request can be:
update?Account?set?balance=150
where?surrogateKey=1000?and?pendingFlag=false
In addition, when the state of download was recently represented in the renewal request that receives through synchronization server 110, this change should influence the clauses and subclauses of the sign with the hang-up that is set to " vacation ".
On the contrary, be deletion request 308c, then in step 310c, from master meter, delete corresponding clauses and subclauses as if this request.As previously mentioned, according to an embodiment of the present invention, these corresponding clauses and subclauses can be complementary and have the sign of the hang-up that is set to " vacation " with surrogate.The exemplary query of using this deletion 308c request can be:
delete?from?Account
where?surrogateKey=1000?and?pendingFlag=false
Step 312 has been explained the processing to these changes.All be regarded as the state of the up-to-date download of MBO by any change of introducing from the CUD message of EIS114 reception through synchronization server 110.Those skilled in the relevant art will recognize, the specific implementations here be preferably keep as well as possiblely with business data system 116 synchronously, but also can use additive method.This method finishes in step 314.
Client application 104 also can start CUD message, needs through synchronization server 110 data sync in this message and the business data system 116.Fig. 4 is the process flow diagram that shows each step 400 according to an embodiment of the present invention, and wherein, through these steps, client application 104 starts the request of establishment.This method proceeds to step 404 from step 402 beginning, and wherein, client application 104 calls creation operation.In step 406, respond this and call, the row of hanging up is inserted in the master meter, make its attribute be set as the expectation attribute, and the sign of hanging up is set to " very ".
Additionally, according to an embodiment of the present invention, aforesaid pendingChange territory is set to represent that this changes to creation operation.According to another embodiment of the present invention, this is set to " C " through this territory or is set to other be understood that the character string of representing creation operation accomplishes.
Client application 104 call operation (for example creation operation) and client application 104 actual submissions between this operation have produced difference.To calling corresponding to the update () method of describing in detail in the preceding text (for example account.update ()) of this operation, this method stores in the local data base 108 change as the change of hanging up into.According to an embodiment of the present invention, the submission of this operation (for example account.submitPending ()) expression: sort through 110 pairs of changes that are committed to EIS 114 of synchronization server.Before submitting to, client application 104 is optional selects this change that disappears (for example account.cancelPending ()), and its change that will hang up is simply deleted from master meter.
According to an embodiment of the present invention, when client application 104 called creation operation, the replayCounter row were set to unique nonzero value, and it is greater than any replayCounter value of in local data base 108, using before.As appreciable subsequently, this provides a kind of function, and this function is used for the responses match from EIS114 is arrived the change of hanging up.Various equivalent modifications will be recognized, the additive method that the change that existence will be hung up is associated with response message, and the use in replayCounter (and replayPending and replayFailure) territory is illustrative rather than restrictive.
Continue aforementioned exemplary, and nonrestrictive, can cause following exemplary inquiry to be performed to calling of creation operation:
Figure BDA00001833088200181
In this exemplary insertion method, in master meter, created change (it is specified by the pendingFlag territory for " very ") with hang-up of acting on behalf of key assignments 1000.The change of hanging up is marked as to " C " that create, and playback counter is made as 20001, and it is next numeral to be used in the upwards counting sequence of playback counter value in this example.
According to an embodiment of the present invention, in step 408, when by client application 104 this creation operation being committed to synchronization server 110, the request will changed is lined up to synchronization server, and synchronization server comprises the change of hang-up to be used.Then, the replayPending row are set as indication client application 104 and are waiting for the request responding from EIS 114, use following exemplary inquiry:
update?Account?set?replayPending=20001
where?surrogateKey=1000?and?pendingFlag=true
Through the replayPending territory is set, can the change of this hang-up be matched to the call back function that is received from EIS 114, success or failure.This method finishes in step 412.
Fig. 5 is the process flow diagram that shows each step 500 according to an embodiment of the present invention, and wherein, through these steps, client application 104 starts to upgrade to be operated.In step 504, client application 104 calls and upgrades operation.During the creation operation in using preceding text, described in detail, this causes in master meter, inserting the row of hanging up.In one embodiment, this accomplishes through using following exemplary inquiry:
Figure BDA00001833088200191
It is 200 effect that this operation has balance updates with account ID 123.Yet, be not the state of up-to-date download in the change master meter, but create suspended state version (pendingFlag=true), use identical surrogate.At this, this change is labeled as to " U " that upgrade, and provides next unique replayCounter value 20002.
Yet, also need preserve the original state of these MBO data, make it in conflict solves, to be used.For this reason, exemplary query can for:
insert?into?Account_os(surrogateKey,accountId,customerId,balance)
values?(1000,″123″,″Jim″,100)
Through in the original state table, preserving original state, when carrying out renewal, keep information about the original state of MBO.Although after carrying out above-mentioned inquiry; Insert in the original state table the MBO data probably with master meter in the status data that is downloaded identical; Other incidents of the status data that is downloaded can take place to change, the data of for example crossing from synchronization server 110 down loading updatings.In such incident, still need know this original state, the renewal of this hang-up is based on this original state.
According to an embodiment of the present invention, if the MBO that upgrades has had relevant suspended state, then upgrade the row of existing hang-up, rather than insert new row.In addition, the aforementioned original state that is created will be retained, with the basis as the change that is used for hang-up subsequently.Be used for this renewal exemplary query can for:
update?Account?set?balance=200,pendingChange=″U″,replayCounter=20002
where?surrogateKey=1000?and?pendingFlag=true
According to an embodiment of the present invention, in step 510, client application 104 is submitted the renewal operation of hanging up to.According to an embodiment of the present invention, like above-mentioned creation operation, will change request and line up to synchronization server, this synchronization server comprises the change of hang-up to be used.Then, replayPending row are set as indication client application 104 and are waiting for and use following exemplary inquiry to from EIS 114 request responding:
update?Account?set?replayPending=20002
where?surrogateKey=1000?and?pendingFlag=true
Through the replayPending territory is set, can be once more the change of this hang-up be matched to the call back function that is received from EIS 114, success or failure.This method finishes in step 514.
Fig. 6 is the process flow diagram that shows each step 600 according to an embodiment of the present invention, and wherein, through these steps, client application 104 starts deletion action.According to another embodiment of the present invention, the characteristic of deletion action is similar in many aspects upgrades operation, and different is that this operates in " D " that is marked as in the pendingChange territory to deletion.
When using renewal, in step 604, client application 104 calls deletion action.Consequently, the change that client application 104 will be hung up is inserted in the master meter, and playback counter suitably is set in step 606.For this reason, exemplary inquiry can for:
Figure BDA00001833088200201
Figure BDA00001833088200211
Likewise, in step 608, will insert in the original state table corresponding to the data of original state.For this reason, exemplary inquiry can for:
insert?into?Account_os(surrogateKey,accountId,customerId,balance)
values(1000,″123″,″Jim″,100)
According to an embodiment of the present invention, if the MBO that is deleted has had relevant suspended state, the row that then upgrades existing hang-up is with the indication deletion, rather than the insertion newline.In addition, the aforementioned original state that is created will be retained, with the basis as the change that is used for hang-up subsequently.For this reason, the exemplary inquiry of this renewal can for:
update?Account?set?pendingChange=″D″,replayCounter=20003
where?surrogateKey=1000?and?pendingFlag=true
According to an embodiment of the present invention, in step 610, client application 104 is submitted deletion action to, is used for being handled through synchronization server 110 by EIS 114.According to an embodiment of the present invention, at this, as previously mentioned, the request will changed is lined up to synchronization server, and this synchronization server comprises the change of hang-up to be used.Then, replayPending row are set as indication client application 104 and are waiting for and use following exemplary inquiry to from EIS 114 request responding:
update?Account?set?replayPending=20003
where?surrogateKey=1000and?pendingFlag=true
Through the replayPending territory is set, can be once more the change of this hang-up be matched to call back function, success or the failure that receives from EIS114.This method finishes in step 614.
Fig. 7 is the process flow diagram 700 that each step of explanation is shown according to an embodiment of the present invention, wherein, through these steps client application 104 is set to the replay operations call back function is responded.Various equivalent modifications will figure out, and use other Notification Methods except that call back function also can produce similar effects, be exemplary and nonrestrictive at the call back function shown in this.
According to an embodiment of the present invention, this method begins from step 702, and proceeds to step 704, and wherein client application 104 is apprised of the result of replay operations.As stated, it can be the form of call back function.Process flow diagram 250 with reference to figure 2B has further gone through in the playback at EIS 114 places and the generation of the call back function that is produced hereinbefore.
In step 706, confirm the whether success of playback of the change of specific hang-up.According to an embodiment of the present invention, the call back function that receives on the successful callback processor is separated with these two steps of call back function on the callback processor that takes defeat, thereby handle.
If replay operations success, then this method moves to step 708, wherein the row of the hang-up of correspondence is deleted from master meter.According to an embodiment of the present invention, have only when being complementary with the replayPending value of relevant replayCounter value with the row of hanging up of successfully resetting, just taking place should deletion.According to another embodiment of the present invention,, then ignore whole notice, to guarantee only to handle response to the operation of last submission if do not match.Be used to delete hang-up row exemplary query can for:
delete?from?Account
where?surrogateKey=1000?and?pendingFlag=true
In addition, according to an embodiment of the present invention, in step 710, the corresponding initial row of deletion from the original state table.The exemplary query that is used to delete this original state row can be:
delete?from?Account_os
where?surrogateKey=1000
According to an embodiment of the present invention, in step 712, notify successful callback processor.According to an embodiment of the present invention, provide by code generator and incorporate into by the developer and to carry out steps outlined in process flow diagram 700 in the code in the client application 104.The developer of client application 104 can have extra operation, its whether should be performed depends on success or the failure, and registrable successful or the failure callback processor, to carry out any extra processing.If registered such callback processor, then in step 712, notify, and in step 718, transfer control to be used for extra process this callback processor.
According to an embodiment of the present invention, on the contrary, if this replay operations failure, this method moves to step 714, and wherein, more changing one's profession of the hang-up in the renewal master meter should failure with reflection.As the success of resetting, only just carry out this operation when existence is mated between the relevant replayCounter value when the replayPending value of the row of hanging up with successfully resetting.According to another embodiment of the present invention,, then ignore whole notice, to guarantee only to handle response to the operation of last submission if do not match.Correspondingly, be used to upgrade hang-up row exemplary query content can for:
update?Account?set?replayPending=0,replayFailure=20001
where?surrogateKey=1000?and?pendingFlag=true
According to an embodiment of the present invention, in step 716, if registered a callback processor, then notice is used for the failure callback processor of client application 104.Then, in step 718, this is adjusted back and carries out any extra processing by client application 104 responses.This method finishes in step 720.
V query processing technology
Above-mentioned being used for keeps the method (wherein can resident download state) of suspended state to allow same MBO that two existing row can be arranged at same master meter, for example when renewal that has hang-up or deletion action.Correspondingly, must make explanations to possible duplicate to the inquiry that master meter write.
For example, if existing MBO record is upgraded, then except the change that does not have hang-up, the developer of client application 104 can meet with following difficult point:
Figure BDA00001833088200231
At this moment, if the number of the account that user number 123 is searched in the same inquiry of operation, it will return the change of download state and hang-up, only if developer's task is for solving this difficult point.
var?newAccounts=Account.findByCustomer(″123″);
assert newAccounts.length==oldAccounts.length;
Only if carry out some background process, thereby before the program by developer's operation receives Query Result, filter this Query Result, otherwise above-mentioned statement will be lost efficacy.And it is responsible for solving the differentiation problem between the change of download state row and hang-up by the developer, not as handling this problem pellucidly.
According to an embodiment of the present invention, use code generator to rewrite the name inquiry, can eliminate duplicate to guarantee the result who inquires about execution.According to another embodiment of the present invention, this accomplishes through the statusline that returns row to result's hang-up (if existence) or return download.
This permission is carried out extra change to the row that has suspended state, but does not rely on that suspended state data, does not therefore also rely on the original state corresponding to that suspended state.Through following this method, in afterwards renewal and deletion (wherein having the change of hanging up), do not need to create once more original state, because they in essence and do not rely on the identical original state of hanging up with first of change.
Use the name inquiry Account.findByCustomer of aforementioned discussion:
select?a.*from?Account?a?where?a.customerId=:id
This execution can be returned two row, the wherein firstAccount.accountId of accountId=preceding example.Delegation has pendingFlag=false, and another row has pendingFlag=true.Under these circumstances, for above-mentioned reasons, desired result is the row with pendingFlag=true.Therefore, can rewrite this inquiry through using the correlated subquery to the original state table, for example, example is following:
Figure BDA00001833088200241
Realize above-mentioned query rewrite through using SQL to connect grammer outward.Replacedly, can generate correlated subquery to master meter rather than original state table, but, can raise the efficiency through using above-mentioned inquiry because the row that the original state table is comprised possibly be less than master meter.Various equivalent modifications will be recognized, have a lot of other such rewritings, only exemplarily and without limitation show above-mentioned inquiry.
According to another embodiment of the present invention, also can filter the dynamic queries of using with master meter, the state of wherein downloading and the change of hang-up can coexist.In a non-limiting example embodiment; The developer of client application 104 can use the dynamic queries generation module to specify dynamic queries; As " query.where (AttributeTest.equal (attribute; testValue)) ", with the property value in test query " where " sentence.According to another embodiment of the present invention, the generated query that is produced is designed to select the state of corresponding change of hanging up (if existence) or download automatically, and does not therefore need initiatively to rewrite this inquiry.
VI is message based synchronously
It is aforementioned that be sent to EIS114 and be sent to the CUD message of client application 104 by EIS 114 through synchronization server 110 through synchronization server 110 by client application 104 can be through message system communication described here.This message synchronization method is designed to support the suspended state administrative skill described in the preamble, and is designed to effectively use client resource to be connected with network.Yet various equivalent modifications will recognize that message technology described here is for the adaptability of other environment, and the message based synchronous use to having the suspended state management that is provided is exemplary and nonrestrictive.
Message based (" MBS ") synchronously provides the synchronous ability of carrying out asynchronously.To this means that for example, mobile device 102 need be in order not carrying out the moment of waiting until that fully synchronously and always itself and synchronization server 110 connect, but to receive message or send message from synchronization server 110 off and in available connecting to it.
According to an embodiment of the present invention, utilize Jave messenger service (" JMS ") as communication port.According to another embodiment of the present invention, this message is the message of javax.jms.TextMessage type, and wherein content of text is JavaScript object symbol (" JSON ").Various equivalent modifications will figure out, and can utilize other means of communication, and be exemplary and nonrestrictive in the use to JSON on JMS that this provides.
According to an embodiment of the present invention, message is sent to JMS formation (for example mbs.N), and wherein N is not more than the quantity of effective formation in the synchronization server 110.Can use a plurality of formations, with the synchronization request that allows synchronization server 110 to handle from a plurality of clients.Said formation is set to guarantee at least once transmit in proper order.It is obvious that for various equivalent modifications, comes application message to cause detrimental effects through repeatedly using above-mentioned suspended state administrative skill, and therefore it has guaranteed at least once to transmit more practically, but not accurately once transmit.
According to an embodiment of the present invention, said message is designated as and is used for client to server or serves the communication to client.Each message is specified one group of header, and header definition value to be sent combines with this message.It is obvious that concerning various equivalent modifications, is illustrative rather than restrictive in accurate message shown in this and said header.For example, the employed header of message can be greater or less than at the header shown in these illustrative embodiments, or uses not header on the same group fully.In addition, although be intended to use through JMS at header shown in this and message, various equivalent modifications will figure out, and can in other information transfer devices, use these technology.
The usage of i JMS header
Figure BDA00001833088200261
Ii is from the message of client to server
Figure BDA00001833088200272
Figure BDA00001833088200281
Iii is from the message of server to client
Figure BDA00001833088200282
Some above-mentioned MBS message can be designed to failure message.According to an embodiment of the present invention, the MBS failure message uses the numbering plan (number scheme) based on the HTTP status code, with misdirection.For example, code 401 indications: client-requested has invalid certificate perhaps owing to some other reasonses make authentification failure.Code 403 indications: client-requested has effective certificate, but the user does not have the permission of access request resource (for example routine package, MBO or operation).Error code 404 indications: attempt non-existent routine package of visit or MBO.Code 500 is used for indication: unspecified mistake.Those skilled in the relevant art will recognize, can use a plurality of error coded schemes, and the such scheme that is provided be exemplary and nonrestrictive.
According to an embodiment of the present invention; As implied above; Under other possible situation; When synchronization server 110 sends replayResult, replayFailed, searchResult or searchFailed message, can comprise daily record, this daily record can be encoded as the JSON array of log record alternatively.According to another embodiment of the present invention, each log record is encoded as the JSON object, and it comprises following territory:
Figure BDA00001833088200302
For example, be included in the daily record in the replayResult message content can for:
[{″level″:″warn″,
″message″:″The?name?was?too?long?so?I?truncated?it.″,
″timestamp″:″2001-01-01-12:34:56.789″}]
Be included in another the exemplary daily record in the replayFailed message content can for:
[{″level″:″error″,
″message″:″The?name?was?too?long?so?I?rejected?it.″,
″timestamp″:″2001-01-01-12:34:56.789″}]
According to an embodiment of the present invention, log information is retained in the local data base 108, uses for client application 104.For example, client application 104 can be selected through equipment output 106 error message to be exported this user.According to another embodiment of the present invention, log information is retained in the local data base 108 always, is deleted by client application 104 until it.
When synchronization server 110 receives the message from client application 104, confirm the uniqueness of this message through the combination of client id (above-mentioned " cid ") and message id (above-mentioned " id ").As above indicated, cid is the unique identifier of the local data base (being only to local data base 108 for example) that is used for particular clients.Various equivalent modifications will figure out, and according to configuration, the uniqueness of cid can be bound or bind with equipment itself with other entities in the mobile device 102.According to an embodiment of the present invention, each local data base of each mobile device 102,112a-c all is assigned itself unique cid.In a non-restrictive illustrative embodiment of the present invention, cid can be universal unique identifier (" UUID "), but various equivalent modifications will recognize, also can use other identifiers technology.
According to an embodiment of the present invention, the message id that in header tabulation, simply is shown id is by the selected unique ID that is used for this message of client.According to another embodiment of the present invention, when MBS being used for permanent state when management based on above-mentioned technology, the id territory corresponding to the replayPending value of the change line correlation of hanging up.When these message of synchronization server 110 response, it will use same value to reply being used to as itself ID, thereby permission client application 104 is associated the change of replying with hanging up through above-mentioned technology.
In order further to support transmission at least once, synchronization server 110 and must guarantee that from the EIS 114 that client application 104 receives message message can not be reset twice.Fig. 8 is the process flow diagram that shows each step 800 according to an embodiment of the present invention, and wherein, through these steps, synchronization server 110 or EIS 114 are set to detect and abandon duplicate message.According to an embodiment of the present invention, on synchronization server 110, carry out Message Processing, make and before receiving, abandon any duplicate by EIS 114.
According to an embodiment of the present invention, this method begins from step 802, and proceeds to step 804, wherein receives the message of specifying cid and id.According to another embodiment of the present invention, in step 806, determined whether to receive this combination of cid and id.According to an embodiment of the present invention, the cid that is received and id and the cid and the right tabulation of id that receive are before compared, confirm thus.
In step 808, confirm whether this message is new, or whether be received before it.If be received before, this method proceeds to step 814, wherein ignores this message, and this method finishes in step 816.Yet,, in step 810, handle its content if this message is new.Using MBS to carry out under the situation of permanent state management, this message is generally the instruction that is sent to server from client application 104, and with the change of resetting to business data system 116, and therefore this message can be processed in step 810.
For guaranteeing that this new message is followed the trail of, cid and id with this message in step 812 add in the tabulation of the message that receives before.According to an embodiment of the present invention, these cid and id are in the cache database that is stored in synchronization server 110.Then, this method finishes in step 816.
According to the embodiment of the present invention, can be used for replying the communication that started by client application 104 being provided from most of type of messages of the communication of synchronization server 110 to client application 104.When in business data system 116, change taking place, EIS 114 also possibly send the renewal of the MBO that is correlated with through synchronization server 110.Hereinbefore, the type of message that is used for handling this communication illustrates with " import " message at the table of " from the message of server to client ".Import message is sent to client application 104 by synchronization server 110, to notify that client has taken place in EIS 114 in application program and client application 104 interested one or more changes.
According to an embodiment of the present invention, for supporting this function, has corresponding cache table (or " Virtual table ") in the cache database of each MBO in synchronization server 110.The attribute information of the MBO that the storage of this cache table is used for obtaining from business data system 116, and help the information of data sync to local data base 108.Example before following closely, exemplary cache table can for:
Figure BDA00001833088200331
This cache table comprises the territory, these territories be used to indicate the last change undertaken by 114 couples of MBO of EIS with and whether in business data system 116, deleted.
Fig. 9 is the process flow diagram that shows each step 900 according to an embodiment of the present invention, wherein, through these steps, is different from MBS, can carry out synchronous (" RBS ") based on duplicate through using cache table.This method allows client application 104 requests and remains on the synchronization of data in its cache table by synchronization server 110.According to another embodiment of the present invention, this method is from step 902 beginning and move to step 904, wherein, and for MBO creates cache table, for example aforesaid cache table.
According to an embodiment of the present invention, in step 906, generate and download cursor.Downloading cursor is a kind of inquiry of operating to cache table, to confirm the last difference after synchronously from client application 104.For example, download cursor content can for:
select?a.*from?Account_vt?a
where?a.lastModified>=:lastDownload
At this, client application 104 is being asked from last all accounts that are modified afterwards synchronously of obtaining client application 104.The lastDownload parameter is remembered by client application 104 and is used as the timestamp that is generated before for it at the upper level synchronization line of client by this cache database.Correspondingly, in above-mentioned example, with only being loaded in the account of this last synchronization line down for more correcting one's mistakes by EIS 114 afterwards.
Correspondingly, in step 908, receive synchronization request, and in step 901, carry out suitable download cursor from client application 104.According to an embodiment of the present invention, the result that will inquire about then offers client application 104, is used to store into local data base 108 as download state.This method finishes in step 914.
Not to rely on client application 104 to obtain data in synchronization; But when the time by EIS 114 establishments, renewal or deleted data; Be pushed into client application 104 under the result who allows synchronization server 110 to be correlated with, to be stored in the local data base 108, this is favourable.According to an embodiment of the present invention, client application 104 can be given routine package with subscribing to specify, and specifies the entity of giving in it thus.Exemplarily and without limitation, client application 104 will indicate it to hope that the subscribe message of subscribing to which routine package sends to synchronization server 110.
After receiving this subscribe message, synchronization server 110 is to each the entity set-up entity subscribes in this routine package.Those skilled in the relevant art will recognize, have other suitable means that are used to discern subscription, and shown method is exemplary and nonrestrictive.
Use by synchronization server, be used to keep the exemplary table of entity subscribes to be defined as:
Figure BDA00001833088200341
Figure BDA00001833088200351
The entity title is specified the entity by client subscription relevant with Customer ID.PushTo value given client end receives the title of the message queue of import message from synchronization server 110.According to another embodiment of the present invention, be different from aforementioned exemplary, at this, the lastDownload time is retained in the EntitySubscription table itself.
Correspondingly, if client C1 subscribed to the routine package that comprises the account entity, then synchronization server 110 can be through the subscription of following program creation example:
In this example, the lastDownload time is set as certain and serves as the function of downloading was never carried out in expression to this subscription value.
Figure 10 is the process flow diagram that shows each step 1000 according to an embodiment of the present invention; Wherein, Through these steps; Can cache table and download cursor be used with entity subscribes (entity subscription), import message is provided effectively with the client application 104 that upgrades to request.For example, under the situation of the client that has the entity subscribes that is used for example account entity in a large number (for example, 10000 clients), synchronization server 110 can confirm the timetable of more correcting one's mistakes to be provided for which client through using import message.Various equivalent modifications will figure out, and exist multiple reason to make different clients as synchronized with each other at one time, have identical data, and these reasons comprise intermittently and connecting.If some subclass request import message of client only, then this message being sent to the process operand of all 10000 clients can be very big.
Correspondingly, according to an embodiment of the present invention, this method is from step 1002 beginning and proceed to step 1004, wherein, and for MBO creates like the cache table shown in preceding.According to another embodiment of the present invention, also, in step 1006, generate the corresponding cursor of downloading as shown in preceding.
According to an embodiment of the present invention, in step 1008, from download cursor, obtain the notice inquiry.According to another embodiment of the present invention, from download cursor, obtain the notice inquiry automatically.The exemplary notice inquiry of obtaining from above-mentioned download cursor and entity subscribes can for:
Figure BDA00001833088200361
The result of this notice inquiry is used for confirming that should subscribe to operation to which downloads cursor.In above-mentioned exemplary notice inquiry, this causes identifying all subscription with at least one account of more correcting one's mistakes.
Those skilled in the relevant art will figure out, and according to an embodiment of the present invention, can carry out all the other steps whenever the moment of expectation synchronous event simultaneously in configuration phase execution in step 1004,1006 and 1008.Therefore needn't when attempting the exercise notice inquiry, all create buffer table at every turn, generate and download cursor and obtain the notice inquiry, as long as and need it to be retained in the synchronization server 110 always.
According to an embodiment of the present invention, at this moment, will be stored as " timeBefore " current time.This is to when reference frame takes place to provide synchronously.Therefore, after this time, any more new capital that produces by EIS114 will by subsequently synchronization acquistion to, yet if will elect certain RP after a while lock in time as, these renewals also can be dropped.
According to an embodiment of the present invention, then, exercise notice in step 1010.Can come exercise notice with preset time interval (for example, 10 seconds the notice time interval) or based on other timetable or Initiated Mechanism.
In step 1012, for each result of notice inquiry, lastDownload=s.lastDownload moves the download cursor through the operation parameter value.According to an embodiment of the present invention, this expression, downloading cursor will be as last download time, and this last download time obtains from entity subscribes.Through this mechanism, client application 104 provides last download time with not responsible, because last download time obtains from entity subscribes.
According to an embodiment of the present invention, for each result of notice inquiry, carrying out the result who downloads cursor is one group of result's row, this as a result row comprise renewal, said renewal should be imported in the local data base 108 of mobile device 102.Correspondingly, in step 1014, for each row that produces, import message is sent to corresponding formation, and with the subscription that is used to be correlated with, this formation is defined by s.pushTo under above-mentioned exemplary cases.
According to an embodiment of the present invention, in step 1016, the last download time of each subscription is set as the timeBefore value of before the exercise notice inquiry, being obtained.This allows in that carry out in the future should the notice inquiry, thus contingent any change be captured in the term of execution, and any change that after execution, takes place.This method finishes in step 1018.
VII imports (import) message in batch
Above-mentioned import message can not comprise mass data.In addition, specific client application 104 can receive a plurality of import message simultaneously, and this is to be caused by a plurality of subscription that have by the synchronous event of notifying querying triggering.Consequently, in order to maximize the use to communication port, it is favourable sending a plurality of import message together in batches.Yet any this batch processing all need be considered the storer and other restrictions of mobile device 102.
According to an embodiment of the present invention, a kind of solution that target max cap. size is set to import message is provided.Figure 11 is the process flow diagram that shows each step 1100 according to an embodiment of the present invention, wherein, through these steps, batch treatment import message together.Various equivalent modifications will figure out, and this technology can be used for any MBS message of batch processing, but exemplarily and without limitation explains with reference to import message.
This method is from step 1102 beginning and proceed to step 1104, wherein, receives or discerns or obtain by the message of sending in batch.In step 1106, confirm in the message buffer, whether there is the additional space that is used for next message.If exist, then in step 1108, next message be added into buffer zone.If do not exist, then this message is not added into this buffer zone.Yet in step 1110, it is empty to confirm whether this buffer zone is still.This means that this next one message is greater than target max cap. size.If like this, in any case because all must send this message the time, in any case then all this message is added into this buffer zone.In step 1112, send message in batch, and this method finishes in step 1114 from buffer zone.In case of necessity, this method is recycled and reused for each residue message of treating to send in batch.
The exemplary Java code that is used to implement this technology can be:
Figure BDA00001833088200381
VIII is synchronous by startup of server
According to an embodiment of the present invention, aforesaid, through using cache table and download cursor, be possible based on synchronous (" RBS ") of duplicate.Client application 104 can send synchronization request to start synchronous event to synchronization server 110, and during this time, synchronization server sends to client application 104 and carries out the result who downloads cursor.
Further described a kind of new technology of using the notice inquiry hereinbefore, its generation is used for being sent to from synchronization server 110 the import message of client application 104, and this permission will influence the change of subscribing to and regularly push to client application 104.
On the other hand; By startup of server is a kind of new technology synchronously; It has combined the element of RBS and MBS for synchronization server 110; This has used the technology of obtaining from MBS at first, needs the synchronous client application 104 of request with notice, and this has used the technology of obtaining from RBS at first.
Figure 12 is the process flow diagram that shows each step 1200 according to an embodiment of the present invention, wherein, through these steps accomplish by startup of server synchronously.According to an embodiment of the present invention, this method is from step 1202 beginning and proceed to step 1204, creates cache table therein, proceeds to step 1206 then, creates therein and downloads cursor.This cache table and the establishment of downloading cursor with described in detail hereinbefore consistent by RBS and the employed method of MBS scheme.
In step 1208, obtain the notice inquiry according to the technology of discussing hereinbefore about MBS.As in the technical discussion of MBS, noticed because synchronization server 110 can keep cache table as required, download cursor and notice inquiry, needn't be in each synchronous event execution in step 1204,1206 and 1208.
According to an embodiment of the present invention, in step 1210, the exercise notice inquiry.Yet,, in step 1214, synchronization request rather than import information are sent to client application 104 according to another embodiment of the present invention.This message is pass on to client application 104: it should be carried out synchronously according to the RBS technology.Correspondingly, according to of the present invention one extra embodiment, in step 1215, receive synchronous operation from client application 104.Then, this method finishes in step 1216.
IX exemplary computer system embodiment
Can make up the each side of embodiment of the present invention by software, firmware, hardware or its.Figure 13 shows an exemplary computer system 1300, and the present invention or its part can be implemented as computer-readable code therein.For example, can in system 1300, implement by the method shown in the process flow diagram 1200 of the process flow diagram 1100 of the process flow diagram 1000 of the process flow diagram 900 of the process flow diagram 800 of the process flow diagram 700 of the process flow diagram 600 of the process flow diagram 500 of the process flow diagram 400 of the process flow diagram 300 of the process flow diagram 250 of flow process Figure 200 of Fig. 2 A, Fig. 2 B, Fig. 3, Fig. 4, Fig. 5, Fig. 6, Fig. 7, Fig. 8, Fig. 9, Figure 10, Figure 11 and Figure 12.According to this exemplary computer system 1300 various embodiment of the present invention is described.After reading this description, how using other computer systems and/or computerized algorithm to come embodiment of the present invention will be conspicuous to persons skilled in the relevant art.
Computer system 1300 comprises one or more processors, and for example processor 1304.Processor 1304 can be application specific processor or general processor.Processor 1304 is connected to the communications infrastructure 1306 (for example bus or network).
Computer system also comprises primary memory 1308, is preferably random-access memory (ram), and also can comprise supplementary storage 1310.Supplementary storage 1310 for example can comprise hard disk drive 1312, mobile storage driver 1314 and/or memory stick.Mobile storage driver 1314 can comprise floppy disk, tape drive, CD drive, flash memory or other.Mobile storage driver 1314 reads and/or writes mobile storage unit 1318 in known manner.Mobile storage element 1318 can comprise the floppy disk that can read and/or write by the mobile storage driver, tape, CD etc.To figure out like various equivalent modifications, mobile storage element 1318 comprises having the computer-usable storage medium that is stored in computer software and/or data wherein.
In interchangeable embodiment, supplementary storage 1310 can comprise that permission computer program or other instructions are written into other the similar devices in the computer system 1300.Such device for example can comprise mobile storage element 1322 and interface 1320.The example of such device can comprise program cartridge and cartridge interface (for example in video game device, using), removable memory chip (for example EPROM or PROM) and associated socket, and other allow software and data to be sent to the mobile storage element 1322 and interface 1320 of computer system 1300 from mobile storage unit 1322.
Computer system 1300 also can comprise communication interface 1324.Communication interface 1324 allows software and data between computer system 1300 and external unit, to transmit.Communication interface 1324 can comprise modulator-demodular unit, network interface (Ethernet card), COM1, PCMCIA slot and card etc.The software that transmits through communication interface 1324 and data can be perhaps other signal forms that can be caught by communication interface 1324 of electricity, electromagnetism, optical signalling.These signals are provided to communication interface 1324 through communication path 1326.Communication path 1326 carrying signals, and can implement through using electric wire or cable, optical fiber, telephone wire, mobile phone link, RF link or other communication ports.
In this article, term " computer program medium " and " computer usable medium " are generally used for referring to for example mobile storage element 1318, mobile storage element 1322 and are installed in the medium of the hard disk in the hard disk drive 1312.Be carried on the logic that signal on the communication path 1326 also can be implemented in this description.Computer program medium and computer usable medium also can refer to storer, for example primary memory 1308 and supplementary storage 1310, and it can be storing semiconductor (for example DRAM etc.).These computer programs are to be used for software 1300 instrument to computer system being provided.
Computer program (being also referred to as computer control logic) is stored in primary memory 1308 and/or the supplementary storage 1310.Computer program also can be received through communication interface 1324.When being performed, these computer programs make that computer system 1300 can be like said ground embodiment of the present invention.Especially; When being performed; These computer programs can be so that the step of processor 1304 embodiment of the present invention, and said step is for for example hereinbefore by the step in the method shown in the process flow diagram 1200 of the process flow diagram 1100 of the process flow diagram 1000 of the process flow diagram 900 of the process flow diagram 800 of the process flow diagram 700 of the process flow diagram 600 of the process flow diagram 500 of the process flow diagram 400 of the process flow diagram 300 of the process flow diagram 250 of flow process Figure 200 of Fig. 2 A, Fig. 2 B, Fig. 3, Fig. 4, Fig. 5, Fig. 6, Fig. 7, Fig. 8, Fig. 9, Figure 10, Figure 11 and Figure 12.Correspondingly, these computer programs are represented the controller of computer system 1300.Using under the software implementation situation of the present invention, this software can be stored in the computer program and can be loaded in the computer system 1300 through using mobile storage driver 1314, interface 1320, hard disk drive 1312 or communication interface 1324.
The invention still further relates to and comprise the computer program that is stored in the software on any computer usable medium.When in one or more data processing equipments, carrying out, such software cause data treatment facility such as this description ground operation.Embodiment of the present invention has utilized present any computing machine known or that can know in the future can use or readable medium.The example of computer usable medium includes but not limited to main storage device (for example any type of RAS); Auxiliary storage device (for example hard disk drive, floppy disk, CD ROM, ZIP dish, tape, magnetic storage apparatus, optical storage apparatus, MEMS, nanometer technology memory device etc.); And communication media (for example, wired and cordless communication network, LAN, wide area network, internet etc.).
The X conclusion
Although described numerous embodiments of the present invention hereinbefore, should be understood that it only exemplarily and without limitation shows these embodiments.Various equivalent modifications will be understood, and under situation about not breaking away from by the appended the spirit and scope of the present invention that claim limited, can produce the change on various ways and the details.Should be understood that and the invention is not restricted to these examples.The present invention can be used for parts any as that move saidly.Correspondingly, width of the present invention and scope can't help any above-mentioned illustrative embodiments and are limited, and only are defined according to appended claim and its equivalent.

Claims (20)

1. method, it comprises:
The notice inquiry that execution is obtained from the download cursor that is used for business object is with the subscription of identification renewal;
Subscription to said renewal moves said download cursor, to generate result's row; And
In input message, said row as a result is sent to client device.
2. the method for claim 1 also comprises:
Generation is used for the cache table of said business object, wherein, moves said download cursor and notice inquiry to said cache table.
3. the method for claim 1 also comprises:
To the subscription of said renewal, upgrade last download time.
4. the method for claim 1, wherein said notice inquiry is set to subscribe to the subscription of confirming said renewal based on identification, and wherein, the entity of at least one renewal is quoted in said subscription.
5. the method for claim 1 also comprises:
Create batch message, said batch of message comprises the input message set, and said establishment batch message comprises:
Confirm whether buffer zone has the exceptional space that is used for from the next one input message of said input message set,, then said next input message is added into said buffer zone if there is additional space;
When having additional space, repeat above-mentioned definite step; And
Send said batch of message.
6. the method for claim 1 also comprises:
Synchronization request is sent to client device.
7. computer-readable medium, it has the computer executable instructions that is stored thereon, if carried out by computing equipment, then said computer executable instructions causes that said computing equipment implements the method that comprises the steps:
The notice inquiry that execution is obtained from the download cursor that is used for business object is with the subscription of identification renewal;
Subscription to above-mentioned renewal moves said download cursor, to generate result's row; And
In input message, said row as a result is sent to client device.
8. computer program as claimed in claim 7, said method also comprises:
Generation is used for the cache table of said business object, wherein, moves said download cursor and notice inquiry to said cache table.
9. computer program as claimed in claim 7, said method also comprises:
To the subscription of said renewal, upgrade last download time.
10. computer program as claimed in claim 7, wherein,
Said notice inquiry is set to subscribe to the subscription of confirming said renewal based on identification, and the entity of at least one renewal is quoted in said subscription.
11. computer program as claimed in claim 7, said method also comprises:
Create batch message, said batch of message comprises the input message set, and said establishment batch message comprises:
Confirm that whether buffer zone has the exceptional space that is used for from the next one input message of said input message set, if there is additional space, then imports message with the next one and is added into said buffer zone;
When having additional space, repeat above-mentioned definite step; And
Send said batch of message.
12. computer program as claimed in claim 7, said method also comprises:
Synchronization request is sent to client device.
13. a system, it comprises:
Storer, it is set to memory module, and said module comprises:
Execution module, it is set to carry out the notice inquiry of obtaining from the download cursor that is used for business object, with the subscription of identification renewal,
The operation module, it is set to move said download cursor to the subscription of said renewal, goes to generate the result, and
Sending module, it is set in input message, said row as a result is sent to client device;
Said system also comprises:
One or more processor, it is set to handle said module.
14. a method, it comprises:
Receive message from client, said message comprises client identifier, message identifier and playback instructions;
Search corresponding to before the client identifier and the right tabulation of message identifier of the message that receives, to confirm whether be received before corresponding to the said message of said client identifier and message identifier;
In case confirm not to be received before the said message, then handle said message; And
With client identifier and message identifier add to said corresponding to before in the right tabulation of client identifier and the message identifier of the message that receives.
15. method as claimed in claim 14 also comprises:
To the business system said playback instructions of resetting.
16. method as claimed in claim 14, wherein, through order transmit said message and use said corresponding to before the client identifier and the right tabulation of message identifier of the message that receives, guarantee at least once to transmit.
17. a computer-readable medium, it has the computer executable instructions that is stored thereon, if carried out by computing equipment, then said computer executable instructions causes the method that said computing equipment enforcement comprises the steps:
Reception is from the message of client, and said message comprises client identifier, message identifier and playback instructions;
Search corresponding to before the client identifier and the right tabulation of message identifier of the message that receives, to confirm whether be received before corresponding to the said message of said client identifier and message identifier;
In case confirm not to be received before the said message, then handle said message; And
With said client identifier and message identifier add to said corresponding to before in the right tabulation of client identifier and the message identifier of the message that receives.
18. computer program as claimed in claim 17, said method also comprises:
To the business system said playback instructions of resetting.
19. computer program as claimed in claim 17, wherein, through order transmit said message and use said corresponding to before the client identifier and the right tabulation of message identifier of the message that receives, guarantee at least once to transmit.
20. a system, it comprises:
Storer, said storer is set to preserve module, and said module comprises:
Receiver module, it is set to receive message from client, and said message comprises client identifier, message identifier and playback instructions,
Search module, its be set to search for corresponding to before the client identifier and the right tabulation of message identifier of the message that receives, confirming whether be received before corresponding to the said message of said client identifier and message identifier,
In case confirm not to be received before the said message, then handle said message, and
Add module, its be set to said client identifier and message identifier add to said corresponding to before in the right tabulation of client identifier and the message identifier of the message that receives;
Said system also comprises:
One or more processor, it is set to handle said module.
CN201080060198.2A 2009-12-30 2010-12-14 Message based synchronous method and system thereof for mobile service object Active CN102741829B (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29099009P 2009-12-30 2009-12-30
US61/290,990 2009-12-30
US12/813,104 US9336291B2 (en) 2009-12-30 2010-06-10 Message based synchronization for mobile business objects
US12/813,104 2010-06-10
PCT/US2010/060293 WO2011090599A2 (en) 2009-12-30 2010-12-14 Message based synchronization for mobile business objects

Publications (2)

Publication Number Publication Date
CN102741829A true CN102741829A (en) 2012-10-17
CN102741829B CN102741829B (en) 2016-06-15

Family

ID=44307452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080060198.2A Active CN102741829B (en) 2009-12-30 2010-12-14 Message based synchronous method and system thereof for mobile service object

Country Status (3)

Country Link
EP (1) EP2519890A4 (en)
CN (1) CN102741829B (en)
WO (1) WO2011090599A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109754204A (en) * 2018-12-10 2019-05-14 任飞翔 Block synchronous method and device
CN111177254A (en) * 2019-12-05 2020-05-19 武汉达梦数据库有限公司 Method and device for data synchronization between heterogeneous relational databases

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795910B2 (en) * 2013-12-31 2020-10-06 Sybase, Inc. Robust communication system for guaranteed message sequencing with the detection of duplicate senders
CN111880949B (en) * 2020-07-28 2024-03-08 北京奇艺世纪科技有限公司 Service information processing method, system, device, server and terminal

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155022A (en) * 2006-09-30 2008-04-02 华为技术有限公司 Data synchronization method, system and device
US20090198772A1 (en) * 2008-01-31 2009-08-06 Samsung Electronics Co. Ltd. Data synchronization method and system between devices
US20090222402A1 (en) * 2008-02-29 2009-09-03 Research In Motion Limited System and method for presentation of local and remote message search results

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381241B1 (en) * 1997-09-30 2002-04-30 Wireless Access Duplicate message detection and mending of garbled messages
US20040205770A1 (en) * 2003-02-11 2004-10-14 International Business Machines Corporation Duplicate message elimination system for a message broker
US20070190978A1 (en) * 2005-01-13 2007-08-16 Ianywhere Solutions, Inc. System and Methodology for Extending Enterprise Messaging Systems to Mobile Devices
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US7752165B2 (en) * 2007-08-01 2010-07-06 Sybase, Inc. Persistent query system for automatic on-demand data subscriptions from mobile devices
KR101647735B1 (en) * 2009-12-24 2016-08-11 엘지전자 주식회사 Mobile terminal and data management method for mobile terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155022A (en) * 2006-09-30 2008-04-02 华为技术有限公司 Data synchronization method, system and device
CN101395838A (en) * 2006-09-30 2009-03-25 华为技术有限公司 Data synchronous method, system and apparatus
US20090198772A1 (en) * 2008-01-31 2009-08-06 Samsung Electronics Co. Ltd. Data synchronization method and system between devices
US20090222402A1 (en) * 2008-02-29 2009-09-03 Research In Motion Limited System and method for presentation of local and remote message search results

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109754204A (en) * 2018-12-10 2019-05-14 任飞翔 Block synchronous method and device
CN109754204B (en) * 2018-12-10 2021-01-19 任飞翔 Block synchronization method and device
CN111177254A (en) * 2019-12-05 2020-05-19 武汉达梦数据库有限公司 Method and device for data synchronization between heterogeneous relational databases
CN111177254B (en) * 2019-12-05 2021-08-17 武汉达梦数据库股份有限公司 Method and device for data synchronization between heterogeneous relational databases

Also Published As

Publication number Publication date
WO2011090599A2 (en) 2011-07-28
CN102741829B (en) 2016-06-15
EP2519890A4 (en) 2016-09-28
EP2519890A2 (en) 2012-11-07
WO2011090599A3 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
CN102725966B (en) Pending state management for mobile business objects
US9336291B2 (en) Message based synchronization for mobile business objects
CN101410800B (en) System and method for a software distribution service
CN101854338B (en) Subscriber equipment, subscription management method thereof, and real-time communication method and system
CN102754411B (en) Use client-server bridge management object
US8312451B2 (en) Computing system for providing software components on demand to a mobile device
CN1117333C (en) Providing communication links in a computer network
CN109597655A (en) Configure the method and device of application program
CN102971707B (en) For the method and apparatus that software kit installs allocating computer system
TW202101332A (en) Method and device for cross-chain transmission of authenticable message
CN105512244A (en) Database transaction processing method and device based on message queue
CN109542865A (en) Distributed cluster system configuration file synchronous method, device, system and medium
CN103916482A (en) Data synchronous transmission method based on sqlite
CN107870814B (en) Method and apparatus for content management batching
CN103345790A (en) Electronic door lock management method and system based on NFC (near field communication) intelligent electronic equipment
CN108681777A (en) A kind of method and apparatus of the machine learning program operation based on distributed system
CN102202087A (en) Method for identifying storage equipment and system thereof
CN102741829A (en) Message based synchronization for mobile business objects
CN103179193A (en) Data transmission system and data transmission method used for distributed application system
CN110570179A (en) Order display method, device, equipment and storage medium
CN108139927A (en) The routing based on action of affairs in online transaction processing system
CN102438042A (en) Dynamic parameter synchronizing method and system of multipoint access device
JP5613295B2 (en) Storage medium for providing system, method and program for managing distribution of contents to apparatus
CN110445843A (en) Parallel chain block method for pushing, equipment and storage medium
JP2001306873A (en) Electronic transaction system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant