The following relates to systems and methods for controlling event entries.
Electronic devices such as smart phones, personal digital assistants (PDAs), cellular telephones, laptops, etc. often include features for organizing a user's schedule. Such features may include lists, calendars, address books, memo pads, etc. Often times, users have sensitive or confidential events such as surprises or sensitive meetings that they do not wish to divulge to others either inadvertently or via malicious activities on the part of the others. Despite including security features such as password protection and other “lock-out” mechanisms, it may be possible for a device to be accessed before the lock-out mechanism is triggered and thus opportunities may exist for the sensitive information to be seen and copied or recorded.
In addition, irrespective of the sensitivity of such information, the remaining storage capacity of an electronic device may become depleted over time due as data associated with the information is typically continually added to the device. While the complete removal of old information and data on an electronic device is known, such an approach can corrupt cross-references or dependencies between items.
Embodiments will now be described by way of example only with reference to the appended drawings wherein:
It has been recognized that various situations arise wherein details and information stored in an electronic device, for example calendar event entries, are sensitive in nature, and thus such details and information should be protected from inadvertent or malicious access and exposure. It has been found that a flag or option can be provided when creating a new entry that flags or marks the entry as sensitive. The details associated with the entry can be suppressed until a specified time before the event occurs and can be deleted or hidden after the event occurs. Access to the details at other times can be permitted through re-authentication of the user, for example using a password.
It has also been recognized that in addition to suppressing sensitive information through the removal or deletion of such information, deletion can also recover storage space, in particular when large files or other data is associated with the event and its entry being stored in the device.
The following examples include communications between mobile or handheld devices, which will be commonly referred to as mobile devices hereinafter and referred to by numeral 10. As will be discussed, the principles discussed below are equally applicable to other computing devices.
The mobile device 10 can be a multi-way communication device with advanced data communication capabilities including the capability to communicate with other mobile devices 10 or computer systems through a network of transceiver stations. The mobile device 10 may also have the capability to allow voice communication. Depending on the functionality provided by the mobile device 10, it may be referred to as a data messaging device, a multi-way pager, a cellular telephone with data messaging capabilities, a wireless Internet appliance, or a data communication device (with or without telephony capabilities). The mobile device 10 can also be one that is used in a system that is configured for continuously routing all forms of pushed information from a host system 25 to the mobile device 10. One example of such a system will now be described making reference to
Message C in
The mobile device 10 may be adapted for communication within wireless network 20 via wireless links, as required by each wireless network 20 being used. As an illustrative example of the operation for a wireless router 26 shown in
Although the above describes the host system 25 as being used within a networked environment, this is just one embodiment of one type of host service that offers push-based messages for a handheld wireless device that is capable of notifying and presenting the data to the user in real-time at the mobile device when data arrives at the host system.
By offering a wireless router 26 (sometimes referred to as a “relay”, “message server”, “data redirector”, etc.), there are a number of major advantages to both the host system 25 and the wireless network 20. The host system 25 in general runs a host service that is considered to be any computer program that is running on one or more computer systems. The host service is said to be running on a host system 25, and one host system 25 can support any number of host services. A host service may or may not be aware of the fact that information is being channelled to mobile devices 10. For example an e-mail or message program 138 (see
Although the system is exemplified as operating in a multi-way communications mode, certain aspects of the system could be used in a “one and one-half” or acknowledgment paging environment, or even with a one-way paging system. In such limited data messaging environments, the wireless router 26 still could abstract the mobile device 10 and wireless network 20, offer push services to standard web-based server systems and allow a host service in a host system 25 to reach the mobile device 10 in many countries.
The host system 25 shown herein can have many methods when establishing a communication link to the wireless router 26. For one skilled in the art of data communications the host system 25 could use connection protocols like TCP/IP, X.25, Frame Relay, ISDN, ATM or many other protocols to establish a point-to-point connection. Over this connection there are several tunnelling methods available to package and send the data, some of these include: HTTP/HTML, HTTP/XML, HTTP/Proprietary, FTP, SMTP or some other proprietary data exchange protocol. The type of host systems 25 that might employ the wireless router 26 to perform push could include: field service applications, e-mail services, stock quote services, banking services, stock trading services, field sales applications, advertising messages and many others. This wireless network 20 abstraction is made possible by the wireless router 26, which implements this routing and push functionality. The type of user-selected data items being exchanged by the host could include: E-mail messages, events, meeting notifications, address entries, journal entries, personal alerts, alarms, warnings, stock quotes, news bulletins, bank account transactions, field service updates, stock trades, heart-monitoring information, vending machine stock levels, meter reading data, GPS data, etc., but could, alternatively, include any other type of message that is transmitted to the host system 25, or that the host system 25 acquires through the use of intelligent agents, such as data that is received after the host system 25 initiates a search of a database or a website or a bulletin board.
The wireless router 26 provides a range of services to make creating a push-based host service possible. These networks may comprise: (1) the Code Division Multiple Access (CDMA) network, (2) the Groupe Special Mobile or the Global System for Mobile Communications (GSM) and the General Packet Radio Service (GPRS), and (3) the existing and upcoming third-generation (3G) and fourth generation (4G) networks like EDGE, UMTS and HSDPA, LTE, Wi-Max etc. Some older examples of data-centric networks include, but are not limited to: (1) the Mobitex Radio Network (“Mobitex”) and (2) the DataTAC Radio Network (“DataTAC”).
To be effective in providing push services for host systems 25, the wireless router 26 may implement a set of defined functions. It can be appreciated that one could select many different hardware configurations for the wireless router 26, however, many of the same or similar set of features would likely be present in the different configurations. The wireless router 26 may offer any one or more of the following features for host services: 1) An addressing method so that mobile device 10 traffic can be addressed to a host system 25 without the need for the wireless network 20 to assign an identity to each host system 25; 2) An efficient and authenticated method for the host system 25 to initiate a communication connection to the wireless router 26 for the purposes of opening a communication tunnel to the one or more mobile devices 10 that the host system 25 wishes to communicate with; 3) A reliable method for exchanging data between the host system 25 and the mobile device 10, in a manner consistent with the abilities of the wireless network 20; 4) Providing feedback to the host system 25 when data is delivered, which allows the host system to clean up any wireless delivery queues if necessary, or inform the original sender (user or program) that the data has been delivered to the mobile device 10; 5) Implementation of a wireless network 20 initiated push of services or data to a mobile device 10, from a wireless router 26; and 6) Connect to a wide range of wireless networks 20 and provide a way of tracking the user's location so that a ‘follow you anywhere’ solution can be provided.
An example configuration for the mobile device 10 is illustrated in
The main processor 102 also interacts with additional subsystems such as a Random Access Memory (RAM) 106, a flash memory 108, a display 110, an auxiliary input/output (I/O) subsystem 112, a data port 114, a keyboard 116, a speaker 118, a microphone 120, a GPS receiver 121, short-range communications 122, and other device subsystems 124. As will be discussed below, the short-range communications 122 can implement any suitable or desirable device-to-device or peer-to-peer communications protocol capable of communicating at a relatively short range, e.g. directly from one device to another. Examples include Bluetooth®, ad-hoc WiFi, infrared, or any “long-range” protocol re-configured to utilize available short-range components. It will therefore be appreciated that short-range communications 122 may represent any hardware, software or combination of both that enable a communication protocol to be implemented between devices or entities in a short range scenario, such protocol being standard or proprietary.
Some of the subsystems of the mobile device 10 perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. By way of example, the display 110 and the keyboard 116 may be used for both communication-related functions, such as entering a text message for transmission over the network 20, and device-resident functions such as a calculator or task list.
The mobile device 10 can send and receive communication signals over the wireless network 20 after required network registration or activation procedures have been completed. Network access is associated with a subscriber or user of the mobile device 10. To identify a subscriber, the mobile device 10 may use a subscriber module component or “smart card” 126, such as a Subscriber Identity Module (SIM), a Removable User Identity Module (RUIM) and a Universal Subscriber Identity Module (USIM). In the example shown, a SIM/RUIM/USIM 126 is to be inserted into a SIM/RUIM/USIM interface 128 in order to communicate with a network. Without the component 126, the mobile device 10 is not fully operational for communication with the wireless network 20. Once the SIM/RUIM/USIM 126 is inserted into the SIM/RUIM/USIM interface 128, it is coupled to the main processor 102.
The mobile device 10 is typically a battery-powered device and in this example includes a battery interface 132 for receiving one or more rechargeable batteries 130. In at least some embodiments, the battery 130 can be a smart battery with an embedded microprocessor. The battery interface 132 is coupled to a regulator (not shown), which assists the battery 130 in providing power V+ to the mobile device 10. Although current technology makes use of a battery, future technologies such as micro fuel cells may provide the power to the mobile device 10.
The mobile device 10 also includes an operating system 134 and software components 136 to 146 which are described in more detail below. The operating system 134 and the software components 136 to 146 that are executed by the main processor 102 are typically stored in a persistent store such as the flash memory 108, which may alternatively be a read-only memory (ROM) or similar storage element (not shown). Those skilled in the art will appreciate that portions of the operating system 134 and the software components 136 to 146, such as specific device applications, or parts thereof, may be temporarily loaded into a volatile store such as the RAM 106. Other software components can also be included, as is well known to those skilled in the art.
The subset of software applications 136 that control basic device operations, including data and voice communication applications, may be installed on the mobile device 10 during its manufacture. Software applications may include a message application 138, a device state module 140, a Personal Information Manager (PIM) 142, a connect module 144 and an IT policy module 146. A message application 138 can be any suitable software program that allows a user of the mobile device 10 to send and receive electronic messages, wherein messages are typically stored in the flash memory 108 of the mobile device 10. A device state module 140 provides persistence, i.e. the device state module 140 ensures that important device data is stored in persistent memory, such as the flash memory 108, so that the data is not lost when the mobile device 10 is turned off or loses power. A PIM 142 includes functionality for organizing and controlling data items of interest to the user, such as, but not limited to, e-mail, text messages, instant messages, contacts, events, and voice mails, and may interact with the wireless network 20. A connect module 144 implements the communication protocols that are required for the mobile device 10 to communicate with the wireless infrastructure and any host system 25, such as an enterprise system, that the mobile device 10 is authorized to interface with. An IT policy module 146 receives IT policy data that encodes the IT policy, and may be responsible for organizing and securing rules such as the “Set Maximum Password Attempts” IT policy.
Other types of software applications or components 139 can also be installed on the mobile device 10. These software applications 139 can be pre-installed applications (i.e. other than message application 138) or third party applications, which are added after the manufacture of the mobile device 10. Examples of third party applications include games, calculators, utilities, etc. The additional applications 139 can be loaded onto the mobile device 10 through at least one of the wireless network 20, the auxiliary I/O subsystem 112, the data port 114, the short-range communications subsystem 122, or any other suitable device subsystem 124.
The data port 114 can be any suitable port that enables data communication between the mobile device 10 and another computing device. The data port 114 can be a serial or a parallel port. In some instances, the data port 114 can be a USB port that includes data lines for data transfer and a supply line that can provide a charging current to charge the battery 130 of the mobile device 10.
For voice communications, received signals are output to the speaker 118, and signals for transmission are generated by the microphone 120. Although voice or audio signal output is accomplished primarily through the speaker 118, the display 110 can also be used to provide additional information such as the identity of a calling party, duration of a voice call, or other voice call related information.
For composing data items, such as e-mail messages, for example, a user or subscriber could use a touch-sensitive overlay (not shown) on the display 110 that is part of a touch screen display (not shown), in addition to possibly the auxiliary I/O subsystem 112. The auxiliary I/O subsystem 112 may include devices such as: a mouse, track ball, infrared fingerprint detector, or a roller wheel with dynamic button pressing capability. A composed item may be transmitted over the wireless network 20 through the communication subsystem 104.
The instant messaging application 50 is an instant messaging service that may hosted and provided by the host system 25, e.g. using a messaging server at the wireless router 26 or may be associated with a 3rd party instant messaging service (not shown). The instant messaging application 50 comprises or otherwise has access to contact information often referred to as a “buddy” list 30. The events application 52 comprises or otherwise has access to a portion of memory, database or other data storage device storing event entries 32 which may include any data or information associated with a particular date and time in the events application 52 and may be displayed in a graphical user interface (GUI) therefor.
It will be appreciated that any module or component exemplified herein that executes instructions may include or otherwise have access to computer readable media such as storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of the mobile device 10, wireless router 26, host system 25, etc., or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions that may be stored or otherwise held by such computer readable media.
The events application 52 may be initiated or otherwise accessed or launched by, for example, selecting a corresponding icon (not shown) displayed on the mobile device 10 as is well known in the art. Within a typical events application, new events, also known as appointments can be entered into a user's events application in various ways. For example, the user may select a block of time within a events view (e.g. blocks of time during the day) and begin entering text associated with the event or appointment to create a new entry. Alternatively, as shown in
In the example shown in
The details portion 158 provides the ability to specify various parameters 162 for the event. In the example shown, the parameters include start time, end time, duration, time zone, how to display the user's availability during that time (Show Time As), and when to provide a reminder (if any). It can be appreciated that such parameters may be interrelated and a setting in one or more of the parameters can thus cause another parameter to change. For example, the end time with respect to the start time should automatically adjust the duration accordingly. Rather than specify specific times for the appointment, an All Day Event option 160 can also be provided to enable the event to span the entire day in the view. An event can also be a recurring event and thus recurrence settings 164 can also be specified in this example. In
In order to control the event's visibility to other attendees in a shared events application 52, a Mark As Private option 166 can also be provided. In this way, by selecting the Mark As Private option 166, the user can control read permissions across a group sharing the information in their events applications 52. For example, if a user that normally shares their events application 52 has a private meeting, e.g. a job interview that they do not wish to divulge, they can use the Mark as Private option 166 to ensure that the other members of the group know that they are busy but do not know the details.
As discussed above, to protect certain sensitive event entries 32 from unwanted exposure due to someone having access to the mobile device 10 itself, the event can be made sensitive. In this example, by selecting a Sensitive Event option 170, the event is designated as a sensitive event and various sensitivity parameters 168 can be selected. Also, in this example, the user is made to choose between a Require Delete Approval option 172 or an Auto Delete option 174 to specify whether or not the user should be given a yes/no prompt asking them whether to delete the entry 32 (yes) or not (no), before the event entry 32 is actually deleted from the events application 52, i.e. approval from each attendee is required. This enables the user to change their mind about the sensitivity of the entry 32. In this example, the Require Delete Approval option 172 and the Auto Delete option 174 are given using radio buttons to require selection of one or the other. It can be appreciated that in other embodiments (not shown), a default selection could instead be imposed, for example, to always use the Auto Delete option 174 or to always use the Require Delete Approval option 172. In another embodiment (not shown), an option to simply notify the user that the entry 32 will be deleted may be provided which still automatically deletes the entry 32.
It can be appreciated that in addition to controlling whether or not sensitive data is retained in the device, any deletion of the event entries advantageously frees up storage space. Where files or other attachments are associated with the entry 32, significant storage savings can be achieved over time. As such, irrespective of the actual sensitivity of the event and its details, the event can be so designated to effect deletion of the entry 32 (and associated data) to recover consumed storage space. Although the examples described herein are provided in the context of effecting removal and suppression of data by marking an entry as sensitive, the principles described herein equally apply to providing an option (not shown) for effecting removal for the purpose of memory and storage recovery.
It has also been recognized that if an event is considered sensitive, not only can the details of the event be removed once the event has occurred, but the details can also be suppressed from the time the event entry 32 is created until some time before the event occurs. In other words, given the sensitivity of the event details, the user should be able to suppress those details for the majority of the time the event entry 32 exists. To ensure that the event details are available to the user at least for some time prior to the event start time, a Suppress Until option 176 can be selected. In this example, three example mechanisms are shown for enabling the user to specify how long before the event the details should be revealed. It will be appreciated that any one or more mechanisms can be provided or, alternatively, a fixed default setting may be used where appropriate, e.g. “always show 30 minutes before event”. It will also be appreciated that if the Suppress Until option 176 is not selected, all future sensitive events (including recurring instances of the event entry 32 being created) would be visible at all times up to the end of the event. However, assuming the Sensitive Event option 170 has been selected, as soon as the event passes, the entry 32 would be deleted either automatically or through a prompt.
A pull down menu 181 may be used to select from a list of relative times prior to the event, e.g. 15 minutes, 30 minutes, 1 hour, etc. By using the pull down menu 181, the event details would be revealed in the entry 32 when the specified number of minutes (or hours) prior to the event is detected. A time entry box 180 can also be used to specify with more granularity, an exact time when the event details will be revealed. The time entry box 180 can be provided instead of the pull down menu 181 or as an alternative to allow either pre-set times or user-specified times. Typically, the event details would be revealed at some point close to the event, on the same day as the event, given the sensitivity. However, a date selection mechanism 178 can also be provided to enable the user to specify the date on which the event details are revealed. The date selection mechanism 178, in combination with the time entry box 180 can enable the user to specify an exact date and time when the event details will be revealed. For recurring events, the pull down menu 181, which imposes a relative time before the start of the event, is typically more appropriate as otherwise a specific date and time would need to be specified for each recurring event until termination (which can be never). For example, a weekly recurring event at 10:30 am on Mondays with a 30 minute “suppress until” setting would reveal the event details for each occurrence, only at 10:00 am on the Monday before that occurrence while keeping details of the other occurrences of the event hidden. However, if desired, both the relative time and specific time and date options can be provided for both the recurring and non-recurring events.
The example in
Turning now to
Although the event details have been suppressed, it has been found that the user should have access to the event details upon request. However, to maintain secrecy and thus honour the sensitivity of the event, by selecting the event block 202 as shown in
It may also be noted that if the user re-authenticates with a password before the “suppress until” time (i.e. the time associated with the Suppress Until option 176), the conventional entry block 202′ should only be revealed for the current session and then should revert to the entry block 202, e.g. as shown in
Once the event has passed, the conventional entry block 202′, which would be displayed near and during the event, can be removed to hide any trace of the details of the event. In the example shown in
In
It may be noted that in other embodiments, when desired, the retrieval of sensitive event details after the event may not be permitted. In such cases when the Auto Delete option 174 or when the user approves the deletion in response to a prompt, the event would be deleted permanently. No marker, such as indicator 200, would exist in those cases and thus the event details would simply be irretrievable.
Turning now to
At 306a, the events application 52 detects the “suppress until” time, namely the time at which the event details are to be revealed before the event 216 occurs. Until the “suppress until” time occurs, at 306B, the events application 52 may detect the initiation and execution of the re-authentication procedures, e.g. using the password entry window 213 to temporarily reveal the event details at 308b, which requires a successful re-authentication. After a prescribed amount of time or when the mobile device 10 is locked or any other suitable criterion is met, the details are again hidden at 304. Returning to 306a, when the “suppress until” time occurs, the event details are revealed in the conventional entry block 202′ at 308a. The event details would then be visible for a period of time, e.g. 30 minutes before the event 216 and typically during the event 216. However, it can be appreciated that additional options can be provided (not shown) to suppress the event details during the meeting or to only reveal details upon re-authentication. Similarly, instead of automatically revealing the details, the events application 52 could prompt the user to re-authenticate as a reminder of the meeting but also to ensure that the re-authentication is required to view the meeting details.
In the example discussed herein, the end time for the event 216 would then be detected at 310 and the entry removal module 53 can be initiated at 312 to determine if the user should be prompted to obtain approval for deleting or hiding the event details, or if this should be done automatically. If a prompt is to be used, an appropriate prompt can be displayed on the mobile device 10 at 314, which allows, for example, the user to select “NO” thus denying approval to delete the entry 32. At 316, the entry removal module 53 determines if the user has selected “YES” to approve the deletion or “NO” to reject the deletion and thus whether the entry details should be removed/hidden or not. For example, in some cases once the event 216 has occurred (such as a surprise birthday party), the sensitivity is no longer applicable and thus the user can opt to not delete/hide the entry details by selecting “NO” at 316. If the user rejects the deletion of the event entry 32 at 316, the entry removal module 53 then determines at 317 if the event 216 is a recurring event 216. If the event 216 is a recurring event 216, the entry 32, which will now not be deleted, is changed to a single instance event 216 and the future events 216 are modified such that the next event 216 is the start date in the reoccurrence at 318. This addresses the situation wherein this particular occurrence is kept but the next one is deleted to ensure that the start date is always adjusted to reflect the new starting date in the series of events 214. If the event 216 is a single instance event 216 or after it has been changed to a single instance event 216, the process ends at 319.
If at 316, the user does indicate that the entry should be deleted or the details hidden, at 320, the entry is deleted (e.g. as shown in
As discussed above, in addition to enabling the suppression and/or deletion of potentially sensitive data and information, the principles described herein may equally be applied for the purpose of recovering storage space that is consumed by adding entries 32 and any files or other attachments associated with the entries 32. As such, in addition to or instead of the Sensitive Event option 170, an option (not shown) can be provided to effect such recovery of storage space by deleting or otherwise removing entries 32 at appropriate times, e.g. when the event time period passes.
It can be appreciated that although the principles discussed herein are shown by way of example using a mobile device 10, such principles are equally applicable to any electronic event-related program used on any computing device such as a desktop computer, laptop computer or special purpose computer. In such cases, the re-authentication procedure to reveal entry details could be linked to a network or computer password that already exists or, if such a password does not exist or an application-specific password is desired, a separate password can be used.
It can also be appreciated that in systems such as the one shown in
Although the above has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the scope of the claims appended hereto.