CS 519: Engineering Computer Network
Date: September 29, 1998
Group: 1
Team: 9 (Unspecified applications)
Team members: Albert
Chen, Zheng
Diao
(Fighting at CSUGLAB. Left: Zheng, right: Albert)
Brief Description:
Project Moonlight
Internet has revolutionized the way people purchase things
because it combines sights, sounds and information along with products
in a way that was never possible before. It also allows people to order
merchandises from all over the world. However with the insecure nature
of the Internet, many users are unwilling to order online with a credit
card, on the other hand many people today has confidence in the security
of telephone network, and often order merchandises via phone. However with
the phone network the user is devoid of integration of sights, sounds,
information and products. With this application we will try to bring together
the ease and comfort of Internet shopping with the security of the phone
network.
Pseudocode:
- User connects to the web server and selects products and services.
- Web server calculates the cost and assigns an order number.
- Web Server asks for user telephone number and a time to call.
- The Moonlight Server calls the user via phone-internet gateway at the
user asked time.
- Retry if phone is busy.
- Cancel order if no one answers
- Need to interface with Signaling Team to make the call and process
the tone from the user.
- Need Data Exchange Team to send/receive voice packet
- The Moonlight Server announces the origin of call and asks for the
order number.
- Retry if order number is invalid.
- If no answer within a certain amount of time, terminate phone connection
and cancel order.
- The Moonlight Server acknowledges the order number and asks for credit
card number.
- Credit card type.
- Credit card number.
- Credit card expiration date.
- The Moonlight Server acknowledges the credit card number and asks for
confirmation.
- Repeat credit card information to user.
- The Moonlight Server contacts the credit card validation server. (Optional)
- If credit card info is invalid, notify the user of this fact and ask
user retry.
- The Moonlight Server acknowledges the successful transaction from validation
server.
- Save the order information to disk file.
- Send successful transaction message (voice) to user.
- The Moonlight Server terminates phone connection with user.
- The Moonlight Server sends order summary to user via email. (Optional)
The Moonlight server will be implemented in Java and running on a UNIX
machine.
In summary, it will have these 3 primary job functions:
1. Get input from the user on the Internet (it will listen from an applet
running on the web server).
2. Communicate with the user through the Phone-Internet Gateway.
3. Store order information to disk and send user email confirmation.
Class inputGetter:
{ //this is an applet running on the webpage to get the user input
- SetupConnection (); //connect to the transaction server
- CloseConnection ();
- GetInput ();
- SendData ();
}
Class Moonlight:
{
- Constructor();
- ListenHTTPConnection(); //Listen
from the java applet running on the web
- TearDownHTTPConnection();
- ParseFormdata(); //user input from
the web page
- SetupGatewayConnection(phone#,
T); //T is the time to call
- TearDownGatewayConnection();
- SendtoGateway(msg); //send message
to the Gateway
- ReadFromGateway(); //read message
from the Gateway
- ProcessOrder(); //save order to
disk, etc.
- SendConfirmation(); //send a email
confirmation to the user
}
Interface that we will use:
- We need to establish a connection with the telephone number that we
provided and return a descriptor id.
- We need to be able to understand the phone-tones(0-9, #, *, hang up,
etc)
Data Exchange:
- We need to send the user voice packet
Schedule:
Week
|
Jobs
|
*
|
*
|
% Done of total
|
1
Oct 1 – 7
|
1. Interact with other groups
|
2. Setup the program's overall structure
|
*
|
10
|
2
Oct 8- 14
|
1. Interact with other groups
|
2. Setup program's overall structure
|
*
|
20
|
3
Oct 15- 21
|
1. Setup connection (signaling)
|
2. Close connection (signaling)
|
*
|
30
|
4
Oct 22 – 28
|
1. Java applet
|
2. Parse applet Data
|
3. Gateway stuffs
|
35
|
5
Oct 29 – Nov 4
|
1. Send message from user (data)
|
2. Java applet
|
3. Parse applet data
|
45
|
6
Nov 5 – 11
|
1. Send message to user (data)
|
2. Read message from User (signaling)
|
*
|
65
|
7
Nov 12 – 18
|
1. Parse msg. from gateway
|
2. Order process
|
(Optional)
credit validation
|
75
|
8
Nov 19 – 25
|
1. Parse msg. from gateway
|
2. Order process
|
*
|
85
|
9
Nov 26 – Dec 2
|
1. Testing
|
2. Email confirmation
|
*
|
90
|
10
Dec 3 – 9
|
1. Testing
|
*
|
*
|
100
|
References:
- Non-technical links:
- Technical links: