The present invention relates generally to a manner by which to synchronize a database copy embodied at a mobile node with a corresponding database copy embodied at a network part of a communication network. More particularly, the present invention relates to apparatus, and an associated method, by which to facilitate initiation of a synchronization session by which to place, if necessary, the database contents of the respective databases in match with one another.
Session state information is generated at a device that initiates the synchronization session and communicates the session state information to a recipient device. The session state information identifies the synchronization state of the initiating device and identifies the synchronization session and the portions of the data that are to be synchronized during the synchronization session.
Many aspects of modern society rely upon the availability of communication systems through which to communicate data. Data is communicated pursuant to the effectuation of data communication services. Communication systems are generally constructed to attempt to communicate the data quickly and accurately. The data must be communicated, in some communication systems, over significant distances, and sometimes in spite of poor communication conditions.
A communication system includes, at a minimum, a set of communication stations, interconnected by way of a communication channel. A first of the communication stations forms a sending station, and another of the communication stations forms a receiving station. Communication services are effectuated by the communication of data from the sending station to the receiving station. Communication stations that include both a transmit portion and a receive portion are capable of two-way communications. That is, the communication station provides for the transmission of data therefrom and provides for the reception of data thereat. Communication services of many different types are effectuated in many different types of communication systems in which data is communicated pursuant to point-to-point or point-to-multipoint transmissions.
As advancements in technologies permit, improvements to existing communication systems are implemented and new types of communication systems are introduced. New types of communication services are permitted as a result of the use of such new, and improved, communication systems.
A radio communication system is an exemplary type of communication system, the use of which to communicate therethrough is popularly utilized. In a radio communication system, data that is communicated during its operation is communicated upon radio channels. Radio channels are defined upon a radio link that extends between the communication stations of the radio communication system. A wireline connection, conventionally required in a wireline communication system is obviated.
Advancements in technologies coincide with merging of technologies. That is to say, technology areas, previously disparate, are increasingly merging together. And, advancements in one technology area also benefit other technology areas. For instance, another endemic aspect of modern society is the need to perform data processing operations on many varied types of data. As technological advancements permit, increasingly-large amounts of data are able to be processed at increasingly-fast rates. Large amounts of data are able to be stored and processed pursuant to modern data processing techniques.
Communication systems, including radio communication systems, are regularly utilized by which to transport data that is subsequently processed by data processing techniques. And, technologies used for data processing are, increasingly, used during operation of communication systems. Technologies utilized by which to communicate data are, correspondingly, increasingly used in data processing systems by which to process data. Communication devices, and systems in which the devices are used, are available by which to perform various data processing operations and communication services. Additional applications and services, which implement new data processing and communication technologies, shall likely become available in the future.
Personal digital assistants (PDAS) are portable data storage and processing devices that are popularly utilized by many users. Personal digital assistants are typically of small dimensions, packaged in housings to permit their hand-carriage by a user. Portable digital assistants are exemplary of data processing devices. Databases are stored at the personal digital assistants, and the data stored thereat is selectably retrievable at the request of a user of the device. The data stored at the device is typically formatted into a series of data records in which each data record contains one or more data fields. Upon selection by the user, the data is retrieved and displayed or otherwise made available to the user. The user is also able to cause selected sorting, and other processing, operations to be performed upon the data that is contained at, or otherwise forms, the databases of the personal digital assistant. And, the user typically also is able to change, or add to, the data stored at the databases of the drive.
The ability to back-up the data stored at the data storage and processing device permits recovery of the data in the event of loss of the data at the device. Manners are provided by which to perform the back-up of the data. Conventional personal digital assistants, for instance, provide for back-up of the data upon a personal computer or other computing station, typically by way of a fixed cable, or other wireline, connection formed therebetween. A copy of the data is stored at the personal computer. The data stored thereat is typically also updateable, i.e., changeable at the personal computer.
When the data is stored at more than one location, e.g., at the portable processing device and at the personal computer, subsequent change to any portion of the data stored at either of the locations results in the data no longer being true copies of one another. That is to say, the data stored at the separate locations no longer form complete copies of one another. Addition, deletion, or change of any data portion causes the data stored at one location no longer to be in complete conformity with the data stored at the other of the locations.
To place the data back in match with one another, synchronization of the databases containing the data with one another is required. Synchronization operations are performed, for instance, during subsequent back-up operations during which the data stored at the respective locations are compared together. And, responsive to the comparisons, portions of the data found to be out-of-match with one another are identified. Alteration of the data is then performed to place the data in conformity with one another.
Other portable devices provide for back-up of the stored data to a computing station by way of a radio air interface. Data back-up operations and data synchronization operations performed by way of a radio air interface are, however, more problematical than operations performable by way of a conventional wireline connection. Bandwidth limitations limit the communication capacity that can be allocated for back-up and synchronization operations. Conventional manners utilized by wireline connections by which to back-up and synchronize data stored at the respective locations are, as a general rule, prohibitively bandwidth consumptive when applied to a system in which such operations are performed by way of a radio air interface.
Synchronization anchoring, i.e., manners by which the separate locations identify a synchronization session pursuant to which data synchronization operations are performed must be minimal, but adequately identify the synchronization session at the separate locations.
Any manner by which better to provide for the back-up and synchronization of the data of dynamically-alterable databases by way of a radio air interface would therefore be advantageous.
It is light of this background information related to the synchronization of data contents of databases by way of a radio air interface that the significant improvements of the present invention have evolved.
The present invention, accordingly, advantageously provides apparatus, and an associated method, by which to synchronize a database embodied at a mobile node with a corresponding database copy embodied at a network part of a communication network.
Through operation of an embodiment of the present invention, a manner is provided by which to facilitate initiation of a synchronization session by which to place, if needed, the database contents of the respective databases in match with one another.
In one aspect of the present invention, session state information is generated at a device that initiates the synchronization session and communicates the session state information to a recipient device. The session state information identifies the synchronization state of the initiating device and identifies the synchronization session and the portions of the data that are to be synchronized during the synchronization session.
In another aspect of the present invention, a synchronization session is initiated by a synchronization session initiator. A synchronization session initiator is formed of either the mobile node or a network device, i.e., a synchronization server. Both the mobile node and the synchronization server include session state information generators. The device at which the synchronization session is initiated forms a datagram that includes the session state information associated with the synchronization session. And, once the datagram is formed, the datagram is sent to the other of the devices that is to be a party to the synchronization session. The device to which the datagram is sent forms a synchronization session recipient. The session state information identifies the synchronization state of the synchronization state initiator.
The session state information includes a session identification value of the synchronization session initiator. The session identification value identifies a sequential number of prior synchronization sessions initiated by the synchronization session initiator. And, the session state information also includes an expected-session identification value. The expected-session identification value identifies a next-expected number of sessions that would be expected by the synchronization session initiator from the synchronization session recipient if the synchronization session recipient were instead the synchronization session initiator. That is to say, the expected-session identification value is the session ID that is expected by the session initiator at the point at which the synchronization session initiator initiates the synchronization session. The values of the session identification value and the expected-session identification value are used as synchronization anchors.
In another aspect of the present invention, a formatter is used to form the datagram that is sent by the synchronization session initiator to the synchronization session recipient. Again, as either the network part or the mobile node forms the synchronization session initiator, datagram generators are embodied at both the mobile node and at the network part. The datagram generator formats data into the datagram format. The datagram format includes a header portion that includes session state information fields. The session state information fields are selectably populated with values of the session identification value and the expected-session identification value. Other information is selectably also populated in other portions and fields of the datagram by the formatter.
For instance, another portion of the datagram is populated with values of data contents, such as data fields that are to be synchronized pursuant to the synchronization session. The datagram is formed, and then sent to the synchronization session recipient. When delivered to the synchronization session recipient, the data contained in the datagram is extracted. the extracted data includes the values contained in the session state information fields in the header portion of the datagram. Thereby, the synchronization session recipient is provided with information associated with the synchronization state, as well as the values of the session id value and expected-session id value utilized to notify the synchronization session recipient of the synchronization session pursuant to which the data of the datagram is synchronized.
In these and other aspects, therefore, apparatus, and an associated method, is provided for a radio communication system. The radio communication system has a network part at which a network-copy database is maintained and a mobile node at which a mobile-node copy database is maintained. A synchronization session is initiated by which to synchronize values of fields formed at the network-copy database and at the mobile-copy database. A session state information generator is embodied at least at a selected one of the network part and the mobile node. The session state generator forms at least a first session state information value. The first session state information value identifies a synchronization state of the at least the selected one of the network part and the mobile node at which the session state generator is embodied. Indications of the at least the first session state information value are communicated between the network part and the mobile node to initiate the synchronization session.
A more complete appreciation of the present invention and the scope thereof can be obtained from the accompanying drawings that are briefly summarized below, the following detailed description of the presently-preferred embodiments of the invention, and the appended claims.
Referring first to
During operation of the radio communication system, data is communication pursuant to effectuation of communication services. Data originated at a mobile node is selectably communicated by way of an up-link channel defined upon a radio uplink of the radio air interface extending between the mobile node and a network part of the radio communication system. Analogously, data originated at the network part of the radio communication system is communicated to a mobile node by way of down-link channels defined upon a radio downlink of the radio air interface extending between the network part and the mobile nodes.
The network part of the communication system is functionally represented. Here, a single base station 16 is illustrated. A base station 16 forms part of the network part. And, the base station defines a coverage area, referred to as a cell 18. When the mobile node is positioned within the coverage area defined by a base station, the mobile node is generally capable of communicating with the base station with which the cell is associated. Due to the mobility permitted of the mobile node, the mobile node is positionable, at other times, in coverage areas formed by cells defined by other base stations.
The network part of the communication system also includes a server and relay device 18. Here, the device is a BlackBerry™ Enterprise Server and a relay. And, the device extends to the base station. The device is further coupled to a synchronization server 24. While the relay/BES and the server are shown to be separate functional entities, the functions performed by such entities, in one implementation, are embodied together at a common device or platform. The network part of the communication system also includes an administration (Admin) server 26. The administration server is coupled to the synchronization server. The administration server provides, e.g., administrative services to the communication system. Administrative services provide, for instance, administrative control over the synchronization server.
The synchronization server is functionally coupled to network-based databases, synchronization of which is performed during synchronization operations. Here, three exemplary database-types are shown in the Figure. A Lotus™ Notes database 28, an Exchange™ Connector for an Exchange-based database 32, and a third-party database 34 are shown in the Figure. Other database-types can analogously be represented.
In the exemplary implementation, the databases are of a text format, here an extensible mark-up language (XML) format. The data maintained at the databases 28, 32, and 34 are formed of a plurality of data portions, formatted into data records having data fields. The fields into which a database, such as the database 28, is formed include, for instance, record fields that are selectably populated with data. Selected ones of the record fields form key fields.
Corresponding databases are coupled to, or are embodied in, the mobile node. Databases 38, 42, and 44 are represented at the mobile node. The database 38 corresponds to the Lotus™ Notes database 28; the database 42 corresponds to the Exchange-based database 32; and the database 44 corresponds to the third-party database 34. That is to say, the databases 28 and 38, 32 and 42, and 34 and 44 are copies of each other, albeit separately and asynchronously updateable.
Synchronization procedures are performed pursuant to operation of an embodiment of the present invention by which to place database contents of the respective databases in-match with one another. In the event that, for instance, a database record of a database is updated at the mobile node, synchronization procedures cause the corresponding value of the corresponding database maintained at the network to be brought into match therewith.
Thereby, upon completion of synchronization operations, the databases are in-match with one another, and the data populating the fields of the respective database copies are identical with one another.
Synchronization datagrams are communicated between the respective synchronization parties during a synchronization session. Here, synchronization datagrams 48 and 52 are representative of synchronization datagrams communicated between the respective parties to the synchronization session. The device that forms the synchronization session initiator sends the first synchronization datagram to the synchronization session datagram recipient.
Each of the synchronization parties includes apparatus 56 of an embodiment of the present invention. The apparatus includes functional elements that are implemented in any desired manner, such as by algorithms executable by processing circuitry. The apparatus 56 includes a formatter 58 that formats data into the datagram. The apparatus also includes a synchronization session state information state generator 62. The synchronization session state information state generator generates the synchronization session identification values and expected-session identification values. The values formed by the session state information generator 62 are provided to the formatter. The formatter formats the values provided thereto by the session state information generator into a session state information field of a header part of a datagram formed by the formatter. The session state information field is indicated as the section 66 of the datagram 48. The apparatus 56 embodied at the other of the synchronization parties includes corresponding structure by which to populate a corresponding field of the datagram, subsequently generated during the synchronization session.
The synchronization session state identifier is a unique number that identifies a synchronization session formed between two synchronization parties. And, the expected session identifier is a session identifier that is expected by the synchronization session initiator at the point in time in which the synchronization session is initiated thereat. The synchronization session identifier and the expected-session identifier are used as synchronization session anchors.
A synchronization session starts when a synchronization party that forms the session initiator sends a first synchronization datagram of a particular session. A synchronization session does not require, however, a connection-establishing process between the synchronization parties. That is to say, sending of special synchronization datagrams to commence a synchronization session is not required.
The apparatus 56 further includes an extractor 72 that operates, upon delivery of the synchronization datagram thereto, to extract the values in the session initiation field. The extractor 72 is here shown at the apparatus 56 embodied at the synchronization party forming the session recipient.
Either party, i.e., either the mobile node or the synchronization server can initiate a synchronization session. And, both of the synchronization parties can be session initiators at the same time, pursuant to separate synchronization sessions. The direction of the datagram becomes important to identify with which of the separate synchronization sessions that the datagram is associated. The session identifier value and the expected-session identifier values are accorded integer values of positive or negative signs. A nomenclature is utilized to identify the separate synchronization parties. For instance, the synchronization server is identified by positive-signed integer values, and the mobile node is negative-signed integer values. Thereby any session initiated by the synchronization server includes a positive session identifier value. And, server synchronization party holds a negative-valued session identifier value.
The message sequence diagram, shown generally at 76, in
A timer at the session initiator times out without detection at the synchronization server of the response to the start session datagram, previously sent by the synchronization server. Because there has been no reply, the synchronization state information does not change value, and a datagram is again formed and sent, indicated by the segment 92, to the mobile node, forming the data recipient. Because the mobile node previously responded to the previously-sent datagram, the expected-session identifier value maintained thereat changes. But, the because of the retransmission of the datagram, indicated by the same session state information, the mobile node returns, indicated by the segment 94, a copy of the previously-sent response. Here, the datagram is returned to the synchronization session initiator, and additional synchronization operations, if needed, continue.
First, and as indicated by the block 104, at least a first session station information value is formed at least at a selected one of the network part and the mobile node. The first session state information value identifies a synchronization state of the at least the selected one of the network part and the mobile node at which the first session state information value is formed.
Then, and as indicated by the block 106, the at least the first session state information value is sent to the remaining one of the network part and the mobile node. Thereby, the remaining one of the network part and the mobile node is informed of the synchronization state of the selected one of the network part and the mobile.
Thereby, the sessions state information values are known both to the mobile node and the network part, and synchronization operations can commence.
The previous descriptions are of preferred examples for implementing the invention, and the scope of the invention should not necessarily be limited by this description. The scope of the present invention is defined by the following claims: