E-COMMERCE PURCHASING SYSTEM
Project Proposal Submitted to the
Department of Computer and Information Science
New Jersey Institute of technology
In Partial Fulfillment of
Master of Science
by
Feng Peng, Bo Wei, Wenjia Hou
Project Advisor: Professor James McHugh
APPROVALS PAGE
Agree to Advise: ___________________________________
(Signature of Faculty Advisor)
Date Submitted: ___________________________________
Date Approved: ___________________________________
Approved by: ____________________________________
(Signature of Faculty Advisor)
Table of Contents*
1. Introduction and Background*
1.1 Project Statement*
1.2 Previous Work and Background*
1.3 Objective*
2. Project Description*
2.1 System Specification*
2.1.1 Hardware Configuration*
2.1.2 Actual Development System*
2.2. Design Specification*
2.2.1 System Module Chart*
2.2.3 Implementation Languages*
2.3. Implementation Plan*
2.3.1 Deliverable Items*
2.3.2 Milestone Descriptions and Completion Criteria*
2.3.4 Schedule of Milestone Completion*
3. Personal Project Items Implementation*
3.1 Building infrastructure*
3.1.1 Problem Statement*
3.1.2 Software Overview*
3.1.2.1 Linux*
3.1.2.2 Apache*
3.1.2.3 Oracle For Linux*
3.1.3 Firewall Definition & Implementation*
3.1.3.1 Firewall Definition*
3.1.3.2 Firewall architecture*
3.2 System Specification*
3.2.1 System 3-Tier Architecture*
3.3 Design Specification*
3.3.1 System Database design*
3.4 Building Vendor Module*
3.5 Building Shopping Cart*
3.6 Building Catalog Module*
3.7 Maintaining Context (Cookie)*
4. References*
5. Qualifications*
5.1 Feng Pengs Qualifications*
5.1.1 Personal Background*
5.1.2 Courses taken*
5.2 Bo Weis Qualifications*
5.2.1 Personal Background*
5.2.2 Courses taken*
5.2.3 Program Written*
5.2.4 Investigations*
5.2.5 Projects*
5.3 Wenjia Hous Qualifications*
5.3.1 Personal Background*
5.3.2 Courses taken*
5.3.3 Program Written*
5.3.4 Investigations*
5.3.5 Projects*
6. Grading Criteria*
Appendix*
1. Introduction and Background
The objective of this proposal is to successfully develop an on-line e-commerce site for DEMO purpose. It is to compliment the business structure, and provide a new channel for selling, advertising and marketing products. By using this new technology, it will allow user to improve sales and service by reach a large number of customers from all over the world in real time.
There is a very important reason for moving towards doing business over the Internet. The increased number of people on the web has given businesses a new way of reaching customers, and enhances profit. A recent survey by Nielsen Media Research revealed that 78 million people used the World Wide Web in the first half of 1998, and 20 million of them made purchases online. Another benefit that e-commerce offers to business is a reduced amount of overhead cost because it is not spending as much money on buildings and customer service as compared to a typical traditional business.
1.2 Previous Work and Background
The Demo site has been already discussed thoroughly how to use an Oracle based Warehouse Management System (WMS) to process this project. This original idea based on the legacy Business System to handle daily business, mainly through traditional phone and fax system. Such idea works well in earlier days, however, it need to be move forward now. Thus an online solution becomes the most cost saving way of the whole strategy.
The successful of the project is measured as following:

A typical system is shown above. A front firewall isolates the Internet with the web server. This is the first line of protection that protects any unnecessary network traffic (e.g. incoming telnet, IP spoofing, etc.). After the Firewall 1, there is the actual web server that serves http requests. The customer database, catalog and pricing information is not reside on the web server, in case the Firewall 1 and the web server are compromised, no business information will be lost. Between the company Intranet, the actual database and the web server, there is another firewall (Firewall 2). This firewall is the final protection for any attack. Database query is only allowed from the web server to the database and all other traffic is only permitted from internal network towards the outside. By using Advanced Queuing technology from Oracle™, no direct database access (e.g. SQL query, update, and delete) is allowed to the database. The application on the database will decide what service it will provide based on the request. The result will be forwarded back to the web server using the same Advanced Queuing technology.
The Intranet is another web-enabled interface provided for user service and internal query. Along with the Business System and the Warehouse Management System, it provides DEMO the capability to process orders real time online.
2.1.2 Actual Development System
Due to the nature of the project is to develop the web site, not to implement the network. The simplified the case eliminates the firewalls and consolidates the web server and the database server into one server. The system configuration is:
Two database instances will be configured on one machine, one to simulate the web server database and the other simulates the customer database.

2.2.3 Implementation Languages
Html and Java are the main language we will use to implement the project since it is object-oriented and has built-in support for network, which is essential for collaborative system. And also we may use C, C++, and PERL to implement CGI applications. Also we will use ASP.
The e-Commerce Project is segmented into four distinct phases. This section provides a summary of project stages and deliverables for this engagement. These four phases are:
Phase I: Building Infrastructure
Design, setup and test the infrastructure of the e-Commerce Site. This gives user an entry point towards the e-Commerce world. The infrastructure includes company wide email access, and optionally web access. Web site infrastructure build: hardware, software and domain name.
Phase II: Sharing Information with Customers
This phase is to put the product catalog online. It is to build an online presence and let customers get used to the new technology. This is also a proof of concept phase while the new sales channel is being built up.
Phase III: Order Processing:
We will setup secured network channel for customers order products online. It includes a customer databases for customer to place orders and view their order information. This allows orders directly transferred into the Warehouse Management System, give company an opportunity to provide round the clock shipping service.
Phase IV: Customer Service Improvement:
Based on previous phases and results. We will fully test all the functions and find out the systems performance and efficiency.
2.3.2 Milestone Descriptions and Completion Criteria
1. Building online product catalog
Traditional catalog or brochure is always a costly advertising method. It takes time to prepare, compose, print and ship. On the other hand, online catalog takes no time to print and mail, and it is always up to date. Products in the catalog can also carry up to date price tags so what you see is what customer are going to pay.
2. Building online order processing
Taking orders online is a challenge. Credit card information is a sensitive private information. How to develop a secured communication channel to accept credit card information is the key to the success. Fortunately, the technology is already existing. It is called 'SSL' (Secured Socket Layer) which is supported by both Microsoft Internet Explorer and Netscape Communicator, who occupy more than 90% of the browser market. By using SSL, we can now accept credit card information over the internet and process orders in real time.
3. Building online customer database
Customers want to know history of their previous orders and status of their current orders. A customer database can not only provide them those information, but also be able to give individual customer special discount based on their order volume. It gives our sales a very competitive advantage over fixed price strategy. And customers will access their own catalog, price and order status in real time online.
4. Establishing new customer service channel
Customer service usually involved inquires about product, price and order status. By putting customer information online, the overhead is reduced and so does the cost. By using emails, faxes and database, information is shared; thus customer service quality and response time is greatly improved.
2.3.4 Schedule of Milestone Completion
|
|
|
|
Building Infrastructure
|
1/17/20002/17/2000 By Feng Peng
|
|
Database Configuration and Research
|
1/17/20002/17/2000 By Wenjia Hou
|
|
Research Modules Relationship
|
1/17/20002/17/2000 By Bo Wei
|
|
Sharing Information with Customers
|
2/18/20003/17/2000 By Bo Wei
|
|
Build Catalog module
|
2/18/20003/17/2000 By Wenjia Hou
|
|
Build Customer Module
|
3/18/20004/5/2000 By Bo Wei
|
|
Build Vendor Module
|
2/18/20003/17/2000 By Feng Peng
|
|
Build Product Module
|
3/18/20004/5/2000 By Wenjia Hou
|
|
Build Shopping Carts
|
3/18/20004/5/2000 By Feng Peng
|
|
Test and Turn over to Production
|
4/6/20004/20/2000 By Team
|
|
Final Submission
|
4/25/2000 By Team
|
* This project is a complicated project, so there are three team members: Bo Wei, Wenjia Hou, Feng Peng
3.Personal Project Items Implementation
Since this project is implemented for demo purpose, the developing tools must be free available. Due to
the nature of this project is to develop the web site, not to implement the network. The simplified the case
eliminates the firewall and consolidates the web server and the database server into one server. The
system configuration is:
Linux is an operating system that can be downloaded free and "belongs" to an entire community of
developers, not one corporate entity.
Linux is an extremely powerful and reliable operating system that gives users a certain flexibility not
found within other systems. Aside from the fact that Linux can be downloaded and upgraded for free (and
therefore becomes attractive to small businesses and individuals on a small budget), it can also be altered
by the user to fix bugs or meet specific operating needs.
Linux is the fastest-growing server-side operating system today, and it's making inroads on the desktop.
Unlike other proprietary operating systems, Linux can be installed and upgraded for free. This makes it
extremely attractive to those businesses that don't have a high budget but still want an excellent operating
system. But cost is not the main factor. Many companies, large and small, prefer Linux simply because of
its reliability: Linux can run for months, even years, without having to be rebooted. And because the source
code is open, bugs can be fixed quickly and easily without having to wait for proprietary vendors to issue
fixes on a schedule that suits them more than their customers.
Several major corporations, like Burlington Coat Factory, IBM, Netscape, Oracle and Sun have all seen
the benefits of Linux. Other companies that use Linux in their day-to-day operations include Sony
Electronics Inc., Sallie Mae Inc., Mercedes-Benz and several educational and research institutions around
the world.
Apache is included in the Linux Red Hat. Apache exists to provide a robust and commercial-grade
reference implementation of the HTTP protocol. It remains a platform upon which individuals and
institutions can build reliable systems, both for experimental purposes and for mission-critical purposes.
Apache has been shown to be substantially faster than many other free servers. Although certain
commercial servers have claimed to surpass Apache's speed (it has not been demonstrated that any of
these "benchmarks" are a good way of measuring WWW server speed at any rate), it is better to have a
mostly-fast free server than an extremely-fast server that costs thousands of dollars. Apache is run on sites
that get millions of hits per day, and they have experienced no performance difficulties
In direct response to customer demand, Oracle has ported Oracle8 and Oracle Applications to the Linux
operating environment. Linux is an open UNIX-like operating system that is available for free download
from the Internet, and is the fastest growing UNIX platform in the enterprise environment, with an
estimated 7 million users.
The availability of Oracle8 and Oracle Applications on Linux enable current Linux users to deploy high-performance enterprise-class applications at the lowest
possible cost. In addition, users now have an alternative to Microsoft Windows NT, and will now be able to reap the scalability and flexibility benefits of
Oracle8 and Oracle Applications in Linux's stable, open environment. Linux provides an excellent low-cost alternative operating system on the Intel platform.
By providing a port to Linux, Oracle has lowered the overall costs of ownership significantly for enterprise systems: The port provides an alternative platform
for companies that want an Internet-based, low-cost point of entry for Web-enabling their business.

3.1.3 Firewall Definition & Implementation
A firewall is a structure intended to keep a fire from spreading. In a building a firewall is a brick wall completely dividing sections of the building. In a car a firewall is the metal wall separating the engine and passenger compartments.
There are two types of firewalls.
There are lots of ways to structure network to protect systems using a firewall. If system have a dedicated connections to the Internet through a router, we could plug the router directly into the firewall system. Or, we could go through a hub to provide for full access servers outside the firewall.

We may be using a dialup service like an ISDN line. In this case we might use a third network card to provide a filtered DMZ. This gives us full control over our Internet services and still separates them from our regular network.

If we are not providing Internet services ourself but we do want to monitor where our users are going, we will want to use a proxy server. This can be integrated with the firewall.

We can put the proxy server on our LAN as will. In this case the firewall should have rules to only allow the proxy server to connect to the Internet for the services it is providing. This way the users can get to the Internet only through the proxy.
By using a round-robin DNS techniques or using load-balancing application servers, we can create a 100% uptime service.
3.2.1 System 3-Tier Architecture

A typical system architecture is shown above.
1. Data Partitioning
The data, such as product information, customer information will be accessed frequently due to a large client base, or the server may be required to service time-consuming access requests. For performance reasons, we partition the data. Because partitioning the data will improve the response time.
2. Encoding/Decoding Data
Encoding data is compressing and decompressing information that can be stored in tabular form. For example: We can use two-character abbreviations for a state (decoded to the full state name). For universal function within the application, the database will be built consisting of a series of tables. Each table would represent a data type and contain all of the encoded and corresponding decoded values for that data type. If all data on the database were carried as full information, the databases would out of necessity be much larger. To reduce database size, we will fall a large amount of application-related data into the encode/decode scheme.
3. Data Encryption/Decryption
The customer information, such as credit card number, is private and sensitive. Such information can be encrypted using encryption algorithms. With this technology, data is made unreadable as it is being stored on the database. The decryption algorithms can reinterpret the data in readable form. The encryption and decryption routines are stored on the server and the appropriate security authorization for access protects against invoking those routines on an unauthorized basis.
4. Meta Data
We will use Relational Data Management Systems concept to design the database.
5. Derived Data Considerations
Derived data is calculated or developed based on a number of primitive data elements or an algorithm applied to one or more primitive data elements. For example, each customer has different discount rate (the primitive data), and the discount (the derived data) can be calculated from the discount rate. The data is derived by the program on the web server. This can reduce the database server load.
6 Indexing Tables
For heavy access table, we will use index to speed access.
7. Summary
All the database designs are based on ORACLE RDBMS. The objective is to acquire higher performance, faster processing and less server load.
Vender module stores the information about venders, which includes venders name, location,
products information, account, etc.
These information will be linked with product module.
With shopping carts, customers can easily organize their purchasing. The product number, quantity of
each product, total price will be displayed clearly. Customers can choose to leave, continue, recalculate.
Once customers have chosen to continue shopping, the shopping carts information will be temporally
kept in the database. This requires customers browser support cookies. The newest browser such as
Microsoft Internet Explorer 5.0, Netscape Communicator 4.7 will support cookies.

CGI (Common Gateway Interface), Java will be used to implement the shopping cart. The total price, single price, quantity will be calculated in server side.
Catalog contains a number of categories, and within each category, a dozen or so items. We will set up a catalog table, which contains a single record describing every item we sell. It is this module that we use to put the product catalog online: from the browser, the user can view a list of items in a particular category, choose the items and put them in the shopping cart.
3.7 Maintaining Context (Cookie)
The key issue in on-line shopping is how to maintain context. Say a customer is browsing through the catalog of our store. He chooses a monitor. The browser displays a single HTML page describing this monitor. It fits his needs, so he adds it to his "shopping cart". He also wants to buy a printer, so he hyperlink over to the list of printers. The browser displays a new page that has a list of printers. Therefore, there are two bits of information that have to be saved when the customer hyperlink away from the monitor page: who he is, and what he has bought. We will use cookies to deal with this problem. Cookies are name/value pairs that a CGI program can store on the users machine and attached to our domain. By using cookies we can get a linkage between the user and the set of items the user has selected.
[1] "The Internet & World Wide Web" Angus J. Kennedy, RoughGuides, 1998.
[2] Extranets - Building the Business to Business WebDeborah L. Bayles, Prentice Hall, (1998).
[3] Whatis Home Page, "http://www.whatis.com/", whatis® is a knowledge exploration tool about information technology
[4] The Apache Software Foundation Homepage: http://www.apache.org/
[5] Tim Ritchey. Programming with Java!, New Riders Publishing, Indianapolis, Indiana, USA, (1995).
[6] The definitive online destination for the open source community: http://www.redhat.com
[7] Oracle Corporation: http://www.oracle.com
[8] Robert Ziegler: Linux Firewalls, New Riders Publishing, (1999).
[9] Mohammed, J. Kabir: Apache Server Bible, IDG Books Worldwide, (1998).
[10] Mohammed, J. Kabir: Apache Server : Administrators Handbook, IDG Books Worldwide, (1999).
[11] Craig Patchett, Matthew Wright, Peter Holfelder: The Cgi/Perl Cookbook, John Wiley &Sons, (1997)
[12] David Pitts, Bill Ball: Red Hat Linux 6 Unleashed, Sams, (1999)
5.1 Feng Pengs Qualifications
Feng Pengs Background
Shanghai JiaoTong University, Shanghai, China
Bachelors in Automation Control, Jul 1995
1997-1999 Computer Information System Dept, NJIT
07/95 - 07/97 Wuxi Telecom
SKILLS
MS Office, UNIX, Pascal, C, C++, Jave, HTML, SQL, ASP, TCP/IP, Oracle, Windows NT, Network and Web knowledge.
CIS665 ALGORITHMIC GRAPH THEORY
CIS630 OPERATING SYSTEM DESIGN
CIS786 ADVANCED JAVA PROGRAMMING
CIS632 ADVANCED DATABASE IMPLEMENTATION
CIS631 DATA MGT SYSTEMS DESIGN
CIS604 CLIENT AND SERVER
CIS601 OBJECT-ORIENT PROG-C++
CIS635 COMP PROGRAMMING LANG
CIS656 INTRNET&HIGHER
CIS650 COMPUTER ARCHITECTURE
CIS610 DATA STRUCTURE & ALG
Bo Weis Background
Shanghai JiaoTong University, Shanghai, China
Bachelors in Mechanical Engineering, Jul 1991
1998-1999 Computer Information System Dept, NJIT
12/94-Current Nortel Networks IT Engineer Information system Division
07/91 - 01/94 Beijing Milling Machine Institute IT Specialist Helpdesk and Database Support
SKILLS
PC, Mac, MS Word/Excel/Power Point, Builder/Maker, UNIX, Pascal, C, C++, Jave, HTML
TCP/IP, Oracle, Windows NT, network and Web knowledge.
CIS631-852 DATA MGT SYSTEMS DESIGN
CIS604-853 CLIENT AND SERVER
CIS332-450 OPERATING SYSTEM
CIS333-101 UNIX SYSTEM
CIS652-852 NETWORK-ARCH & PROTOCOLS
CIS601-850 OBJECT-ORIENT PROG-C++
CIS251-452 COMPUTER ORGANIZATION
CIS603-850 ADV PROG ENVIRNM & TOOLS
CIS635-102 COMP PROGRAMMING LANG
CIS656-852 INTRNET&HIGHER
CIS - 673-850 SOFTWARE DES & PROD METH
CIS - 650-103 COMPUTER ARCHITECTURE
CIS - 610-103 DATA STRUCTURE & ALG
I have written various Windows applications as well as X-Window applications running on SUN workstations during my previous work. For example, I had developed a oracle processing system running both on Windows and UNIX system, a Registration and Invoice system using Visual Basic/VBA and Microsoft Access.
We have been involved this Demo project for one years. As a team we cooperate very well.
In Company I have written a program, which can simulate the whole second storage system including the hard disk, disk controller, disk buffer, and the buffer management system. In CIS631 I developed a personal investment system which can allow user to query information about mutual funds and perform on-line trading. The back-end system is Oracle 8 and the front-end GUI part is implemented using Motif (X-Window) on Solaris (Sun Workstation). Querying to the Oracle database is implemented using SQL language embedded in Pro*C.
5.3 Wenjia Hous Qualifications
09/90~07/94 Beijing Polytechnic University, Beijing, China
Bachelors in Computer Science, Jul 1994
07/94~02/99 Beijing XiDan Friendship Group. Specialist Information System Division
09/99~Current Computer Information System Dept, NJIT
Microsoft Certificate Professional (MCP)
Microsoft Certificate System Engineer (MCSE)
ORACLE , UNIX, TCP/IP, Windows NT, Network and Web knowledge, Java, C/C++, HTML, MS Word/Excel/PowerPoint
CIS631-101 DATA MGT SYSTEMS DESIGN
CIS604-101 CLIENT AND SERVER COMPUTING
CIS601-851 OBJECT-ORIENT PROG-C++
CIS656-105 Internetworking and Higher Layer Protocols
CIS673-851 SOFTWARE DES & PROD METH
I have lots of programming experiences provided by ORACLE, such as SQL*Plus, PL/SQL, Pro*C, SQL/Forms and Developer 2000 running both on UNIX and Windows system. Also I used Delphi develop a Human Resource System based on ORACLE.
We have been involved this Demo project for one years. As a team we cooperate very well.
In my previous work I participated in several explore tasks on MIS(Management of Information System) in business. Im very familiar with all the steps to develop a system: Problem definition, Analysis, Design, Implementation and Maintenance. Now in CIS604 Im participating in a project. The goal of this project is to develop a new distributed target architecture to meet XYZ Corporation ( a world-wide distributor of computer products and peripherals )s long term needs. Well use 3-tier and 2-tier client-server architecture and implement it by using Java.
| Item | Weight (%) | Mark |
| Project Proposal |
10
|
|
| Refine Model |
10
|
|
| Webpage Setup |
20
|
|
| Write application |
10
|
|
| Demonstration |
10
|
|
| Source Code/Final System |
20
|
|
| Final Documentation |
20
|
|
|
Total:
|
100
|
|
|
Grade:
|
||
Ecommerce : The use of internet to connect business partners together to create, manage and extend commercial relationship-any time, anyplace.
Linux: Linux is an operating system that can be downloaded free and "belongs" to an entire community of developers, not one corporate entity. In other words, anyone from professional software developers to hobbyist computer hackers can access and make changes to the Linux kernel--all the information about Linux is open and available to everyone.
Oralce 8: The latest version of Oracle Database
Java: A new object-oriented programming language that is platform independent.
SQL: (Structured Query Language) is a standard interactive and programming language for getting information from and updating a database. Although SQL is both an ANSI and an ISO standard, many database products support SQL with proprietary extensions to the standard language. Queries take the form of a command language that lets you select, insert, update, find out the location of data, and so forth. There is also a programming interface.
Active Server Page: An Active Server Page (ASP) is an HTML page that includes one or more scripts (small embedded programs) that are processed on the Web server before the page is sent to the user. An ASP is somewhat similar to a server-side include or a common gateway interface (CGI) application in that all involve programs that run on the server, usually tailoring a page for the user. Typically, the script in the Web page at the server uses input received as the result of the user's request for the page to access data from a database and then builds or customizes the page on the fly before sending it to the requestor.
Apache: is a freely available Web server that is distributed under an "open source" license. Version 1.3 runs on most UNIX-based operating systems (such as Linux. Solaris, Digital UNIX, and AIX), on other UNIX/POSIX-derived systems (such as Rhapsody, BeOS, and BS2000/OSD), on AmigaOS, and on Windows NT/95/98. According to the Netcraft (www.netcraft.com) web server survey in September 1998, more than 50% of all Internet servers were running Apache. Although Windows-based systems with Web servers from Microsoft, Netscape, and other companies are probably gaining in terms of numbers, Apache is likely to remain popular in enterprises and server locations (such as universities) where UNIX-based systems are prevalent.
CGI: The Common Gateway Interface (CGI) is a standard for interfacing external applications with information servers, such as HTTP or Web servers. A plain HTML document that the Web daemon retrieves is Static, which means it exists in a constant state: a text file that doesn't change. A CGI program, on the other hand, is executed in real-time, so that it can output dynamic information.
Cookie: A cookie is information that a Web site puts on your hard disk so that it can remember something about you at a later time. (More technically, it is information for future use that is stored by the server on the client side of a client/server communication.) Typically, a cookie records your preferences when using a particular site. Using the Web's Hypertext Transfer Protocol (HTTP), each request for a Web page is independent of all other requests. For this reason, the Web page server has no memory of what pages it has sent to a user previously or anything about your previous visits. A cookie is a mechanism that allows the server to store its own information about a user on the user's own computer. You can view the cookies that have been stored on your hard disk (although the content stored in each cookie may not make much sense to you). The location of the cookies depends on the browser. Internet Explorer stores each cookie as a separate file under a Windows subdirectory. Netscape stores all cookies in a single cookies.txt fle. Opera stores them in a single cookies.dat file.
Cookies are commonly used to rotate the banner ads that a site sends so that it doesn't keep sending the same ad as it sends you a succession of requested pages. They can also be used to customize pages for you based on your browser type or other information you may have provided the Web site. Web users must agree to let cookies be saved for them, but, in general, it helps Web sites to serve users better.