Abstract:
A continuous dynamic mobile query system including a mobile device is disclosed. The mobile device includes a mobile device memory, a query stored in the mobile device memory, a transmitter for continuously transmitting the query, a receiver for receiving a response, a mobile device output device for displaying the response. The system also includes a location source device for providing the location of the mobile device and a network adapted to receive the query and the location of the mobile device. The system also includes a database management system adapted to receive the query and the location of the mobile device from the network. The database management system is further adapted to execute the query taking into account the location of the mobile device to produce a response and provide the response to the network. The network is further adapted to receive the response from the database management system and transmit the response to the mobile device.

Description:
BACKGROUND 
     Today&#39;s society and its computing resources are becoming increasingly mobile. People are moving from “anchored” home- or work-based personal computer (PC) computing to mobile computing on Personal Digital Assistants (PDAs), mobile phones and pagers. This mobile technology creates opportunities for holders of such technology to electronically interact with people and things they encounter as they move about. 
     Further, businesses frequently have a difficult time getting their advertisements to interested consumers. At the same time, consumers are inundated with advertisements and other messages, most of which are of no interest, and may miss the impact of advertising or other messages that would be of interest. As advertisements and other messages are delivered to mobile devices, as described above, the chance that an advertisement will reach an interested consumer will grow even smaller. Providing a link between businesses and mobile consumers that might be interested in the businesses&#39; goods and services is a challenge. 
     SUMMARY 
     In general, in once aspect, the invention features a continuous dynamic mobile query system including a mobile device. The mobile device includes a mobile device memory, a query stored in the mobile device memory, a transmitter for continuously transmitting the query, a receiver for receiving a response, a mobile device output device for displaying the response. The system also includes a location source device for providing the location of the mobile device and a network adapted to receive the query and the location of the mobile device. The system also includes a database management system adapted to receive the query and the location of the mobile device from the network. The database management system is further adapted to execute the query taking into account the location of the mobile device to produce a response and provide the response to the network. The network is further adapted to receive the response from the database management system and transmit the response to the mobile device. 
     Implementations of the invention may include one or more of the following. The location source device may be part of the mobile device. The network may include a plurality of physically dispersed base stations, where each base station is adapted to communicate with the mobile device and to receive the query and the location of the mobile device when the mobile device is within the base station&#39;s geographic coverage area. The mobile device may be within a communicating base station&#39;s coverage area and the location source device may be adapted to report the location of the communicating base station. The mobile device may be adapted to transmit the query to a new base station if the mobile device moves into the coverage area for the new base station. The mobile device may be adapted to transmit the query if the query changes. 
     The network may include a communications network coupled to each of the plurality of physically dispersed base stations and to the database management system. Each of the plurality of physically dispersed base stations may include a cellular base station. The network may include a cellular network, a service provider coupled to the cellular network and adapted to receive the query and location of the mobile device from the cellular network and transmit the query and location of the mobile device to the database management system via the Internet. The cellular network may include the cellular signaling system. 
     The database management system may reside with the service provider. The database management system may include data responsive to the query. The database management system may be distributed among the base stations with the portion of the data stored with each base station being responsive to the query for the physical coverage area of that base station. The database management system may be distributed among the mobile device and a central location and the portion of the database management system distributed to the mobile device may be refreshed from the portion of the database management system distributed to the central location. 
     The query may include a shopping list, which may include a list of items. The database management system may include a procedure which has one or more parameters and the query may include the one or more parameters. The database management system may include information regarding a location and inventory of one or more subscribed businesses and the database management system may be adapted to provide a response to a query, which includes a shopping list, which includes one or more items, and a location of a mobile device. The response may include one or more subscribed businesses within a predetermined distance of the mobile device whose inventory includes one or more items from the shopping list. 
     In general, in another aspect, the invention features a mobile device for performing continuous dynamic querying. The mobile device includes a mobile device memory, a location source device for providing the location of the mobile device, a query stored in the mobile device memory, a transmitter for continuously transmitting the query and the location of the mobile device, a receiver for receiving a response to the query that takes into account the location of the mobile device, and a mobile device output device for displaying the information. 
     Implementations of the invention include one or more of the following. The transmitter may include a cellular system transmitter and the receiver may include a cellular system receiver. The transmitter may include a transmitter adapted to transmit data via the cellular signaling system and the receiver may include a receiver adapted to receive data via the cellular signaling system. The cellular signaling system may include a plurality of physically dispersed base stations, each having a geographic coverage area. The mobile device may communicate with a base station when it is within the coverage area of the base station. The transmitter may transmit the query and the location of the mobile device when the mobile device moves into one of the base station coverage areas. The mobile device may transmit the query and the location of the mobile device when the query changes. The mobile device may transmit the query and the location of the mobile device when the location of the mobile device changes a predetermined amount. 
     In general, in another aspect, the invention features a database management system including a massively parallel processing system, which includes one or more nodes, a plurality of CPUs, each of the one or more nodes providing access to one or more CPUs, a plurality of virtual processes each of the one or more CPUs providing access to one or more virtual processes, and a set of one or more database tables residing on the one or more nodes, the one or more database tables containing information organized by geographic location. One or more of the plurality of virtual processes is adapted to receive a query including one or more items, receive a location, and extract from the set of one or more database tables information responsive to the query and related to the location. 
     Implementations of the invention may include one or more of the following. One or more of the nodes may reside on a mobile device. The nodes may be distributed geographically and each node may have a location. The one or more database tables may be distributed among the nodes with information related to locations within a predetermined distance from the location of a node being stored on that node. 
     In general, in another aspect, the invention features a continuous dynamic mobile query system including a mobile device. The mobile device includes a mobile device memory, a shopping list stored in the mobile device memory, a transmitter for continuously transmitting the shopping list; 
     a receiver for receiving information concerning businesses within a predetermined distance of the mobile device that carry items on the shopping list, and a mobile device output device for displaying the information. The system further includes a location source device for providing the location of the mobile device and a network. The network includes a plurality of physically dispersed cellular network base stations, each base station being adapted to communicate with the mobile device and to receive the shopping list and the location of the mobile device when the mobile device is within the base station&#39;s geographic coverage area. The network further includes a cellular network coupled to the cellular network base stations and a service provider coupled to the cellular network and adapted to receive the shopping list and the location of the mobile device from the cellular network and transmit the shopping list and location of the mobile device to a database management system via the Internet. The database management system is adapted to receive the shopping list and the location of the mobile device from the network, and further adapted to locate businesses within a predetermined distance of the location of the mobile device having items matching the shopping list, and provide information about the located businesses to the network. The network is further adapted to receive the information regarding the located businesses from the database management system and transmit the information regarding the located businesses to the mobile device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a node of a database system. 
         FIG. 2  is a block diagram of a parsing engine. 
         FIG. 3  is a flow chart of a parser. 
         FIGS. 4-7  are block diagrams of continuous dynamic mobile querying systems. 
         FIG. 8  illustrates regional service centers created by an example of the system disclosed herein. 
     
    
    
     DETAILED DESCRIPTION 
     A continuous dynamic mobile querying system and method provides location specific answer sets to complex queries from a mobile device. In one example embodiment, these queries are automatically directed at database servers within a specific geographic location that is in proximity to the person with the requesting mobile device. 
     The techniques for continuous dynamic mobile querying as disclosed herein may be used with large databases that might contain many millions or billions of records managed by a database system (“DBS”)  100 , such as a Teradata Active Data Warehousing System available from NCR Corporation.  FIG. 1  shows a sample architecture for one node  105   1  of the DBS  100 . The DBS node  105   1  includes one or more processing modules  110   1 . . . N , connected by a network  115 , that manage the storage and retrieval of data in data-storage facilities  120   1 . . . N . Each of the processing modules  110   1 . . . N  may be one or more physical processors or each may be a virtual processor, with one or more virtual processors running on one or more physical processors. 
     For the case in which one or more virtual processors are running on a single physical processor, the single physical processor swaps between the set of N virtual processors. 
     For the case in which N virtual processors are running on an M-processor node, the node&#39;s operating system schedules the N virtual processors to run on its set of M physical processors. If there are 4 virtual processors and 4 physical processors, then typically each virtual processor would run on its own physical processor. If there are 8 virtual processors and 4 physical processors, the operating system would schedule the 8 virtual processors against the 4 physical processors, in which case swapping of the virtual processors would occur. 
     Each of the processing modules  110   1 . . . N  manages a portion of a database that is stored in a corresponding one of the data-storage facilities  120   1 . . . N . Each of the data-storage facilities  120   1 . . . N  includes one or more disk drives. The DBS may include multiple nodes  105   2 . . . N  in addition to the illustrated node  105   1 , connected by extending the network  115 . 
     The system stores data in one or more tables in the data-storage facilities  120   1 . . . N . The rows  125   1 . . . Z  of the tables are stored across multiple data-storage facilities  120   1 . . . N  to ensure that the system workload is distributed evenly across the processing modules  110   1 . . . N . A parsing engine  130  organizes the storage of data and the distribution of table rows  125   1 . . . Z  among the processing modules  110   1 . . . N . The parsing engine  130  also coordinates the retrieval of data from the data-storage facilities  120   1 . . . N  in response to queries received from a user at a mainframe  135  or a client computer  140 . The DBS  100  usually receives queries and commands to build tables in a standard format, such as SQL. 
     In one implementation, the rows  125   1 . . . Z  are distributed across the data-storage facilities  120   1 . . . N  by the parsing engine  130  in accordance with their primary index. The primary index defines the columns of the rows that are used for calculating a hash value. The function that produces the hash value from the values in the columns specified by the primary index is called the hash function. Some portion, possibly the entirety, of the hash value is designated a “hash bucket”. The hash buckets are assigned to data-storage facilities  120   1 . . . N  and associated processing modules  110   1 . . . N  by a hash bucket map. The characteristics of the columns chosen for the primary index determine how evenly the rows are distributed. 
     In one example system, the parsing engine  130  is made up of three components: a session control  200 , a parser  205 , and a dispatcher  210 , as shown in  FIG. 2 . The session control  200  provides the logon and logoff function. It accepts a request for authorization to access the database, verifies it, and then either allows or disallows the access. 
     Once the session control  200  allows a session to begin, a user may submit a SQL request, which is routed to the parser  205 . As illustrated in  FIG. 3 , the parser  205  interprets the SQL request (block  300 ), checks it for proper SQL syntax (block  305 ), evaluates it semantically (block  310 ), and consults a data dictionary to ensure that all of the objects specified in the SQL request actually exist and that the user has the authority to perform the request (block  315 ). Finally, the parser  205  runs an optimizer (block  320 ), which develops the least expensive plan to perform the request. 
     One example system to perform continuous dynamic mobile querying, illustrated in  FIG. 4 , includes a mobile device  405 , which includes a mobile device memory  410 , input/output devices  415 , a transmitter/receiver  420 , and a location source device  425 . The mobile device  405  can be a personal digital assistant (PDA), a cellular telephone, a pager, a portable computer, or any other portable electronic device. The mobile device memory can be conventional memory found in such devices, including hard drives, CD ROMs, DVD ROMs, floppy disk drives, random access memory, programmable random access memory, electrically alterable random access memory, and the like. The input/output devices  415  can be keyboards of any size, mice, stylus interfaces, microphones, cathode ray monitors, liquid crystal monitors, and the like. The transmitter/receiver  420  can be configured to operate as a point-to-point communications device or it can be configured to operate within a network, such as a radio-telephone network, a cellular network, a Blue Tooth network, or the like. The location source device  425 , which produces the location of the mobile device  405 , can be a device that derives location from the Global Position Satellite System, from LORAN, from systems that determine location based on cellular network signals, and the like. 
     In an alternative embodiment, the location source device  425  is separate from mobile device. For example, if the mobile device is a cellular telephone communicating with a cellular base station, the location source device may be a device that reports the location of the cellular base station. 
     The mobile device memory holds a query  430  and it may include other data  435 . In one example system, the query is a shopping list, which contains items that the holder of the mobile device  405  is interested in purchasing. In another example, the query is a set of parameters which can be used to complete a procedure stored in another location, as discussed below. The mobile device  405  allows the query, such as a shopping list, to be viewed and/or modified using the input/output devices. 
     The mobile device  405  transmits the query and the location of the location source device  425  to a network  440 . As discussed above, the network  440  can be a radio network, a cellular network, a Blue Tooth network, or the like, or a combination of any or all of those networks. The network  440  transmits the query to a database management system  445 , which maintains tables of information, some or all of which may be responsive to the query. In one example system, the data in the database management system is organized geographically. For example, the data may include a list of subscribing businesses, the location of the subscribing businesses and the inventories that each of the subscribing businesses carry. The data may be partitioned by location, such that businesses within a particular geographic area are located within a particular partition. The partition may be physical or logical. 
     The database management system can be any type of database management system including that illustrated in  FIGS. 1-3 , in which case the nodes of the database management system may be physically distributed over a small area or over the entire United States or even more broadly. Alternatively, the database management system can be a conventional relational database management system. An interface is provided to allow subscribers  450  to update information in the database management system. 
     The database management system  445  produces a response and transmits it through the network  440  to the mobile device  405 , which displays information from the response on the input/output devices  415 . In one example, the query may have been a shopping list and the response would be information regarding subscribing businesses that have in their inventories items included on the shopping list. In another example, the query is a set of parameters supplied to a procedure stored within the database management system. In another example, the query may have been a request for weather information and the response would be the weather forecast for the location of the mobile device  405 . In still another example, the query may have been a request for traffic information and the response would be traffic information for the location of the mobile device  405 . 
     In another example, illustrated in  FIG. 5 , the system consists of: 
     1. A wireless device  505  (a PDA is shown) that:
         stores an individual&#39;s shopping list;   issues continuous queries for the items on the shopping list.       

     2. A collection of communication base stations  510   a . . . d  each of which:
         responds to queries from the mobile device  505  when it is in its coverage area.       

     3. A central database management system  515  that:
         contains inventory and price information on subscribed businesses  520 ;   responds to queries from communication base stations  510   a . . . d  distributed across the greater service area, in which the responses contain information on subscribed businesses and services only located within the requesting communication base station&#39;s service area.
 
In this example system, use of a central database management system ensures a single view of data. A workstation  525  is provided to maintain the database management system  515 .
       

     In this example system, when a mobile device  505  enters the coverage area for a base station  510   a , it issues a query, based on the prestored shopping list. The base station  510   a , receives the query and forwards it, via a network  530 , to the centralized database management system  515 , which contains inventory, price and product information for subscribed businesses. The database management system  515  responds, limiting the result to subscribed businesses and services within the requesting base station&#39;s  510   a  service area. 
     When the mobile device  505  leaves the coverage area for the first base station  510   a  and enters the coverage area for a second base station  510   b , it issues a query to that base station, again based on the prestored shopping list. The second base station  510   b , receives the query and forwards it, via a network  530 , to the centralized database management system  515 , which contains inventory, price and product information for subscribed businesses. The database management system  515  responds, limiting the result to subscribed businesses and services within the requesting base station&#39;s  510   b  service area. 
     As the mobile device  505  moves through the coverage areas of base stations  510   a ,  510   b ,  510   c  and  510   d , it receives responses with inventory information from each of the respective areas as it moves through them. Consequently, the user of the mobile device  505  is alerted when a nearby subscribing business has in its inventory an item from the prestored shopping list when the user is close enough to act on that information. 
     The mobile device  505  can also be configured to issue queries, such as a shopping list query, (a) continuously; (b) when the query (or shopping list) changes; (c) when the mobile device is powered on; or (d) under other similar circumstances. 
     Users can also issue queries for detailed product information while at a subscribing business site. Such a query is received by the communication base station and forwarded to the central database server for processing. In addition to the requested product information the server can respond with advertising incentives from subscribed businesses in the designated region. 
     In another example system, illustrated in  FIG. 6 , the mobile device  605  moves through the service areas of multiple cellular base stations  610   a . . . d  and issues queries, such as those described above, to each of the cellular base stations when it is in their respective coverage areas. The base stations  610   a . . . d  transmit the queries through the cellular network  615  to a service provider  620 . The service provider, which serves as an interface between the cellular network  615  and the Internet  625 , forwards the queries over the Internet  625  to the database management system  630 , which executes the query to produce a response. The response is returned to the mobile device  605  via the Internet  625 , the service provider  620 , the cellular network  615  and the base stations  610   a . . . d . As before, subscribing businesses  635  can access and update the database management system either directly or through a maintenance system, illustrated by workstation  640 . 
     The location of the database management system is also variable, as shown in  FIG. 7 . All or a portion of the database management system can be stored in the mobile device memory  705  within the mobile device  710 ; stored on a storage facility  715  within the base station  720 ; stored on a storage facility  725  at the service provider  730 ; or attached as a storage facility  735  to the Internet  740 . The database management system could be located in one of these locations or distributed among two or more. Further, the database management system could be a massively parallel system such as that illustrated in  FIG. 1 . The nodes of such a system might be in one physical location or they might be geographically distributed across a city, a state, the nation or the world. 
     As a result of the operation of this system, a country, state, city, neighborhood, or other geographical region is divided into regional service areas. For example, as shown in  FIG. 8 , such a system operating in California would divide the state into the illustrated regional service areas, e.g.  805   a . . . d . Each of those regional service areas  805   a . . . d  could be assigned to a branch of a service organization, such as car repair organizations. When the owner of a mobile device needed a car repair service, a query into the continuous mobile querying system would direct the user to the branch of the service organization covering that location. While the regional service areas  805   a . . . d  are shown in  FIG. 8  as rectangles, it will be understood that they can be non-rectangular, including circles, polygons or any other regular or irregular shape. 
     The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.