Abstract:
A method for exchanging data with a mobile device that begins with the step of detecting a data exchange event. Next, at least one data exchange threshold is identified for the mobile device. An exchange urgency value is then determined and compared to the data exchange threshold. If the comparison is favorable, then the data exchange occurs immediately. Otherwise, the data exchange is placed in a delayed transmission queue, to be sent after a delay period.

Description:
BACKGROUND  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to the field of mobile communications and, more particularly, to an intelligent and resource saving technique for exchanging data with a mobile device.  
         [0003]     2. Description of the Related Art  
         [0004]     Mobile devices are widely used by people to stay connected with family, friends, and occupational obligations. The connectivity provided by such devices allows businesses to overcome geographical distances, creating a distributed system of virtual offices. The common communication modes that mobile devices are used for include email, data transfer, text messaging, phone, two-way radio and instant messaging. Many of these mobile devices provide an integrated storage space, such as flash memory or a hard drive, that is synchronized with a storage space of a permanent computer. Within the synchronized data space, people can share and collaborate on a variety of files, such as calendar information and documents. Examples of data exchanges where storage spaces are synchronized can include a conveyance of patient records to/from a medical record system, an update of customer account information in response to a banking transaction or purchase through an e-retailer, and/or an inventory update between a barcode equipped scanning device and an inventory management system. A capability of synchronizing data spaces can allow a mobile device or remote computer system to function as an extension of an existing company network.  
         [0005]     However, data exchanges made via this extensive network are not without cost. A data exchange between a mobile device and another remote computing device consumes device resources and sometimes incurs a monetary usage charge. For example, sending a text message from a mobile phone consumes battery power of the phone and connectivity providers often charge a user a fee for each text message sent.  
         [0006]     Further, mobile devices often have a limited battery life that is consumed when a transceiver, such as a BLUETOOTH transceiver, a WIFI (802.11 family of protocols) transceiver, or a mobile telephone transceiver is active. Many mobile devices utilize a power-down or power-saving mode, which selectively activates transceivers on an as needed basis. Repeatedly powering these devices on and off when data exchanges occur, however, can have a significant detrimental effect on battery life. Similarly, bandwidth is usually limited when a mobile device is not within close proximity to a fixed computing device supplying connectivity. Appreciably, most mobile phones have multiple mutually exclusive modes, such as a data mode and a calling mode, so that when a large file is being downloaded/uploaded to or from a mobile phone and when bandwidth for these exchanges is relatively limited, the mobile phone is not available to receive incoming calls or to make outgoing calls for a potentially lengthy duration. Accordingly, data exchanges involving mobile devices can result in significant connectivity expenses and/or a significant lack of availability.  
         [0007]     Conventional mobile devices have limited configurable options for exchanging data. One option is to immediately send and/or receive all messages whenever messages are available. This method can be extremely costly from a resource consumption perspective. Another conventional option is to connect the mobile device periodically to a remote data source on an iterative basis. Although this can conserve device resources, some data exchanges have a relatively high priority to the user and delays occurring between data exchanges can have negative effects.  
         [0008]     For instance, it is desirable for a businessman to receive a meeting cancellation notice before the businessman is traveling to the meeting. If the notice is sent via email or text message near the time of the meeting, the businessman can become frustrated with any delay in receiving the cancellation notice.  
         [0009]     Conventional mobile devices and exchange technologies lack mechanisms that permit a user, corporate system administrator, or message sender to balance message urgency against resource costs incurred though mobile device data exchanges.  
       SUMMARY OF THE INVENTION  
       [0010]     The present invention adds an intelligent data exchange capability to mobile devices. According to one embodiment of the invention, one or more configurable thresholds, can be established for data exchanges involving a mobile device. New data exchange instances can be assigned an importance value, which can also be referred to as an urgency value. When the importance value for a data exchange is less than the threshold, a data exchange can be delayed. For example, the data exchange can be pooled for transmission with other data exchanges, which have been determined to be non-critical. When an importance value for a data exchange is greater than the threshold, the data exchange can be performed immediately. In one embodiment, any pooled exchanges can also be conveyed when any other data exchange is conducted. In another embodiment, a portion of a data exchange, such as an email message, can be immediately conveyed to a mobile device while a different portion of the data exchange, such as an email attachment, can be pooled for later transfer.  
         [0011]     Additionally, different thresholds can be associated with different mobile device resources. These thresholds can be dynamically changed as the state of a mobile device is changed. For example, when a mobile device is directly connected to a power source, a threshold designed to conserve battery power can be dynamically and automatically lowered. In another example, when a mobile device is connected to a fixed device via a data transfer cable, such as when docked, a data exchange threshold associated with bandwidth can be automatically adjusted. It should be appreciated that thresholds and data exchange importance values can be configured by mobile device owners, by system administrators, by application designers, and/or by communicators initiating a data exchange directed to the mobile device.  
         [0012]     The present invention can be implemented in accordance with numerous aspects consistent with material presented herein. For example, one aspect of the present invention can include a method for exchanging data with a mobile device that begins with the step of detecting a data exchange event. Next, at least one data exchange threshold can be identified for the mobile device. An exchange urgency value can then be determined and compared to the data exchange threshold. If the comparison is favorable, then the data exchange can occur immediately. Otherwise, the data exchange can be placed in a delayed transmission queue to be sent after a delay period. The delay period can be determined in part by a number of items that have accumulated within the queue and/or by a maximum delay period.  
         [0013]     Another aspect of the present invention can include a system configured to conduct intelligent data exchanges with mobile devices. This system can include a mobile device, a second device that can communicate with the mobile device, and an exchange immediacy engine. The exchange immediacy engine can adjust an immediacy of a data exchange based upon an availability of device resources and an urgency level of the data exchange. The results of the exchange immediacy engine can determine whether the mobile device immediately performs the data exchange with the second device or whether the data exchange is delayed.  
         [0014]     Yet another aspect of the present invention can include a software method for exchanging data with a mobile device. The software of the method can be stored upon a machine-readable medium which contains encoded instructions that cause a machine to perform a series of steps. The first of these steps can determine a resource level for a consumable resource of the mobile device before the device initiates an exchange of an electronic data item. Next, the electronic data item can be examined for its exchange urgency value. Another step can involve an automatic calculation of an exchange immediacy level for the data item that is based upon the determined resource level and the exchange urgency value of the preceding steps. The result of this step can determine whether the exchange is to occur approximately immediately or is to be delayed. The software method can also automatically perform the data exchange in accordance with the calculated exchange immediacy level.  
         [0015]     It should be noted that various aspects of the invention can be implemented as a program for controlling computing equipment to implement the functions described herein, or a program for enabling computing equipment to perform processes corresponding to the steps disclosed herein. This program may be provided by storing the program in a magnetic disk, an optical disk, a semiconductor memory, any other recording medium, or can also be provided as a digitally encoded signal conveyed via a carrier wave. The described program can be a single program or can be implemented as multiple subprograms, each of which interact within a single computing device or interact in a distributed fashion across a network space.  
         [0016]     The method detailed herein can also be a method performed at least in part by a service agent and/or a machine manipulated by a service agent in response to a service request. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]     There are shown in the drawings, embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.  
         [0018]      FIG. 1  is a schematic diagram illustrating two systems for synchronizing data exchanges with a mobile device in a manner that conserves resources in accordance with embodiments of the inventive arrangements disclosed herein.  
         [0019]      FIG. 2  illustrates a collection of sample resource threshold adjustments in accordance with an embodiment of the inventive arrangements disclosed herein.  
         [0020]      FIG. 3  is a flow chart of a method for synchronizing data exchanges with a mobile device in a manner that conserves resources in accordance with an embodiment of the inventive arrangements disclosed herein  
         [0021]      FIG. 4  is a flow chart of a method where a service agent can configure a system for handling data exchanges involving mobile devices in an intelligent manner in accordance with an embodiment of the inventive arrangements disclosed herein. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0022]      FIG. 1  is a schematic diagram illustrating a system  100  and a system  150  for synchronizing data exchanges with a mobile device in a manner that conserves resources in accordance with embodiments of the inventive arrangements disclosed herein. System  100  can include mobile device  105 , second device  115 , and communication server  120  communicatively linked through network  110 .  
         [0023]     Mobile device  105  can be any device that can exchange data item  118  with second device  115  via network  110 . Mobile device  105  can be any of a variety of mobile devices including, but not limited to, a two-way radio, a personal data assistant (PDA), a mobile phone, a video game device, a media player, and the like.  
         [0024]     Second device  115  can be a relatively stationary device or a second mobile device. In various contemplated embodiments, second device  115  can be implemented as any of a variety of electronic devices including, but not limited to, a personal computer, a server, a network data store, an embedded device, a two-way radio, a personal data assistant (PDA), a mobile phone, a media player, and the like.  
         [0025]     Data item  118  can be any digital or electronic communication including, but not limited to an email, a digital file, a media stream, a video clip, a music file, a text message, and the like.  
         [0026]     Communications server  120  can be any of a variety of network devices including, but not limited to, a network server, an email server, a file server, a web server, a private branch exchange (PBX), and the like. Contained within or connected to communications server  120  are delay queue  128  and exchange immediacy engine  123 .  
         [0027]     Exchange immediacy engine  123  can include a set of machine-readable instructions for determining the exchange urgency value for the exchange of data item  118  between mobile device  105  and second device  115 . Exchange immediacy engine  123  can be implemented in a variety of manners including, but not limited to, a web service, a server application, a client application, an email server application plug-in component, and the like. Exchange immediacy engine  123  can access data store  125 , which contains table  126 .  
         [0028]     Data table  126  can be a user/administrator configurable table of values, wherein each value can represent the urgency level of a designated type of data exchange. In one embodiment, data table  126  can include a number of rows, each row having values for a data exchange type, a data exchange urgency level, a maximum data exchange delay, and a minimum number of items permitted in a delay queue before an exchange is triggered.  
         [0029]     As shown, data table  126  can set an urgency level of high, and a maximum delay time of thirty seconds for all outgoing messages. Additionally, a maximum number of items of a high urgency in the queue can be set for three items so that a transfer is initiated automatically when three items of high priority are queued irrespective of whether the maximum delay time has been reached for any of the queued items.  
         [0030]     In one embodiment, the maximum queued items can also be based in part upon a memory size consumed by queued items instead of a number of items in a queue. Establishing a maximum queued memory space can be especially useful in embodiments where space within the delay queue  128  is limited. Additionally, a queuing algorithm based upon a combination of multiple delay factors such as maximum delay time, maximum queued records, and maximum queued memory space, can be used to determine when queued items are to be released from the delay queue  128 .  
         [0031]     Turning back to table  126 , attachments, meeting updates, and invoices can have a low urgency level, a maximum delay of thirty minutes, and a maximum of ten queued items. Document revisions, document drafts, and account updates can each have medium urgency levels, maximum delays of ten minutes, and a maximum of live queued items. It should be noted that some exchange types can conditionally change their urgency level depending upon additional factors. For example, a meeting update can have a low urgency level when the meeting is more than a day away, a medium urgency level when the meeting is more than one hour away, and a high urgency when the meeting is less than one hour away. When a given exchange satisfies criteria of more than one exchange type in data table  126 , the highest urgency level and lowest maximum delay can be utilized for the exchange. Thus, different exchange types of the same urgency level can have different type specific values for maximum time in queue and maximum items in queue.  
         [0032]     In one embodiment, the maximum number of queued items can be based upon urgency level only and not upon the exchange type. Thus any combination of document revisions, document drafts, and account updates, each having a medium urgency, that total five items or more can release all items of medium urgency from the delay queue  128 . Further, queued items of different urgency levels can be amalgamated using a conversion factor. For example, two items of medium urgency can be converted to one item of high urgency and two items of low urgency can be converted into one item of medium urgency by the exchange immediacy engine  123 . Thus, four queued items of low urgency (equals two items of medium urgency) plus three items of medium urgency (for a converted total of five items of medium urgency) can trigger a release of all items from delay queue  128 .  
         [0033]     Interaction among the components of system  100  can be clarified through an example as follows. It should be appreciated that the following example is for illustrative purposes only and that the invention should not be construed as limited to the specific arrangements used within. In the example, second device  115  is attempting to transmit data item  118  to mobile device  105  via network  110 . When this request for transfer reaches communications server  120 , exchange immediacy engine  123  determines data item  118  should be transmitted to mobile device  105 . In order to make this determination, exchange immediacy engine checks resource state  108  of mobile device  105  and data table  125 .  
         [0034]     Resource state  108  is a data transmission sent by mobile device  105  to communications server  120  for use in exchange immediacy engine  123 . Resource state  108  can contain data values that correspond to the amount of consumable resources that are available for mobile device  105 . For example, resource state  108  may contain a value of ten associated with power to signify that it is plugged into a wall power outlet.  
         [0035]     The result of a calculation performed by exchange immediacy engine  123  determines whether data item  118  is immediately transmitted to mobile device  105  or whether data item  118  is stored in delay queue  128  for future transmission. In this example, the exchange urgency value calculated for data item  118  authorizes its immediate transmission to mobile device  105 , thus, completing the data exchange.  
         [0036]     System  150  is an alternate embodiment of the present invention and can include mobile device  155 , network  160 , second device  165 , and exchange immediacy engine  158 . Mobile device  155  can be linked to outgoing delay queue  156  and exchange immediacy engine  158 . Second device  165  can be linked to outgoing delay queue  166 . Mobile device  155  can be approximately equivalent to mobile device  105 , second device  165  can be approximately equivalent to second device  115 , and exchange immediacy engine  158  can be approximately equivalent to exchange immediacy engine  123 , it should be appreciated that in this embodiment, exchange immediacy engine  158  can be implemented in a variety of manners including, but not limited to, a JAVA applet, a thin client, a client application, an email application plug-in component, and the like.  
         [0037]     Interaction among the components of system  150  can be clarified through an example as follows. It should be appreciated that the following example is for illustrative purposes only and that the invention should not be construed as limited to the specific arrangements used within. In the example, second device  165  is attempting to exchange a data item with mobile device  155  via network  160 . To begin this exchange, second device  165  transmits item exchange request  172  to mobile device  155 . Upon receipt of this request, exchange immediacy engine  158  determines if mobile device  155  has enough resources to conduct and accept the data exchange. For example, exchange immediacy engine would check the amount of power and bandwidth available to mobile device  155  and use this information to calculate an exchange urgency value for the requested data exchange. This value is sent back to second device  165  in exchange response  174 .  
         [0038]     The contents of exchange response  174  determine whether second device  165  can immediately transmit data item  176  to mobile device  155  or whether the transmission is to be delayed. In this example, exchange response  174  authorizes the exchange of data item  176  from second device  165  to mobile device  105 . When a transmission pathway is opened between mobile device  155  and second device  165 , a previously queued data item  178 , which was held in queue  156 , can be conveyed to device  165  along the open transmission pathway.  
         [0039]     In one contemplated derivation of system  150 , a network data store (not shown) linked to network  160  can be used to temporarily store queued data items. Additionally, a network based synchronization engine (not shown) can be used to synchronize data exchanges between mobile device  155  and second device  165 , when either of the devices  155  and  165  is temporarily disconnected from network  160  and is therefore unable to convey information to the other device. The synchronization engine can temporarily store relevant values, such as resource levels of mobile device  155 , urgency levels for data items to be exchanges, and threshold values.  
         [0040]     As used herein, presented data stores and queues, including stores  125 ,  128 ,  156 , and  166 , can be a physical or virtual storage space configured to store digital information. Data stores  125 ,  128 ,  156 , and  166  can be physically implemented within any type of hardware including, but not limited to, a magnetic disk, an optical disk, a semiconductor memory, a digitally encoded plastic memory, a holographic memory, or any other recording medium. Each of the data stores  125 ,  128 ,  156 , and  166  can be a stand-alone storage unit as well as a storage unit formed from a plurality of physical devices. Additionally, information can be stored within data store  125 ,  128 ,  156 , and/or  166  in a variety of manners. For example, information can be stored within a database structure or can be stored within one or more files of a file storage system, where each file may or may not be indexed for information searching purposes. Further, data stores  125 ,  128 ,  156 , and/or  166  can utilize one or more encryption mechanisms to protect stored information from unauthorized access.  
         [0041]     Network  110  and network  160  can include any hardware, software and/or firmware necessary to convey data encoded within carrier waves. Data can be contained within analog or digital signals and conveyed through data or voice channels. Network  110  and network  160  can include local components and data pathways necessary for communications to be exchanged among computing device components and between integrated device components and peripheral devices. Network  110  and network  160  can also include network equipment, such as routers, data lines, hubs, and intermediary servers which together form a data network, such as the Internet. Network  110  and network  160  can also include circuit-based communication components and mobile communication components, such as telephony switches, modems, cellular communication towers, and the like. Network  110  and network  160  can include line based and/or wireless communication pathways.  
         [0042]      FIG. 2  illustrates a collection  200  of sample resource threshold adjustments in accordance with an embodiment of the inventive arrangements disclosed herein. The samples of collection  200  can be performed in the context of system  100  or system  150 . Collection  200  is not limited in this regard, however, and can be performed in the context of any system supporting mobile device data exchanges that conserve device resources.  
         [0043]     Sample  205  includes mobile device state  210 . In mobile device state  210 , mobile device  211  is connected to power outlet  213  via power cord  212 . The connection of mobile device  211  to power outlet  213  generates a change in power threshold  215 , as indicated by the dotted lines.  
         [0044]     Power threshold  215  represents the available power states for mobile device  211 . Dotted check  217  illustrates that prior to connecting to power outlet  213  the power state of mobile device  211  was low battery. The power state change due to the connection to power outlet  213  is shown by solid check  218 . Mobile device  211  is now running on AC power.  
         [0045]     This change in power threshold  215  causes the change illustrated in state value  220 . State value  220  represents the numerical priority values associated with various power states. In this example, state value  220  changes from a numeric value of 3, representing the low battery state, to a numeric value of 10, corresponding to the AC power state. State value  220  is then used in example code  225 . Example code  225  is a pseudocode representation of a possible algorithm used by exchange immediacy engine  123  of system  100  or by engine  158  of system  150 . In this example, the comparison of the power state value and the exchange threshold evaluates to FALSE, thus, initiating the data exchange.  
         [0046]     Sample  230  includes mobile device state  235 . In mobile device state  235 , mobile device  236  is connected to network  238  via network cable  237 . The connection of mobile device  236  to network  238  generates a change in bandwidth threshold  240 , as indicated by the dotted lines.  
         [0047]     Bandwidth threshold  240  represents the available bandwidth states for mobile device  236 . Dotted check  242  illustrates that prior to connecting to network  238  the bandwidth state of mobile device  236  was WIFI or wireless fidelity. The bandwidth state change due to the connection to network  238  is shown by solid check  243 . Mobile device  236  now has a direct cable connection for bandwidth.  
         [0048]     This change in bandwidth threshold  240  causes the change illustrated in state value  245 . State value  245  represents the numerical priority values associated with various bandwidth states. In this example, state value  245  changes from a numeric value of 8, representing the WIFI state, to a numeric value of 10, corresponding to the direct connection state. State value  245  is then used in example code  250 . Example code  250  is a pseudocode representation of a possible algorithm used by exchange immediacy engine  123  of system  100  or by engine  158  of system  150 . In this example, the comparison of the bandwidth state value and the exchange threshold evaluates to FALSE, thus, initiating the data exchange.  
         [0049]     Sample  255  includes mobile device state  260 . In mobile device state  260 , mobile device  263  is connected to network  264  via network cable  262 . In this example, a user of mobile device  263  adjusts urgency level  265  for a specified data item, as indicated by the dotted lines.  
         [0050]     Urgency level  265  represents the available priority levels for a data exchange. Solid check  267  illustrates that a user has selected a level of high importance The designation of solid check  267  in urgency level  265  corresponds to an entry in urgency table  270 . Urgency table  270  contains the numerical priority values associated with various urgency levels. In this example, the value associated with the urgency level designated by solid check  267  is 8, representing a high level of exchange importance. This value from urgency table  270  is then used in example code  275 . Example code  275  is a pseudocode representation of a possible algorithm used by exchange immediacy engine  123  of system  100  or by engine  158  of system  150 . In this example, the comparison of the urgency level value and the exchange threshold evaluates to TRUE, thus, pooling the data item for a future exchange.  
         [0051]     Sample  280  includes mobile device state  285 . Mobile device state  285  is a composite of Samples  205 ,  230 , and  255 . Therefore, mobile device  281  is connected to network  283  and power outlet  282 . Additionally, a user of mobile device  281  adjusts urgency level  288  for a specified data item, as indicated by the dotted lines.  
         [0052]     Urgency level  288  illustrates that a user has selected a level of low importance for the data exchange. All numeric values associated with the power, bandwidth, and urgency level are shown in value table  290 . In this example, the value associated with the direct connection to network  283  is 10; the value associated with the power connection to power outlet  282  is 10; the value associated with the low urgency level is 3.  
         [0053]     These values are then used in example code  295 . Example code  295  is a pseudocode representation of a possible algorithm used by exchange immediacy engine  123  of system  100  or by engine  158  of system  150 . In this example, an equation is used to calculate the numeric equivalent for mobile device state  285  and urgency level  288 . It should be appreciated that the equation used in this example is for illustrative purposes only and that the invention should not be construed as limited to the specific arrangements used within. Therefore, in this example, the comparison of the resultant exchange immediacy value and the exchange threshold evaluates to TRUE, thus, pooling the data item for a future exchange.  
         [0054]      FIG. 3  is a flow chart of a method  300  for synchronizing data exchanges with a mobile device in a manner that conserves resources in accordance with an embodiment of the inventive arrangements disclosed herein. Method  300  can be performed in the context of systems  100 ,  150 , or in the context of any other system allowing the exchange of data in a manner that conserves mobile device resources.  
         [0055]     Method  300  can begin in step  305 , where the system identifies a data exchange event. Such an event can be initiated by a user of the mobile device, a communications server, or any device that communicates with the mobile device. In step  310 , the system determines an urgency value for he identified event. An example of an urgency value can be a value contained in a configurable table within the system that is associated with various exchange types, as illustrated in exchange table  126  of system  100 .  
         [0056]     In step  315 , a resource state of the mobile device is determined. In essence, this step determines the level of resources currently available to the mobile device. Based upon the data calculated in steps  310  and  315 , the system then determines the immediacy of the data exchange in step  320 .  
         [0057]     If the data exchange is determined to occur immediately, step  325  is executed in which the data exchange is initiated immediately. It is also possible that other data items awaiting transmission are exchanged at this time as well. Upon completion of this step, the method returns to step  305  where it awaits the next data exchange event.  
         [0058]     If the data exchange is to be delayed, then the data item is placed in a queue for future transmission as expressed in step  330 . Items placed in the queue have criteria in which transmission can commence, lest the items would not leave the queue. Thus, when data items are in the queue, step  335  checks the transmission criteria. The transmission criteria can be based upon a maximum delay period, a maximum number of items of a specified urgency level in a queue, a maximum amount of memory space consumed by queued items, and other such factors taken alone or in combination. If the transmission criteria are satisfied, the method proceeds to step  340  in which the queued data exchanges are initiated. If the transmission criteria are not satisfied, then the method returns to step  305  where it awaits the next data exchange event.  
         [0059]      FIG. 4  is a flow chart of a method  400  where a service agent can configure a system for handling data exchanges involving mobile devices in an intelligent manner in accordance with an embodiment of the inventive arrangements disclosed herein. Method  400  can be preformed in the context of system  100 , a system  150 , and/or method  300 .  
         [0060]     Method  400  can begin in step  405 , when a customer initiates a service request. The service request can be a request for a service agent to establish a new system for intelligently handling data exchanges. The service request can also be a request to troubleshoot a problem with an existing data exchange system or to enhance a data exchange system.  
         [0061]     In step  410 , a human agent can be selected to respond to the service request. In step  415 , the human agent can analyze a customer&#39;s current system and can develop a solution. The solution can result in a system  100 , a system  150 , or any system where intelligent data exchanges are performed, such as a system that performs the steps of method  300 .  
         [0062]     In step  420 , the human agent can configure the customer&#39;s system to exchange data with mobile devices in a manner that balances resource consumption against data exchange urgency. In step  425 , the human agent can optionally configure initial thresholds and urgency values for the customer&#39;s system. The human agent can perform steps  420  and  425  and/or can configure a computing device of the customer in a manner that the customer or clients of the customer can perform steps  420  and  425  using the configured system in the future. For example, the service agent can load and configure software and hardware so that client devices will automatically exchange data with mobile devices in an intelligent fashion designed to conserve resources. In step  430 , the human agent can complete the service activities.  
         [0063]     The present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general purpose computer system with a computer program when being loaded and executed, controls the computer system such that it carries out the methods described herein.  
         [0064]     The present invention also may be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.