570 likes | 834 Views
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 ?
E N D
TOM PRESTON’S SENIOR PROJECT ICT 435 - SPRING 2013 MMX-III
MMX-III A Brief introduction
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-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 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 Project logo image Left column Menu & Info boxes 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.htmlhttp://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
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 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 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 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 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 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 of the project had one main task and several subtasks. • The main task was: • 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 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 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 • 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 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 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 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