Project PowerPoint Presentation

advertisement
MMX-III
A BRIEF INTRODUCTION
MMX-III
What is the MMX-III?
The MMX-III is a Linux based server designed and built as a Senior Project in ICT 435.
Why build an MMX-III for a senior project?
The MMX-III combines several of the ideas generated while brainstorming on what to do
for a senior project. The project involves creating a website, building a computer,
working with servers, networking, and programming. A big factor in the decision was
how the project supports my long term interests in multimedia and web development.
What does MMX-III mean?
While looking for a code name for the project, I came up with the idea to see what the
year 2013 was in roman numerals. It turned out it was MMXIII. I liked it as a code name
and soon the roman numerals with a hyphen in the middle became the official name
for the project. The pronunciation is “M-M-X-3”.
MMX-III
MMX-III Running Ubuntu Server 12.04.2 LTS
MMX-III
THE PROJECT
PROJECT BACKGROUND
The ICT 435 Senior Project
Goal
Apply some of the skills acquired during time spent in the ICT program to a real
world situation.
The Project
The possibilities of what to do are practically endless and it’s up to the student to
choose and make a proposal on what to do for their own semester long project.
The Website
In addition to the project, a website is developed and maintained to convey
information and updates about the project.
PROJECT BACKGROUND
My Senior Project
What to do for the senior project was something that had been given thought since
gaining acceptance into the ICT program.
A list of possible projects was started with the first idea, and new ideas were
added to it as they came.
Some of the ideas considered for a project included:
•
•
•
•
•
•
•
Making a Survival/Help Guide for new students coming into the ICT program
Building a computer
Programming using one, some, or all of the different languages learned
Home networking
Constructing a website for an assisted living facility
Creating a Network-Attached Storage (NAS) device
A server based project
PROJECT BACKGROUND
The Project and Why It Was Chosen
I realized several of these ideas could be combined into one that might make a
good senior project and leave me with something useful.
The decision was made to go with a server based project, that included designing
and building the server, installing server software, setting up the networking, and
then demonstrating the server’s capabilities. Thus the MMX-III was born.
The project would complete a goal of mine of building a computer, fuel my long
term interest in web development, and hopefully meet the expectations of a senior
project.
Unfortunately for new students coming into the program, selecting this project
meant there would not be a Survival/Help Guide created for them.
WEBSITE
WEBSITE
The project’s first requirement
Build a website
The website would be the vehicle for delivering
The project idea proposal
The detailed outline for the approved project
The project’s timeline and milestones
The project’s tasks
The bi-weekly reports
The links to presentation materials and other project information
The website would not only provide a way to get the project started, but would also
be used for regular progress reports, and to help keep the project on track.
WEBSITE
Website Construction
The MMX-III’s website was constructed using six web pages.
Home page – a starting point for the website and a way to provide updates on
the projects progress and major accomplishments.
Outline page - contained the original project idea proposal, but now has the
detailed outline created after the project received approval.
Reports page - contains each assignment’s bi-weekly reports, plus an extra
edition and is set up in a blog style so the entries could be easily read.
Timeline page - contains an image showing the project flow over the course of
the term, the phases of the project, along with project milestones.
Tasks page - breaks down each phase of the project into individual tasks and
provided a means to track progress.
Links page - contains the project presentation files and has also been used to
display images and links to files.
WEBSITE
The site was built using a cascading style sheet to provide a consistent flow from
page to page, while still allowing each page to have its own specific content.
Grey
header
w/text
Left
column
Menu
&
Info
boxes
Project
logo
image
Main
body
Grey
footer
w/text
REPORTS
Bi-weekly Reports
16 Bi-weekly written reports spread across the term
Reports discuss the project and progress
Posted on the website
Value of the reports
The reports helped keep the project on track. After two weeks in a row of writing
about how my video related issues stalled the project, I was highly motivated to stay
on schedule and avoid having to write about my short comings again.
The reports were also a good way to beat your chest after a major accomplishment.
TASKS
Project Tasks
A list of tasks thought to be required to complete the project was created and the
work included in that list seemed to naturally break down into five different
phases. Those five phases are:
Phase 1 - Design and Acquisition
Phase 2 - Building the MMX-III
Phase 3 - Software Installation
Phase 4 - Demonstrate System Functionality
Phase 5 - Project Wrap-up
(Each phase will be discussed further in the upcoming project phases section)
The task list was broken down further into different levels of sub tasks and added
to the website using html unordered lists. The complete task list is long, but can be
viewed at the following URL’s:
http://mmxiii.no-ip.biz/tasks.html
http://web.nmsu.edu/~tpreston/ict435/project/tasks.html
TIMELINE
Project Timeline
The project’s timeline was created using an Excel spreadsheet and shows the
project flow over the course of the term, the different phases of the project, their
associated tasks, along with the project milestones.
Each phase and the associated tasks were given their own color code to make it
easy to differentiate between them all.
Project Milestones
The Project also had 6 milestones to help gauge its progress:
MS 1: All components ordered by 2/17/13
MS 2: MMX-III assembly completed and power on by 3/17/13
MS 3: All server software loaded and operational by 4/7/13
MS 4: Verify hosting capabilities, develop backup plan if needed by 4/14/13
MS 5: MMX-III is operational and functioning as designed by 4/22/13
MS 6: MMX-III project presented by 5/10/13
The milestones would provide checkpoints to help determine if the project was on
course or not.
TIMELINE
The MMX-III Project Timeline
PROJECT PHASES
PHASE 1
PHASE 1
Phase 1 of the project had four main tasks and the associated subtasks.
The four main tasks were:
I.
Starting a project logbook
II.
Creating a hardware design
III. Selecting a Linux server operating system
IV. Acquiring the hardware and software
PHASE 1
Task List
Phase 1 - Design and Acquisition
Start a project logbook
Create a design
•Determine best CPU option based on availability through Intel CLP
•Select form factor to use for the MMX-III
•Make determination of Motherboard based on CPU/form factor selection
•Spec out remaining system components for the MMX III
•Case
•Power Supply
•Heat sink
•Memory
•Storage
•Optical Drive
Select Linux Server OS
•Research and compare free Linux Server OS distributions
•Make final determination on which version to install
Acquire the hardware components and software
•Order CPU through Intel CLP
•Order motherboard through Intel EPP or online vendor
•Order remaining components through online vendor
•Download and burn ISO file for Linux Server OS
•Download Apache HTTP Server, PHP and MySQL files
PHASE 1
Task I - Starting a project logbook
This task literally took only minutes to complete and was accomplished using
a composition book and the creation of a logbook file in the ICT 435 folder.
Task II - Creating a hardware design
Creating a design was probably the most important task of the project. The
choices made here would be driven by a free CPU and a $300 cost target.
Selecting a CPU
The CPU was provided through an employee program at Intel
The Chip Loaner Program provides samples of CPU’s to employees
The CPU selection is limited (8), but state of the art products are available
For this project, the Ivy Bridge, third generation Core i5-3450 was chosen
PHASE 1
Choosing a form factor
The choice was narrowed to ATX or Micro ATX
Either would allow the system to be easily expandable and provide flexibility
Motherboard Selection
The motherboard would have a B75 or Z77 chipset and would be chosen
based on the best available at the time.
The motherboard selected was a Biostar TZ77B because it met the project
requirements, and came with 8GB of RAM free
Other Components
The remaining components, case, power supply, CPU cooler, hard drives and
optical drive were all selected based on a balance of performance vs. price vs.
reviews
PHASE 1
Task III - Selecting a Linux Server OS
Ubuntu, CentOS, Debian, Red Hat and Fedora were considered for an OS
Red Hat - eliminated because of the license fee
Fedora - eliminated because I‘d used it already
CentOS - eliminated because of its similarity to the previous two
Debian and Ubuntu are supposed to be similar, but Ubuntu was the
choice for the system's OS because it just had a fresher feel to it.
Task IV - Acquire the hardware components and software
The CPU was ordered through the Intel Chip Loaner Program
All other components were ordered online – Amazon, Newegg, TigerDirect
The ISO file for Linux Server OS including Apache, PHP and MySQL files
was download from Ubuntu’s website and burned to a disk.
MMX-III
List of MMX-III Components
• 3rd Generation Intel Core i5-3450 Quad-Core Processor
• Biostar TZ77B Motherboard
• Rosewill RCX-ZAIO-92 CPU Cooler
• 8 Gb Corsair Vengeance SDRAM
• Western Digital Passport 160 GB Hard Drive
• Western Digital Blue 1TB Hard Drive
• LG CD/DVD Multi Drive
• Antec 400W Power Supply
• Corsair Carbide Series 200R Case
• Ubuntu Server 12.04.2 LTS OS
PHASE 2
PHASE 2
Phase 2 of the project had four main tasks and the associated subtasks.
The four main tasks were:
I.
Documenting the build
II.
Assembling the components
III. Visual inspection
IV. Power system on for testing, check functionality and prepare for OS install
PHASE 2
Task List
Phase 2 - Building the MMX-III
Documenting the build
•Create a plan for the assembly
•Take digital photographs of components and different stages of the build
•Videotape the build in progress
•Use a logbook for written documentation about the build
Assembling the components
•Begin assembly
•Install CPU in motherboard
•Install heat sink on CPU
•Install memory
•Install power supply in case
•Install motherboard in case
•Install storage devices
•Install optical drive
Perform visual inspection
•Check that all components and cables are properly installed and connected
Power on system to check functionality, perform initial testing, prepare for OS install
•Verify system boots into BIOS screen
•Prepare system for Linux Server OS install
PHASE 2
Task I - Documenting the build
Create a plan for the assembly
The plan for assembly was to install the CPU, the CPU cooler, and the memory,
then connect the power supply and test boot the basic system.
If successful, all components would then be installed in the case.
Take still images and video of the build
The plan for documenting the build, was to take video and still images of the
different tasks as they were performed for use in presentation.
A Logbook to document the build
The project logbooks already in use would be used to capture any information
from the build.
PHASE 2
Task II - Assembling the components
Begin assembly
The task was delayed by approximately 2 weeks due to video hardware problems.
After resolving the issue, the test build began. The tasks were:
Install the CPU
The CPU is placed in the socket on the MoBo and is clamped in place
Install memory
The memory module is inserted into slot A1 and is held in place with two latches
Install CPU cooler
A thin layer of thermal compound is spread over the cleaned surface of the CPU,
the cooler is positioned on the CPU and then held in place with 4 pins/clips
Connect power supply for test boot
This was a slight deviation from the original plan, but tested the critical
components before assembling the whole system. Two PS connections were made
and the basic system was booted to the BIOS screen successfully.
PHASE 2
MMX-III Test Build
Presentation version with no embedded video
Click to view video
PHASE 2
Another Project Delay
When it came time to install the components in the case, the project experienced
it’s second delay. One side of the case was damaged in shipping, requiring the
case to be returned. The good news was a replacement was found for $10 less
and the build resumed upon its arrival. The remaining tasks were:
Install power supply in case
The PS is installed in the bottom of the case and held in place with 4 screws
inserted through the back of the case. PS cables are routed through the case
cut-outs to their designated locations.
Install motherboard in case
The motherboard I/O shield is snapped into the back of the case, the MoBo is
properly positioned and then held in place with 7 screws.
Install storage devices & optical drive
The drive bays provide tool-free installation. The drives are inserted into a bay
and held in place with a spring loaded clip.
PHASE 2
Task III - Perform visual inspection
Check that all components and cables are properly installed and connected
With all components installed, a final visual inspection was performed to verify
correct installation of cables and components.
Task IV - Power system on for testing, check functionality and prepare for OS install
Verify system boots into BIOS screen
With all components installed, the drive cables were disconnected to perform
another test boot.
Prepare system for Linux Server OS install
With the drives reconnected, the system was restarted and booted to the point
of prompting for a bootable disk.
PHASE 3
PHASE 3
Phase 3 of the project had one main task and several subtasks.
The main task was:
I.
Software Installation
PHASE 3
Task List
Phase 3
Software Installation
Install Linux server operating system
Install Apache HTTP Server
Install PHP
Install MySQL
PHASE 3
Task I – Software Installation
Install Linux server operating system
A slight deviation from the original plan was made by installing a spare 160
GB HDD in the system for the Ubuntu server install.
This would provide a test vehicle for the install and if it worked out, the 1 TB
drive could still be used for the server or possibly in another capacity.
With an Ethernet cable connected, the Ubuntu Server 12.04.2 LTS install disk
was inserted in the optical drive, and the system was rebooted.
The system initially displayed the message "No bootable device, insert boot
disk and press Enter.” After several attempts with this disk, a new one was
created the Ubuntu install started.
Install Apache, MySQL and PHP
The Ubuntu Server install allows other services to be installed at the same
time. Apache, MySQL and PHP were installed along with OpenSSH Server,
Samba file Server, and Tomcat Java Server.
PHASE 3
During the Ubuntu install a user name and password are created, so when the install is
complete, the system is immediately ready for use.
Example of Accessing the MMX-III Using PuTTY
PHASE 4
PHASE 4
Phase 4 of the project had three main tasks and their associated subtasks.
The three main tasks were:
I.
Hosting the project website on the MMX-III
II.
Create code that tests other server functions
III. Perform final systems testing
PHASE 4
Phase 4 - Demonstrate System Functionality
Hosting the project website on the MMX-III
•Determine what if any restrictions my ISP has on web hosting
•Select best method to host the project website
•Implement and test web hosting capabilities on the MMX-III
Create code that tests other server functions
•Write programs in PHP and MySQL code to create and display databases
•Incorporate the code into project website
•Test PHP/MySQL code and functionality through the website
Perform final systems testing
•Verify system boots up without issues
•Verify web hosting of the project website
•Verify PHP/MySQL server functions are operational
PHASE 4
Task I - Hosting the project website on the MMX-III
Determine ISP’s restrictions on web hosting
The ISP has no restrictions for web hosting on a home network
Select best method to host the project website
The best method to host the project website on the MMX-III is probably using
a static IP address. The drawback is, the static IP address came with a cost of
$5.95 a month, plus a $25 set up fee.
Another method and the one used here, is to use a free dynamic DNS service.
Using a downloadable Dynamic Update Client and port forwarding on the
network’s router, the MMX-III is accessible from outside my network without a
static IP address.
Implement and test web hosting capabilities on the MMX-III
To test the MMX-III’s web hosting capabilities, the project’s website files were
copied from the NMSU server over to the MMX-III and set up to run using the
URL: mmxiii.no-ip.biz
PHASE 4
Task II - Create code that tests other server functions
Write PHP/MySQL code to create and display databases
A database named mydb was created and using the file source.sql, a table was
added called courses that's populated with information about the required courses
for an ICT degree. The file index.php, pulls the data from the database and
presents it in a table format using html.
Incorporate the code into project website
The PHP/MySQL code was incorporated into the project website, by adding a link
to the index.php file on the Links page.
Test PHP/MySQL code and functionality through the website
Testing the code functionality is simply a matter of clicking the “PHP and MySQL
Demo” link found on the Links page.
PHASE 4
Task III - Perform final systems testing
Verify system boots up without issues
This task was performed using several different methods.
The system was shutdown or restarted using:
The front panel power on/off button
The front panel reset button
Software commands using PuTTY
A 5-hour power failure
Verify web hosting of the project website
The web hosting capabilities of the MMX-III is typically tested on a daily basis. It’s
been tested on mobile devices as well as computers running different browsers.
Verify PHP/MySQL server functions are operational
These functions are routinely tested during the verification of system functionality
PHASE 4
No-IP Dynamic DNS Service
Three URL’s can be configured to view the project website hosted on the MMX-III.
URL’s and Current Status
URL
Configured
Operational
mmxiii.no-ip.biz
configured
Operational
mmxiii.no-ip.org
not configured
not operational
mmxiii.hopto.org
not configured
not operational
The project’s original URL, mmxiii.no-ip.biz is configured and operational.
The last two URL’s can be configured to become operational, and were at one time,
but were left in this state to demonstrate dynamic IP address changes shown next.
PHASE 4
This is an example of the issues with using a dynamic IP address for the server.
It shows how the dynamic IP address supplied by my ISP changes over time. All 3
of the hosts had matching IP Addresses prior to a power failure.
PHASE 5
PHASE 5
Phase 5 of the project had two main tasks and their associated subtasks.
The two tasks were:
I.
Resolve any remaining issues with the MMX-III build
II.
Begin preparation for the project presentation
PHASE 5
Phase 5
Project Wrap-up
Resolve any remaining issues with the MMX-III build
Begin preparation for project presentation
•Develop PowerPoint presentation about project
•Include video, pictures, and logbook information from the build
•Learn how to use Adobe Connect/Skype for the project presentation
•Rehearse presentation using the actual application or a simulation
PHASE 5
Task I - Resolve any remaining issues with the MMX-III build
MMX-III Issues
Static vs. Dynamic IP address – while the dynamic DNS service provided by
no-ip.com gives me the ability for web hosting on the MMX-III, it’s not perfect.
It requires periodic maintenance and troubleshooting, along with having to
use a web proxy to access the project website from inside my network.
What to do about this long term, is an issue that requires more thought.
PHASE 5
Task II - Begin preparation for project presentation
Develop PowerPoint presentation about project
PowerPoint presentation for the MMX-III – Complete
Video information from the build – Keeping my fingers crossed
Learn how to use Adobe Connect/Skype for the project presentation
Complete
Rehearse presentation using the actual application or a simulation
Complete
MMX-III
THE WRAP-UP
SUMMARY
This project turned out kind of like I thought it would. It had it’s highs and lows and
obstacles to overcome, but in the end everything seemed to work out.
In a lot of ways, it was very similar to the projects I’ve been involved with through
work, just on a smaller scale. This time though, I was the project’s entire staff and
it’s financier. The bottom line is, the project’s success or failure depended solely
on me.
Personal Observations
I believe the website was a huge success and it’s something I’m proud of.
4 out of the 6 project milestones were hit.
- MS 1 was missed by a day and MS 2 by a week
Each phase of the project was completed, along with all tasks and subtasks.
The system functions as designed and meets the goals of the project.
- It’s not optimum, but could be with a little bit of effort and money.
SUMMARY
Highlights, Lowlights & Key Learning's
Highlights:
Only $13.46 over budget, $313.46 actual cost vs. target cost of $300.00
Successful boot ups during the test builds and after the build was completed
Successful software loading
Resolving networking issues with dynamic IP address
Successful demonstration of server web hosting and PHP/MySQL functions
Lowlights:
Video issues that delayed project
Case was damaged in shipping, not realizing it for 2 weeks
Networking issues - ongoing issues and troubles after a power failure
Key Learning's:
CPU cooler/Ram heat sink - height issues, just because they say it will fit…
Networking - Lot’s of practice with static/dynamic IP addresses, troubleshooting
Server - Setting up a server is not as exciting as it once sounded
Video - is my green kryptonite
CONCLUSION
My Thoughts On The Project
Was it successful?
Yes. Overall, I thought the project was a success. Is it perfect? No, but I believe it
was a good first effort.
Would I do it again?
Yes, but I might change some things. I really enjoyed designing and building the
computer, but I have to admit to being a little underwhelmed after loading the
server software and watching it boot up. After a few hundred dollars and weeks of
work, I guess I was expecting to see more on the screen than this.
Ubuntu 12.04.2 LTS mmxiii tty1
mmxiii login:_
Server software, at least at my level, doesn’t seem to offer much pizzazz visually.
CONCLUSION
More Thoughts On The Project
What would I change?
I believe I might still build a computer, but would probably go with Ubuntu Desktop.
If a server was included in the project, I’d probably try to create it on a virtual
machine. Honestly though, I enjoyed working on the website as much as any other
part of the project, so if I had it to do over again, I might consider a web
development project.
What happens next?
Well, my wife gets the kitchen counter back that the MMX-III has occupied for the
past 6 weeks and the MMX-III goes into semi-retirement while I graduate and begin
my sabbatical from work. Long term, I believe the MMX-III has a future in my
organization as a combination server/home media computer.
QUESTIONS
MMX-III
THE END IS HERE
Download