Abstract:
An information management and synchronous communications system and method facilitates database equilibrium and synchronization with wired, wireless and Web-based systems, user-friendly and efficient generation of computerized menus and reservations for restaurants and other applications that utilize equipment with nonstandard graphical formats, display sizes and/or applications for use in remote data entry, information management and communication with host computer, digital input device or remote pager via standard hardwired connection, the internet, a wireless link or the like.

Description:
FIELD OF THE INVENTION 
     This invention relates to an information management and synchronous communications system and method for generation of computerized menus for restaurants and other applications with specialized display and synchronous communications requirements related to, for example, the use of equipment or software with non-PC-standard graphical formats, display sizes and/or applications for use in remote data entry, information management and synchronous communication between host computer, digital input device or remote pager via standard hardwired connection, the internet, a wireless link, smart phone or the like. 
     BACKGROUND OF THE INVENTION 
     While computers have dramatically altered many aspects of modern life, pen and paper have prevailed in the hospitality industry, e.g., for restaurant ordering, reservations and wait-list management, because of their simplicity, ease of training and operational speed. For example, ordering prepared foods has historically been done verbally, either directly to a waiter or over the telephone, whereupon the placed order is recorded on paper by the recipient or instantly filled. 
     Although not previously adapted for wide-scale use in the hospitality industry, various forms of digital wireless communication devices are in common use, e.g., digital wireless messengers and pagers. Also in common use are portable laptop and handheld devices. However, user-friendly information management and communication capability not requiring extensive computer expertise has not heretofore been available for use in everyday life such as for restaurant ordering, reservations and wait-list management. Hundreds of millions of dollars have been spent on personal digital assistant (“PDA”) development seeking to produce a small, light-weight and inexpensive device that could be adapted to such uses; yet none have yielded a satisfactory solution. 
     One of the inherent shortcomings of PDA type devices is that, as they strive for small size, low weight and low cost, they must compromise the size and clarity of the operator display medium interface itself, which in most cases is one of a variety of LCD (liquid crystal display) type devices. As the size of the display shrinks, the amount of information that may be displayed at any one point or time is commensurately decreased, typically requiring multiple screens and displays to display information to the operator. This reduces the overall utility of the device. Additionally, the smaller display and keyboard results in a non-optimal operator interface, which slows down operation and is thus unacceptable for the time criticality of ordering, reservation and wait-list management and other similar applications. This necessitates many design compromises which in the aggregate have resulted in limited acceptance of PDA type devices in the restaurant and hospitality fields. 
     Many of the negatives prevalent in earlier devices have been eliminated, but, to date, there is still no integrated solution to the ordering/waitlist/reservation problem discussed above. With the advent of the Palm® and other handheld wireless devices, however, the efforts to make such devices ubiquitous have begun to bear fruit at least in some areas, e.g., personal calendars. However, substantial use of such devices in the restaurant and hospitality context has not occurred to date. As discussed above, at least one of the reasons PDAs have not been quickly assimilated into the restaurant and hospitality industries is that their small display sizes are not readily amenable to display of menus as they are commonly printed on paper or displayed on, e.g., large, color desktop computer screens. Another reason is that software for fully realizing the potential for wireless handheld computing devices has not previously been available. Such features would include fast and automatic synchronization between a central database and multiple handheld devices, synchronization and communication between a World Wide Web (“Web”) server and multiple handheld devices, a well-defined application program interface (“API”) that enables third parties such as point of sale (“POS”) companies, affinity program companies and internet content providers to fully integrate with computerized hospitality applications, real-time communication over the internet with direct connections or regular modem dialup connections and support for batch processing that can be done periodically throughout the day to keep multiple sites in synch with the central database. A single point of entry for all hospitality applications to communicate with one another wirelessly has also previously been unavailable. Such a single point of entry would work to keep all wireless handheld devices and linked Web sites in synch with the backoffice server (central database) so that the different components are in equilibrium at any given time and an overall consistency is achieved. For example, a reservation made online would be automatically communicated to the backoffice server and then synchronized with all the wireless handheld devices wirelessly. Similarly, changes made on any of the wireless handheld devices would be reflected instantaneously on the backoffice server, Web pages and the other handheld devices. 
     For the foregoing reasons, paper-based ordering, waitlist and reservations management have persisted in the face of widespread computerization in practically all areas of commerce. At most, computerization of these functions has been largely limited to fixed computer solutions, i.e., desktop or mainframe, because of the problems heretofore faced in configuring wireless handheld devices and maintaining database synchronization for such applications. Specifically, the unavailability of any simple technique for creating restaurant menus and the like for use in a limited display area wireless handheld device or that is compatible with ordering over the internet has prevented widespread adoption of computerization in the hospitality industry. Without a viable solution for this problem, organizations have not made the efforts or investments to establish automated interfaces to handheld and Web site menus and ordering options. 
     A principal object of the present invention is to provide an improved information management and synchronous communications system and method which facilitates user-friendly and efficient generation of computerized menus for restaurants and other applications that utilize equipment with non-PC-standard graphical formats, display sizes and/or applications. 
     A further object of the present invention is to provide an improved information management and synchronous communications system and method which provides for entry, management and communication of information from the operator as well as to and from another computer, Web page menu, remote digital device using a standard hardwired connection, the internet or a wireless link. 
     A further object of the present invention is to provide an improved information management and synchronous communications system which is small, affordable and lightweight yet incorporates a user-friendly operator interface and displays menus in a readily comprehensible format. 
     A further object of the present invention is to provide a synchronous information management and communications system which enables automatic updating of both wireless and internet menu systems when a new menu item is added, modified or deleted from any element of the system. 
     SUMMARY OF THE INVENTION 
     The foregoing and other objects of the present invention are provided by a synchronous information management and communications system and method optimized for simplicity of operation which incorporates menu generation for creation of menus to be used with wireless remote handheld computer and PDA devices, the internet or any application where simple and efficient generation of menus is appropriate. The menu generation approach of the present invention includes a desktop software application that enables the rapid creation and building of a menu and provides a means to instantly download the menu configuration onto, e.g., a handheld device or Web page and to seamlessly interface with standard point of sale (“POS”) systems to enable automatic database updates and communication exchanges when a change or input occurs in any of the other system elements. To solve the above and other related problems, an information management and communications system is provided which results in a dramatic reduction in the amount of time, and hence cost, to generate and maintain computerized menus for, e.g., restaurants and other related applications that utilize non-PC-standard graphical formats, display sizes or applications. 
     The menu generation approach of the present invention has many advantages over previous approaches in solving the problem of converting paper-based menus or Windows® PC-based menu screens to small PDA-sized displays and Web pages. In one embodiment, the present invention is a software tool for building a menu, optimizing the process of how the menu can be downloaded to either a handheld device or Web page, and making manual or automatic modifications to the menu after initial creation. 
     The use of wireless handheld devices in the restaurant and hospitality industry is becoming increasingly pervasive as restaurant owners and managers become more aware of the benefits. With the proper wireless handheld system in place, restaurants can experience increased table turns from improved server productivity and shorter order taking and check paying times. Restaurants and POS companies seeking to provide a wireless handheld interface to their desktop-based POS systems or a Web page equivalent face several challenges. These challenges include building a menu using their existing database and transferring the menu onto handheld devices or Web pages that will interface with servers wirelessly or to restaurants/customers over the internet. The menu generation approach of the present invention is the first coherent solution available to accomplish these objectives easily and allows one development effort to produce both the handheld and Web page formats, link them with the existing POS systems, and thus provides a way to turn a complicated, time-consuming task into a simple process. 
     The information management and synchronous communications system of the present invention features include fast synchronization between a central database and multiple handheld devices, synchronization and communication between a Web server and multiple handheld devices, a well-defined API that enables third parties such as POS companies, affinity program companies and internet content providers to fully integrate with computerized hospitality applications, real-time communication over the internet with direct connections or regular modem dialup connections and support for batch processing that can be done periodically throughout the day to keep multiple sites in synch with the central database. 
     The communication module also provides a single point of entry for all hospitality applications, e.g., reservations, frequent customer ticketing, wait lists, etc. to communicate with one another wirelessly and over the Web. This communication module is a layer that sits on top of any communication protocol and acts as an interface between hospitality applications and the communication protocol and can be easily updated to work with a new communication protocol without modifying the core hospitality applications. A single point of entry works to keep all wireless handheld devices and linked web sites in synch with the backoffice server applications so that the different components are in equilibrium at any given time and an overall consistency is achieved. For example, a reservation made online can be automatically communicated to the backoffice server and then synchronized with all the wireless handheld devices wirelessly. Similarly, changes made on any of the wireless handheld devices are reflected instantaneously on the backoffice server Web pages and the other handheld devices. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing features and advantages of the present invention can be appreciated more fully from the following description, with references to the accompanying drawings in which: 
     FIG. 1 is a schematic representation of a window displayed on a computer display screen which shows a hierarchical tree menu, modifier window and sub-modifier window in conformity with a preferred embodiment of the present invention. 
     FIG. 2 is a schematic representation of a modifier dialog box in conformity with a preferred embodiment of the present invention. 
     FIG. 3 is a schematic representation of a menu category dialog box in conformity with a preferred embodiment of the present invention. 
     FIG. 4 is a schematic representation of a menu item dialog box in conformity with a preferred embodiment of the present invention. 
     FIG. 5 is a schematic representation of a display customization dialog box in conformity with a preferred embodiment of the present invention. 
     FIG. 6 is a schematic representation of a communications control window in conformity with a preferred embodiment of the present invention. 
     FIG. 7 is a schematic representation of a point of sale interface on a wireless handheld device for use in displaying page menus created in conformity with a preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Most personal computers today run under an operating system that provides a graphical user interface (“GUI”) for accessing user applications. A GUI is used in the preferred embodiment of the present invention. Through an interface of windows, pull-down menus, and toolbars, GUI operating systems have simplified PCs and have rendered computer technology more user friendly by eliminating the need to memorize keyboard entry sequences. In addition, GUIs allow users to manipulate their data as they would physical entities. For example, a window can represent a file and the contents of the window can represent the records of the file. The window can be opened, closed, or set aside on a desktop as if it were an actual object. The records of the file can be created, deleted, modified and arranged in a drag-and-drop fashion as if they also were physical objects. The most common GUI operating systems that provide this “object-oriented” environment for personal computers are Microsoft Windows® systems, including Windows CE® for handheld wireless devices and the like. Generally, a particular application program presents information to a user through a window of a GUI by drawing images, graphics or text within the window region. The user, in turn, communicates with the application by “pointing” at graphical objects in the window with a pointer that is controlled by a hand-operated pointing device, such as a mouse, or by pressing keys on a keyboard. 
     The use of menus is conventional in GUIs for software applications. Menus are typically utilized to provide end users of applications with available choices or processing options while using the applications. For example, in a typical desktop or interactive application, selection of a “file” from a menu bar may cause display of a context menu which provides “file” options. File options can have additional subordinate or child options associated with them. If a file option having subordinate options is selected, the child options are displayed in context in a child menu or submenu proximate to the selected parent option. One or more of the child options provided in the child menu may have further subordinate options. Thus, such a menu system comprises cascading sets of menus which are displayable in context to show the parent/child relationships between options of the context menu. A menu system of this type is incorporated into the preferred embodiment of the invention. 
     The preferred embodiment of the present invention uses typical hardware elements in the form of a computer workstation, operating system and application software elements which configure the hardware elements for operation in accordance with the present invention. A typical workstation platform includes hardware such as a central processing unit (“CPU”), e.g., a Pentium® microprocessor, RAM, ROM, hard drive storage in which are stored various system and application programs and data used within the workstation, modem, display screen, keyboard, mouse and optional removable storage devices such as floppy drive or a CD ROM drive. The workstation hardware is configured by software including an operating system, e.g., Windows® 95, 98, NT or CE, networking software (including internet browsing software) and application software components. The preferred embodiment also encompasses a typical file server platform including hardware such as a CPU, e.g., Pentium® microprocessor, RAM, ROM, hard drive, modem, and optional removable storage devices, e.g., floppy or CD ROM drive. The server hardware is configured by software including an operating system, e.g., Windows® 95, 98, NT or CE, networking software (including Web server software) and database software. 
     A computer workstation for use in the preferred embodiment also includes a GUI. As is conventional, the GUI is configured to present a graphical display on the display screen arranged to resemble a single desktop. Execution of an application program involves one or more user interface objects represented by windows and icons. Typically, there may be several windows and icons simultaneously present on the desktop and displaying information that is generated by different applications. 
     The window environment is generally part of the operating system software that includes a collection of utility programs for controlling the operation of the computer system. The computer system, in turn, interacts with application programs to provide higher level functionality, including a direct interface with the user. Specifically, the application programs make use of operating system functions by issuing task commands to the operating system which then performs the requested task. For example, an application program may request that the operating system display certain information on a window for presentation to the user. 
     An aspect of the preferred embodiment of the information management and communications system of the invention is shown in FIG.  1 . FIG. 1 shows an example of the GUI provided by the operating system of the preferred embodiment of the present invention. With reference to FIG. 1, the preferred embodiment includes an intuitive GUI  1  from which to build a menu on a desktop or other computer. A hierarchical tree structure  2  is used to show the different relationships between the menu categories  3  (e.g., soups, salads, appetizers, entrees, deserts, etc.), menu items  4  (e.g., green salad, chicken caesar salad, etc.), menu modifiers  5  (e.g., dressing, meat temperature, condiments, etc.) and menu sub-modifiers  6  (e.g., Italian, French, ranch, bleu cheese, etc.). 
     The procedure followed in configuring a menu on the desktop PC and then downloading the menu configuration onto the POS interface on the handheld device in conformance with the preferred embodiment is as follows. 
     The menu configuration application is launched by clicking on the appropriate icon on the desktop display screen. FIG. 1 will then be displayed. There are three windows on the screen shown in FIG.  1 . The left window is the menu tree  7 , also called the tree view. The top right window is the Modifiers window  8  and the bottom right window is the Sub-Modifiers window  9 . The Sub-Modifiers window lists the sub-modifiers that correspond to the modifier that is selected. The views on the right are referred to as list views. There are several ways of invoking a command, including using the menu options; using the context menu (right mouse click); using the keyboard or using the toolbar icons. For example, if it is desired to add a category to the menu, the following four options are available: (1) clicking on Edit, Add Category; (2) right mouse clicking on Menu, then clicking on Add Category; (3) highlighting Menu, then typing Ctrl+T or (4) clicking on the Add Category icon on the toolbar. To add an item to a category, the following options are available: (1) highlighting the category to which it is desired to add an item and then clicking on Edit&gt;Add Item; (2) right mouse clicking on the desired category and then clicking on Add Item; (3) highlighting the desired category, then typing Ctrl+N or (4) clicking on the Add icon on the toolbar. 
     When building a menu, it should be kept in mind that the menu items are stored using a tree metaphor similar to how files are stored on a PC with folders and subfolders. The menu structure is similar to the Windows® File Explorer in the way the items are organized hierarchically. Below is an example of how an item may be configured: 
     
       
         
               
               
               
               
               
               
             
               
               
               
             
               
               
             
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                         Menu 
                   
                   
                   
                   
               
               
                   
                 &gt;&gt; 
                 Entrees 
               
               
                   
                   
                 &gt;&gt; 
                 Red Meat 
               
               
                   
                   
                   
                 &gt;&gt; 
                 NYStrip 
               
               
                   
                   
                   
                   
                 &gt;&gt; 
                 Vegetables 
               
             
          
           
               
                   
                                                             &gt;&gt; 
                 Tomato 
               
               
                   
                 &gt;&gt; 
                 Lettuce 
               
             
          
           
               
                   
                   Meat Temperature 
               
             
          
           
               
                   
                  &gt;&gt; 
                 Medium Rare 
               
               
                   
                   
               
             
          
         
       
     
     In the above example, Menu is the root. Entrees is a menu category. Red Meat is an Entree category. NY Strip is a modifier. Vegetable is a modifier. Meat Temperature is a modifier. Medium Rare is a sub-modifier of Meat Temperature. 
     The steps taken in building a menu are as follows: 
       1 . Add Modifiers; 
       2 . Add Sub-Modifiers and link them to the Modifiers; 
       3 . Create Menu categories; 
       4 . Add menu items to the categories; 
       5 . Assign Modifiers to the menu items; 
       6 . Preview the menu on the POS emulator on the desktop PC; 
       7 . Download the menu database to the handheld device. 
     To add modifiers, a user clicks on the inside of the Modifiers window, then (1) clicks on Edit&gt;Add Modifier, (2) Presses Ctrl+N; (3) right mouse clicks in the Modifiers window, then clicks on Add Modifiers or (4) clicks on the Add icon from the toolbar. If a menu is being built from scratch, the procedure is to enter the Long Name, Short Name, Code and Price in the Modifier dialog box  10  shown in FIG.  2 . The Long Name is the full descriptive name of the item. The Short Name is the abbreviated name that will be displayed on the handheld device. The Code is the numeric or alphanumeric code for the item. If there is an existing database, the existing database can be browsed and menu items retrieved from the database. Clicking on the Browse button will bring up the existing database of menu items. The item to be added is then selected and “OK” is clicked. The fields will then be filled with the information from the database. Clicking on OK again will add the item as a modifier. To delete a modifier, the modifier is selected and the Delete key pressed on the keyboard. To edit a modifier, either the modifier is double clicked or the Enter key is pressed. 
     Sub-modifiers represent the last level of modifiers that can be assigned to a menu tree. To add sub-modifiers, the modifier to which sub-modifiers are to be assigned is selected. Then, the focus is set on the sub-modifier window by clicking inside the Sub-Modifier window as follows: (1) clicking on Edit&gt;Add Sub-Modifier; (2) pressing Ctrl+N; (3) right mouse clicking in the Sub-Modifiers window, then clicking on Add Sub-Modifiers or (4) clicking on the Add icon from the toolbar. If a menu is being built from scratch, the procedure is to enter the Long Name, Short Name, Code and Price in a Sub-Modifier dialog box similar to the Modifier dialog box shown in FIG.  2 . As with modifiers, the Long Name is the full descriptive name of the item. The Short Name is the abbreviated name that will be displayed on the handheld device. The Code is the numeric or alphanumeric code for the item. As before, if there is an existing database, the existing database can be browsed and menu items retrieved from the database. Clicking on the Browse button will bring up the existing database of menu items. The item to be added is then selected and OK clicked. The fields will then be filled with the information from the database. Clicking on OK again will add the item as a sub-modifier. To delete a sub-modifier, the sub-modifier is selected and the Delete key depressed on the keyboard. To edit a sub-modifier, either the sub-modifier is double clicked or the Enter key is pressed. 
     Menu categories are created from the root. Some examples of categories are Appetizers, Soups, Salads, Entrees, Desserts, etc. The first step is to click on Menu in the menu tree window. Categories are added by (1) clicking on the Add Category icon from the toolbar; (2) clicking on Edit&gt;Add Category or (3) pressing Ctrl+T. As shown in FIG. 3, Menu Category dialog box  11  then appears in which to enter the Long and Short names for the menu category. 
     To add menu items to categories, the menu category which is being built is clicked. For example, if items are being added to Appetizers, the Appetizers branch is clicked on. Then the Edit&gt;Add Item is clicked on or Ctrl+N pressed. As before, if a menu is being built from scratch, the procedure is to enter the Long Name, Short Name, Code, Prep Time, Recipe and Price into the Menu Item dialog box  12  shown in FIG.  4 . The Long Name is the full descriptive name of the item. The Short Name is the abbreviated name that will be displayed on the handheld device. The Code is the numeric or alphanumeric code for the item. Prep Time is the time it takes to prepare the meal and Recipe would include preparation methods and ingredients that are used in the preparation of the item. If there is an existing database, the existing database can be browsed and menu items retrieved from the database. Clicking on the Browse button will bring up the existing database of menu items. The item to be added is then selected and OK is clicked. The fields will then be filled with the information from the database. Clicking on OK again will add the item to the category. 
     Once the menu items have been entered, it may be desired to assign some modifiers to the menu items. For example, it may be desired to assign meat temperature to a steak order. To accomplish this, first the modifier to be assigned is selected, then the menu item on the tree view that is to be assigned the modifier is clicked on and then Edit&gt;Assign Modifier is clicked on. Or, the modifier can simply be dragged and dropped onto the menu item to link them. A dialog box is then displayed asking if this modifier is a required modifier. If it is a required modifier, the display icon will be red but if it is a non-required modifier the display icon will be green. As many modifiers as are applicable can be assigned. If any changes are made to the modifiers, those changes will be automatically reflected throughout the menu tree. 
     Once the modifiers have been entered, it may be desired to assign sub-modifiers to the modifiers items. For example, it may be desired to add Honey Mustard as a sub-modifier to Dressing. To accomplish this, first the modifier to be assigned a sub-modifier is selected, then the sub-modifier window is clicked on, then Edit&gt;Add Sub Modifier is clicked on, Ctrl+N entered or the Add icon from the toolbar is clicked on. Or, the sub-modifier can simply be dragged and dropped onto the modifier to link them. 
     When the menu has been completely configured, it can be previewed on a POS emulator on the desktop to verify that the menu is correctly configured before downloading it to the handheld device. To preview, File&gt;Preview Database is clicked on or the Preview Database icon from the toolbar is clicked on. The handheld POS emulator on the desktop can then be run. If the configuration is deemed acceptable, the handheld device is connected to the desktop PC to ensure that a connection has been established; the POS application on the handheld device is exited and File&gt;Download Database is clicked on or the Download Database icon from the toolbar is clicked on. If there is an existing menu database on the handheld device, the system will ask if the existing database should be replaced. Yes is clicked if existing database replacement is desired. 
     A database function enables the creation of, e.g., a breakfast menu, lunch menu and dinner menu and downloading them to a handheld device. Functions available are (1) creating a new database; (2) opening an existing database; (3) saving a database under a different name. To access these functions, File is clicked on the menu bar. 
     The preferred embodiment encompasses customized layout, views and fonts. To set the focus on the view it is desired to change, click inside the desired window. The main customizing dialog box is accessed by clicking on View&gt;Customize View. A dialog box  13 , as shown in FIG. 5, will be displayed including tabs that allow the following options: selection of Columns to display in the list view by choosing and arranging the fields to display in the Modifiers and Sub-Modifiers windows; formatting Columns by specifying the column widths and justification; selecting Filter allows restricting the list to display only the items that meet certain criteria For example, display of modifiers with codes between 500 and 550. Selecting Sort allows sorting the modifiers or sub-modifiers according to any of the available fields such as Name, Code or Price. Selecting Style facilitates choice of font type, style, size, etc. To change the font in a particular window, click on View&gt;Fonts or right mouse click in the desired window and then click on Fonts. To change the size of the windows, drag the borders of the windows to expand or contract the size of the windows. To change the column widths, simply drag the edge of the column headers to increase or decrease the column widths. 
     A communications control program monitors and routes all communications to the appropriate devices. It continuously monitors the wireless network access point and all other devices connected to the network such as pagers, remote devices, internet Web links and POS software. Any message received is decoded by the software, and then routed to the appropriate device. No user action is needed during operation of the software once the application has been launched. To launch the communications control module, a Wireless Traffic icon is clicked on the desktop PC. When the program loads, the screen shown in FIG. 6 appears. Messages received are logged in the window  14  shown in FIG. 6 with a time stamp. The messages are also logged to a file on the hard drive. This provides a mechanism to monitor all traffic across the network (possibly useful for troubleshooting, or maintenance, but not necessary for normal operation). The program may be minimized so the screen is not displayed on the desktop, but it must be running for proper communications to exist between all devices on the network. 
     As stated, the preferred embodiment of the present invention includes the use of and compatibility with GUI technology. A drag-and-drop approach is used for organizing the tree structure  2  in the generated menu. Drag-and-drop is also used for assigning modifiers (modifiers can be dragged from the modifiers window  5  and dropped onto the menu item  4  for assignment). In-cell editing results in fast editing of items in building the menus. Customizable fonts enable users to change font types, style and size. Customizable layouts enable users to resize windows, change icons and display preferences. The inventive approach provides for fully persistent storage between sessions, even if a session is improperly or abruptly terminated. Font and the tree state (i.e., which nodes are expanded/collapsed) are stored between sessions. Layout for modifiers and sub-modifiers list views (filter, columns, formatting, font, etc.) are stored between sessions. The last database used is likewise stored between sessions. Splitter views allow the user to see different views at the same time. Each view is displayed on its own section of the screen. Views can be resized via the keyboard or a mouse by simply dragging the splitter in the middle. 
     An automated function is provided to import existing POS databases into the inventive menu generation system and, as discussed above with respect to the detailed example of how to use the preferred embodiment, an automated download procedure is provided to transfer the desktop database onto a handheld device and/or Web page. Also as discussed, the preferred embodiment facilitates preview of the handheld device or Web page version of the POS menu on the desktop before downloading and configuration. Customizable desktop menu generation is contemplated, as discussed above, in the form of customizable fonts, columns, layouts, etc. The inventive approach also includes templates for common modifiers that can be assigned to similar menu items. The preferred embodiment also supports multiple databases, thus providing for the creation and storing of different menu databases on handheld devices such as breakfast, lunch or dinner menus. The user can then select the appropriate database to reflect the time of day. 
     FIG. 7 is a schematic representation of a point of sale interface  15  for use in displaying a page-type menu  16  created using the inventive menu generation approach. As can be seen from FIG. 7, the page menu is displayed in a catalogue-like point-and-click format whereas the master menu, FIG. 1, is displayed as a hierarchical tree structure. Thus, a person with little expertise can “page through” to complete a transaction with the POS interface and avoid having to review the entire menu of FIG. 1 to place an order. A PDA or Web page format could appear like FIG. 7 or the display could be configured for particular requirements since fully customizable menu generation and display are contemplated. 
     The POS interface on the handheld device supports pricing in the database or querying prices from the POS server. The POS device also can be customized with respect to “look and feel” for the particular version. As can be seen in FIG. 7, the POS interface provides for billing, status and payment with respect to orders. A myriad of options can be provided depending on the application. 
     Advanced database functions are provided in the preferred embodiment of the invention, including an automated download process onto handheld devices and/or Web sites. In the preferred embodiment, the menu generation system of the present invention uses an API called ActiveX Data Objects (“ADO”) for database access. ADO is useful in a variety of settings. It is built on top of OLE DB and can be used to talk to databases and, in the future, any data source with any OLE DB driver. Advanced querying is supported. The database can be queried on virtually all fields. Queries can be built using SQL syntax for experienced users or can be created using a query builder which guides users through the creating process. Advanced error handling is supported. Errors occurring at run time can be trapped. A descriptive message is displayed to alert the user and provide error information. However, the application does not terminate when the errors happen. The source code is easy to maintain and modify, thus allowing for on time delivery of customized versions of the software. The advanced database functions produce well-designed databases that accommodate growth and scalability. 
     The inventive menu generation approach provides a solution for the pervasive connectivity and computerization needs of the restaurant and related markets. The inventive solution includes automatic database management and synchronization, PDA and handheld wireless operating system integration and optimization, wireless communications and internet connectivity, user interface design, and graphics design. 
     In the preferred embodiment, the menu generation approach of the present invention uses Windows CE® as the operating system for the handheld devices. Windows CE® provides the benefits of a familiar Windows 95/98/NT® look and feel, built-in synchronization between handheld devices, internet and desktop infrastructure, compatibility with Microsoft Exchange®, Microsoft Office 9® and TCP/IP quick access to information with instant-on feature. 
     Windows CE® provides a basic set of database and communication tools for developer use. However, interfacing with these tools to provide application specific results can be a complex task. In addition to the menu generation described above, a set of software libraries described herein in conformance with the present invention not only enhances the basic Windows CE® functionality by adding new features but also maximizes the full potential of wireless handheld computing devices. Such features include fast synchronization between a central database and multiple handheld devices, synchronization and communication between a Web server and multiple handheld devices, a well-defined API that enables third parties such as POS companies, affinity program companies and internet content providers to fully integrate with computerized hospitality applications, real-time communication over the internet with direct connections or regular modem dialup connections and support for batch processing that can be done periodically throughout the day to keep multiple sites in synch with the central database. 
     The synchronous communications control module discussed above provides a single point of entry for all hospitality applications to communicate with one another wirelessly or over the Web. This communications module is a layer that sits on top of any communication protocol and acts as an interface between hospitality applications and the communication protocol. This layer can be easily updated to work with a new communication protocol without having to modify the core hospitality applications. The single point of entry works to keep all wireless handheld devices and linked Web sites in synch with the backoffice server (central database) so that the different components are in equilibrium at any given time and an overall consistency is achieved. For example, a reservation made online is automatically communicated to the backoffice server which then synchronizes with all the wireless handheld devices wirelessly. Similarly, changes made on any of the wireless handheld devices will be reflected instantaneously on the backoffice server and the other handheld devices. 
     The software applications for performing the functions falling within the described invention can be written in any commonly used computer language. The discrete programming steps are commonly known and thus programming details are not necessary to a full description of the invention. 
     A simple point-to-point wireless capability is contemplated which permits simple digital messages to be sent from the wireless handheld devices to a receiver in a beeper and/or valet parking base-station. The POS interface of FIG. 7 is representative of the display on a typical wireless device used in conformity with the invention. A simple protocol is used to acknowledge receipt of the message and thus simultaneous communication is not necessary, which reduces the cost of the wireless link. The range of the wireless link is determined by the characteristics of the radio transceiver. Adding a wireless link allows paging of beeper equipped customers directly from the operator interface on the wireless handheld devices and communication to and from various input/output transmitters and receivers to update the status of the order, reservation or other information and thus further reduce the workload on the operator and enable operations to proceed much faster. This link could also be hardwired or otherwise implemented using any two-way messaging transport. 
     A further aspect of the invention is the use of the menus generated in accordance with the described technique to place orders from wireless remote handheld devices or from remote locations through the internet. The World Wide Web is a distributed hypermedia computer system that uses the internet to facilitate global hypermedia communication using specified protocols. One such protocol is the Hypertext Transfer Protocol (“HTTP”), which facilitates communication of hypertext. Hypertext is the combination of information and links to other information. In the context of the Web, hypertext is defined by the Hypertext Mark-up Language (“HTML”). The links or hyperlinks in a HTML document reference the locations of resources on the Web, such as other HTML documents. Another language used in creating documents for use on the Worldwide Web, to display on computer screens, or to create speech style sheets for use in, e.g., telephones, is the Extensible Mark-Up Language (“XML”). XML is a “metalanguage”, i.e., a language for describing languages which was developed to eliminate the restrictions of HTML. 
     The Web is a client-server system. The HTML documents are stored on Web server computers, typically in a hierarchical fashion with the root document being referred to as the home page. The client specifies a HTML document or other source on the server by transmitting a Uniform Resource Locator (“URL”) which specifies the protocol to use, e.g., HTTP, the path to the server directory in which the resource is located, and filename of the resource. Users retrieve the documents via client computers. The software running on the user&#39;s client computer that enables the user to view HTML documents on the computer&#39;s video monitor and enter selections using the computer&#39;s keyboard and mouse is known as a browser. The browser typically includes a window in which the user may type a URL. A user may cause a URL to be transmitted by typing it in the designated window on the browser or by maneuvering the cursor to a position on the displayed document that corresponds to a hyperlink to a resource and actuating the mouse button. The latter method is commonly referred to simply as “clicking on the hot-spot” or “clicking on the hyperlink”. The hyperlink methodology is contemplated for use in accordance with the preferred embodiment to transmit orders via the internet. Web server application software exists that enables a user to shop for and order merchandise. Such systems are sometimes referred to as electronic merchandising systems or virtual storefronts. Systems that enable a user to choose among several retailers&#39; goods are sometimes referred to as electronic malls. An electronic retailer&#39;s or electronic mall operator&#39;s Web server provides HTML forms that include images and descriptions of merchandise. The user may conventionally search for an item by entering a key word search query in a box on a form. When a user selects an item, the server may provide a linked form that describes that item in further detail. The user may also conventionally enter ordering information into boxes on the form, such as the type and quantity of the item desired. The information entered by the user is transmitted to the server. The user may select multiple items in this manner and then enter a credit card number to pay for the purchases. The retailer processes the transaction and ships the order to the customer. As can be appreciated, ordering merchandise can also be done from menus. The generation of menus of items or merchandise for sale over the internet is readily accomplished by the menu generation approach of the present invention. 
     Searching for items that the user is interested in purchasing is insufficient in prior merchandising systems. Database management programs use index searching to facilitate rapid searching of large amounts of data. The creator of the database may instruct the program to use specified fields in the database as indexed or key fields. The program locates all terms in the database that appear in the indexed fields and stores them in an index table. Each entry in the index table includes a term and corresponding pointer to the location in the database where the term is found. If a user initiates a search for a term that is present in the index table, the program can locate the instances of that term in the database with exceptional speed. Users who are familiar with the particular database they are searching will generally know which fields are indexed and will know the format of the data in those fields. For example, a user of a database containing the inventory of a bookstore may know that users can search for the names of authors of books and that a user who wishes to do so should enter the author&#39;s last name first. A user having such knowledge will therefore be able to search efficiently. Users of electronic merchandising systems, however, are generally end-consumers who have no knowledge of a merchant&#39;s database. If, as is very likely, such a user initiates a search for a term that is not present in the index table, the program must sequentially search through all records in the database. Sequential records are typically linked by pointers. Using pointers in this manner is very demanding on server resources, resulting not only in an exceptionally slow search, but also creating a bottleneck for other processes that the server may be executing. The menu generation approach of the present invention can be used to create customized menus from a database that includes every item of merchandise the vendor has for sale. In this manner, customers can scan the generated menu much more readily than they could view the entire database and the necessity of having familiarity with the database is eliminated as well, reducing the need for resource intensive pointers. 
     While the preferred embodiment of the invention is for the generation of restaurant menus and the like, the broad scope of the invention is far greater. For example, menus generated in accordance with the invention can be used in the desktop computing environment in association with the operating system or application programs. One such use is to facilitate the creation of user personalized file structures for general desktop use. Another use is to facilitate the location of customized menus from master menus for use in association with application software to make the execution of the application software more efficient by, e.g., eliminating the necessity of querying or checking every tree branch in the master menu file structure in response to user input or other criteria and to create handheld/PDA compatible versions of the software. 
     While the preferred embodiment of the invention includes the selection of items from a master menu wherein the master menu is displayed using a graphical user interface, it is to be appreciated that any means for displaying the master menu to the user and generating another menu in response to and comprised of the selections made is encompassed by the contemplated invention. The invention encompasses the selection of nontextual symbols, characters, icons and the like, in addition to text, from a hierarchical tree menu or the like for generation of another menu comprised of such items. 
     It is also within the scope of the invention to generate menus automatically in response to predetermined criteria. For example, in the restaurant menu generation embodiment, a modified menu can be generated to comply with a particular specification or group of criteria such as, e.g., “dinner”, “low cholesterol”, “low fat”, “fish”, “chicken”, or “vegetarian”. In this embodiment, only items from the master menu that satisfy specified parameters will be included in the generated menu. The selection process could involve selection of master menu items based on tags or identifiers associated with the items or by checking every master menu item against a dictionary of items acceptable for inclusion in the modified menu. It should also be appreciated that the invention encompasses any combination of automatic and manual user selection of the items comprising the generated menu. For example, a user might specify criteria which would further control automatic selection or the user could manually select some items with automatic selection of others. The menu generation aspect of the invention is equally applicable to table-based, drive-thru, internet, telephone, wireless or other modes of customer order entry, as is the synchronous communications aspect of the invention. 
     The inventive concept encompasses the generation of a menu in any context known to those skilled in the art where an objective is to facilitate display of the menu so as to enable selection of items from that menu. The restaurant menu generation embodiment is but one example of a use for the inventive concept. Likewise, displaying menus generated in accordance with the invention on PDAs and Web pages to facilitate remote ordering are but a few examples of ways in which such a menu might be used in practice. Any display and transmission means known to those skilled in the art is equally usable with respect to menus generated in accordance with the claimed invention. 
     In the more general situation, menus can be generated in accordance with the present invention in a variety of situations. For example, the usable file structure for a particular data processing application can be dictated by the user or an application program prior to or during the execution of the application program. Efficiencies with respect to computational speed and equipment, e.g., storage and processor, usage can thus be achieved along with the facilitation of display of the generated menu. 
     While the best mode for carrying out the preferred embodiment of the invention has been illustrated and described in detail, those familiar with the art to which the invention relates will recognize various alternative designs and embodiments which fall within the spirit of practicing the invention. The appended claims are intended to cover all those changes and modifications falling within the true spirit and scope of the present invention.