Patent Publication Number: US-2009227374-A1

Title: Seamless mobility of location-based gaming across virtual and physical worlds

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention generally relates to gaming systems and, more particularly, to location-based gaming using a communication device. 
     2. Background of the Invention 
     Geocaching is an outdoor treasure-hunting game in which the participants use a Global Positioning System (GPS) receiver or other navigational techniques to hide containers, oftentimes referred to as “caches,” and to seek such containers. A typical cache may include a small waterproof container in which a treasure and a logbook have been placed. The treasure usually comprises a toy or trinket of little value. The logbook typically is provided for those who find the cache to record the date found, a brief description of their experience searching for the cache, and to provide a stamp or other symbol of personalization. 
     The popularity of geocaching has grown exponentially since Selective Availability, a feature that introduced intentional random errors in GPS coordinates, was removed from the GPS in May 2000. Over five hundred thousand geocaches now are registered on various websites devoted to the sport, and geocaches currently are placed in over 100 countries around the world and on all seven continents, including Antarctica. 
     SUMMARY OF THE INVENTION 
     The present invention relates to a method of hosting a geocaching game. The method can include interfacing with a geocaching game host to retrieve geocaching game data associated with a physical world geocaching game. The method also can include managing association data that forms a nexus between a virtual world and the geocaching game data, the association data enabling a virtual geocaching game that corresponds to the physical world geocaching game to be hosted in the virtual world. 
     The present invention also relates to a geocaching gaming system. The system can include at least one server that interfaces with a geocaching game host to retrieve geocaching game data associated with a physical world geocaching game, and manages association data that forms a nexus between a virtual world and the geocaching game data. The association data can enable a virtual geocaching game that corresponds to the physical world geocaching game to be hosted in the virtual world. 
     The present invention also relates to a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the various steps and/or functions described herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Preferred embodiments of the present invention will be described below in more detail, with reference to the accompanying drawings, in which: 
         FIG. 1  depicts a system that is useful for understanding the present invention; 
         FIG. 2  is a flowchart that is useful for understanding the present invention; and 
         FIG. 3  is a flowchart that is useful for understanding the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     While the specification concludes with claims defining features of the invention that are regarded as novel, it is believed that the invention will be better understood from a consideration of the description in conjunction with the drawings. As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention, which can be embodied in various forms. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention in virtually any appropriately detailed structure. Further, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the invention. 
     Arrangements described herein relate to a method and a system for hosting a geocaching game which may be accessed both in physical world settings and in virtual world settings. For example, a user may play the geocaching game to search for caches in the physical world, and also play the geocaching game to search for caches in one or more virtual worlds. Notably, the locations in the virtual worlds can be mapped to physical world locations. For example, if a physical cache is located at a particular location in the physical world, a virtual cache can be located at corresponding locations in the virtual worlds. Accordingly, the user can choose the manner in which to participate in the geocaching game at any given time. Moreover, if the user is distally located from a particular physical world cache location, the user still may select a desired virtual world in which to search for such cache. 
       FIG. 1  depicts a system  100  that is useful for understanding the present invention. The system  100  can include a communications network  102 , which may comprise a wide area network (WAN), such as the Internet, the World Wide Web, an interconnect communications network (e.g. a cellular communications network), a dispatch communications network, a public switched telephone network (PSTN), and the like. The communications network also may comprise a local area network (LAN), a metropolitan area network (MAN), a WiFi network, a Mesh network, and/or any other networks or systems over which communication signals can be propagated. In that regard, the communications network  102  can include wired and/or wireless communication links. 
     The communications network  102  can be configured to communicate data via IEEE 802 wireless communications, for example, 802.11 and 802.16 (WiMAX), 3 G, 4 G, EUTRAN, UMB, WPA, WPA2, GSM, TDMA, CDMA, WCDMA, OFDM, direct wireless communication, or any other communications format. Indeed, the communications network  102  can be implemented in accordance with any suitable communications standards, protocols, and/or architectures, or a suitable combination of such standards, protocols, and/or architectures. 
     The system  100  can include one or more servers  104 , each of which can comprise one or more processors/controllers, data storage devices, user interfaces, communication adapters, and/or other suitable components. In an arrangement in which a plurality of servers  104  are implemented, such servers  104  can be co-located and networked in a single facility, or located in a variety of different facilities that are communicatively linked, for instance via the communications network  102 . 
     A geocaching game host  106  can be instantiated on the server(s)  104 . The geocaching game host  106  can manage (e.g. store, retrieve, update, delete, etc.) geocaching game data  108 , and provide access to such data  108 . The geocaching game host  106  can receive the geocaching game data  108  via a user interface, a web portal, electronic upload, e-mail, or in another fitting manner, and can store the geocaching game data  108  in one or more databases, data tables, data files, or other suitable data storage formats. 
     The geocaching game data  108  can comprise geocaching data associated with the physical world. For example, the geocaching game data  108  can identify particular geocaching games, instances of geocaching games, and associated caches that are located in the physical world, which may be referred to as physical world caches. As used herein, the “physical world” is the world of material objects, for example those discernible by touch or physical sense. 
     The geocaching game data  108  also can include coordinates indicating where such caches are located, information about the environment at the cache locations, and identifiers that associate the caches with particular geocaching games. The coordinates can be, for instance, geographic coordinates such as global positioning system (GPS) coordinates. In another arrangement, the geocaching game data  108  can indicate the coordinates as local coordinates, addresses, map locations, or can indicate the coordinates in another desired manner. In yet another arrangement, the geocaching game data  108  can comprise directions, riddles or clues in lieu of, or in addition to, geographic coordinates. Further, the geocaching game data  108  can include other information related to geocaching games, for instance user names, user passcodes, current locations of users, past locations of users, events that occur in the geocaching games, etc. 
     One or more virtual world hosts  110  can be instantiated on the server(s)  104 . As used herein, a “virtual world” is a computer-simulated environment intended for its users to inhabit and interact via avatars or other software agents acting on behalf of a user. An example of a virtual world is an environment presented in a massive multiplayer online game (MMOG), such as World of Warcraft ® or Second Life ®. As used herein, an “avatar” is a visual representation of a user, or a user&#39;s character, in a virtual world. For example, an avatar can be a multi-dimensional picture or model. Virtual worlds and avatars are each well known to the skilled artisan. 
     The server(s)  104  also can host a merge application  112  that forms a nexus between the virtual world(s) and geocaching game data and events in the physical world. For instance, the merge application  112  can manage physical/virtual world association data  114  that forms such nexus. The association data  114  also can be stored in one or more databases, data tables, data files, or in any other suitable manner, and can map a virtual world to the physical world geocaching game data  108 . By way of example, the merge application  112  can interface with the geocaching game host  106  to retrieve the geocaching game data  108 . The merge application  112  then can generate corresponding association data  114  that associates the geocaching game data  108  with one or more of the virtual worlds. For instance, the merge application  112  can map user identities, coordinates and other information to the virtual worlds. 
     As an example, the association data  114  can map identities of users to the identifiers of avatars in the virtual worlds. In one arrangement, the identities of the users can be based on biometric parameters, unique identifiers, or the like. The virtual world identifiers can be based on account identifiers, login names, network identifiers, or other suitable information. It should be noted that a particular user may be mapped to a plurality of avatars, software agents and/or other virtual world entities, and that a particular avatar, software agent and/or other virtual world entity may be mapped to one or more users, for example to a user group. 
     The association data  114  also can map three-dimensional (3-D) coordinate locations in the physical world to 3-D coordinate locations in one or more virtual worlds. Further, names of physical world entities (e.g. stores, parks, etc.) can be mapped to names of virtual world entities, and logical rules can be provided which map physical world context (e.g. location, time, recent actions, nearby entities, safety and security conditions, etc.) to the virtual worlds. The association data  114  also can map location-based services available in the physical world to virtual world services. 
     The association data  114  further can include logical rules that map events, activity states, presence information, connectivity information and/or social networking characteristics associated with a user to corresponding events, locations and/or other parameters within a virtual world. For example, the logical rules can map the user&#39;s physical world experiences to experiences in the virtual world that tend to mirror or diverge from the physical world experiences. The logical rules can be based on user preferences, gaming events, or any other suitable parameters. 
     Logical rules provided in the association data  114  also can identify opportune occasions to switch between worlds (e.g. via contests or prizes), identify specific points in a virtual game (e.g. in a time-space-context) at which users are allowed to switch between physical and virtual worlds, identify occasions when the user can play a geocaching game in both physical and virtual worlds simultaneously, or the like. For example, while a user plays a geocaching game in the physical world, in accordance with the association data  114 , one or more associated avatars can reflect the user&#39;s game play in the virtual word(s). 
     The aforementioned examples of association data  114  are presented to aid understanding of the present arrangements, but are not intended to limit the scope of the present invention. In that regard, the association data  114  can be implemented in any other manner suitable for associating geocache gaming in the physical world with one or more virtual worlds. Moreover, the association data  114 , and corresponding mappings provided therein, can be organized and prioritized in any suitable manner. 
     The merge application  112  can communicate applicable association data  114  to the virtual world host  110 , which can process the association data  114  to host geocaching games in the virtual worlds (hereinafter referred to as “virtual geocaching games”) that correspond to the physical world geocaching games. For instance, the virtual world host  110  can generate virtual caches that correspond to the physical world caches, update user profiles with pertinent geocaching game data  108 , and reflect events that occur in the corresponding physical world geocaching games. In one arrangement, the merge application  112  can communicate with the virtual world host  110  to determine the appropriate format in which to communicate the data, and then communicate the data accordingly. 
     In addition, the merge application  112  can receive geocaching data from the virtual world host  110  that corresponds to virtual geocaching games being hosted by the virtual world host  110 , and update corresponding association data  114 . The merge application  112  also can communicate the association data  114  to the geocaching game host  106 , which can update the geocaching game data  108  with events and game changes that occur in the virtual world. At this point it should be noted that the merge application  112  need not be a stand-alone application, but also can be a component of another application, such as the geocaching game host  106  or the virtual world host  110 . 
     The system  100  also can include one or more communication devices that may communicatively link to the server(s)  104  via the communications network  102 . For example, the system can include a communication device  116 . The communication device  116  can be a mobile communication device, such as a mobile radio, a mobile telephone, a mobile station (e.g. a mobile computer, a personal digital assistant, a portable gaming device, or the like), or any other mobile device that is suitably configured to communicate with the server(s)  104  from various locations in the physical world. As such, the communication device  116  can comprise one or more processors/controllers, data storage devices, transceivers, communication adapters, and/or other suitable components. In addition, the communication device  116  can include a user interface  118 , which can comprise one or more keys, keypads, keyboards, softkeys, buttons, displays, touch screens, touch pads, joysticks, game pads, audio input/output devices, and so on. 
     In one arrangement, the communication device  116  can include a positioning system  120 , such as a GPS receiver, that indicates the current location of the communication device  116 . In another arrangement, the current location of the communication device  116  can be determined using a location beacon or triangulation implemented with the use of communication towers. Still, the current location of the communication device  116  can be determined in any other suitable manner and the invention is not limited in this regard. 
     A geocaching game  122  can be instantiated on the communication device  116 . Alternatively, the geocaching game  122  can be instantiated on one or more of the servers  104 . In such an arrangement, a geocaching game client which enables a user to interact with the geocaching game  122  can be instantiated on the communication device  116 . A virtual world client  124  also can be instantiated on the communication device  116 . Via the virtual world client  124 , a user can interact with one or more of the virtual worlds. For instance, the virtual world client  124  can present virtual world audio, video and/or textual information to the user via the user interface  118 , can receive user commands via the user interface  118 , and can communicate the user commands to a server  104  to control the user&#39;s game play in the virtual world. 
     During geocaching game play, the current location of the communication device  116  can be tracked with the positioning system  120 , which may communicate position coordinates to the geocaching game  122 . In addition, any number of physical world events can be initiated to generate gaming inputs for the geocaching game  122 . For example, a user can establish a cache location in a geocaching game, report a cache find, switch between various geocaching game databases, switch between types of geocaching games, find other people playing a particular geocache game, report conditions at a particular geocache location, and so on. 
     The physical world events can be initiated in any suitable manner, for example by a user input entered into the user interface  118  (e.g. a tactile input, a spoken utterance, etc.). In one aspect of the inventive arrangements, one or more push-to-experience (PTX) buttons can be depressed to initiate physical world events. In such an arrangement, functions can be transcribed into a standard set of commands, for example as extensions to an existing GPS exchange format (GPX). As known to the skilled artisan, GPX is an extensible markup language (XML) schema designed for transferring GPS data between software applications. 
     The geocaching game  122  can communicate with the geocaching game host  106  to manage geocaching game data  108  to correspond to the geocaching game play in the physical world. For example, the geocaching game data  108  can be managed to reflect current and past locations of the communication device  116 , geocaching game events, caches located, rewards received, and so on. Further, such data management can trigger the merge application  112  to manage the association data  114  accordingly. Notably, management of the geocaching game data  108  and the association data  114  can be implemented in real time. As used herein, the term “real time” means a level of processing responsiveness that a user senses as sufficiently immediate or that enables the processor to keep up with some external process. 
     A user playing a geocaching game in the physical world may be able to keep any tangible treasures that are found at cache locations. In addition to, or in lieu of, such treasures, a reward  126  may be communicated from the server(s)  104  to the communication device  116  of a user who finds a cache. A reward  126  can comprise, for example, a virtual item. As used herein, a “virtual item” is an item that is incorporeal (e.g. incapable of being perceived by the sense of touch). Examples of virtual items include, but are not limited to, electronic data, electronic files and electronic information. For instance, a virtual item can include media content (e.g. text, audio and/or video data), a computer program, an electronic game, a pass key which may be used to access a tangible or intangible item of value, a coupon code which provides a discount for items available for purchase, or the like. 
     In one arrangement, the user can be provided options to immediately retrieve the reward  126 , to save a reward  126  for retrieval at a later time, to select a reward from a plurality of available rewards  126 , to leave an earned reward for a next person who successfully finds a given cache, etc. Access to the rewards  126  can be controlled by the geocaching game host  106 , the geocaching game  122 , or another suitable application. 
     The user can launch the virtual world client  124  to initiate virtual geocaching game play. During virtual geocaching game play, the user can initiate any number of events in the virtual world (hereinafter referred to as “virtual world events”) which generate gaming inputs for the virtual world. As with physical world events, virtual world events can be initiated to establish a cache location in a geocache game, report a cache find, switch between various geocaching game databases, switch between types of geocache games, find other people playing a particular geocache game, report conditions at a virtual geocache location, and so on. 
     Geocaching game play in the virtual world can be associated with geocaching game play in the physical world. Such association can be based on a user identifier, a user password, a geocaching game identifier, a game session identifier, or the like. The geocaching game host  106  can interface with the merge application  112  to manage physical/virtual world association data  114  and/or corresponding geocaching game data  108  to correspond to geocaching game play in the virtual world. Such data management can be performed in real time. Thus, the current status of a particular geocaching game or geocaching game session can be maintained and shared between the physical world and the virtual world, and a high level of data reliability and accuracy can be maintained. 
     Further, via the merge application  112 , geocaching game data  108  associated with a user can be available for use in the user&#39;s geocaching game sessions both in the physical world and in the virtual world, thereby providing a seamless transition between physical world gaming and virtual world gaming. Such data can include, but is not limited to, user preferences, user logs, lists of caches found, lists of rewards earned, present user location, past user locations, user statistics, and the like. Moreover, the geocaching game data  108  can be shared with other users active in the same geocaching game, regardless of whether the users are participating in the geocaching game in the physical world or in the virtual world. For instance, if a first user is participating in a particular geocaching game in the physical world, and a second user is participating in the same geocaching game in the virtual world, such users can monitor each other&#39;s movements, cache finds, rewards, etc. 
     Notably, caches presented to a user in the virtual world can be mapped to correspond to caches available in the physical world. Thus, if the user is not able to, or decides not to, physically search for a cache in the physical world, the user can search for the cache in the virtual world. Indeed, the user can search for caches in the physical world during one geocaching game session and search for caches in the virtual world during another game session. 
     To accentuate the sense of realism in the virtual world, environment data (e.g. satellite image data, geo-spatial image data, weather data, etc.) can be generated for physical world cache locations, and such data can be incorporated into the virtual world to simulate the environment at the cache locations. Moreover, a user&#39;s avatar within the virtual world can carry, or otherwise be associated with, a virtual GPS receiver, a virtual map, etc. Accordingly, a user&#39;s participation in a geocaching game in the virtual world may have many similarities with geocaching game participation in the physical world, though this need not be required. For example, game play in the virtual world may only loosely resemble game play in the physical world, or there may be no resemblance at all. 
     As with physical world geocaching game play, a user playing a geocaching game in the virtual world also may receive a reward  126  for finding a cache. As noted, such reward  126  also can comprise, for example, a virtual item. In one aspect of the inventive arrangements, the virtual item can be a virtual weapon for use in the virtual world, a virtual object that provides the player with special powers or abilities within the virtual world, virtual currency that may be used within the virtual world, or the like. Notice of the rewards  126  can be communicated to the communication device  116  for presentation to the user. Such communication can be initiated by the geocaching game host  106 , the virtual world host  110 , the virtual world client  124  or another suitable application. Again, the user can be provided reward handling options, as previously described. 
     Further, the geocaching game host  106 , the geocaching game  122 , the virtual world host  110 , the virtual world client  124  or another application can trigger one or more advertisements  128  to be communicated to the communication device  116  for presentation to the user in response to an event detected in the physical world or the virtual world during geocaching game play. By way of example, if a cache is found at an automobile dealership, either in the physical world or the virtual world, an automobile advertisement can be presented to the user. The advertisements  128  also can be combined with rewards  126 . For instance, an advertisement  128  can provide a coupon code which may be used to purchase an item at a discounted price. 
     Further, the geocaching game host  106  can monitor the present location of the communication device  116 , as well as weather and other information that indicate present conditions at the communication device&#39;s location. For instance, the geocaching game host  106  can include an information client that monitors weather and/or other environment information via the communications network  102 . If a potential dangerous condition, such as severe weather or other adverse conditions, is expected to impact the user&#39;s location, the geocaching game host  106  can communicate a warning  130  to the communication device  116  for presentation to the user. Optionally, the geocaching game host  106  also can automatically notify an emergency response system. 
     Participants in a geocache game also can report potentially hazardous conditions that have been encountered. The geocaching game host  106  then can communicate a corresponding notification to the merge application  112 , which can process the notification to identify other participants whose game context indicates that the potentially hazardous condition may apply to them. These physical and/or virtual world players then may be notified of the condition, for example via the geocaching game host  106  or the virtual world host  110 . 
     The system  100  also can include a communication device  132  which lacks a positioning system and/or geocaching game, but which can be used to participate in the geocaching game via the virtual world host  110 . Such communication device  132  can be, for instance, a computer, a gaming console, a set-top box, a network appliance, or the like, and can comprise one or more processors/controllers, data storage devices, communication adapters, and/or other suitable components. The communication device  132  also can include a user interface  134  and virtual world client  136 , which have been described. Accordingly, a user of the communication device  132  can interact with a user of the communication device  116  in the virtual world. 
       FIG. 2  is a flowchart presenting a method  200  of starting a new geocaching game, which is useful for understanding the present invention. The method  200  can begin in a state in which the communication device has established a communication link with the server(s), and the communication device is configured for geocaching game play. At step  202 , a user input can be received to start a new physical world geocaching game. In an arrangement in which a plurality of different geocaching games are available, a user input also can be received to make a game selection. Such user inputs can be entered into the communication device and received by the geocaching game and/or the geocaching game host. At step  204 , a selection can be received to select a virtual world in which to enable a corresponding virtual geocaching game. Such selection can be input into the communication device and received by the merge application, the geocaching game host and/or the virtual world host. 
     The virtual world can be associated with the physical world geocaching game. For instance, at step  206  the merge application can interface with the geocaching game host to retrieve geocaching game data associated with the physical world geocaching game. At step  208 , the merge application can also can interface with the virtual world host to manage association data that forms a nexus between the virtual world and the physical world geocaching game data. The association data can enable a virtual geocaching game that corresponds to the physical world geocaching game to be hosted in the virtual world. At step  210 , the association data can be communicated to the virtual world host, or otherwise be made available to the virtual world host. 
     At step  212 , caches in the virtual world can be mapped to corresponding cache locations in the physical world. For example, coordinates of the cache locations in the physical world can be communicated from the communication device and/or the geocaching game host to the merge application, and such data can be included in the association data that associates the physical world geocaching game with the virtual world. 
     At step  214 , association data that simulates an environment at a cache location in the physical world can be managed. For example, data about the environment of physical world cache locations can be communicated from the communication device and/or the geocaching game host to the merge application and included in the association data. In one arrangement, information about variables that are applicable to the virtual world and available virtual world locations can be communicated to the communication device and/or the geocaching game host, and such information can be processed to select appropriate variables for the environment data. As noted, the merge application can manage the association data. 
     Referring to decision box  216 , if it is desired to associate another virtual world with the physical world geocaching game, steps  204 - 214  can be repeated. Proceeding to step  218 , rewards can be associated with cache locations in the geocaching game. For example, via a communication device, a user can interface with the geocaching game/geocaching game host to define a cache location and select a reward to associate with the cache location from a list of available rewards. Alternatively, the user can upload a reward to the geocaching game host and associate the uploaded reward with the cache location. At step  220 , advertisements also can be associated with the cache locations. The advertisements also can be selected from a list or uploaded to the geocaching game host. The rewards and advertisements can be made available to other users playing the geocaching game, regardless of whether the other users are playing the geocaching game in the physical world or in the virtual world. 
     At step  222 , players can be associated with the geocaching game. In one arrangement, the players can be selected by a user, for example from a list of available players, and such selections can be communicated to the geocaching game host. In another arrangement, the geocaching game host can add the geocaching game to a list of available geocaching games, and users can select the geocaching game from the list when they desire to participate in that particular geocaching game. 
     The geocaching game host can store data generated in steps  212 - 216  as geocaching game data. Moreover, the merge application can store corresponding data as association data so as to make the data available in the selected virtual worlds. 
       FIG. 3  is a flowchart presenting a method  300  of geocaching game play, which is useful for understanding the present invention. The method  300  can begin in a state in which a geocaching game has been started. At step  302 , geocaching game play can be monitored both in the physical world and in one or more virtual worlds. Such monitoring can be performed by the geocaching game or the geocaching game host and can include, for example, monitoring data that indicates the current location of a communication device participating in the geocaching game. At step  304 , the association data can be managed in real time to correspond to geocaching game play both in the physical world and in the virtual world(s). For example, the geocaching game data can be managed to reflect a current location of the communication device during game play. In that regard, the merge application can exchange corresponding data with the geocaching game host and/or the virtual world host in real time. 
     Referring to decision box  306 , if a cache is found in the physical world or the virtual world, at step  308  a notice of reward can be communicated to the communication device with which the cache was found. For example, if a physical world cache was found, the geocaching game host can communicate the reward notice to the communication device which indicated finding the cache, and such communication device can present the notice to its user in a suitable manner. If a virtual world cache was found, the geocaching game host can send the reward notice to the virtual game host, and the virtual game host can communicate the reward notice to the communication device on which the finder of the cache was gaming in the virtual world. 
     Referring to decision box  310 , if an advertising opportunity is identified either during physical world game play or virtual game play, at step  312  an advertisement can be communicated to the corresponding communication device. Such opportunity can be, for example, a user finding a cache at a particular location in the physical world or the virtual world. Such advertisement can be communicated in the same manner described for communicating a notice of reward. 
     At step  314 , conditions at the present location of the communication device can be monitored, for example as previously described. Proceeding to decision box  316 , if a potentially dangerous condition is detected at the location, at step  318  a warning can be communicated to the communication device. As noted, such warning can be communicated by the geocaching game host. 
     The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. 
     The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one processing system or in a distributed fashion where different elements are spread across several interconnected processing systems. Any kind of processing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software can be a processing system with an application that, when being loaded and executed, controls the processing system such that it carries out the methods described herein. The present invention also can be embedded in a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform methods and processes described herein. The present invention also can be embedded in an application product which comprises all the features enabling the implementation of the methods described herein and, which when loaded in a processing system, is able to carry out these methods. 
     The terms “computer program,” “software,” “application,” variants and/or combinations thereof, in the present context, mean 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. For example, an application can include, but is not limited to, a script, a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a MIDlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a processing system. 
     The terms “a” and “an,” as used herein, are defined as one or more than one. The term “plurality,” as used herein, is defined as two or more than two. The term “another,” as used herein, is defined as at least a second or more. The terms “including” and/or “having,” as used herein, are defined as comprising (i.e. open language). 
     This invention can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.