sabbatical-Harris - Mathematical and Computer Sciences ...

knifedamagingInternet and Web Development

Feb 2, 2013 (5 years and 5 months ago)



Application fo
r Sabbatical Leave for Fall 2008

Bennette R. Harris

Proposal Narrative

Objective and Project Plan:

My plan for a sabbatical is to
a sign
ificant software
product, an online mathematics contest delivery system
, u
sing the Ruby on Rails

web application
The department currently offers such an online contest using software
written in the Perl programming language, but the current system is not flexible enough to handle
the expected explosive gr
owth in interest in the contest in the coming years.

n the course

writing this software I will
conducting research in, and
developing new strategies for

ting a rapidly scalable

application in an elastic compute system.
As an e
xtension of thi
project, I plan

enhance the department's computer science offerings by

designing a

set of

on Rails


which might then be used to upgrade the Web Development Minor pr


are to:


rewrite the existing Perl software for runni
ng the Purple Comet

competition in Ruby on
Rails, and exploiting rapidly scalable technology in an elastic environment


tools for automating most (if not all) key supervisory functions used in
managing a rapidly scalable ela
tic compute e


conduct research on the operation of
rapidly scalable

elastic compute environments.


design a

set of

new course
s, perhaps as

electives or as
s to or


existing COMPSCI 481 and

COMPSCI 482, teaching
Ruby on Rails

as a
web database
driven application development platform
, and teaching the use of elastic resources

Objective 1

Rewrite the existing Perl software for running the Purple Comet

competition in
Ruby on Rails, and exploiting rapidly scalable technology in an
elastic environment

Starting in Fall 2003, the Mathematical and Computer Sciences Department began to host an
online mathematics competition for middle school and high school students. The format of this
contest is unique: it is a team competition (ther
e are no individual scores), and it is administered
entirely online. Developed by Jon Kane, Titu Andreescu and Bennette Harris, it attracted 90
teams in its first run. After its initial development, Titu Andreescu took a position at UT
and the con
test was re
named the Purple Comet

Mathematics Meet by combining the UWW
school colors with the UT
Dallas school team name. This past April was the fifth running of the
contest, attracting 600+ teams.

The contest has changed as we have gained experience

in its administration, and the original
system architecture is not flexible enough to handle all of the new features needed. In addition,
the current architecture is not robust enough for handling the expected continued growth in the
contest. The time h
as come for a complete re
engineering of the site, and the decision has been
made to do this redevelopment using Ruby on Rails. The system will be developed as a full
fledged rapidly scalable application in a multi
tiered architecture deployed across mult
iple elastic
servers. The new system will use Squid caching servers, Apache web servers, and Mongrel
application servers delivering the new Ruby code base, with a MySQL database backend. This


project provides a rich enough application to allow for full i
mplementation and testing of the tool
set developed for objective 2. When finished, the project will also be much easier to maintain
and develop because of the Ruby framework. The finished project will allow for rapid, almost
unlimited growth in the cont
est without a change in system architecture.

Objective 2:

Create software tools for automating most (if not all) key supervisory functions
used in managing a rapidly scalable elastic compute environment.

In an elastic compute environment, server instanc
es are created on an as
needed basis, and
released when no longer needed. Each new server instance must be populated and seamlessly
folded into the application's overall architecture as quickly as possible. Critical to this process is
the creation of aut
omated tools for managing the architecture's elasticity.

This is the central
characteristic of a
rapidly scalable

environment: the architecture must support rapid expansion/
contraction of resources based on system demand.

The particular elastic environm
ent chosen (e.g. Amazon Web Services) provides tools for
defining, launching, and releasing server resources. These tools, however, are not coupled
together in any sort of management system. Tools must be developed that allow the entire
system as a whole

to be managed flexibly and with minimal human interaction. For example, a
new server, once launched, may need to be added to the company's domain name space.

Encryption keys, account names and passwords may need to be installed in order for the new
er to access existing remote resources.

If the server is one of many occupying a particular
tier in the application architecture
, the entire application may need to be rebalanced to distribute
loads off of existing servers and onto the new server. The pr
ocess must be reversed if the
resource is withdrawn after demand has peaked.

Speed is o
f the essence, so the tools must

function as much as possible without human intervention.

In addition to developing system management tools, it is important to combine

these tools with
system monitoring tools. Monitoring tools can detect changes in system demand or
performance. Although such tools have been available for many years, a generic system
combining the use of such tools in a flexible framework for exploitat
ion by an elastic
environment has not yet been developed.

The objective is to develop a comprehensive set of tools for
automated management of
rapidly scalable

elastic systems.


Conduct research on
the operation of
rapidly scalable

stic compute

In conjunction with objective 2 above, significant research needs to be done as to the most
effective strategies for managing new server resources. Many possible decision
paradigms are possible, and each has its own uniq
ue benefits. The p
rimary goal of a

elastic system is to provide computing resources as needed

in the face of rapidly change
load characteristics

"As needed" means

in the quantity


starting new server ins
tances takes a small but not insignificant amount of time. It is critical that


the cost of running idle servers be balanced against the time required to add new servers to an
overloaded system. Areas of research include:

ow can server launch and implem
entation time be minimized?

What types of rapidly
changing load characteristics can be predicted effectively?

Which system monitor triggers are most effective at predicting changes in server load?

What is the optimal strategy (based on total cost of operat
ion) that maintains a prescribed
level of system availability?

The objective is to conduct basic research in these areas, and use the results of this research to
guide the development of the system administration tools. This research should result in one

two publications in refereed journals.


esign a

set of

new course
s, perhaps as

electives or as
s to or


the existing COMPSCI 481 and

COMPSCI 482, teaching
Ruby on Rails

as a web database
driven application developmen
t platform, and teaching the use of elastic resources

The basic objective of the courses would be to guide students through the process of acquiring
the same skills as those needed to build the Purple Comet

application and to administer its
elastic syst
em architecture.

These courses are being developed jointly with Peter Theron.

An examination

of the web development courses offered on campus shows that most of these
focus on web applications as a single
tiered application, where all aspects of the site

generated by a single application running on a single server. Many modern web
applications, however, are much larger in scope. Consider the nature of the software engine
s that

Google, Amazon, eBay, and the like. Such applications span man
y servers and many
application layers, and the tasks of creating and administering such systems are often quite
different from those used on smaller applications. A set of courses focusing on large application
development would be of interest to students
in our existing programs of study, and has the
potential to attract working professionals as well.

Peter Theron and I a
re currently developing a set of f
our courses suitable for a corporate training

covering the development of Ruby on Rails
plications for a rapidly scalable
elastic compute environment. These courses are aimed at a professional audience and are not
designed in semesters. As part of the sabbatical experience, these courses would be coalesced
and condensed into two semester
ng upper
level undergraduate courses

The courses will be designed for delivery using a heavily hands
on lab based approach, much as
is used currently in COMPSCI 382 and COMPSCI 481. The labs would be constructed with an
eye towards possible future onlin
e delivery. Students would work in an elastic compute
environment, minimizing the need for specialized equipment or services on or off campus. If
possible, the courses will be field tested using
industry professionals.

procedures that are to be used

to accomplish each objective

are as follows:


Objective 1
The planned multi
tiered architecture for the Purple Comet

website software will
be developed in several stages. The first stage will be designing the back
end database used to
warehouse all con
related information. This will be followed by a complete rewrite of the
application code to utilize the database. Initially the new code will be stored on the server. Finally, after local testing, the code will be deployed and tested i
n a
server environment, exploiting rapidly scalable technology in an elastic environment

new contest environment will be in place in time for the spring 2009 competition.

Objective 2
Once coding of the Purple Comet

application is complete,
it can form the basis of
testing the management of an application deployed to a rapidly sca
lable elastic environment.
This objective involves

creating the software tools for automating the necessary supervisory
functions for maintaining this environment.

These tools will allow for the application to add to
or subtract from its server set seamlessly and without human intervention. These tools most
likely will be written as shell scripts, but Python is also being considered. I have already
acquired an acc
ount at Amazon Web Services for beta
testing of their EC2 and S3
services, and the tools will be developed specifically for this environment.

A key component of this work is the development of one or more custom server images. The
server instance
s managed by the automated tools must be crafted to respond to commands from
the tools.

The server images will use a current version of the

Fedora operating system, and will
be populated exclusively with open
source software to enable them to be freely sh

esign of these server images has already begun, and is expected to be completed by the end of
the spring term, 2008. This will permit the sample application developed in Objective 1 to be
deployed (manually) and tested, even before the
automated tool set is completed.

As the tool set
is developed, the server image design will be refined as necessary to provide an interface for the
tool set.

The final tool set
and matching server image design

will be written up and
ted for critic
review, most likely to Dr. Dobb's Journal.

Objective 3
With the tool set completed, it will be possible to conduct a series of experiments
aimed at determining an optimal strategy for operating an elastic system. A variety of tools
already exist for
stressing servers, and these will be employed to provide levels of service
demand that will cause the elastic system to exercise its rapid
y scaling characteristics. Data will
be collected as a variety of system parameters are altered, leading to the

development of a model
of how overall system performance and response times are affected by changes in these

The first, and most critical, phase of this research will be in analyzing the triggers
used to initiate changes in system topology.
The sensitivity of these triggers will determine if the
system responds appropriately to changes in load.

The analysis of the data collected on measuring and predicting system load characteristics and on
trigger sensitivity will be written up and submitte
d for publication.

Elastic systems operate in a fee
service environment. It is not necessarily the case that a
system which responds most rapidly to changes in load is in fact optimal with respect to total


cost of operation. A separate analysis of t
he data will be performed to determine how cost of
operation is affected by changes in both system response characteristics and management
determined acceptable levels of performance degradation during changes in system load. This
analysis will be prepare
d as a separate article submission.

Objective 4
During completion of Objectives 1

, detailed notes will be maintained of all the
learner steps needed to master the concepts involved. Although Peter Theron and I have already
begun designing the four
long courses, many of the concepts need to be fleshed out in light
of the real
world experience of developing a major project. The focus of the proposed new
courses is on implementing a large
scale web application, so maintaining sight of the big pic
consistently throughout is critical.
Keeping an accurate log of project activities will make it
easier to develop realistic experiences for the students.

A demonstration project, labeled TicketServant and seeking to duplicate the online ticket sales

operation of TicketMaster, will be fully developed to be used in the classes. The project will be
archived at several different stages of its development. The various incomplete forms of the
project will server as starting points for many of the student

labs. For example, given an
essentially complete project component, the students can be asked to locate and correct the errors
in the coding. Students can use complete forms of the sample project when the focus of
instruction is on server maintenance an
d configuration, or on project deployment.

One of the key compon
ents of the proposed classes will be

the lab activities. These will be field
tested using industry professionals before using them in an undergraduate classroom.

The initial set of fou
r cor
style classes will then be reformulated as proposals for
two senior
level undergraduate courses. The emphasis in this reformulation will be in preserving
the lab activities while seeking to enhance the extent to which the materials can be
used in an
online or hybrid course experience, although it is anticipated that the courses would be offered
initially in a traditional (lab) classroom setting.

schedule of how I will use my sabbatical

is as follows:

Prior to s
tart of term


ing Ruby

Web Development

Code TicketServant application

Week 1

Create and deploy initial custom server images. Create server
up self
configuration scripts.

Week 2

Create initial server management tools. Conduct analysis of
server instanc
e start
up, and re
design server images to minimize

Week 3

Create database design for Purple Comet

Code initial application
framework for Purple Comet
, and test deployment.

Week 4

Create tools to implement server instances seamlessly into
ication tiers.

Week 5

Code Purple Comet

registration module.

Week 6


and deploy server monitoring software
. Select and
implement initial trigger strategies.


Week 7

Code Purple Comet

contest delivery module.

Week 8

Collect data on system responses
under a variety of loads and
with a variety of trigger sensitivities.

Code Purple Comet

team supervisor module.

Week 9

Continue data collection.

Code Purple Comet

contest administrator module

Week 10

Revise server management tool set; prepare article

tline for
technical description of server images and tool set.

Code Purple Comet

desk module.

Week 11

Begin data analysis of server response characteristics.

Write first draft of tool set article.

Code Purple Comet

primary user interface and archive

Week 12

Complete data analysis, and characterize optimal server launch
and trigger strategies.

Revise tool set article for submission.

Design Purple Comet

server environment, and deploy.

Week 13

Prepare article outline on server launch opt
imization strategies.

Test Purple Comet


Create preliminary content outline of both new courses
, including
schedule of lab exercises.

Week 14

Write first draft of optimization strategies article.

Begin design of labs for courses; conduct extensive te
sts to
validate lab instructions on a variety of operating systems and
hardware platforms.

Week 15

Revise optimization article for submission.

Continue course lab development and testing.

Week 16

Complete course designs.

I plan on reading the following du
ring my sabbatical

Black, D. (2006
Ruby for Rails: Ruby Techniques for Rails Developers

Fowler, C. (2006
Rails Recipes,

Pragmatic Bookshelf.

Orsini, R. (2007).

Rails Cookbook

Schmidt, M. (
Enterprise Integration wit
h Ruby
Pragmatic Bookshelf.

C. Hibbs (2006
Ruby on Rails: Up and Running

Thomas, D., C. Fowler and A. Hunt (2004).
Programming Ruby,

Pragmatic Bookshelf.

Thomas, D. and D.H. Hansson (2206).
Agile Web Development with Rails,


In addition, the primary resources for Ruby, R
ails, Capistrano,

Amazon Web Services, and other
applications to be used in this project are available exclusively online, including the
following URLs:

Amazon Web Services





Ruby on Rails


Rationale for the Project:

Software development and deployment strategies have evolved
considerably in recent years, and are changing more rapidly all of the time. This project will
allow me to gain more experience in the skills likely t
o be needed by our MCS and computer
science graduates in the near future. The fundamental research
conducted in the area of server

scaling technologies will help define the usefulness of those technologies.

My goals fit in with
those of the Department of

Mathematical & Computer Sciences, the College of Letters &
Sciences, and UW
Whitewater supporting the model of scholar
educators “who possess and
practice excellence in the creation of new knowledge and its effective integration in teaching,
research, an
d problem
solving.” (UW
Whitewater’s Strategic Plan).
The lab
based format for
the proposed courses fall

within t
he Board of Regents Education Committee Emphases’
lines on sabbaticals under

the "application of technology to instruction and distance


Project Evaluation:

My first objective is to
rewrite the Purple Comet

Math Meet software.

During development
, members of the department's Student Mathematics Association will be
invited to
test and critique the site.

Competition p
ts are invited to complete an
evaluation at the end of the contest, and this instrument will be used to collect feedback on the
performance and functionality of the new site. Server load and response time data will also be
collected and analyzed.

The sec
ond objective is to
create software tools for automated management of elastic compute
systems. An article describing the tools and their operation will be submitted for critical review
and publication. The tools will be made available for comment by the
broader Internet
community as open
source software.

he third objective

consists of fundamental research in the performance characteristics of elastic
systems, and this work is expected to culminate in an article submitted for critical review and

The course designs created as part of the fourth objective will be reviewed by industry
professionals and the university curricular process.

Expected tangibles:

competition software

server management tool set

server images

two peer
reviewed a

After submitting the final report on my sabbatical, I will present my findings to my colleagues at
a departmental colloquium. My findings wi
ll also be submitted to the RailsConf technical
conference for consideration

Applicant Data



Ed.D. in Mathematics Education

Oklahoma State University

Dissertation: "Dominance of solutions of linear differential equations"


M.A. in Mathematics

University of Wisconsin


B.S. in Mathematics, in Honors, with Distinc

Virginia Polytechnic Institute & State University

Professional Expertise and Faculty Status:

My area of expertise
in mathematics is in the
qualitative behavior of ordinary differential and difference equations, particularly oscillation
theory and
asymptotic behavior of solutions
Most of my current work is in computer science,
especially Internet
related technologies

and the Linux operating system

I am currently an
Associate Professor in the Department of Mathematical & Computer Sciences having
tenured and promoted in 1988

Leaves of Absences:

I took an unpaid leave of absence during the 2001
2002 academic year
during which I did computer training for IBM
During this leave I attained Red Hat Certified
Engineer and Red Hat Certified Examin
er certifications.
I have not had a sabbatical.

Teaching at the University of Wisconsin

My student evaluations for the past two
years are summarized in the table below. I have not had any peer evaluations in the last two



Student Evaluation Average Scores

Spring 2007

MATH 143




Fall 2006





Spring 2006





Fall 2005





Scholarly Activity:


"Configuring LVM and RAID on Linux,"

AP System p AIX a
nd Linux Conference,

30, 2006.

"Configuring and running mod_perl,"

AP System p AIX a
nd Linux Conference, Singapore,

30, 2006.

"Identity Man
ement with LDAP and Linux,"

AP System p AIX a
nd Linux Conference,

30, 2006.

Configuring a LAMP (Linux, Apache, MySQL, PHP) server
IBM System p, AIX 5L and
Linux Technical University, Las Vegas, September 11
15, 2006

"Perl Pro
IBM System p, AIX 5L and Linux Technical University, Las Vegas,
September 11
15, 2006

"Alternative File Systems," IBM eServer pSeries (RS/6000) and Linux Technical University,
September 22
26, 2003.

"CGI Programming in Perl/PHP," IBM eServer pS
eries (RS/6000) and Linux Technical
University, September 22
26, 2003.

"Rescue Procedures for Linux," IBM eServer xSeries Technical Conference, September 8

"Basic Perl Scripting," IBM eServer pSeries (RS/6000) Linux and NUMA
Q Technical
y, October 8
12, 2001.

"Intermediate Perl Scripting," IBM eServer pSeries (RS/6000) Linux and NUMA
Q Technical
University, October 8
12, 2001.

"CGI Programming in Perl," IBM eServer pSeries (RS/6000) Linux and NUMA
Q Technical
, October 8
12, 200

Detecting amd Preventing System Intrusion," IBM eServer pSeries (RS/6000) Linux and
Q Technical University, October 8
12, 2001.