Project Design Document

Patrick Dunlap

 

Main

Design Document

Journal

Links

Contact Me

 

Project Brief:
The purpose of this project is to learn the fundamentals of distributing database information via RSS feeds.  These RSS feeds will be distributed to various platforms such as Windows XP, BlackBerry, and PocketPC using “shrink wrap” applications.
 

Methodology:
The project will proceed in phases to achieve a returnable even if all aspects of the project are not completed.

Phase 1:
    * Load the web and database server with Apache, MySQL, PHP
    * Load the development and admin software: PHP Designer and MySQL Admin on development PC.
    * Load dummy data into SQL database and test connectivity
    * Test web access


Phase 2:
    * Write PHP code to access SQL database
    * Write PHP to RSS web code and test
    * Distribute RSS feeds with web service

Hardware and Software Specifications:

Web and Database Server:
    * Hardware - Dell D600 – 1.4 GHz processor, 1 GB
    * OS - Windows XP build 2600.xpxp_sp2_gdr.050301-1519
    * Web Services - Apache 2.0.55
    * Database - MySQL 5.0.17
    * PHP 5.1.1

Development and Admin Tools:
    * PHP Designer 4.0.5
    * MySQL Admin 1.6.1
    * Java JDK 1.5.0.06 for Windows
    * Sun Java Creator Studio 2

Other Tools:
    * RSS Reader 1.0.9

Code Specifications to be followed:
    * RSS 2.0
    * XML 1.0

Project Details:
A Windows XP computer is to be loaded with MySQL and with Apache web services.  PHP will also be installed on this system.  PHP web application will be programmed using the PHP Designer application on the development computer.

PHP code will be used to pull data from the SQL database and then parse out the information into a XML/RSS format.  The then created .php file will be made available by the Apache web service.

The RSS Reader software will pull the RSS feed from the web server and display it onto the client computer.


Questions to be considered:
 
Communication technologies:
Why did you choose the technologies you're using? What is the impact on portability? What others did you consider but reject? And why?
The technology that was chosen was “created” to do just want I am trying to do, such as PHP (suggested by Dr. Adams) and systems that are not proprietary and free to install and use.  The system should be very portable to any web server able to run PHP code.  I thought about using Java but PHP was well tailored to the project needs.

 

Communication flavor:
Did you choose a connected or non-connected protocol? Why? What were the tradeoffs?
Standard TCP/IP using HTTP over port 80 will be used since it is the web standard transport system.


Language:
What language are the pieces implemented in? Why did you make those choices?
I wanted to learn more about XML/RSS so that is why I chose these languages and I built a project around this requirement.  PHP just seem to fit the build of the project (never heard of it before this).


Server concurrency:
Is your server iterative or concurrent? What technology are you using to implement concurrency?
Standard Apache web server.
 

Security:
Where and how is security implemented? What technologies, where in the protocol stack, what external resources used?

Because I am not trying to learn web security, I am building my system behind a corporate firewall and letting it maintain the system security.
 

Synchronization:
Where are the points of synchronization in your app? How do the client and server synch? What about multiple users? or multiple client apps? Are there potential problems (i.e. race conditions) which will require synchronization?

When the php file is accessed, the RSS information will be refreshed.  The RSS client will pull refreshes as set intervals.

Deadlock:
Is deadlock in either the client or server possible? If so, how will it be avoided?
Deadlock situations are not anticipated in this project.

Representation of data:
What sort of data is involved in your app? What form will it take, and how widely useable is it (i.e. by different clients, different architectures, different operating systems)? What will you use to make your data portable?
 
RSS is the final format and can be used by any platform that reads RSS.

 

Grand Valley State Univerisy - Michigan