Running head: VIPS: LAB 2 – PROTOTYPE PRODUCT SPECIFICATION Lab II – Prototype Product Specification VIPS Inc. CS411 Janet Brunelle March 24, 2009 VIPS: Lab II – Prototype Product Specification Table of Contents 1 INTRODUCTION ...................................................................................................................3 1.1 1.2 1.3 1.4 1.5 2 Purpose ....................................................................................................................... 4 Scope .......................................................................................................................... 8 Definitions, Acronyms, and Abbreviations .................................................................. 10 References ................................................................................................................ 11 Overview ................................................................................................................... 12 GENERAL DESCRIPTION ..................................................................................................12 2.1 2.2 2.3 Prototype Architecture Description............................................................................. 13 Prototype Functional Description ............................................................................... 15 External Interfaces ..................................................................................................... 19 2.3.1 Hardware Interfaces .................................................................................................20 2.3.2 Software Interfaces ..................................................................................................20 2.3.4 Communication Protocols and Interfaces ................................................................22 4 APPENDIX .................................................................................................................................22 List of Figures Figure 1. Real World Product Major Functional Component Diagram ............................ 6 Figure 2. Prototype Major Functional Component Diagram .......................................... 13 Figure 3. VIPS Website Process Flow........................................................................... 17 Figure 4. VIPS Prototype Database/Website Process Flow .......................................... 18 Figure 5. VIPS Barcode Algorithm ................................................................................ 19 Figure 6. VIPS User Interface Map................................................................................ 22 List of Tables Table 1. Feature comparison between real world product and prototype ..................... 15 2 VIPS: Lab II – Prototype Product Specification 1 INTRODUCTION According to the US census (GIS Lounge, 2001), urban population densities are steadily increasing. Parking in these areas has become a great burden. The effects of the population growth are felt everywhere. One particular place parking is a burden is on urban universities. The amount of incoming students and faculty place a big toll on limited parking resources. The university parking offices must manage all parking patrons. These patrons vary greatly and include students, staff, faculty, and visitors. The university subscription parkers demand a high level of service, and the universities have developed a reasonable solution for their subscription patrons. However, many universities have left out their visiting patrons. Visitor Interface for Parking Services (VIPS) will solve the visitor element in this complicated parking equation. Visitor parking is difficult to manage in a subscription-based environment, resulting in visitor frustration and loss of revenue. Current visitor parking systems on university campuses are complicated and ineffective at managing visitors. The current process at Old Dominion University involves a customer finding a parking space close to the parking office. The customer must then physically walk into the parking office to obtain a visitor pass. The evolution finally ends with the customer walking back to their car and attempting to find parking close to their destination. The visitor parking process is difficult and results in frustration by the visitor and the university attempting to use an outdated process to handle modern visitor demands. James Long, ODU Parking Services Director, stated ODU fields 15,000 visitor requests per year (J. Long, personal communication, September 11, 2001). The demand for visitors is high, and the process currently does not effectively manage the demand. VIPS Inc. has a solution for these visitor woes. VIPS has designed a solution that will seamlessly integrate into the universities current parking solution and provide the much needed 3 VIPS: Lab II – Prototype Product Specification service to visitors. The VIPS solution will solve the current problems of managing visitors and streamlining the process. Visitor Interface for Parking Services will provide an integrated system to manage visitor parking for large organizations that utilize a subscription based parking environment. 1.1 Purpose VIPS will be a customizable add-on that integrates with whatever current parking solution is in place at the university. The VIPS product is designed to manage the university's visitor demands. VIPS will do this by integrating with the university's current technology. The VIPS system will allow visitors to register online and obtain a visitor pass to the university. The visitor pass will allow the visitor to enter the parking garages through authenticated barcode access. The VIPS product will also provide a means of faculty to register their guests. The VIPS system stores all of the visitor data, which will allow for the development of visitor trend analysis. VIPS will allow the university to effectively and efficiently manage visitors without placing added stress on subscribers. VIPS will offer the university's visitors the ability to reserve parking online. Since VIPS allows the visitor to register online, there is no need for the visitor to waste trips going to the parking office. The VIPS system will allow visitors to choose a garage they want to reserve a parking space in. VIPS will not guarantee a specific parking space. The VIPS guarantee is there will be an available space in the applicable garage. The methodology VIPS uses to reserve spaces is an algorithm that calculates spaces available and spaces reserved. The university will be allowed to limit the amount of visitors the garage can accommodate. VIPS Inc. will use a gated garage for access control. The visitor pass will have a printed barcode. The barcode will be scanned at the entrance of a gated garage to grant the visitor access. 4 VIPS: Lab II – Prototype Product Specification Once a visitor is granted access, the database is updated and a current status of the garage is available. The VIPS system will also integrate with the current technology in place, which will ensure every time a car enters or leaves the garage a database is updated. The updated database will ensure an accurate real-time status of the garage and ensure space reservations can be accommodated. The database will also provide the university with the ability to use VIPS to develop visitor trend analysis, to help predicate parking situations. The VIPS system will also provide the university faculty with the ability to pre-register their guests. This will lift the burden off of visitors and ensure a smooth interaction with university guests. The VIPS website will have several authenticated user levels. The user levels will allow for a standard user, faculty user, and an administrator. The website will also verify with the database to ensure that the users are valid. VIPS dedication to information security will ensure all users are authenticated and permitted the proper access into the system. Figure 1 illustrates the major functional components of VIPS. The light blue boxes indicate hardware, and the dark blue boxes indicate software. The grey box indicates assumed customer hardware, and the black box indicates assumed customer software. VIPS will tailor a solution for any hardware configuration a customer has in place. However, for the purpose of clarity, only the RFID solution will be discussed. [This space intentionally left blank] 5 VIPS: Lab II – Prototype Product Specification Figure 1. Real World Product Major Functional Component Diagram The VIPS hardware will be comprised of garage components and servers. The garage hardware will be used to ensure visitor access to the garage. The VIPS garage components will be a barcode scanner and an intercom. The barcode scanner will be placed at the garage entrance and exit. The visitor will scan the barcode on the visitor pass upon entry and exit to the garage. The intercom is in place in case a situation exists where the visitor needs to speak with somebody at the parking office. The assumed customer hardware is the hardware infrastructure and the customer database. The hardware infrastructure is in place in the garage to facilitate the customers handling of their subscription users. In this example, the hardware infrastructure will include traffic counters, access gates, display boards, and a RFID system. VIPS will also require 6 VIPS: Lab II – Prototype Product Specification several servers. VIPS will require three servers to run its product. The VIPS engine will run on a server, and a separate server will be required to run the VIPS website. VIPS will also require a server to run the VIPS database. There also must be a customer database server. This customer server will be used to generate user authentication. If a customer database does not exist, VIPS will develop a database table to perform the authentication. The client computer is used to represent any computer that is able to access the Internet. The Client computer must have a web browser and an internet connection. The Client computer will be used to access the VIPS website and is only shown for completeness. VIPS will require a significant amount of software to function. The dark blue boxes in figure 1 denote the software that VIPS Inc. will generate. VIPS has three major software components; VIPS engine, VIPS website, and VIPS database. The VIPS engine will be responsible for scheduling the visitors; this is a redundant feature shared with the VIPS website. This is to ensure there is space available and ensure that the garages have an accurate count. The VIPS engine will also be responsible for generating all data reports and developing trend analysis. The major role of the VIPS website is scheduling visitors and accepting reservations. The website will also be capable of handling the payment for visitor passes. The website will be responsible for generating the unique barcode, to allow the visitor garage access. The next major software component will be the VIPS database. The VIPS database will be designed using Oracle. The database must store all visitor data and current garage data. The database must also allow both the VIPS engine and website access. The last software elements that VIPS Inc. will develop are the communication channels between all of the components. There are several interfaces that must be developed to ensure the smooth flow of data. The communication channels are represented by the arrows in figure 1. The 7 VIPS: Lab II – Prototype Product Specification arrow heads indicate the direction of information flow. The main communication points that need to be addressed are between the VIPS engine and the VIPS database, the VIPS website and the VIPS database, the VIPS engine and the customer database, the VIPS website and the customer database, and the VIPS engine and garage hardware. VIPS will use TCP/IP to ensure the effective communication between these components. 1.2 Scope VIPS Inc. will prove the VIPS product is feasible by providing an effective, functional demonstration with a lab prototype. There are many objectives that must be met to achieve the goal of VIPS Inc. The objectives for the VIPS prototype are interface with RFID technology, barcode based access to garage, Internet based registration with secure account access control, a simplified database for visitor reservation management, prevent abuse by validating users against a blacklist, create a printable pass for use at garage entrance, simulate the parking garage environment, simulate the arrival and departure of parking patrons, provide a test harness, and demonstrate historical trends. The objectives will be met by producing an effective prototype. The key to meeting these objectives will be developing the functional website, database, and the engine. The VIPS prototype website will have to be built to satisfy several objectives. The website will be designed and built with controlled access levels. The website will be secured by only allowing the authorized users the appropriate amount of access. The website will have several access levels to include visitor, faculty, department, and administrator. The main functional objective of the website will be to allow visitors a means of registration. The website will provide a visitor the ability to pre-register a visit and obtain a parking pass. The parking pass 8 VIPS: Lab II – Prototype Product Specification will have a printable barcode. The barcode will grant the user access to the garage on the day they scheduled their visit. The website will interface with the database to ensure the security and availability of visitor space in a garage. The database will ensure the smooth operation of the system. The database will have to store the barcodes and visitor data associated with each barcode. The database will also have to keep track of all RFID subscription users. The ability of the garage to not be overbooked and allow the visitor to be guaranteed a space relies heavily on the database. The database must keep track of all transactions occurring on the website and in the engine. The database will ensure it knows an accurate state of the garage at all times. It is imperative the database keeps track of the garage state in order to effectively manage incoming reservations. The database will also be able to produce a history report. The history report will be the primary means of showing the ability to develop trend analysis. The trend analysis will be used to help the university more efficiently handle visitors. The VIPS engine will be entrusted to handle all incoming and outgoing garage traffic. The engine will process each access request to ensure that the vehicle either has an authorized RFID pass or scans an authorized barcode. The engine will be used to ensure this process is quick and as seamless as possible. The engine will also be responsible for managing communication between the garage simulation and the database. The amount of data and format will be controlled with the engine. There are also several interfaces that will need to be built. These interfaces will ensure interoperability between the major components. VIPS Inc. believes with the successful demonstration of a prototype the objectives can and will be met. Therefore, the goal of VIPS, to 9 VIPS: Lab II – Prototype Product Specification provide an integrated system to manage visitor parking for large organizations that utilize a subscription based parking environment, will be proven feasible. 1.3 Definitions, Acronyms, and Abbreviations Barcode – A pictorial representation of numeric or alphanumeric characters that can be interpreted by a barcode scanner. Barcodes will be used to identify visitors in the VIPS garage simulation Client Computer – Any computer capable of accessing the Internet; this is the computer used to access the VIPS website Customer – The organization or company purchasing the VIPS product, usually a university Display board – A device with three digital panels to display the number of available spaces. The device is attached to the entrance of each garage and interfaces with the VIPS engine to keep track of the current number of faculty, students, and visitors Garage – A building designed to house vehicles consisting of multiple tiers and ramps, which transition from one tier to another Hardware Infrastructure – The existing hardware used to support the customer’s parking solution (i.e. Gates, Pneumatic Sensor, Display Board, etc.) Interface – A communication channel between two programs or applications Lot: A single level paved area used for parking cars Oracle – A database application which stores structured data and accepts Structured Query Language for retrieval of pertinent information Parking environment – A large scale business or university that has several different 10 VIPS: Lab II – Prototype Product Specification garages and lots that are used to handle several types of customers PHP Hypertext Pre-processor – PHP is a recursive acronym (where a letter in the acronym is the acronym itself). It is a structured language used in website development for its ability to dynamically create HTML documents based on differing inputs Programming Language / Structured Query Language (PL/SQL) – A modification of SQL to include functionalities of many modern programming languages Radio Frequency Identification (RFID) – An automatic identification system that uses radio frequency to identify an item from a distance; in this case, a car has an RFID pass and it can be read just by the car driving under an RFID reader Structured Query Language (SQL) – A language that uses English key words, which are interpreted by a database for the purpose of returning pertinent information Subscription User – Any person who pays a fee to be able to regularly use a customer’s available parking spaces for a specified length of time Terminal – A dedicated computer reserved for a specific input. In the case of VIPS, it will allow access only to the custom VIPS website for the customer, to allow visitors who did not preregister to register once they have arrived Visitor – The end-user of VIPS product 1.4 References Association for Automatic Identification and Mobility. (n.d.). RFID Glossary. Retrieved Feb 10, 2009, from http://www.aimglobal.org/technologies/rfid/rfid_Glossary.asp VIPS. (2009). Lab 1 – VIPS Product Description. Norfolk, VA: Author. 11 VIPS: Lab II – Prototype Product Specification GIS Lounge. (2001, April). U.S. Census 2000 - Population Trends Mapped. Retrieved Feb 10, 2009, from http://gislounge.com/us-census-2000-population-trends-mapped/ Greenwald, R. (2001, June). Introducing Oracle. In Developer.com. Retrieved Feb. 10, 2009, from http://www.developer.com/db/article.php/1582621. PC Mag. (n.d.). Definition of: bar code. Retrieved Feb 10, 2009, from http://www.pcmag.com /encyclopedia_term/0,2542,t=bar+code&i=38421,00.asp# 1.5 Overview This product specification document illustrates the requirements of the VIPS prototype. This document will familiarize the reader with the hardware and software components that the VIPS prototype uses. The VIPS prototype will be built by developing software components that integrate effectively with the given VIPS hardware. VIPS must ensure these components operate efficiently together. There are many interfaces that will be required in order to effectively deploy the VIPS prototype. The interfaces VIPS will use are hardware, software, and user. The components of the VIPS system will be developed using requirements. The requirements VIPS has developed are guidelines used to ensure the prototype will be complete and show the VIPS product is feasible. 2 GENERAL DESCRIPTION The VIPS prototype will be built in order to show the feasibility of its visitor parking management system. VIPS will prove the system works by showing the visitor reservation management works, and the system can be integrated into a current parking environment with little to no impact on subscription parkers. This section will show how this will be achieved by describing the prototype architecture, major functional components, and the required interfaces. 12 VIPS: Lab II – Prototype Product Specification 2.1 Prototype Architecture Description The major functional components of the VIPS prototype are illustrated in figure 2. The prototype is a simplified version of the VIPS real world product; however, the prototype retains the innovative functionality of visitor space reservation. In the prototype, the garage hardware will be simulated and will accept the barcode scanner and RFID inputs. As in figure 1, the dark blue boxes represent the software components, and the light blue boxes represent the hardware components. Figure 2. Prototype Major Functional Component Diagram The hardware for the prototype will be scaled down from the real world product. The VIPS engine server will be replaced by a gateway laptop; this replacement will not affect 13 VIPS: Lab II – Prototype Product Specification functionality. The web server and the database server in the real world product will be replaced by the ODU Computer Science (CS) department servers. The CS server will be used because it is the best resource available to VIPS Inc. Finally, VIPS will use a CS department desktop computer as a client computer. This will be used to test the VIPS website and registration system. The software in the VIPS prototype will also differ from the real world product The VIPS engine will be required to handle the input/output from the garage simulation and be able to access the database. The VIPS database will use Oracle. However, the database will be scaled down and will only include the necessary fields to prove functionality. The VIPS database is further detailed in section 3.1.3. The VIPS website will also be scaled down. The website will be designed using PHP. The website will be secured with access control. The website will generate a unique barcode pass, allow the pass to be emailed, and allow the user to create an account. The website is further detailed in section 3.1.1. VIPS will develop a test harness capable of manipulating data in order to provide a means of testing the system. Finally, the prototype will have communication channels and interfaces developed to allow all of the components to communicate properly. The prototype will attempt to emulate the real world product as much as possible in the constrained lab environment. Table 1illustrates the differences between the real world product and the prototype. The VIPS prototype will demonstrate the complete functionality of the VIPS system, but it will do so at a scaled down level. [This space intentionally left blank] 14 VIPS: Lab II – Prototype Product Specification Features Read World Product Prototype Hardware Implementation Existing customer hardware Garage Simulator Barcode reader Rugged outdoor barcode scanner USB Barcode scanner RFID Standard RFID 15ft range Phidget RFID Kit Intercom 2-way twisted pair N/A Router Rugged outdoor router Garage Simulator VIPS Engine Server Dell Power Edge Server Gateway Laptop VIPS Engine Manages I/O between garage(s) hardware and VIPS DB. Datamining Manage I/O between Garage Simulator and VIPS DB. DB report. VIPS Website Registration of visitors and reservation of garage space. Manage payment info, validate visitor eligibility with CDB. Allow dept to reserve space for visitors. Register visitors, reserve garage space, eligibility validation VIPS Web Server Dell Power Edge Server Gateway Laptop Visitor/Parking Office Computer Any web-enabled device Gateway Laptop VIPS DB Oracle - large-scale multigarage, Full detail tables Oracle 10g, Limited field, Implements Customer DB table Customer DB Black list built from Parking Services info on students, faculty, etc Implemented as table in VIPS DB Table 1. Feature comparison between real world product and prototype 2.2 Prototype Functional Description The major functional components of the VIPS prototype are the VIPS website, the VIPS database, and the VIPS engine. Those components ensure the preregistration process and the ability for a visitor to reserve a space in a garage. The communication between the engine and 15 VIPS: Lab II – Prototype Product Specification the database is a critical factor in the development of the VIPS prototype. The database must always have an accurate account of the garage state in order for the visitor registration and guarantee to be effective. The VIPS website is the component responsible for allowing the visitor the ability to preregister for a pass. The website is the user interface into the VIPS system. The website will be secured through access control and will develop dynamic pages for each user based on that access. This process is further described in section 3.1.1. The process flow for the website is illustrated in figure 3. The website will let a new user create an account. The account information will then be stored on the database. The website will initiate a connection in order to query the database to authenticate the user. Once access is granted, the website will allow the user to perform a number of functions based on their access; again, this will be further explained in section 3.1.1. The communication between the website and the database is very important. The website will have to query the database to authenticate login, validate user access, and check reservation availability. [This space intentionally left blank] 16 VIPS: Lab II – Prototype Product Specification Figure 3. VIPS Website Process Flow The VIPS database is another major component. The database is the primary link between the website and the garage. The database must control access within the website in order to provide information security. The process flow for the database/website interaction is illustrated by figure 4. However, the database will be responsible for the access control of the garages as well. This is because the database is where the barcode and RFID codes are authenticated to authorized users. The database has to perform a query with the input from the engine and return a valid or invalid response to the garage. The response the database returns is ultimately what will allow a user to enter the garage. Therefore, the database is extremely critical in the overall performance of the VIPS prototype. The database must also maintain an accurate status of the garage. The status of the garage will be updated by the engine, but the database will ultimately be responsible for the storage of the values. The database is also critical to developing 17 VIPS: Lab II – Prototype Product Specification the trend analysis that will allow the customers to better manage the visitor flow. Figure 4. VIPS Prototype Database/Website Process Flow The final major component is the VIPS engine. The VIPS engine is responsible for the flow of all the data between the garage simulation and the database. The engine will ultimately be responsible for letting the vehicles enter a garage in the simulation. The engine will query the database with either a barcode or a RFID code. The database will then process that code and return a value of 1 or 0 to the engine. The engine will either allow or deny access to the garage. The algorithm the engine uses for determining authorized access can be seen in figure 5. The engine will also be responsible for updating the database at the start of the day and the end of the day. The updates are to ensure the database has a current state of the garage and the visitors that are preregistered have their spot decremented from the total amount of spaces available. The 18 VIPS: Lab II – Prototype Product Specification engine will update the database with this information and populate the correct information to the display board. Figure 5. VIPS Barcode Algorithm 2.3 External Interfaces This section identifies the logical and physical interfaces used within and by the VIPS prototype. The interfaces included in this section are hardware, software, user interface, and communication protocols. The major hardware interfaces are a laptop, CS department server, a barcode reader, and a printer. The major software interfaces are Oracle, PHP, and Java. The user 19 VIPS: Lab II – Prototype Product Specification interfaces for the VIPS prototype is provide by the VIPS website. The communication protocol used is TCP/IP. 2.3.1 Hardware Interfaces A laptop and a barcode reader will be used to implement the VIPS engine and the garage simulation. The VIPS website and database will reside on CS department servers. The barcode reader will be attached to the laptop where the garage simulation is running. Based on a test range of 6 inches, the barcode reader will be used to read barcode inputs into the garage simulation. The VIPS database will reside on the CS department database server. The VIPS website will also be maintained on CS department servers. The servers will provide the speed and maintainability to ensure the smooth accomplishment of a prototype. Finally, the VIPS prototype will require a printer. The printer will be used to demonstrate the ability to register and print a visitor pass. VIPS intends to use a printer live during the presentation. However, if a printer can not be acquired, VIPS will use a CS network printer. 2.3.2 Software Interfaces VIPS will require five applications to develop the VIPS prototype. The VIPS website will be built using PHP. PHP is a robust web development language used to give VIPS the ability to dynamically create user pages. The test harness VIPS will use to test the system will use PHP as well. The VIPS database will be designed using Oracle. Oracle gives VIPS the ability to perform the database functions needed to ensure success. The database is accessed with PL/SQL based queries. Finally, the VIPS engine and the garage simulation will use Java. Java will be used to give the simulation the realistic appeal and ensure accurate communication between the 20 VIPS: Lab II – Prototype Product Specification components. 2.3.3 User Interfaces The user interfaces in the VIPS prototype are provided by the website. There are six main user interfaces: VIPS home page, login page, account creation page, pass registration page, personal page, and account retrieval page. A graphical representation of this is provided in figure 6. The VIPS home page is a welcoming page and will provide the user the option to sign in, register, or retrieve account information. The login page allows the user to log into the system with an acceptable password/username pair. The account creation page allows the user to enter their distinguishing data to create a user account. The personal page is retrieved after successful login. The personal page allows the user to edit the personal information and access the pass registration page. The pass registration page can be accessed once a user is logged on and allows them to request a visitor pass. Once the request is accepted, the page will allow them to print the generated user pass. Finally, the account retrieval page is used for a user who has forgotten their password. The account retrieval page will allow the user to retrieve their password. [This space intentionally left blank] 21 VIPS: Lab II – Prototype Product Specification Figure 6. VIPS User Interface Map 2.3.4 Communication Protocols and Interfaces The VIPS prototype will require a significant amount of interoperability in order to deliver the objective set forth in section 1.2. The VIPS website will need to be accessed by any client computer. The database must be able to communicate with the web server and the VIPS engine. These inter-component communication channels must be established and be reliable. The VIPS team has decided that using TCP/IP communication protocols is the most effective and reliable way to guarantee inter-component communcation.TCP is a transmission protocol that establishes a reliable link between computers. Internet protocol or IP refers to the sending of packets of data across a network connection. 4 Appendix Major components A. Hardware 22 VIPS: Lab II – Prototype Product Specification -Barcode Scanner -Radio Frequency Identification (RFID) antennae - RFID tags - Database server - VIPS engine server - VIPS web server - Intercom - Client Computer - Existing Customer Database B. Software - VIPS Engine (schedules and handles garage application, Data Mining, Report generation) - VIPS Website (schedules visitor reservations, handles payment) - VIPS database (Oracle) - Communication (VIPS database and VIPS engine) - Communication (VIPS database and VIPS Web Server) - Communication (garage HW and VIPS Engine) - Communication (VIPS Engine/ VIPS Web Server and Customer Database) [This Space Intentionally Left Blank] 23 VIPS: Lab II – Prototype Product Specification Running head: LAB 2 – VIPS REQUIREMENTS Lab 2 – VIPS Prototype Requirements VIPS Inc. CS411 Janet Brunelle April 13, 2009 24 VIPS: Lab II – Prototype Product Specification Table of Contents 3 Specific Requirements .......................................................................................................... 27 3.1 Functional Requirements ............................................................................................27 3.1.1 VIPS Website .......................................................................................................... 27 3.1.2 VIPS Engine............................................................................................................ 32 3.1.3 VIPS Database ........................................................................................................ 35 3.1.4 RFID Tags and Barcodes ........................................................................................ 45 3.1.5 Garage Simulation .................................................................................................. 45 3.1.6 Admin Screen/Test Harness .................................................................................... 49 3.2 Performance Requirements ........................................................................................51 3.2.1 VIPS Website .......................................................................................................... 51 3.2.2 VIPS Database ........................................................................................................ 52 3.2.3 VIPS Engine............................................................................................................ 52 3.2.4 Garage Simulation .................................................................................................. 53 3.3 3.4 Assumptions and Constraints .....................................................................................53 Non-Functional Requirements ....................................................................................55 3.4.1 Security ................................................................................................................... 55 3.4.2 Maintainability ........................................................................................................ 56 3.4.3 Reliability................................................................................................................ 56 List of Figures Figure 1. VIPS Website Layout ..................................................................................... 28 Figure 2. VIPS Engine Algorithms ................................................................................. 32 Figure 3. Start-of-Day Algorithm .................................................................................... 34 Figure 4. End-of-Day Algorithm ..................................................................................... 35 Figure 5. VIPS Database Tables ................................................................................... 36 Figure 6. Barcode Procedure Flow ................................................................................ 39 Figure 7. RFIDcheck Procedure Flow ........................................................................... 40 Figure 8. ChangeCount Procedure Flow ....................................................................... 42 Figure 9. ClearGarage Procedure Flow......................................................................... 44 List of Tables Table 1. Comparison of VIPS Website Security Levels ................................................. 29 25 VIPS: Lab II – Prototype Product Specification Table 2. Garage Simulation Message Format ............................................................... 49 Table 3. Assumptions, Dependencies, and Constraints on Prototype Requirements ... 55 26 VIPS: Lab II – Prototype Product Specification 3 Specific Requirements The VIPS prototype must achieve several specific requirements. The initial requirements placed on the VIPS prototype are the functional requirements. Functional requirements describe what the VIPS prototype must do in order to achieve the goals of VIPS Inc. The performance requirements are specifications VIPS must achieve in order to meet the functional requirements. The assumptions and constraints section explains the limited environment in which the prototype will operate. Finally, the non-functional requirements conclude the framework for the VIPS prototype requirements. 3.1 Functional Requirements The VIPS prototype's functional components consist of the VIPS Website, VIPS Engine, VIPS Database, RFID tags and barcodes, Garage Simulation, and the VIPS Test Harness. Each component has unique qualities that help shape the VIPS prototype. Although VIPS contains many components, each is streamlined and designed to be advantageous to the parking services staff and the visitor. 3.1.1 VIPS Website The VIPS Website is the primary interface used by parking services staff and visitors to the university. In order for both the staff member and the visitor to make efficient use of the webpage, a well planned and well defined layout is necessary in order to create ease of use and prevent confusion. The VIPS Website layout is illustrated in Figure 1. [This space intentionally left blank] 27 VIPS: Lab II – Prototype Product Specification Figure 7. VIPS Website Layout 1. Home Page - The home page acts as the main menu for the rest of the VIPS Website. The contents of the home page depend on the user's security level (unregistered, visitor, admin, faculty, or staff), with each level giving access to different options and features. The various levels of security are shown in Table 1. The unregistered home page will display the login page. [This space intentionally left blank] 28 VIPS: Lab II – Prototype Product Specification Table 2. Comparison of VIPS Website Security Levels 2. Login Page - The page an unregistered web user encounters upon reaching the VIPS Website. From the login page, the user is able to navigate to the areas acceptable to their security rating. a. Allows the user to log into their respective accounts b. Grants the user the proper access c. Redirects the user to their personal page d. The login page provides a link to register for a new account 3. Department - The page a list of faculty that fall under the department. The page allows a department figurehead to enable the "invite a visitor" feature on user accounts which are gathered from the VIPS Database. The Department page allows the Department access to invite individuals to the university. 4. Personal Page - The Personal Page contains links to web pages that the individual has been granted access. a. Connects to the VIPSUsers, Visitors, and Dept tables from the VIPS Database b. Displays the user's data from the VIPS Database 29 VIPS: Lab II – Prototype Product Specification c. Allows the user's data to be modified. The tables that can be modified are: VIPSUsers and Visitors. See Section 3.1.3 for the correlating columns/fields. d. Asks if updates are correct, then saves them 5. Account History - This page displays the user's recent trip history. including the time, date and car/license plate registered for the visit. For faculty and staff, the page can also show recently a list of invited visitors. The following data is recorded: a. Time b. Date c. License plate d. Barcode (which is a unique visit number) 6. Account Creation/Verification - This page allows a user to create an account by collecting the user's personal information. Account information is stored in the VIPS Database. personal information gathered includes: a. First name b. Last name c. License plate number d. Username ( an email address) e. Password 30 VIPS: Lab II – Prototype Product Specification 7. Pass Registration/Verification - This page is where a user goes when they want to register a visit to the university. The user provides trip specific information such as date (drop down), which car they will use (drop down), reason for visit (drop down), and which parking garage they prefer (drop down). The collected information is then stored in the Passes table from the VIPS Database. The user can also register to park in a specific garage. 8. Pass Generation – Pass generation creates a visitor pass with a functioning barcode. a. The pass gathers the user's information from the VIPSUsers, Visitors, Subscribers, and Passes from the VIPS Database. b. The visitor trip identification number is also grabbed from the VIPS Database and is transfered into a barcode via the PHP-Barcode 0.3pl1 tool kit. c. The pass is generated when the user information and barcode are turned into an image file with the GD library. 9. Email – The Email page is similar to the Pass Generation page (Section 3.1.1.8), with an extra option for sending the pass via email. a. If a faculty or staff member wishes to invite a visitor, they can fill out a special invitation form on the Pass Generation page. b. The pass is then emailed to an invited visitor's email address. c. The visitor then prints out the pass. 31 VIPS: Lab II – Prototype Product Specification 3.1.2 VIPS Engine The VIPS Engine's purpose is to ensure the VIPS system maintains an accurate internal representation of each garage’s available spaces and a history of each gate event. It does so by acting as an interface between the Garage Simulation and the VIPS Database, performing the parking space allocation and deallocation necessary to implement reservations, and updating the Garage Simulation's display board whenever a garage's status changes. The algorithms used to meet these responsibilities are depicted in Figure 2. Figure 8. VIPS Engine Algorithms 32 VIPS: Lab II – Prototype Product Specification As the interface between the Garage Simulation and the VIPS Database, the VIPS Engine is required to: 1. Monitor messages sent from the Garage Simulation to the VIPS Engine. These messages will be either sensor data from an RFID sensor or barcode scanner, or a command from the VIPS Test Harness initiating start- or end-of-day algorithms. 2. Extract identifying information from the message, formatted as specified in Table 2, to include: 3. Garage identification number 4. Gate identification number 5. Message type 6. The sensor's data 7. If the message is from an RFID sensor or a barcode scanner, the VIPS Engine calls the appropriate VIPS Database procedure with the parameters extracted from the message. The VIPS Database procedure returns a value representing the validity of the user and the new status of the garage. 8. If valid, the VIPS Engine will send data to the VIPS Garage Simulation, formatted as specified in Table 2, instructing the appropriate gate to open and updating the display board with the new garage status. The VIPS Engine then returns to its waiting state. 9. If not, the VIPS Engine will send data to the VIPS Garage Simulation, formatted as specified in Table 2, instructing the appropriate gate to reject the user. The VIPS Engine then returns to its waiting state. 33 VIPS: Lab II – Prototype Product Specification Reservations require the VIPS Engine to respond to time-based events in addition to sensor events from the VIPS Garage Simulation. If a user makes a reservation the same day they intend to use it, the VIPS Website can make the necessary allocation in the VIPS Database. However, reservations made for a future date must be handled by the VIPS Engine at a predefined start-of-day time. A similar situation occurs at the end-of-day time; since reserved spaces are deallocated when the visitor leaves, any visitor who does not show up will not use their space. To manage these cases, the real world product must run reserved space allocation and deallocation algorithms at a predefined start- and end-of-day time respectively. For the purposes of the prototype, these algorithms will be initiated by a command from the VIPS Admin Screen/Test Harness. The VIPS Engine will implement 10.The start-of-day algorithm, as shown in Figure 3. Figure 9. Start-of-Day Algorithm 11.The end-of-day algorithm, as shown in Figure 4. 34 VIPS: Lab II – Prototype Product Specification Figure 10. End-of-Day Algorithm For the most part, the VIPS Engine will be the component that registers changes to the garages' status and whenever such an event occurs, it will signal the appropriate Garage Simulation display board to update its display with the new number of available spaces (the garage’s status). However, because the VIPS Website can make reservations on behalf of a visitor, it is possible for the VIPS Engine to assume an incorrect status. To prevent an inaccurate display board, the VIPS Engine must 12.Query the VIPS Database table ‘GarageCount’ to determine the current number of available spaces in all garages once every two seconds, and message the VIPS Garage Simulation to update any garage’s display board that is not accurate. 3.1.3 VIPS Database The VIPS Database is the central point in the VIPS parking management system. It will be housing data for both the VIPS Engine and the VIPS Website. It will also hold configuration information for the purpose of the demonstration. The VIPS Database tables are shown in Figure 5. 35 VIPS: Lab II – Prototype Product Specification Figure 11. VIPS Database Tables The VIPS Database will contain several stored procedures that will speed up processing of requests from the VIPS Engine by reducing TCP/IP traffic. These functions will include: 1. Password check procedure – used when logging into the VIPS Website. It will accept or reject based on: a. An alphanumeric username 36 VIPS: Lab II – Prototype Product Specification b. A corresponding alphanumeric password, at least 8 characters Inputs: userID, password Output: Char (1 or 0) 2. Barcode check procedure – used when the VIPS Engine needs validation of a barcode. Once the procedure has determined if it will accept or reject, it must insert into the history table the gid, tstamp, gateID, code, usertype, and accepted (1 or 0). After the validity of the entry or exit has been determined, the procedure will call the update display board procedure and finally return 1 or 0, as well as the display board values. Figure 6 shows the procedure’s flow chart. [This space intentionally left blank] 37 VIPS: Lab II – Prototype Product Specification start Open cursors Valid := 0 Barcode found on today’s date? 1 Entrance gate? 0 Has entered? 1 1 Not Entered before? Not exited? 1 1 Changecount (v-1) Changecount (s+1) 0 Changcount succeed? 0 0 Valid := 1; Fetch garagecount values Insert into history END 38 VIPS: Lab II – Prototype Product Specification Figure 12. Barcode Procedure Flow Inputs: gid, gateID, barcode Output: Char (1 or 0), availfac, availvis, availstu 3. RFID check procedure – Similar to the barcode check, it will check the student/faculty table to determine if the entry or exit is valid. The procedure will then check if there are enough spaces available to accept entry and call the display board procedure. Finally, it will return 1 or 0, as well as the current values for the display board. Figure 7 shows the process flow of the procedure. [This space intentionally left blank] 39 VIPS: Lab II – Prototype Product Specification start Open cursors Found? 1 Student? 0 Entrance? 0 Changecount f+1 0 1 Entrance? 1 0 Changecount s+1 0 Insert history Changecount f-1 1 Changecount S -1 Changecount succeded? 1 Valid = 1 Insert history Fetch garagecount values END Figure 13. RFIDcheck Procedure Flow 40 VIPS: Lab II – Prototype Product Specification Input: RFID Output: Char (1 or 0), availfac, availstu, availvis 4. ChangeCount procedure – used to update the current count of a particular garage as necessary. It will receive the garage ID, the user type, and an integer value and use them to increment or decrement the appropriate counter. Figure 8 shows the process flow of the procedure. [This space intentionally left blank] 41 VIPS: Lab II – Prototype Product Specification start Open cursors Data < 0? 0 v? 1 v? 0 f? 0 s? 0 f? 0 s? 1 1 1 Availstu >= data? Availfac+data Valid = 1; Fetch garagecount values Availstu + data Valid = 1; Fetch garagecount values 00 1 0 1 1 1 Availstu-data Availvis + data Valid = 1; Fetch garagecount values Availvis >= abs(data)? Availfac >= abs (data)? Availstu >= abs (data)? 1 1 1 Availvis + data Valid = 1; Fetch garagecount values 0 Availfac + data; Valid = 1; Fetch garagecount values 0 0 Availstu + data Valid = 1; Fetch garagecount values END Figure 14. ChangeCount Procedure Flow Inputs: gid, usertype, integer Output: none 5. Scenario procedure – will update all necessary values in the VIPS Database to those specified in the given scenario. This procedure will update the VIPS Database by: 42 VIPS: Lab II – Prototype Product Specification a. Selecting randomly from a predefined list of visitors b. Inserting these visitors via the barcode or RFID procedure i. When adding to the garage, an entry gate will be specified ii. When removing, an exit gate will be specified. Inputs: gid, gateID, integer(number to be added/removed) Outputs: none 6. Add garage procedure – will add a new garage with preset information. Up to two garages will be available for the prototype. Inputs: gid Outputs: none 7. Remove garage procedure – will remove a given garage from the VIPS Database. A minimum of one garage must remain. Inputs: gid Outputs: none 8. Clear garage procedure – will be used to return the garage to an empty state. The procedure will check the history table to determine those visitors and subscribers who have not left a garage. For an indicated visitor or subscriber, the correct procedure is called to immediately register the visitor or subscribers exit. Figure 9 shows the procedure flow. 43 VIPS: Lab II – Prototype Product Specification start Open cursors Valid := 0; i := 0; Garage found? 1 i< notexitedcount 1 v? 0 RFIDcheck( Gate 2) 1 Barcodecheck( gate 2) 0 0 Fetch next row Valid := 1; END Figure 15. ClearGarage Procedure Flow 44 VIPS: Lab II – Prototype Product Specification 3.1.4 RFID Tags and Barcodes To help demonstrate the integration of the VIPS system with the customer's existing infrastructure and the correctness of the VIPS Website implementation, the VIPS Test Harness will use a barcode scanner to read newly created visitor passes. 1. Barcodes will be generated by the VIPS Website barcode generation algorithm and will represent a five digit number. Each barcode will be unique. 3.1.5 Garage Simulation The VIPS Garage Simulation will model two garages by simulating hardware, simulating incoming and outgoing vehicular traffic, and displaying the state of those components animatedly. The Garage Simulation must respond to commands from the Test Harness which are defined in this section. The Garage Simulation models hardware in the following manner: 1. The Garage Simulation will contain two garages. 2. A garage contains one display board, four gates, and a set of vehicles parked within. 3. Each gate has associated with it a barcode scanner, an RFID scanner, and a queue of vehicles. 4. Each gate may be either an entrance or an exit but not both. 5. When a barcode or RFID tag is scanned, the sensor sends a message to the VIPS Engine, formatted as defined in Table 2, containing its: 6. Garage identification number 45 VIPS: Lab II – Prototype Product Specification 7. Gate identification number 8. Message type 9. RFID tag or barcode value as appropriate 10. When the VIPS Engine sends a message to a garage’s display board, the display board will change to reflect the new status contained in the message whose format is defined in Table 2. 11. When the VIPS Engine sends a message to one of a garage’s gates, the gate will respond by opening or rejecting depending on the message whose format is defined in Table 2. 12. Rate of traffic flow is controlled by the parameters set by the Test Harness. 13. Based on the rate of traffic flow, simulated vehicles representing users that exist in the VIPS Database are randomly queued at entrance and exit gates. 14. The state of the model, to include the garages, each garage's display board, each gate's open/reject status, and the queue of vehicles waiting at entrance gates will be displayed animatedly. The Garage Simulation must respond to commands from the Test Harness in order to demonstrate prototype functionality. These commands are: 15. Pause – Toggles the paused state of the Garage Simulation. 16. If the Garage Simulation is currently active, it will: 17. Suspend gates from processing vehicles from their queues 46 VIPS: Lab II – Prototype Product Specification 18. Suspend vehicles from entering queues for gates 19. If the Garage Simulation is currently suspended, it will: 20. Resume gates processing vehicles from their queues 21. Resume vehicles entering queues for gates 22. Set rate of incoming traffic – Sets the rate at which vehicles enter the entrance gate queues in vehicles per minute. 23. Set rate of outgoing traffic – Sets the rate at which vehicles enter the exit gate queues in vehicles per minute. 24. Start-of-day Algorithm – Allocates the reserved spaces for the current date. 25. End-of-day Algorithm – Deallocates the unused reserved spaces for the current date. [This space intentionally left blank] [Byte 0] This specifies the garage number to or from which the messages is traveling. Garage ID 47 VIPS: Lab II – Prototype Product Specification [Byte 1] This specifies the gate number to or from which the message is traveling. If the Gate ID message is being sent to a display board, the Gate ID byte is irrelevant but still must be included. [Byte 2] This specifies the type of sensor from or to which the data is traveling. Message Type Type Value Prototype Command 0 RFID Sensor 1 Barcode Scanner 2 Gate 3 Display Board 4 [Variable Length] This is the message being sent from or to a sensor. Its meaning and length depend Data on Message Type. Message Type Length and Meaning RFID Sensor [32 bit Integer] representing the RFID tag value. Barcode Scanner [32 bit Integer] representing the barcode value. [Byte] representing “Open” or “Reject” commands. Command Value Open 0 Reject 1 Gate Display Board [Byte 3] representing available student spaces. 48 VIPS: Lab II – Prototype Product Specification [Byte 4] representing available faculty spaces. [Byte 5] representing available visitor spaces. [Byte] representing Test Harness Command Command Value Prototype Command Run Start-of-Day procedure 0 Run End-of-Day procedure 1 Table 3. Garage Simulation Message Format 3.1.6 Admin Screen/Test Harness The Administrative screen will be a function provided to parking services that will allow for manipulation of the VIPS Database. In the case of the prototype, the functionality of the admin screen will exceed that of the real world product admin screen, in order to properly demonstrate the product. The functionality of the admin screen will be: 1. A visitor screen – will allow creation and deletion of visitor accounts. It will also allow the modification of the following: a. Visitor name b. Username c. Password d. Visitor address e. Visitor license f. Option to generate a pass 2. A garage screen – will allow creation and deletion of garages. It will allow modification of the following: 49 VIPS: Lab II – Prototype Product Specification a. Garage name b. Address c. Capacity for students, faculty/staff, visitors, and total number of spaces d. Number of entrances and exits 3. A pass screen – will provide the following functionality: a. Allow searching of passes by date, user ID, or barcode b. Allow deletion of a given pass 4. Department screen – will allow Parking Services to create and delete departments and set the manager ID for each department. The Test Harness will provide additional functionality above that of the admin screen for the purposes of the demonstration. In addition to the functionality of the admin screen it will provide: 1. Full manipulation of the VIPS Database, including: a. Current date b. Number of available spaces in a garage c. Number of student, faculty, and visitors in a garage 2. Scenario management – the Test Harness will provide quick links to predefined scenarios for the demonstration. a. Case one – the garage is full for students, faculty and visitors b. Case two – the garage is full for students but not faculty or visitors c. Case three – the garage is full for faculty but not students or visitors 3. Entry and departure forms – the Test Harness will provide input boxes allowing manual entry of pass information, demonstrating what happens for a specific individual. 50 VIPS: Lab II – Prototype Product Specification 4. Garage Simulation – the Test Harness will have several options to change the configuration of the Garage Simulation, including: a. Entry rate b. Exit rate c. Add garage d. Remove garage 3.2 Performance Requirements Important components that have performance requirements are the VIPS Website, VIPS Database, VIPS Engine and the Garage Simulation. The VIPS prototype has performance requirements to help ensure that it can meet the demand that the real world product faces. Each requirement is important to achieve, so testing the prototype is important. 3.2.1 VIPS Website Since the VIPS Website is the main focal point for the customer, a good experience is necessary for repeat visitors. To appeal to the widest audience of visitors, performance requirements were created to insure that users running with the minimal specifications could have a smooth, quick and positive experience. The performance requirements for the VIPS Website are: 1. Pass size is less than 1 MB. 2. Barcode generation takes less than 7 seconds. 51 VIPS: Lab II – Prototype Product Specification 3.2.2 VIPS Database The VIPS Database will be the central point of information exchange for the implementation. Therefore it is necessary to provide an appropriate response time to ensure proper traffic flow. 1. Transactions will take no more than 2 seconds to complete. 3.2.3 VIPS Engine The VIPS Engine is the most likely bottleneck in the VIPS system because it acts as the interface between the Garage Simulation and the VIPS Database. Because it has the potential to wait on transactions from the VIPS Database, it is important to define how quickly it must perform them. 1. The VIPS Engine must process and respond to all messages from the Garage Simulation within three seconds. This includes: 2. Verifying the input via the VIPS Database procedure 3. Sending the appropriate signal to the VIPS Garage Simulation gate 4. Sending the appropriate signal to the VIPS Garage Simulation display board 5. The start-of-day and end-of-day garage space allocation and deallocation must start and complete within five seconds of issuing the command from the VIPS Admin Screen/Test Harness. 6. The VIPS Engine must query the VIPS Database's 'GarageCount' table and update any discrepancies no less than once every two seconds. 52 VIPS: Lab II – Prototype Product Specification 3.2.4 Garage Simulation The Garage Simulation has several specifications regarding the performance of its simulated hardware. The Garage Simulation must be able to 1. Model two garages, with one display board and four gates per garage 2. Each garage must be able to contain up to 50 vehicles. 3. Update display boards less than a second after receiving properly formatted input. 4. Finish opening gates within two seconds of receiving properly formatted “OPEN” command. 5. When combined with the performance requirements for the VIPS Engine and VIPS Database, total scan-to-open time should be within five seconds. 3.3 Assumptions and Constraints The VIPS prototype will have limitations and constraints. Due to this, VIPS Inc. has developed a list of assumptions, constraints, and dependencies. The development of the limitations, as shown in Table 3, is necessary to document any assumptions, constraints, and dependencies because these will affect the requirements and explain possible incompleteness of the prototype. For instance, VIPS Inc. will assume that the garages will be gated 24 hours a day. This assumption allows VIPS Inc. to focuses on the innovative functionality of the prototype rather than solving trivial issues. The development of a limitations table will allow VIPS Inc. to produce and test a viable prototype to show functionality as it will relate to the complete product. Table 3 contains a complete list of assumptions, constraints, and dependencies associated with the VIPS prototype. 53 VIPS: Lab II – Prototype Product Specification Conditions Type The parking environment will be Effect on Requirements Eliminate the need of tracking cars when gates Assumption gated 24 hours are open Prototype will only service Assumption Prototype will not deal with mass subscriptions visitor requests one at a time A computer will be in parking Will allow the system to use the same services services to facilitate last minute Assumption for advance and day of purchases requests Conditions Type Effect on Requirements A customer based database will not be created. A table in the VIPS database Assumption The customer database will be emulated as a will be used for the blacklist table in the VIPS Database. User passwords will be plain Prototype will not enforce an encryption Assumption text algorithm on the user passwords There will be enough spaces in Allows the visitor parking to be guaranteed the garage at the start of the day Assumption without the reallocating of subscription spaces, to allocate visitor spaces prior to the visitor capacity of the garage. Only one car at a time will pass This allows for the Garage Simulation to Assumption through the entrance or exit process the barcode/RFID reads one at a time VIPS will have access to Human Allows VIPS to develop the Faculty/ Staff Assumption Resource records tables in the VIPS Database. 54 VIPS: Lab II – Prototype Product Specification A CS department laptop is Dependency If it is not, a student laptop will be used available to run the application. The VIPS Engine is used to The prototype VIPS Database will fail if the Dependency process garage traffic VIPS Engine does not work. The VIPS Website is used to The prototype VIPS Database will fail if the Dependency process visitor requests VIPS Website does not work. The barcodes used by VIPS will Allows VIPS to ensure only one pass will be Constraint be unique for each visitor pass issued under any one barcode. Table 4. Assumptions, Dependencies, and Constraints on Prototype Requirements 3.4 Non-Functional Requirements Non-functional requirements characterize the performance of the prototype. They are elements that are present in the all aspects of the development of the prototype. The nonfunctional requirements do not impact the innovative features of the prototype but are needed for successful development. The non-functional requirements are security, maintainability, and reliability. 3.4.1 Security Security is very critical for the VIPS prototype. VIPS customers must be assured that their data will not be compromised. VIPS will ensure security through the use of access control. Access control is critical to make sure that the system will not be abused. Access control will be implemented through the use of username/password. The access control will be created according to functional requirement 3.1.X. It will not allow unauthorized users access to the 55 VIPS: Lab II – Prototype Product Specification system and grant authorized users the appropriate access. Security is of the upmost importance to VIPS Inc. and the appropriate measures will be taken to ensure data security. 3.4.2 Maintainability The two main things that need to be maintained are the VIPS software systems and the garage hardware. Once visitors are added to the system, their information is stored internally in the VIPS Database. The information is stored to allow the visitor access on the day they have registered for. The visitor data will also be maintained for future visits and to help develop historical trends. The VIPS Website must be maintained in order to allow the visitor to register. The VIPS Engine must also be maintained to ensure the garage will allow authorized users to enter and exit the garages. Hardware, including the laptop and the barcode scanner will be inspected by VIPS Inc. This inspection will include a visual check as well as operational tests. It is important for VIPS Inc. to maintain all hardware and software components in order to ensure an effective prototype development and demonstration. 3.4.3 Reliability In order for the VIPS prototype to be successful, it must meet a level of reliability. The barcode reader must be able to scan passes with at least 95% reliability, from a maximum distance of 6 inches. The prototype software must also work correctly with no critical errors and be able to appropriately interface with all other components. The VIPS Engine should be free of any conditions that could cause the software to freeze. The VIPS Database will be able store and query data whenever necessary, with little to no lag time. The VIPS Website must be able to handle multiple access requests without degradation of the system. The VIPS Website must also be able to route visitor requests to the VIPS Database. Reliability is a very important aspect to ensure a successful development of the VIPS prototype. 56 VIPS: Lab II – Prototype Product Specification 57