A system 10 that schedules and completes a reservation within an application in real time in accordance with other embodiments of the present invention is illustrated in
Referring more specifically to
The processor 20 in the application provider system 12 executes a program of stored instructions for one or more aspects of the present invention as described herein, including a method for scheduling and completing a reservation within an application in real time. The memory 22 stores these programmed instructions for one or more aspects of the present invention as described herein, although some or all of the programmed instructions could be stored and/or executed elsewhere. A variety of different types of memory storage devices, such as a random access memory (RAM) or a read only memory (ROM) in the system or a floppy disk, hard disk, flash memory, CD ROM, DVD ROM, or other computer readable medium which is read from and/or written to by a magnetic, optical, or other reading and/or writing system that is coupled to the processor 20, can be used for the memory 22. The interface system 24 in application provider system 12 is used to operatively couple and communicate between the application provider system 12 and the user computing systems 14(1)-14(n) and data provider systems 16(1)-16(n) via communications system 18, although other types and numbers of connections and other configurations and other types of communication systems could be used. In this particular embodiment, the communication system 18 is via TCP/IP over Ethernet and uses industry-standard protocols including SOAP, HTTP, HTTPS, XML, LDAP, UDDI, WSDL, and SNMP, although other types and numbers of communication systems, such as a direct connection, a local area network, a wide area network, modems and phone lines, e-mails, and/or wireless communication technology each having their own communications protocols, could be used. The application server 26 stores and creates the presentation layers for the application or applications and returns the created layer to one or more of the user computing systems 14(1)-14(n), although the results could be transmitted to other systems.
Each of the user computing systems 14(1)-14(n) enables a user to utilize the application or applications from the application provider system 12, such as the calendar application by way of example only, although one or more of the user computing systems 14(1)-14(n) could utilize other applications and could provide a wide variety of other functions for the user. Each of the user computing systems 14(1)-14(n) includes a central processing unit (CPU) or processor 20, a memory 22, an interface system 24, a user input device 30, and a display 32 which are coupled together by a bus or other link 28, although one or more of the user computing systems 14(1)-14(n) can comprise other numbers and types of systems, devices, equipment, components, and/or databases in other configurations.
The processor 20 in each of the user computing systems 14(1)-14(n) executes a program of stored instructions for one or more aspects of the present invention as described and illustrated herein, including scheduling and completing a reservation within an application in real time, although each of the processors 20 in user computing systems 14(1)-14(n) could execute other types of programmed instructions.
The memory 22 in each of the user computing systems 14(1)-14(n) stores these programmed instructions for one or more aspects of the present invention as described herein, including scheduling and completing a reservation within an application in real time, although some or all of the programmed instructions could be stored and/or executed elsewhere. A variety of different types of memory storage devices, such as a random access memory (RAM), flash memory, or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and/or written to by a magnetic, optical, or other reading and/or writing system that is coupled to one or more processors, can be used for the memory 22 in each of the user computing systems 14(1)-14(n).
The user input device 30 in each of the user computing systems 14(1)-14(n) is used to input selections, such as user data including appointments, meetings, and events to interact with applications, although each of the user input devices 30 could be used to input other types of data and interact with other elements. The user input device 30 in each of the user computing systems 14(1)-14(n) comprises a computer keyboard and a computer mouse, although other types and numbers of user input devices 30 can be used for each of the user computing systems 14(1)-14(n).
The display 32 in each of the user computing systems 14(1)-14(n) is used to show data and information to the user, such as a display in real time of reservation options in a calendar application with scheduling conflicts marked, although other types of data and information could be displayed and other manners of providing notification can be used, such as via email, page, SMS, and Web. The display 32 in each of the user computing systems 14(1)-14(n) comprises a computer display screen, such as a CRT or LCD screen by way of example only, although other types and numbers of displays could be used in each of the user computing systems 14(1)-14(n).
The interface system 24 in each of the user computing systems 14(1)-14(n) is used to operatively couple and communicate between each of the user computing systems 14(1)-14(n) and the application provider system 12 and the data provider systems 16(1)-16(n) via communications system 18, although other types and numbers of connections and other configurations and other types of communication systems could be used.
Each of the data provider systems 16(1)-16(n) provides one or more data-driven goods or services, such as airline, train, bus, car rental, taxi, hotel, entertainment, dining, and/or meeting reservations, although one or more of the data provider systems 16(1)-16(n) could provide other types of goods or services and could have other functions and other types and numbers of systems could be used. Each of the data provider systems 16(1)-16(n) includes a central processing unit (CPU) or processor 20, a memory 22, an interface system 24, a database 34, and query software 36 which are coupled together by a bus or other link 28, although one or more of the data provider systems 16(1)-16(n) can comprise other numbers and types of systems, devices, equipment, components, and/or databases in other configurations.
The processor 20 in each of the data provider systems 16(1)-16(n) executes a program of stored instructions for one or more aspects of the present invention as described herein, including scheduling and completing a reservation within an application in real time. The memory 22 stores these programmed instructions for one or more aspects of the present invention as described herein, although some or all of the programmed instructions could be stored and/or executed elsewhere. A variety of different types of memory storage devices, such as a random access memory (RAM), flash memory, or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and/or written to by a magnetic, optical, or other reading and/or writing system that is coupled to the processor, can be used for the memory in the management server system. The interface system 24 in each of the data provider systems 16(1)-16(n) is used to operatively couple and communicate between the data provider systems 16(1)-16(n) and the application provider system 12 and user computing systems 14(1)-14(n) via communications system 18, although other types and numbers of connections and other configurations and other types of communication systems could be used. The database 34 stores the list of events, their categories, and the availability of reservation slots at specific dates and times for those events for the query software 36. The query software 36 is the application code that the application server 26 in the application provider system 12 calls to query the database 34. The query software 36 could be an API or the application server could call the database directly.
Although an example of embodiments of the application provider system 12, the user computing systems 14(1)-14(n), and the data provider systems 16(1)-16(n) are described and illustrated herein, each of the application provider system 12, the user computing systems 14(1)-14(n), and the data provider systems 16(1)-16(n) of the present invention could be implemented on any suitable computer system or computing device. It is to be understood that the devices and systems of the exemplary embodiments are for exemplary purposes, as many variations of the specific hardware and software used to implement the exemplary embodiments are possible, as will be appreciated by those skilled in the relevant art(s).
Furthermore, each of the systems of the present invention may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, micro-controllers, and the like, programmed according to the teachings of the present invention as described and illustrated herein, as will be appreciated by those skilled in the computer and software arts.
In addition, two or more computing systems or devices can be substituted for any one of the systems in any embodiment of the present invention. Accordingly, principles and advantages of distributed processing, such as redundancy, replication, and the like, also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the exemplary embodiments. The present invention may also be implemented on computer system or systems that extend across any network using any suitable interface mechanisms and communications technologies including, for example telecommunications in any suitable form (e.g., voice, modem, and the like), wireless communications media, wireless communications networks, cellular communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, a combination thereof, and the like.
The present invention may also be embodied as a computer readable medium having instructions stored thereon for scheduling and completing a reservation within an application in real time as described herein, which when executed by a processor, cause the processor to carry out the steps necessary to implement the methods of the present invention as described and illustrated herein.
The operation of the system in accordance with embodiments of the present invention will now be described with reference to
In step 52, the user at the one of the user computing systems 14(1)-14(n) being utilized, activates an enabled link, although other manners for initiating the query between systems or within a system can be used, such as having the user instantiate real-time, asynchronous data exchange by interacting with the dynamic graphical user interface by way of example only. Next, the user creates a real-time query for a reservation option or options while still in the calendar application, although the query can be generated or obtained in other manners at other locations and times. The query includes category criteria, such as categories for airline, train, bus, car rental, taxi, hotel, dining, entertainment, or meeting reservations by way of example only, and date criteria, such as the departure and return dates and times or specific event date or dates, although other types and numbers of criteria could be included in the query. By way of example only, other criteria in the query could be criteria for a particular airline or airlines, car rental agency or agencies and/or hotel or hotels, criteria for the minimum star or other rating for a hotel, restaurant, or show, a particular genre of a cuisine or entertainment, such as comedy or live rock music, or criteria related to proximity to the user location. Once the query is created, the query is transmitted from the one of the user computing systems 14(1)-14(n) being utilized to one or more of the data provider systems 16(1)-16(n) to begin a search for reservation options based on the query. At least a portion of the reservation options being searched for based on the query comprise dynamic data, such as available airline reservation options for departing and returning flights by way of example only.
In step 54, the one or more of the data provider systems 16(1)-16(n) begin a real-time search based on at least the category criteria and date criteria in the query for dynamic reservation option or options, although other system or systems could be used to identify the dynamic reservation option or options which are available. Since systems and methods for searching for dynamic reservation option or options in response to a query, such as a query for airline, train, bus, car rental, taxi, hotel, dining, entertainment, or meeting reservation option or options by way of example only, are well known to those of ordinary skill in the art, those searching systems and methods will not be described in detail here.
In step 56, a determination is made if any dynamic reservation option or options was/were identified. If a relevant dynamic reservation option or options for the query is/are not found or is incomplete, then the No branch is taken to step 52 where the user is prompted to modify and retry the query. If a relevant dynamic reservation option or options to the query is/are identified, then the Yes branch is taken to step 58.
In step 58, the application provider system receives the dynamic reservation option or options from one or more of the data provider systems 16(1)-16(n) and provides the dynamic reservation option or options to the one of the user computing systems 14(1)-14(n) being utilized via the communication system 18. In step 60, the one of the user computing systems 14(1)-14(n) being utilized determines if the dynamic reservation option or options received in step 58 should be filtered. If the received dynamic reservation option or options do not need to be filtered, then the No branch is taken to step 64. If the received dynamic reservation option or options need to be filtered, then the Yes branch is taken to step 62.
In step 62, the one of the user computing systems 14(1)-14(n) being utilized filters the received dynamic reservation option or options based on one or more user input criteria, although the received dynamic reservation option or options can be filtered in other manners. This filtering can be done manually or automatically based on user input criteria at the one of the user computing systems 14(1)-14(n) being utilized. By way of example only, the user input criteria for filtering the received dynamic reservation option or options can comprises at least one of geography, i.e. proximity to the user, genre of event, cost of event, a selection of a minimum rating from a third-party rating system, genre of cuisine, and particular time range.
In step 64, the one of the user computing systems 14(1)-14(n) being utilized enters and displays the initial dynamic reservation option or options or the filtered initial dynamic reservation option or options in the calendar application, although other manners for displaying the dynamic reservation option or options can be used, such as in a table format. By entering each of the dynamic reservations option or options based on their associated date and time in the calendar application, the user is able to see in the display system of the one of the user computing systems 14(1)-14(n) being utilized how the different dynamic reservations option or options correspond with the schedule of the user so that appropriate plans and also any necessary changes to the schedule of the user can be made.
In step 64, the one of the user computing systems 14(1)-14(n) being utilized also provides an indication with each of the dynamic reservations option or options if that dynamic reservation option or options interferes with a previously scheduled appointment in the calendar application of the user. By way of example only, the background color of any dynamic reservation option or options that interferes with a previously scheduled appointment is different from the background color of any dynamic reservation option or options that does not interfere with a previously scheduled appointment, although other types and numbers of designation or markers could be used.
By way of example only,
In step 66, the one of the user computing systems 14(1)-14(n) being utilized determines if an enabled link or links for the displayed reservation option or options, has/have been selected. If the one or more of the reservation options in the calendar application have not been selected, then after a set period of time the No branch is taken back to step 50 as described earlier, although other manners for providing an indication that none of the reservation options have been selected could be used. By way of example only, the user could enter an input into the one of the user computing systems 14(1)-14(n) being utilized that declines the reservation options. When none of the reservation options have been selected, then the one of the user computing systems 14(1)-14(n) being utilized removes the reservation options from the calendar application. If one or more of the reservation options in the calendar application have been selected, then the Yes branch is taken to step 68.
In step 68, the selected reservation option or options are entered in the calendar application and the unselected reservation option or options are removed from the calendar application in the one of the user computing systems 14(1)-14(n) being utilized. In step 68, the user at the one of the user computing systems 14(1)-14(n) being utilized can complete the purchase transaction for the selected reservation option or options without leaving the calendar application. By way of example only, screenshots of the selection and purchase of departing and return flight options and the entry of the purchased of departing and return flights in the calendar application is illustrated in
Accordingly, the present invention provides a number of advantages including providing an effective and automatic system and method for users of a Web-based or client-server software application or other application to complete real-time reservations, including ticketing, while in an application. Additionally, as illustrated herein the present invention is versatile and easily can be used for a wide range of reservation processes, including, but not limited to airline, train, bus, car rental, taxi, hotel, entertainment, dining, and/or meeting reservations.
Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.