Note: Descriptions are shown in the official language in which they were submitted.
CA 02591428 2007-06-11
4
METHOD AND APPARATUS FOR FOLDER SYNCHRONIZATION AND MANAGEMENT
[0001] The present application relates to portable electronic devices and to
the
management and synchronization of data at a portable electronic device with
data
embodied at a communication network.
[0002] Portable electronic devices such as wireless personal digital
assistants (PDAs),
smart telephones and laptop computers with wireless capabilities have gained
widespread
use for a variety of functions. Such devices are commonly used for
communication
purposes including transportation of data, and run on a wide variety of
networks from
data-only networks such as Mobitex and DataTAC to complex voice and data
networks
such as GSM/GPRS, CDMA, EDGE, UMTS AND W-CDMA networks.
[0003] These portable electronic devices commonly include databases for
storing data
that is selectably retrievable by a user of a device. The databases include,
for example,
an exchange database including a user's personal Contacts, Tasks, Memo's,
Calendar
and electronic mail. The data forms a series of data records, each data record
containing
one or more fields. During operation of the device, the data is retrieved and
displayed, or
otherwise made available to the user. The data can be modified, added to or
deleted by
the user of the device.
[0004] Advances in data storage have accompanied advances in portable
electronic
devices, to provide for back-up of data stored at the electronic device. By
backing-up the
device, data can be recovered in the event of data loss at the electronic
device. Various
electronic devices are backed-up by way of communication over a fixed (wire)
connection
between the electronic device and, for example, a computing station such as a
desktop
computer. Once the data is stored in a database at the computing station, the
stored data
can be modified, added to or deleted by a user at the computing station.
[0005] Other portable electronic devices also provide for back-up of data
stored
thereon, to a computing station by way of a radio interface, using, for
example, the
networks listed above. Thus, data is sent over a radio communication channel
of a radio
communication system, thereby forming a communications link between the
portable
electronic device and a remote station (a station not linked by wire
communication). Data
that is stored in a database at a computing station can be modified, added to
or deleted at
the computing station. Thus, while data stored in the database of the portable
electronic
device is backed-up to a computing station, data is also transmitted from the
computing
station to the portable electronic device to synchronize the databases of the
portable
CA 02591428 2011-02-28
2
electronic device with the databases of the computing station. When a data
record on a
computing station does not exist on the portable electronic device, or when
the content of
the data record (the fields of the data record) of the computing station
differs from the
content of the data record of the portable electronic device, then the
additional data record
or differing data record is transferred to the portable electronic device.
Similarly, when a
data record on a portable electronic device does not exist on the computing
station, or
when the content of the data record of the portable electronic device differs
from the
content of the data record of the computing station, the additional data
record or differing
data record is transferred to the computing station. When a data record is
deleted from
the portable electronic device, a delete data record indication is sent from
the portable
electronic device to the computing station in order to delete the
corresponding data record
at the computing station.
[0009] Such portable electronic devices suffer from the disadvantage that
these
devices support only one group of each of Address book, Tasks, Memo Pad and
Calendar.
Thus, only a single folder of Contacts is stored on the device. Similarly,
single folders of
each of Tasks, Memds and Calendar are stored on the device.
[0002] An aspect of the specification provides a method of managing shared
data at
a portable electronic device of a first entity, the method comprising:
receiving a message
advising that data associated with a second entity is being shared;
transmitting a request
to a server for a list of shared folders associated with the second entity, in
response to an
option to view shared folders associated with the second entity being
selected; receiving
the list; transmitting an initialize command to the server, the initialize
command identifying
at least one folder in the list; receiving the data associated with the second
entity,
responsive to the transmitting the initialize command; and storing the data in
association
with a second entity identifier.
[0003] At the portable electronic device, the data can be stored in a folder
identified with
the second entity identifier.
[0004] The method can further comprise: displaying options for viewing one of
the data
saved in association with the second entity Identifier and other data saved In
association
with the other entity identifier.
[0005] Storing the data can comprise storing the data with read-only access,
thereby
CA 02591428 2011-02-28
3
allowing only viewing of the data upon selection of the data on the electronic
device.
[0006] Storing the data can storing the data with read and write access,
thereby allowing
modification of the data.
[0007] Another aspect of the specification provides a portable electronic
device of a first
entity, the device comprising: a receiver enabled to: receive a message
advising that data
associated with the second entity has been made available; transmit a request
to a server
for a list of shared folders associated with the second entity, in response to
an option to
view shared folders associated with the second entity being selected; receive
the list;
transmit an initialize command to the server, the initialize command
identifying at least one
folder in the list; and, in response, receive the data associated with the
second entity; a
memory device enabled to store the data; and a processor connected to the
memory
device, the processor enabled to store the data in association with a second
entity
identifier.
[0008] The data cab be stored in a folder identified with the second entity
identifier.
[0009] The portable electronic device can further comprise a display device
enabled to
display the option for viewing one of the data saved in association with the
second entity
identifier and other data saved in association with the other entity
identifier,
[0010] The memory device can store the data with read-only access, thereby
allowing
only viewing of the data upon selection of the data on the electronic device,
[0011] The memory device can store the data with read and write access,
thereby
allowing modification of the data.
[0012] The option to view the shared folders associated with the second entity
can be
provided with contact details of the second entity.
[0013] A further aspect of the specification provides a computer program
product,
comprising a computer usable medium having a computer readable program code
adapted to be executed to implement a method of managing shared data at a
portable
electronic device of a first entity, the method comprising; receiving a
message advising
that data associated with a second entity is being shared; transmitting a
request to a
server for a list of shared folders associated with the second entity, in
response to an
option to view shared folders associated with the second entity being
selected; receiving
CA 02591428 2011-02-28
3a
the list; transmitting an initialize command to the server, the initialize
command identifying
} at least one folder in the list; receiving the data associated with the
second entity,
responsive to the transmitting the initialize command; and storing the data in
association
with a second entity identifier.
[0014] Preferably, synchronization and storage of data records of a single
application
type to the portable electronic device is possible for data records from
multiple folders at
different databases. Thus, multiple Calendar folders can be synchronized to
the portable
electronic device from databases associated with different subscribers. This
is useful, for
example, for an assistant to access the Calendar data records of his/her
employer or
boss. The assistant is then able to view the Calendar data records, and if
permission is
granted, add, modify or delete Calendar data records. Similarly, multiple
Messages,
Address Book, Tasks and Memo Pad data records can be synchronized to the
portable
electronic device. The multiple folders are kept separate and distinct rather
than merging
into a single folder on the device.
CA 02591428 2011-02-28
4
BRIEF DESCRIPTION OF THE DRAWINGS
[00151 The method and apparatus for sharing data will be better understood
with
reference to the following description and to the Figures, in which:
100161 Figure 1 is a functional block diagram of a radio communication system
including
a portable electronic device and a communication system having a
synchronization server
according to one embodiment of the present application;
[00171 Figure 2 is a block diagram of certain internal components within the
portable
electronic device of Figure 1;
[0018] Figure 3 is a block diagram of certain internal components within the
synchronization server of Figure 1;
[00191 Figure 4 is a screen of an LCD display output device of the portable
electronic
device of Figure 2;
100201 Figure 5 is a functional block diagram similar to Figure 1, showing a
radio
communication system including a portable electronic device and a
communication
system, the communication system including two personal information management
connectors and respective databases.
[0021] Figure 6 Is a flowchart illustrating functions carried out in one
embodiment of the
method of sharing data;
[0022] Figures 7A to 7C are screens of the LCD display output device of the
portable
electronic device, displayed when the functions illustrated in Figure 6 are
carried out;
[00231 Figure 8 is a sequence diagram illustrating functions carried out at
both the
portable electronic device and the communication system of Figure 1 during a
first
CA 02591428 2007-06-11
synchronization of a folder of a database;
[0024] Figure 9 is a screen of the LCD display output device of the portable
electronic
device, displayed after synchronization of databases; and
[0025] Figure 10 is a sequence diagram illustrating functions carried out at
both the
5 portable electronic device and the communication system of Figure 1 during
further
synchronizations.
DESCRIPTION OF PREFERRED EMBODIMENT
[0026] Reference is first made to Figure 1 which shows a functional block
diagram of
a radio communication system indicated generally by the numeral 20 and a
portable
electronic device 22. The radio communication system 20 provides for
communications
with portable electronic devices including the exemplary portable electronic
device 22, as
shown. The portable electronic device 22 and the radio communication system 20
are
operable to effect over-the-air communications therebetween via a radio
communications
channel. Data originating at the portable electronic device 22 is communicated
to the
radio communication system 20 by way of the radio communications channel.
Similarly,
data originating at the communication system 20 is communicated from the radio
communication system 20 to the portable electronic device 22 by way of the
radio
communications channel, thereby providing data to the portable electronic
device 22.
[0027] For the purposes of illustration, the communication system 20 is
functionally
represented in Figure 1 and a single base station 24 is shown. The base
station 24
defines a coverage area, or cell 26 within which communications between the
base station
24 and the portable electronic device 22 can be effected. It will be
appreciated that the
portable electronic device 22 is movable within the cell 26 and can be moved
to coverage
areas defined by other cells that are not illustrated in the present example.
The
communication system 20 includes a relay device 28 that is connected to the
base station
24 and to a synchronization server 30. It will be understood that the
functions provided by
the relay device 28 and the synchronization server 30 can be embodied in the
same
device. The synchronization server 30 is connected to an administration server
32, as
shown. The administration server 32 provides administrative services to the
communication system 20 and, for instance, provides administrative control
over the
synchronization server 30.
CA 02591428 2007-06-11
6
[0028] The synchronization server 30 is also functionally coupled through a
personal
information management connector 33 to databases, of which, three exemplary
database
types including a first database 34, a second database 36 and a third database
38, are
shown. The personal information management connector 33 interfaces between the
synchronization server 30 and the databases 34, 36, 38. It will be understood
that the
personal information management connector 33 is a functional component and can
be
provided by way of an application on the synchronization server 30. The
databases of the
present example are of a text format such as an Extensible Mark-up Language
(XML)
format. Each database to which a user has access, is connected through the
personal
information management connector 33. The data maintained in the first, second
and third
databases 34, 36, 38, includes a number of data records as further described
below, each
data record containing a plurality of fields that are populated with data.
[0029] The portable electronic device 22, of which only particular functional
portions
are shown in Figure 1 for the purposes of the present description, includes a
plurality of
databases 40, 42, 44 that correspond to the first, second and third databases
34, 36, 38,
respectively, of the communication system 20. The databases 34, 36, 38 and the
databases 40, 42, 44, can be selectably altered in an asymmetrical manner such
that the
databases 34, 36, 38 of the communication system 20 do not match the databases
40, 42,
44 of the portable electronic device 22. In other words, any or all of the
databases 34, 36,
38, 40, 42, 44 can be altered by adding records, deleting records and
modifying fields of
the records by adding, deleting or modifying the data populating those fields.
[0030] Reference is now made to Figure 2 which shows a block diagram of
certain
internal components within the portable electronic device 22. The portable
electronic
device 22 is based on a microcomputer that includes a processor 46 connected
to a read-
only-memory (ROM) 48 that contains a plurality of applications executable by
the
processor 46 to enable the portable electronic device 22 to perform certain
functions
including synchronization with the communication system 20. The processor 46
is also
connected to a random access memory unit (RAM) 50 and a persistent storage
device 52
which are responsible for various non-volatile storage functions of the
portable electronic
device 22 and in which the databases 40, 42, 44 are maintained. The processor
46
receives input from input devices 54 such as a keyboard. The processor 46
outputs to
output devices 56 such as an LCD display. The processor 36 is also connected
to an
CA 02591428 2007-06-11
7
internal clock 58 and a radio device 60 which in turn is connected to an
antenna 61.
Together the radio device 60 and the antenna 61 are used to connect to the
radio
communication system 20 over a radio communications channel. Thus, the
portable
electronic device 22 is operable to receive and transmit communication signals
containing
data that is communicated to and from the communication system 20 via the
radio device
60 and the antenna 61.
[0031] Reference is now made to Figure 3 which shows a block diagram of
certain
internal components within the synchronization server 30. Similar to the
portable
electronic device 22, the synchronization server 30 includes a processor 62
connected to
a read-only memory (ROM) 64 that includes applications executable by the
processor 62
and enables the synchronization server 30 to perform certain functions
including
synchronization with the portable electronic device 22. The processor 62 is
also
connected to a random access memory unit (RAM) 66 and a persistent storage
device 68
which are responsible for various non-volatile storage functions of the
synchronization
server 30. The processor 62 is functionally connected to the databases 34, 36,
38
through the personal information management connector 33 and to the relay
device 28,
which in turn is connected to the base station 24 for connecting to the
portable electronic
device 22 over a radio communications channel. Thus, the synchronization
server 30 is
operable to receive and transmit communication signals containing data that is
communicated to and from the portable electronic device 22 via the relay
device 28 and
the base station 24.
[0032] Reference is now made to Figure 4 which shows an exemplary menu screen
that is displayed on the LCD display output device 56 of the portable
electronic device 22.
The portable electronic device 22 is operable to execute various applications
stored in the
ROM 38. Such applications include, for example, a message reader (Messages),
an
Address Book, a task list (Tasks), a Memo Pad and a Calendar, as shown in the
exemplary menu screen of Figure 4. The input devices 54 are used for selecting
a
desired application to be executed and to exit the application when desired.
When
executed by the processor 36, each application causes the portable electronic
device 22
to operate in a specific manner.
[0033] It will be appreciated that e-mails are received on the portable
electronic device
22 from the communication system 20 over a radio communications channel. Each
e-mail
CA 02591428 2007-06-11
8
includes a variety of information including identification information
identifying the folder to
which the e-mail belongs for viewing. To view an e-mail, the Messages
application is
selected from the menu screen by using the input devices 54, causing execution
of the
application by the processor 36.
[0034] The Address Book application is used for storing electronic contact
records
including addresses, telephone and facsimile numbers and e-mail addresses. The
contact records are created and viewed by selecting the Address Book
application on the
menu screen, thereby causing execution of the application by the processor 36.
[0035] The Tasks application is used for storing a list of tasks to be
completed. The
tasks are added, edited, deleted and viewed by selecting the Task List
application causing
execution of the application by the processor 36.
[0036] The Memo Pad application is used for storing memos which are added,
edited,
deleted and viewed by selecting the Memo Pad application causing execution of
the
application by the processor 36.
[0037] The Calendar application is used for displaying and storing calendared
events
such as appointments, meetings, dinners, etc., when executed by the processor
36. Each
calendared event includes a variety of information including a date, time and
note
regarding the event.
[0038] The portable electronic device 22 is provided with each of these
various
applications for use by a user of the portable electronic device 22. Each of
the e-mails,
contact records, tasks, memos, and calendared events are stored as data
records in one
of the databases 40, 42, 44 of the portable electronic device 22. As indicated
above, the
corresponding database 34, 36, 38 of the communication system 20 includes
corresponding data records stored therein. In the present application, each of
the data
records for each of the applications includes an extension that provides a
unique
identification, thereby identifying the data record as belonging to a
particular folder
(Messages, Address Book, Tasks, Memo Pad or Calendar). For each of the data
records
of the applications, the extension also provides an identification of the data
source,
referred to herein as the data source identification. The data source for the
user's
personal Messages, Address Book, Tasks, Memo Pad and Calendar data records is
identified as originating from the portable electronic device 22 of that
particular user. Each
subscriber has their own unique data source identification. Thus, for a first
subscriber, the
CA 02591428 2007-06-11
9
unique identification for each of the personal data records of the Calendar
application
identifies those data records as belonging to the Calendar folder and as
originating from
the first subscriber. Similarly, each of the personal data records of the
Address Book
application (contact records) identify those data records as belonging to an
Address Book
folder and as originating from the first subscriber.
[0039] To illustrate one particular example of an embodiment of the system and
method of subscribable folder synchronization and management, reference is now
made
to Figure 5 which shows a functional block diagram of the radio communication
system 20
and the portable electronic device 22, similar to that shown in Figure 1. In
Figure 5,
however, the personal information management connector 33 is connected to two
sets of
databases. As in Figure 1, the personal information management connector 33 is
shown
connected to three exemplary databases 34A, 36A, 38A associated with one
subscriber.
In Figure 5, however, The personal information management connector 33 is also
shown
connected to three further exemplary databases 34B, 36B, 38B associated with a
second
subscriber. The personal information management connector 33 and the two sets
of
databases are for management and storage of data records. Thus, the databases
34A,
36A, 38A include data records associated with a first subscriber and the
databases 34B,
36B, 38B include data records associated with a second subscriber. It will be
understood
that only two subscribers are shown for the purpose of the present example and
further
subscribers are possible.
[0040] In the present example, only a single portable electronic device 22 is
shown,
the portable electronic device 22 belonging to the first subscriber and having
databases
40, 42, 44 that correspond to the databases 34A, 36A, 38A. It will be
understood that a
second portable electronic device could be shown with databases corresponding
to the
databases 34B, 36B and 38B. Still further portable electronic devices are
possible for
additional subscribers. For the purpose of simplicity, however, only a single
portable
electronic device 22 is shown.
[0041] Referring now to Figure 6, a flowchart illustrating functions carried
out in one
embodiment of the method of folder management and synchronization is shown.
Coding
of software for carrying out the steps shown and described below is well
within the scope
of a person of ordinary skill in the art. The second subscriber having data
records that are
stored in databases on a portable electronic device and corresponding
databases 34B,
CA 02591428 2007-06-11
36B, 38B at the communication system 20 in Figure 5, uses a desktop computer
in a
desktop client application to set permission to allow the first subscriber to
have access to
data records of the second subscriber at step 100. For the purpose of the
present
example, the second subscriber gives permission to allow the first subscriber
to have
5 "read-only" access to data records associated with the calendar application.
This can be
carried out in a number of different ways depending on the desktop
application, as will be
understood by those skilled in the art. For example, in the Calendar
application in
Outlook"", an option is provided to "share my calendar". After selecting the
"share my
calendar" option, a number of further options are provided that are selectable
to permit the
10 first subscriber to access the data records of the second subscriber. The
first subscriber
is identified and options are chosen to permit the first subscriber to read
data records only
but not permitting the first subscriber to edit, delete or create any data
records. In the
present example, the second subscriber gives permission to the first
subscriber to only
access the data records of the second subscriber. Thus, the first subscriber
is considered
to have delegate access to the calendar data records of the second subscriber.
The
change in permission is then sent to the synchronization server 30 at step
102.
[0042] The personal information management connector 33 monitors the sharing
and
permissions given for the data records stored on the databases and when the
first
subscriber is given access to the calendar data records of the second
subscriber, the
personal information management connector 33 permits access to the one of the
databases 34B, 36B, 38B in which the calendar data records are stored. In the
example
shown in Figure 5, the first subscriber is given access to the records in
three databases
and thus, the personal information management connector 33 is connected to all
of the
databases 34B, 36B, 38B,
[0043] When the first subscriber is given access to the calendar data records
of the
second subscriber, the first subscriber is advised that access to the data
records of the
second subscriber has been granted at step 106. In the present example, the
second
subscriber sends an e-mail to the first subscriber to advise that the calendar
data records
of the second subscriber have been made available to the first subscriber. The
e-mail is
received by the first subscriber.
[0044] After receipt of the e-mail the first subscriber then looks up the
second
subscriber using a global address lookup at step 108. For example, the first
subscriber
CA 02591428 2007-06-11
11
selects the Address Book application from the menu screen shown in Figure 4,
on the
portable electronic device 22 resulting in the display of the list of Address
Book records as
shown in Figure 7A. Next, the first subscriber selects the name from the list
of Address
Book records that corresponds with the second subscriber (Johnson, Robert in
the
exemplary screens shown in Figures 7A to 7C), resulting in the display of the
contact
details of the second subscriber as shown in Figure 7B. The first subscriber
then selects
an option to "View Shared Folders for this User" at step 110. This option
sends a request
to the communication system 20 to provide a list of folders of the second
subscriber to
which the first subscriber has been permitted access. The request is received
at the
communication system 20 and is passed on to the personal information
management
connector 33 through the synchronization server 30. A response is provided
from the
personal information management connector 33 to the synchronization server 30
and
through the relay and base station, to the portable electronic device 22. The
list of folders
that the second subscriber has permitted the first subscriber to access is
then displayed
on the LCD display output device 56 of the portable electronic device 22, as
shown in
Figure 7C. In the present example, the second subscriber (Johnson, Robert) has
provided read-only access to the Calendar data records only. Thus, only a
Calendar
folder is displayed on the LCD display output device 56 of the portable
electronic device
22 as being shared.
[0045] When the Calendar folder is displayed, a "Synchronize folder to Device"
option
is also displayed, allowing the first subscriber to select this option to
synchronize the
Calendar folder of the second subscriber to the portable electronic device 22.
The
"Synchronize folder to Device" option acts as a synchronization trigger when
selected to
thereby initiate synchronization between the portable electronic device 22 and
the
Calendar folder of the second subscriber. The first subscriber can choose not
to
synchronize the folder to the portable electronic device 22 by not selecting
the
"Synchronize folder to Device" option.
[0046] Reference is now made to Figure 8, which shows a flowchart illustrating
functions carried out at both the portable electronic device 22 and the
communication
system 20 during synchronization of the shared Calendar folder of one of the
databases
associated with the second subscriber with the portable electronic device 22
of the first
subscriber. For the purpose of the present example, the Calendar data records
are stored
CA 02591428 2007-06-11
12
on the database 34B. Coding of software for carrying out such steps is well
within the
scope of a person of ordinary skill in the art. As shown in Figure 5, the
portable electronic
device 22 and the communication system 20 are connected by wireless interface.
The
portable electronic device 22 receives the synchronization trigger at 120, by
selection of
the "Synchronize Folder to Device" option shown on the LCD display device 56
and
illustrated in Figure 7C, using the user input on the input device 54. The
synchronization
process is thereby triggered for records of the database 34B with a database
of the
portable electronic device 22. In the present example, synchronization is
triggered for
data to be stored in a folder of the first database 40. In response to receipt
of the
synchronization trigger, the processor 46 attempts to retrieve data records
from the
corresponding folder of the database 40 for which synchronization is requested
at step
122. The processor 46 generates a record hash for each data record from the
folder of
the database 40 and then generates a group hash for the folder, based on the
individual
record hashes at step 124. In the present example, however, no folder is
present on the
portable electronic device 22 that corresponds with the folder of the database
34B that
includes the second subscriber's (Johnson, Robert) Calendar data records.
Thus, a null
group hash is generated, indicating that no folder or data records exist on
the portable
electronic device 22, that correspond with the Calendar folder and data
records on the
database 34B of the communication system 20. Next, an initialize command is
transmitted along with the null group hash, from the portable electronic
device 22 to the
communication system 20 over a radio communication channel, at step 126. The
initialize
command initiates the synchronization process at the synchronization server
30, identifies
the Calendar data records folder of the database 34B for synchronization and
provides
synchronization session state information including a session state
identifier. The portable
electronic device 22 then awaits a response from the communication system 20.
[0047] The communication system 20 receives the initialize command along with
the
null group hash indicating that no corresponding folder or data records exist
on the
portable electronic device 22 at step 128 by receipt at the base station 24.
The base
station 24 forwards the initialize command and the null group hash to the
synchronization
server 30. As indicated above, the initialize command identifies the folder of
the database
for synchronization and provides synchronization session state information
including the
session state identifier. A synchronization session is thereby started with
the portable
CA 02591428 2007-06-11
13
electronic device 22. In response to receipt of the initialize command, the
synchronization
server 30 generates a request at step 130 for all data records of the database
on the
communication system side 20 that belong to the Calendar folder of the
database 34B.
The request is then sent to the personal information management connector 33
to retrieve
the Calendar records of the database 34B at step 132.
[0048] The request for all Calendar data records of the Calendar folder
belonging to
the database 34B is received at the personal information management connector
33 at
step 134. The personal information management connector 33 then fetches all
calendar
data records from the database 34B in accordance with the request, at step 136
and
forwards the records to the synchronization server 30 at step 138. It will be
appreciated
that the personal information management connector 33 is permitted to fetch
the calendar
data records of the database 34B by the permission set by the second
subscriber and
received at the personal information management connector 33.
[0049] At step 140, the synchronization server receives all of the Calendar
data
records from the database 34B and generates a record hash for each retrieved
data
record from the database 34B. The record hashes are referred to herein as the
locally
generated record hashes. From the locally generated record hashes, a group
hash for the
Calendar folder from the database 34B is generated at step 142. Thus, the
group hash is
representative of the data records retrieved from the database 34 and is
referred to herein
as the locally generated group hash. After generation of the locally generated
group
hash, the null group hash received from the portable electronic device 22 is
compared
with the locally generated group hash at step 144. From this comparison, the
synchronization server 30 determines that no data records exist on the
portable electronic
device 22 that correspond with the Calendar data records from the database 34B
and the
Calendar data records retrieved from the database 34B are sent to the portable
electronic
device 22 at step 146. Each of these Calendar data records includes the unique
identification as described above. In particular, each of the Calendar data
records
includes an extension identifying those data records as belonging to the
Calendar folder
and as originating from the second subscriber (Johnson, Robert).
[0050] Upon receipt of the Calendar data records at the portable electronic
device 22
of the first subscriber at step 148, a folder is created in the first
subscriber's database 40
corresponding to the second subscribers Calendar data records at step 150.
Each of the
CA 02591428 2007-06-11
14
data records received at the portable electronic device is saved in the folder
created for
the second subscriber's Calendar data records at step 152. It will be
appreciated that the
Calendar data records received at the portable electronic device 22 at step
148 are
distinct from the first subscriber's personal Calendar records and are
identified as being
distinct by the unique identification. The first subscriber's personal
Calendar data records
are differentiated from the Calendar data records received from the database
34B, by the
data source identification.
[0051] The permission set by the second subscriber is carried over to the
portable
electronic device 22 along with the Calendar data records. Thus, the
permission set by
the second subscriber to allow "read-only" access to data records is carried
over to the
portable electronic device 22 along with the Calendar data records received at
step 148.
The Calendar data records of the second subscriber can therefore only be
viewed on the
portable electronic device 22. No editing of these Calendar data records by
the first
subscriber is permitted.
[0052] Reference is again made to Figure 4 which shows an exemplary menu
screen
displayed on the LCD display output device 56 of the portable electronic
device. The
Calendar data records of the second subscriber are viewed by selecting the
Calendar
application displayed on the output device 56. After selection of the Calendar
application,
a submenu is displayed as shown in Figure 9, providing two different
selectable options.
One of the two selectable options is a Personal Calendar which, when selected,
executes
the Calendar application, thereby displaying personal calendared events such
as
appointments, meetings, dinners, etc. The Personal Calendar option allows for
viewing,
adding, editing and deleting any of the calendared events. The second of the
two
selectable options is the second subscriber's calendar (Johnson, Robert) which
is listed
under the heading "Delegate Calendars" in the exemplary screen illustrated in
Figure 9.
When the second subscriber's calendar is selected, the Calendar application is
executed,
displaying the calendared events of the second subscriber. The first
subscriber thereby
views the displayed calendared events. Editing, adding or deleting of these
events is not
permitted, in accordance with the read-only permission granted to the first
subscriber.
[0053] After the second subscriber's Calendar data records are added to the
database
of the portable electronic device 22 of the first subscriber, the records can
be
synchronized at any time by synchronizing the folder in which the second
subscribers
CA 02591428 2007-06-11
Calendar data records are stored, with the corresponding folder on the
database 34B
using a normal synchronization process. Reference is made to Figure 10 to
describe full
synchronization of the folder on the portable electronic device 22 with the
corresponding
folder on the database 34B. Coding of software for carrying out such steps is
well within
5 the scope of a person of ordinary skill in the art. The portable electronic
device 22
receives a synchronization trigger at step 160, by, for example, selection of
a synchronize
option on the LCD display device 56, using the user input on the input device
54. In
response to receipt of the synchronization trigger, the processor 46 retrieves
data records
from the folder of the database 40 on which the second subscriber's Calendar
data
10 records are stored and for which synchronization is requested, at step 162.
The
processor 46 generates a record hash for each data record from the folder of
the
database 40 and then generates a group hash for the folder, based on the
individual
record hashes at step 164. Next, an initialize command is transmitted along
with the
group hash, from the portable electronic device 22 to the communication system
20 over a
15 radio communication channel, at step 166. The initialize command initiates
the
synchronization process at the synchronization server 30, identifies the
Calendar data
records folder of the database 34B for synchronization and provides
synchronization
session state information including a session state identifier. The portable
electronic
device 22 then awaits a response from the communication system 20.
[0054] The communication system 20 receives the initialize command along with
the
group hash at step 168 by receipt at the base station 24. The base station 24
forwards
the initialize command and the group hash to the synchronization server 30. As
indicated
above, the initialize command identifies the database for synchronization and
provides
synchronization session state information including the session state
identifier. A
synchronization session is thereby started with the portable electronic device
22. In
response to receipt of the initialize command, the synchronization server 30
generates a
request at step 170 for all data records of the folder on the database on the
communication system side 20 that corresponds with the folder of the database
being
synchronized on the portable electronic device 22. In the present example, the
Calendar
data records folder on the database 34B corresponds with the second
subscriber's
Calendar data records on the database 40 of the portable electronic device 22
and thus, it
is the records of the Calendar folder on the database 34B that are requested
in the
CA 02591428 2007-06-11
16
request generated at step 170. The request is then sent to the personal
information
management connector 33 to retrieve the second subscriber's Calendar data
records at
step 172. The request for all data records of second subscriber's Calendar
folder on the
database 34B is received at the personal information management connector 33
at step
174. The personal information management connector 33 then fetches all records
from
the database 34 in accordance with the request, at step 176 and forwards the
records to
the synchronization server 30 at step 178. Again, it will be appreciated that
the personal
information management connector 33 is permitted to fetch the calendar data
records of
the database 34B by the permission set by the second subscriber and received
at the
personal information management connector 33.
[0055] At step 180, the requested data records are received at the
synchronization
server 30, from the personal information management connector 33. Next, the
processor
62 of the synchronization server 30 generates record hashes, each record hash
being
generated from a corresponding received data record. From the record hashes, a
group
hash representative of the data records received (referred to herein as the
locally
generated group hash) is generated at step 182. After generation of the
locally generated
group hash, the hash information of the group hash received from the portable
electronic
device 22 is compared with the hash information of the corresponding locally
generated
group hash at step 184. If the comparison of the hash information indicates
that the
second subscriber's calendar data records stored in the database 40 on the
portable
electronic device 22 are not in mismatch with the corresponding Calendar data
records
stored in the database 34B, then a response is sent to the portable electronic
device 22 to
terminate the synchronization session at step 186.
[0056] The response is received at the portable electronic device 22 at step
188 and
the synchronization session is terminated at step 190.
[0057] If, on the other hand, the comparison of the hash information indicates
that the
data records are in mismatch, then the second subscriber's Calendar data
records stored
in the folder on the database 40 of the portable electronic device 22 are to
be updated and
a request for additional hash information is generated by the synchronization
server 30 at
step 192. The request for additional hash information is a request for hash
information
associated with the individual data records. The additional hash information
is requested
for each data record of the second subscriber's Calendar folder stored in the
folder on the
CA 02591428 2007-06-11
17
first database 40 of the portable electronic device 22. After generation of
the request for
additional hash information, the request is then transmitted to the portable
electronic
device 22 at step 194.
[0058] Once the request for additional hash information is received at the
portable
electronic device 22 at step 196, each data record generated at step 164 is
transmitted to
the communication system 20 over the radio communication channel at step 198.
[0059] The additional hash information is received at the communication system
20
and delivered to the synchronization server 30 at step 200. In response to
receipt of the
requested additional hash information, each hash generated for each of the
data records
of the corresponding first database 34B at step 182 is compared with a
corresponding one
of the hashes received at step 202 and a determination is made as to which of
the data
records of the folder containing the second subscriber's Calendar data records
on the
database 40 of the portable electronic device 22, requires updating. Thus,
data records in
which changes have been made at the communication system 20 that are not
reflected in
the corresponding data records at the portable electronic device 22, are
determined by the
comparison at step 202. These data records are then transmitted to the
Portable
electronic device at step 204.
[0060] The data records are received at the Portable electronic device at step
206 and
the second subscriber's Calendar data records of the database 40 at the
portable
electronic device 22 are updated at step 208. In the present example, the
second
subscriber provided read-only access to the Calendar data records and thus,
the records
on the portable electronic device are updated to match the Calendar data
records on the
database 34B. The Calendar data records on the database 34B are not changed
during
this synchronization, however.
[0061] It will be understood that the above description relates to one example
of a
method and apparatus for subscribable folder synchronization and management.
Many
modifications and variations are possible. For example, in the above
description, the
second subscriber provided read-only permission for the first subscriber to
access the
personal Calendar data records of the second subscriber. It is possible,
however, that the
second subscriber provides complete read and write access to their personal
Calendar
data records. In this case, the data records received at the portable
electronic device 22
of the first subscriber can be modified, deleted or further data records can
be added by
CA 02591428 2007-06-11
18
the first subscriber. Further, upon synchronization with the communication
system 20, as
described with reference to Figure 10, the data records stored in the database
34B at the
communication system are updated to reflect updates and changes made at the
portable
electronic device 22. With the determination of a mismatch, a conflict
resolution policy is
run, thereby determining how the mismatched data records are to be updated
(i.e.
whether to update the database records on the portable electronic device 22
with the
database records of the synchronization server 30 or vice versa).
[0062] Although the above examples have been described with reference to the
Calendar data records, permission can be indicated to provide delegate access
to other
data records such as Messages, Address Book, Tasks and Memo Pad data records.
As
indicated above, the data records for each of the applications includes an
extension that
provides a unique identification, thereby identifying the data record as
belonging to a
particular folder (Messages, Address Book, Tasks, Memo Pad or Calendar). For
each of
the data records of the applications, the extension also provides an
identification of the
data source, referred to herein as the data source identification. Thus, the
data records
that originate from another subscriber and that are synchronized to the
portable electronic
device 22 by permissions set by the originating user are differentiated by the
unique
identification, identifying the data source.
[0063] Although only two subscribers are described in the examples above,
further
subscribers can make their data records available to the first subscriber such
that the first
subscriber is permitted delegate access to data records from more than one
other
subscriber. In the event that the first subscriber is permitted delegate
access to Calendar
data records, for example, from more than one other subscriber and the first
subscriber
synchronizes each folder to which they are provided delegate access, to their
portable
electronic device 22, more than one other subscriber is listed for access on
the LCD
display output device 56 for access. Thus, in the exemplary screen shown in
Figure 9,
further names of other subscribers are listed under the heading Delegate
Calendars.
[0064] Also, delegate access has been described herein. It is also possible
that
access is provided to public folders of the Messages, Address Book, Tasks,
Memo Pad or
Calendar applications. For each of the data records of the applications, an
extension
provides an identification of the data source, referred to herein as the data
source
identification, as in the examples described above. In the case of public
folders, however,
CA 02591428 2007-06-11
19
the data source identified is unique to that public folder. Thus, the data
records from that
folder are uniquely identified as belonging to that folder and are
differentiated from other
personal and delegate data records by the unique identification. The owner of
a public
folder modifies permissions to provide public access and notifies those that
are granted
access to the public folder in a similar manner to that described above with
reference to
Figure 6. The public folder is synchronized to the portable electronic device
22 by first
finding the owner (subscriber) and viewing shared folders, as described above.
Public
folders can be viewed on the LCD display screen separate from personal and
delegate
folders. Thus, in the exemplary screen shown in Figure 9, a further heading of
Public
Calendars is provided, under which the public folder is identified by the
public group, for
example.
[0065] Although all the data from personal folders is synchronized to the
portable
electronic device, it is contemplated that the data synchronized to the device
from
delegate or public folders can be limited. For example, Calendar data records
can be
limited to a period of, for example, two weeks. Messages, Tasks and Memo Pad
data
records can be limited to those added to the public folder within a period of
time, for
example, two weeks. Further, data synchronized to the portable electronic
device can be
limited to key fields of data or can be limited to fields of interest such as
title only for
Memo Pad data records, title, due date, and recurrence information for Tasks
data
records, subject, location, time and recurrence data for Calendar data
records, and titles
only for Messages data records.
[0066] While the portable electronic device 22 is synchronized to the
communication
system 20, the portable electronic device 22 can also be synchronized to a
desktop
computer by wire connection, for example. It is contemplated that only the
data records
from the subscriber's personal database folders are synchronized with the
desktop
computer. For example, the unique identification identifying the folder to
which the data
record belongs and the data source, can be used to differentiate the folders
and to keep
those folders that do not belong to the subscriber's personal data records
from being
synchronized to the desktop computer.
[0067] While the embodiments described above are directed to particular
implementations of the method and apparatus for folder synchronization and
management, it will be understood that modifications and variations to these
embodiments
CA 02591428 2007-06-11
are within the sphere and scope of the present application. For example,
current
Messages (e-mail) applications support more than one folder within the
application. It is
contemplated that data records from the Messages application that are provided
by way of
delegate access permitted by other subscribers or public messages can be
stored in
5 folders accessible within the Messages application such that when the
Messages
application is executed, additional folders containing these records are
displayed. For
example, current Messages applications support display of several folders such
as Inbox,
Sent Items and Deleted Items. Further folders such as delegate and public
messages
folders, containing these data records can be displayed on the same screen,
permitting
10 access to any of the data records.
[0068] Still other modifications and variations are possible. For example, the
screens
of the LCD display output device shown in Figures 4, 7A to 7C and 9 are
provided for
exemplary purposes only. Other screen views and layouts are possible. It will
also be
understood that the steps described hereinabove are not limited to the order
in which they
15 are described. The steps described can be performed in any suitable order
as may occur
to those skilled in the art. Further, it will be understood that the portable
electronic device
22 is not limited to three databases as any suitable number of databases is
possible.
Similarly, the communication system 20 may include any suitable number of
databases.
[0069] Many other modifications and variations may occur to those skilled in
the art.
20 All such modifications and variations are believed to be within the sphere
and scope of the
present application.