Project implementation

                    The project is implemented in Perl.  The company provides the information regarding the database, the server on which the database is running the host name, and also the port address.  The back end databases are implemented in Oracle & MySQL.  To demonstrate a complete distributed environment we are running the databases on 2 different servers.  The MySQL database is running on bert.wpi.edu (server) and the Oracle one is running on wpi.wpi.edu (server).

                    The user is projected to be an automobile spare part customer.  The user can be either a buyer or simply search the web site for details.  Through our web site the user is allowed to choose between a number of spare part categories (such as suspension system, braking system, etc.).  Upon selecting a category a list of spare parts that are a subset of this category are displayed alongside its details for each company that stocks them.  The user then selects the company he wishes to purchase the spare parts from according to the price calculated as per the customerstatus regarding that company.  This information is stored in the database.  If the user buyhe gets a discount of 15% on the part.  The employees and the                    shareholders of the company also get 5% discount on their purchases.

                    The record of the customerInformation regarding the purchase is then given to the company from which the user has
                    purchased the part.  As a transaction is recorded the mailing system sends mail to the company informing them of the                     purchase.
 


In our project the components are:

Client
     This is our client who browses using his favorite browser.  The server at our site monitors continually for the requests that it receives from the client

The Apache server

    The server runs at port 8081. Perl scripts can be executed on the server side. This configuration included the use of some 3'rd party tools like mod_perl, which do not come bundled with apache. The server starts up running 5 instances. The server is optimized for performance of the Perl scripts, which run at the server side. The configuration file is here.  An interesting feature of our configuration is that the oracle connections are cached to improve the performance of the Perl scripts, which access the databases.  The server checks the authority of the client to visit the contents of the site.  Sensitive portion of the web site is password protected.  The .htaccess files are configured to allow some registered users to see the contents of the web site like the RFP
Server location : ccc.wpi.edu

Perl scripts and switching elements

The Perl script runs locally and is called by the apache server.  The DBI module, which is bundles with Perl, is used for multiple database connectivity. A long sequence of events occurs when the Perl script is executed.

The typical order in which this happens is:
1. Load DBI driver
2. Connect to database which implicitly loads the required DBD
3. Open a cursor containing SQL statement.
4. Fetch the results
5. Close the cursor
6. Close the database connection
7. Exit.

Local server

Server 1: bert.wpi.edu
Server 2: wpi.wpi.edu

Information sources

IS 1:  Oracle
IS 2:  MySQL