


Spring Quarter 1997:Project Sponsor: Gregory Abowd |
Project Team:Jeffrey Corn (Manager) Travis Works (Architect) John Garrard (Programmer) Kesniel Acton (Technical Writer) Dinesh Krishna (Quality Assurance) |

The Terminal Browser is the Client Terminal sub-system which displays information to the User and accepts input from the User. The User can also use the Bar-code Scanner, if one is available, to send information to the Terminal Browser. When the User requests a query or database action from the Client Terminal via the Terminal Browser, this input is translated into a request which is sent through the Internet connection to the CyberFridge Server. Here, the request is accepted by the Request Servicer, which then routes the request to the appropriate secondary sub-system.
If the User has requested information concerning the food inventory (such as how much of a particular item is on hand, or what meats are available), the Request Servicer routes the request to the Inventory Lister. The Inventory Lister then translates this request into a database query, which it sends to the Food Inventory Database. The Food Inventory Database performs this query and returns a set of records to the Inventory Lister. The Inventory Lister then separates out the parts of this result which are appropriate to the request, and formats this information into data readable by the Terminal Browser. This data is then returned to the Request Servicer. A similar procedure is followed if the User requests data regarding recipes, in which case the Recipe Lister and Recipe Database take the place of the Inventory Lister and Food Inventory Database, respectively.
If the User has updated information concerning food items (such as adding or removing an item), the Request Servicer routes the request to the Inventory Editor. The Inventory Editor then translates this request into a database update, which it sends to the Food Inventory Database. The Food Inventory Database updates its records according to this request, and returns an acknowledgment to the Inventory Editor. If the update was not successful, the Food Inventory Database will instead return an error message. The Inventory Editor then translates this acknowledgment or error message into a message for the User, and formats this message into data readable by the Terminal Browser. This data is then returned to the Request Servicer. A similar procedure is followed if the User sends updates regarding recipes, in which case the Recipe Editor and Recipe Database take the place of the Inventory Editor and Food Inventory Database, respectively.
If the User has requested information concerning both recipes and the food inventory (such as which recipes can be prepared using only items currently on hand), the Request Servicer routes the request to the Recipe Lister. The Recipe Lister then separates the portion of the query regarding recipes and translates this request into a database query, which it sends to the Recipe Database. The Recipe Database performs this query and returns a set of records to the Recipe Lister. The Recipe Lister then takes the remaining portion of the request, and sends this plus the recipe records to the Complex Query Processor. The Complex Query Processor separates out the portion of the query regarding food items and translates this request into a database query, which it sends to the Food Inventory Database. The Food Inventory Database performs this query and returns a set of records to the Complex Query Processor. The Complex Query Processor then combines the two sets of records according to the request and sends this result to the Recipe Lister. The Recipe Lister separates out the parts of this result which are appropriate to the request, and formats this information into data readable by the Terminal Browser. This data is then returned to the Request Servicer.
Once the result of the User's request has been returned to the Request Servicer, the Request Servicer returns the data through the Internet to the Terminal Browser. Here, the message is displayed for the User. The Terminal Browser then awaits the next set of inputs from the User.
C. The Inventory Editor shall track additions to the current inventory, and request that these items be added to the Food Inventory Database. The Inventory Editor may accept requests from the User or from the Bar-code Scanner.
D. The Inventory Editor shall track removals from the current inventory, and request that these items be deleted from the Food Inventory Database. The Inventory Editor may accept requests from the User or from the Bar-code Scanner.
B. The Recipe Editor shall accept requests from the User to create new categories or to modify existing categories, and shall send these requests to the Recipe Database. The Recipe Editor shall also include the ability to modify the categories to which each recipe belongs.
C. The Recipe Editor shall track additions to the current list of recipes, and request that these items be added to the Recipe Database.
D. The Recipe Editor shall track removals from the current recipe list, and request that these items be deleted from the Recipe Database. The Recipe Editor shall also accept requests to modify an existing recipe, and shall request the Recipe Database to replace the existing recipe information with the new recipe information.
B. The Complex Query Processor will be able to take a list of recipes passed to it by the Recipe Lister, and search the Food Inventory Database for the ingredients necessary for each recipe. This will allow the user to obtain lists of ingredients which are necessary to prepare the given recipes, but which are not currently in inventory.
C. The Recipe Database will store information regarding the frequency with which each recipe is selected, allowing the Recipe Lister to use this information to return lists of recipes selected by their frequency of use.
D. The Recipe Lister will be able to return a list of suggested recipes according to the request received from the Request Servicer. In addition, the Recipe Lister will be able to order each list of recipes according to the request received.
B) Speed: Since only small requests and final text results are transmitted across the Internet connection, the system should remain relatively fast even if the connection between the CyberFridge Server and the Client Terminal is slow. The majority of data transmissions take place within major sub-systems, where transmission speeds are much higher than typical Internet connection speeds.
Purpose: to maintain a database
containing a record for each recipe stored in the system.
Input: recipe record actions
(add, delete, update) from the Recipe Editor; requests from the Recipe
Lister.
Output: recipe records to
Recipe Lister; acknowledgments (positive or negative) to Recipe Editor
(optional).
Purpose: to maintain a database
containing a record for each food item in inventory.
Input: record actions (add,
delete, update) from the Inventory Editor; requests from the Inventory
Lister; requests from the Complex Query Processor.
Output: recipe records to
Recipe Lister; acknowledgments (positive or negative) to Recipe Editor
(optional).
Purpose: to forward requests
from Client Terminals to the appropriate CyberFridge Server sub-system;
to forward data from CyberFridge Server sub-systems to Client Terminals.
Input: requests from Client
Terminals; data from CyberFridge Server sub-systems.
Output: requests to CyberFridge
Server sub-systems; data to Client Terminals.
Functions: accept requests
from Client Terminals; determine appropriate sub-system for each request;
send request to appropriate sub-system; read data returned from sub-systems;
send data to Client Terminals.
Procedures:
Purpose: to update the Recipe
Database
Input: requests to add, delete,
or update a record, including a copy of the record to be changed, received
from the Request Servicer; acknowledgments (positive or negative) from
the Recipe Database.
Output: record actions to
Recipe Database; data to Request Servicer (optional).
Functions: read request from
Request Servicer; send appropriate record action to Recipe Database; read
acknowledgment from Recipe Database; format acknowledgment into data format
for Request Servicer; send data to Request Servicer.
Procedures:
Purpose: to update the Food
Inventory Database
Input: requests to add, delete,
or update a record, including a copy of the record to be changed, received
from the Request Servicer; acknowledgments (positive or negative) from
the Food Inventory Database.
Output: record actions to
Food Inventory Database; data to Request Servicer (optional).
Functions: read request from
Request Servicer; send appropriate record action to Food Inventory Database;
read acknowledgment from Food Inventory Database; format acknowledgment
into data format for Request Servicer; send data to Request Servicer.
Procedures:
Purpose: to select records
from the Recipe Database, according to requests from the user.
Input: requests from the
Request Servicer; data from the Recipe Database; data from the Complex
Query Processor.
Output: requests to the Recipe
Database; data to the Complex Query Processor; data to the Request Servicer.
Functions: accept request
from Request Servicer; send request to Recipe Database; read data from
Recipe Database; (for complex queries: send data to Complex Query Processor,
with request; read data from Complex Query Processor); select records from
data, according to request; send data to Request Servicer.
Procedures:
Purpose: to select records
from the Food Inventory Database, according to requests from the user.
Input: requests from the
Request Servicer; data from the Food Inventory Database.
Output: requests to the Food
Inventory Database; data to the Request Servicer.
Functions: accept request
from Request Servicer; send request to Food Inventory Database; read data
from Food Inventory Database; select records from data, according to request;
send data to Request Servicer.
Procedures:
Purpose: to combine information
from the Recipe Database and Food Inventory Database, to provide the user
with the ability to perform queries requiring information from both databases.
Input: data from Recipe Lister,
including requests; data from Food Inventory Database.
Output: requests to Food
Inventory Database; data to Recipe Lister.
Functions: read data from
Recipe Lister; send request to Food Inventory Database; read data from
Food Inventory Database; combine information from Food Inventory Database
with records from Recipe Lister, according to request from Recipe Lister;
send data to Recipe Lister.
Procedures:




