Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Milestone V Team Members: Matthew Fusaro Ryan McGivern Brendan Heckman Back-End Features Java based engine to control VMware hosts and virtual machines. Consists of a Job Checker, Scheduler, MySQL Database Module, and Worker Threads. Completely configurable: uses one central configuration file to specify several run time options. Can run N-many jobs against a physical host where N is how many threads the administrator wants to allow to run. VMweb In Your Datacenter Control your VMware virtual machines using an intuitive web based control panel. Elminate the need for installable, Windows-only clients. Back-End is compatible with any front-end application. Simple extensions can allow an administrator to control hundreds of hosts and even more virtual machines. Point it at a VirtualCenter server or an individual host. Back-End Technicals Typical usage implies that comodity hardware is suitable for running this application. Test-bed used 6GB Ram, WAN connections, and 2.4Ghz Dual Core machine. Special care was taken to make all shareable objects thread safe such as all queues and Connection objects. Can be separated from other components as to help with load and redundancy. VMWeb Front-End What have we built? A light-weight, extensible web application Display and operate on all ESX hypervisor entities Using... Catalyst web framework Perl Object-Relational-Mapping (ORM) technology Model-View-Controller Layer of abstraction over database --> Results sets Thin controller-fat model Maintain user context ($c) Efficiently integrate user action with model operations Front-End Continued... Installation Copy application directory to host. Perl MAKEFILE.pl (top-level) Installs catalyst web framework All Perl dependancies Powering it on... Script directory vmweb_server.pl Front-End Bug One transient issue... Main menu sometimes truncates for no apparent reason. Never consistent for entire session Possible Front-End Extensions Rule-based job scheduling Console view for virtual machines Smart phone extension Catalyst facilitates JSON/XML/etc as views Therefore we can send/receive same content Render data on smart-phone device Extend to support multiple hosts Currently only limited by development environment Basic Layout System interface consists of a set of UI screens and actions accessible to the user. Interfaces availible are... Login Screen VMWeb Dashboard Inventory Item View Job History View System Login Screen Login Bar Users must enter their user-name and corresponding password to access the system. Users can logout by selecting the logout option shown below. VMWeb Dashboard Inventory View Users can select hosts as well as their respective VM's from the Inventory pull down menu. Upon selecting either a host or a VM you will be brought to the Inventory view shown below. Most functions will bring the user to the Job History table to view the jobs status Others will have Inventory sub-views to be shown in the demo. Job History View Here users can view information about all jobs that have been processed on the system. Includes TaskID, Name, Description, Progress, Start/end times, etc. Backend Implementation (Matt and Brendan) Milestone Project Component 1 2 3 4 5 Setup a VMWare ESX server I C - - - Setup SVN I C - - - Prep a server to run vmweb backend and host the Web Interface I C - - - Build stubs, create packages from VMWare provided API and import these into our development environment I C - - - Establish a session with the ESX box over HTTPS using SOAP I C - - - I C - - - I P P C - I I P C - Develop functions that will abstract the tedious SQL statements out of the functional code I I P C - Create a task tracking module to update progress on requested jobs from the front-end I I P P C Make a scheduler that will take jobs destined for the ESX server and serialize them as to not do out of order execution of requested actions. I I P C - Time permitting; add ability to create new virtual machines. I I I I I Decide upon utility functions which are most relevant and achievable during the scope if this project I P P C - Implement utilities relevant to the Host machine I P P C - Implement utilities relevant to the Resource Pool I P P C - Implement utilities relevant to the Virtual Machines I P P C - Create objects that will mimic the important entities in vmware (such as virtual machine, host, task) these will be represented as Object Classes in java. Develop functions that will query the object structures on the ESX server and return the properties we are looking for. Take the returned "Inventory" and instantiate the mimicked objects with the data. These objects will be used to enter data into the MySQL database. Front-end Implementation (Ryan) Project Component Milestone 1 2 3 4 5 Initialize Project Skelton I C - - - Install Perl I C - - - Install Catalyst Web-Application Framework I C - - - Initialize Application Directory I P C - - Install Perl Module Dependencies I C - - - Include JavaScript framework I I P C - Implement Authentication Module I C - - - Design Authentication DB Schema I C - - - Create Authentication DB I C - - - Create Model for Authentication DB I C - - - Implement UI for login I P C - - Enable model in authentication controller I P C - - Implement Inventory Module I P C - - Create Model for Inventory DB I P C - - Implement UI for Inventory I I I I P I I P C P I P C I C C - Implement Task Module Implement CRUD functions for Tasks Implement UI for Adding Tasks