1. Technical Field
The present invention relates generally to an improved data processing system, and in particular to a method, apparatus, and computer instructions for processing data. Still more particularly, the present invention relates generally to a method, apparatus, and computer instructions for generating a route to complete tasks.
2. Description of Related Art
The Internet is a global network of computers and networks joined together by means of gateways that handle data transfer and the conversion of messages from a protocol of the sending network to a protocol used by the receiving network. The Internet has revolutionized both communications and commerce, as well as being a source of both information and entertainment. For many users, email is a widely used format to communicate over the Internet. Additionally, the Internet is also used for real-time voice conversations.
With respect to transferring data over the Internet, the World Wide Web environment is used. This environment is also referred to simply as “the Web”. The Web is a mechanism used to access information over the Internet. In the Web environment, servers and clients effect data transaction using the hypertext transfer protocol (HTTP), a known protocol for handling the transfer of various data files, such as text files, graphic images, animation files, audio files, and video files.
A browser is a program used to look at and interact with all of the information on the Web. A browser is able to display Web pages and to traverse links to other Web pages. Resources, such as Web pages, are retrieved by a browser, which is capable of submitting a request for the resource. This request typically includes an identifier, such as, for example, a universal resource locator (URL). As used herein, a browser is an application used to navigate or view information or data in any distributed database, such as the Internet or the World Wide Web.
The browser includes a user interface, which is a graphical user interface (GUI) that allows the user to interface or communicate with another browser. This interface provides for selection of various functions through menus and allows for navigation. For example, a menu may allow a user to perform various functions, such as saving a file, opening a new window, displaying a history, and entering a URL.
The user of browsers for accessing the Web has traditionally been the domain of desktop and laptop computers. Today, many types of mobile or portable devices may access the Web. For example, mobile phones and personal digital assistants (PDAs) commonly connect to the Internet to access information. A device that is able to access information on the Web is considered to be a Web enabled device. These devices may be used to access e-mail and other personal organization applications. Further, users of mobile phones and PDAs that are Web enabled may obtain maps and directions to various locations. Mobile phones and PDAs combine the ability to access the Web with other features, such as, address books, calendars, task managers, and calculators. For example, a user may have a set of chores to perform at different locations. These chores may be entered into a task manager and checked off or removed when chores are completed. Further, the user may enter addresses for the different locations to obtain a map of set of directions to a location for which a particular chore is to be performed. Although all of these actions may be performed using a portable device such as a PDA, the entry of all of the information needed for the chores and to obtain directions can be time consuming.
It would be advantageous to have an improved method, apparatus, and computer instructions for managing tasks and identifying routes for the tasks using Web enabled portable devices.
The present invention provides an improved method, apparatus, and computer instructions for a portable data processing system for generating a route for completing a set of tasks. A location of the portable device is identified. A route for completing the set of tasks is identified based on a policy and the location to form a completion route. The completion route for the set of tasks is then presented.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference not to the figures, and in particular
Server 104 is connected to network 102 through communications link 106. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients, such as PDA 108, PDA 110, mobile phone 112, mobile phone 114, and mobile phone 116. These clients are mobile or portable devices, connected to network 102 through wireless communications links 118, 120, 122, 124, and 126. Through these wireless communications links, the clients are able to access information from server 104, such as Web sites or databases.
Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Additionally, clients 108, 110, 112, 114, and 116 also include global positioning system (GPS) capabilities that allow these clients to be aware of their location through information receive from a global positioning system 128. A global positioning system is a worldwide satellite navigational system formed by satellites orbiting the earth and their corresponding receivers on the earth. The global positioning system satellites continuously transmit digital radio signals that contain data on the satellite location and the exact time to the earth-bound receivers, such as clients 108, 110, 112, 114, and 116.
Based on this information the receivers know how long it takes for the signal to reach the receiver on earth. As each signal travels, the longer it takes the receiver to get the signal, the farther away the satellite is. By knowing how far away a satellite is, the receiver knows that it is located somewhere on the surface of an imaginary sphere centered at the satellite. By using three satellites, a global positioning system can calculate the longitude and latitude of the receiver based on where the three spheres intersect. By using four satellites, a global positioning system can also determine altitude.
The present invention recognizes that information from global positioning system 128 along with task managers may be used to calculate an optimum route to accomplish a set of tasks. The mechanism of the present invention uses the location of a portable data processing system, such as PDA 108 or mobile phone 110, to generate a route or order in which tasks are to be performed based on a policy. As used herein, a policy is a set of rules, parameters, and/or preferences used to give a priority or ordering for tasks based on the properties of the tasks.
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
Turning next to
Baseband processor 402 provides for receiver and transmitter operations and is also referred to as a transceiver. In particular, baseband processor 402 handles all of the audio, signal, and data processing needed to receive and send data using RF transmissions or Bluetooth transmissions. Application processor 404 provides the processing power for other functions within camera phone 400. For example, calculators, calendars, alarms, camera functions, and directories are provided through application processor 404. Flash/SRAM 406 is a storage device in which various instructions for providing the functions within camera phone 400 are located and provide upgrades. Flash card 408 is a storage device in which user data and applications may be stored. An example of flash card 408 is a secure digital card.
A pathway for the transmission of voice and other types of data is through RFIC 410. Additionally, short range transmissions may be sent or received through Bluetooth unit 416. Bluetooth unit 416 conforms to Bluetooth wireless specification, which defines the link layer and application layer for product developers. Both of these transmissions are made through antenna 414 in this illustrative example.
Color LCD 418 provides a display for pictures and other data for camera phone 400. Camera 420, in this example, is a complementary metal oxide semiconductor (CMOS) camera, which may be built into camera phone 400 or connected to camera phone 400 as a module, such as IC card 422. IC card 422 also may contain other application specific functions, such as a global positioning system or other functions, such as a modem or additional memory. Camera 420 forms the camera module of camera phone 400, while the other components form the digital phone module of camera phone 400 in these illustrative examples.
With reference now to
PDA 500 may also include keypad 504, speaker 506, and antenna 508. Keypad 504 may be used to receive user input in addition to using screen 502. Speaker 506 provides a mechanism for audio output, such as presentation of an audio file. Antenna 508 provides a mechanism used in establishing a wireless communications link between PDA 500 and a network, such as network 202 in
PDA 500 also preferably includes a graphical user interface that may be implemented by means of systems software residing in computer readable media in operation within PDA 500.
Turning now to
An operating system runs on processor 604 and is used to coordinate and provide control of various components within PDA 600 in
Those of ordinary skill in the art will appreciate that the hardware in
Turning next to
In the illustrative example, tasks 702 are received by route generator 700. Route generator 700 uses global positioning system unit 704 to identify the location of the portable device in which route generator 700 is located. Alternatively, the location of the portable device also may be identified through a user input. Based on the properties of tasks 702 and the identified location, policy 706 and map database 708 are used to identify an optimal route for completing tasks 702. A route, as used herein, is a set of tasks placed in an order. In these examples, properties for tasks 702 include, locations, deadlines, and actions to be performed. Policy 706 is employed to provide in ordering for tasks 702 to create an optimum route for the user to accomplish tasks 702.
Policy 706 is a set of rules, parameters, and/or preferences used by route generator 700 to process tasks 702 in conjunction with the current location of the portable device using global positioning system unit 702. For example, policy 706 may include a rule in which priorities for tasks are based on deadlines. Another rule may be included in which the location of tasks are next used to determine which tasks are to be performed first. Additionally, policy 706 may include a rule in which tasks of a selected type are to be performed before tasks of other types. For example, if a bank deposit is to be made and dropping mail at a post office is to be performed, policy 706 may place the bank deposit prior to the dropping of mail if no particular deadline is present for these two tasks.
Route generator 700 also uses the location of the portable device and accesses map database 708 in conjunction with policy 706 to generate route 710 for presentation to the user. Additionally, if a task in tasks 702 does not specify a particular location, route generator 700 may select a location to perform the tasks based on the location of the portable device and any designated locations for performing other tasks. Route generator 700 may revise route 710 when tasks in tasks 702 are completed or in response to changes in the location of the portable device.
Turning next to
Entry 802 contains a bank deposit task that may be performed at any Wells Fargo bank by 5:00 pm. This task is estimated to take 5 minutes. Entry 804 contains a grocery task that may be performed at any HEB by 7:00 pm with the task taking about 30 minutes. Entry 806 identifies lunch at PF Changs in Jollyville that has a deadline of 1:00 pm that should take about 1 hour. Entry 808 contains a task to send mail at a post office in Jollyville that should be performed at the latest by 2:30 pm with a duration of 15 minutes.
Tasks 800 are processed using a route generator, such as route generator 700 in
In generating route 900, the policy used takes into account specified locations in tasks 800. Two of the entries specified locations in Jollyville, while the other two entries do not require any specific geographic location. Entry 802 in
Entry 902 shows the current location of the portable device. Entries 904, 906, 908, and 910 are all specified as to be performed along Jollyville Road. The routing process selects locations to perform tasks and places the tasks into the order shown to meet the different deadlines and locations for performing the tasks. In generating route 900, the duration of the tasks also are taken in to account.
Route 900 may be presented to the user in the form shown. Additionally, other formats also may be used to present route 900. For example, a map identifying the locations for the tasks also may be presented to the user on the portable device.
Next, in
Turning now to
The process begins by receiving tasks (step 1100). The current location of the portable device and the current time are identified (step 1102). A route to complete the tasks is generated (step 1104). Step 1104 is performed using the properties of the tasks and a policy. Properties, such as the location, deadline, and duration of a task are used to generate the route. For example, specific locations may be selected for tasks that do not specify specific locations to optimize the completion of all of the tasks in the event that locations are specified for other tasks. If a task is specified to be performed at a particular location in a city, locations for other tasks may be identified in a manner such that these other tasks are in locations close by to the specified location. Further, the order in which tasks are performed are selected to minimize the amount of traveling and time spent in these examples. The particular order of the locations is selected to ensure that the tasks can be completed based on the properties of the tasks. This order may vary, depending on various rules, parameters, and/or preferences in the policy.
The process presents the route to be used (step 1106) thus ending the process. In these examples, the route is presented to the user on the portable device, such as a mobile phone, laptop computer, or PDA.
Turning to
The process begins by identifying the current time and location of the portable device (step 1200). A determination is made as to whether the current time and location has changed one or more options (step 1202). An option is a possible location or time in which a task may be accomplished. For example, if a location of a task, such as lunch in entry 906 in
If one or more options have changed, the process rearranges the order of tasks (step 1204). Next, a new route is generated (step 1206). The process presents the new route (step 1208) with the process terminating thereafter.
Turning back to step 1202, if one or more options have not changed, a determination is made as to whether a task has been added or removed. If a task has been added or removed the process proceeds to step 1204 as described above. Otherwise, the process terminates. In this manner, a route may be dynamically modified such that the order and location of tasks may change. For example, if the user takes a detour from the presented route, the new location of the user may result in a change in the order of task or a change in the location of tasks based on the current location and time of the portable device.
Turning to
The process begins by generating an optimal route (step 1300). In this illustrative example, the route is generated without using any particular policy. Then, the process identifies policies that may be present (step 1302). The identified policies are presented on a display (step 1304). Next, a determination is made as to whether user input for selecting a policy has been received (step 1306). If a users input for selecting a policy has been received, the process generates a route for tasks using the selected policy (step 1306). A route is presented on display (step 1308) with the process returning to step 1306.
With reference again to step 1306, if a user input selecting a policy is not present, the process terminates. The process in
In this manner, routes generated by changes in policies may be presented to a user. The user may then select one of the routes for actual use.
Thus, the present invention provides an improved method, apparatus, and computer instructions for generating optimal routes to complete a set of tasks in a location-aware portable device. The mechanism of the present invention uses the current location of the portable device and a set of tasks to generate a route for performing those tasks. The mechanism of the present invention may automatically modify the route based on factors, such as current location, current time, and tasks still present for completion.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. For example, the route generation component described as being located in the portable device. This component also may be located in a remote location, such as a Webserver or other server process. In this type of implementation, the portable device may send location information and the set of tasks to the server. A route is generated at the server and then returned to the portable device for presentation. Although specific policies are given as examples, the present invention may be implemented using many different policies. For example, one policy may state that highway travel is to be avoided. Another policy may specify that tasks involving the purchase of sale items should occur before other types of tasks. In another example, a policy may include a bias towards certain business establishments over others. A user may prefer a particular chain of grocery stores over others. Other policies may be based on weather or traffic conditions. These different policies may be combined to form a single combined policy for identifying routes.
Additionally, the mechanism of the present invention may automatically mark tasks as completed when the mechanism detects that the user has stopped in the vicinity of a location on the route. Alternatively, the tasks may be marked as pending/completed for the user to verify that the task has been completed. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.