tom preston s senior project ict 435 spring 2013 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MMX-III PowerPoint Presentation
Download Presentation
MMX-III

Loading in 2 Seconds...

play fullscreen
1 / 57

MMX-III - PowerPoint PPT Presentation


  • 184 Views
  • Uploaded on

TOM PRESTON’S SENIOR PROJECT ICT 435 - SPRING 2013. MMX-III. 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 ?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MMX-III' - kaiser


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
mmx iii
mmx-iiI

What is theMMX-III?

The MMX-III is a Linux based server designed and built as a Senior Project in ICT 435.

Why build anMMX-III fora 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 iii1
mmx-iiI

MMX-III Running Ubuntu Server 12.04.2 LTS

project background
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 background1
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 background2
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.

website1
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.
website2
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

Project logo image

Left column

Menu

&

Info

boxes

Main body

Grey footer

w/text

reports
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
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.htmlhttp://web.nmsu.edu/~tpreston/ict435/project/tasks.html
timeline
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.
timeline1
Timeline

The MMX-III Project Timeline

phase 1
Phase 1
  • Phase 1 of the project had four main tasks and the associated subtasks.
  • The four main tasks were:
    • Starting a project logbook
    • Creating a hardware design
    • Selecting a Linux server operating system
    • Acquiring the hardware and software
phase 11
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 12
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 13
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 14
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 iii2
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:
    • Documenting the build
    • Assembling the components
    • Visual inspection
    • Power system on for testing, check functionality and prepare for OS install
phase 21
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 22
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 performedfor 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 23
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 24
Phase 2

MMX-III Test Build

Presentation version with no embedded video

Click to view video

phase 25
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 26
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:
    • Software Installation
phase 31
Phase 3
  • Task List
  • Phase 3
  • Software Installation
    • Install Linux server operating system
    • Install Apache HTTP Server
    • Install PHP
    • Install MySQL
phase 32
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 33
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:
    • Hosting the project website on the MMX-III
    • Create code that tests other server functions
    • Perform final systems testing
phase 41
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 42
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 43
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 44
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 45
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
  • 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 changesshown next.
phase 46
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:
    • Resolve any remaining issues with the MMX-III build
    • Begin preparation for the project presentation
phase 51
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 52
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 53
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
summary
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.

summary1
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
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.

Server software, at least at my level, doesn’t seem to offer much pizzazz visually.

Ubuntu 12.04.2 LTS mmxiii tty1

mmxiii login:_

conclusion1
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.