sabbatical-Harris - Mathematical and Computer Sciences ...

knifedamagingInternet and Web Development

Feb 2, 2013 (4 years and 7 months ago)

136 views


1

Application fo
r Sabbatical Leave for Fall 2008

Bennette R. Harris


Proposal Narrative


Objective and Project Plan:

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

web application
development
framework
.
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.

I
n the course

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

opera
ting a rapidly scalable

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

to
enhance the department's computer science offerings by

designing a

set of

Ruby
on Rails

course
s

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


My
objectives

are to:

1.

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
.

2.

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

3.

conduct research on the operation of
rapidly scalable

elastic compute environments.

4.

design a

set of

new course
s, perhaps as

electives or as
alternative
s to or
change
s

in

the
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
-
Dallas
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

2

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
serv
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
fully
automated management of
rapidly scalable

elastic systems.


Objective
3
:

Conduct research on
the operation of
rapidly scalable

ela
stic compute
environments.


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
-
making
paradigms are possible, and each has its own uniq
ue benefits. The p
rimary goal of a
rapidly
scalable

elastic system is to provide computing resources as needed

in the face of rapidly change
load characteristics
.

"As needed" means
when
needed

and
in the quantity

needed.

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

3

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



H
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

or
two publications in refereed journals.


Objective
4
:

D
esign a

set of

new course
s, perhaps as

electives or as
alternative
s to or
change
s

in

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

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

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
environment

covering the development of Ruby on Rails
ap
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
-
lo
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.


The
procedures that are to be used

to accomplish each objective

are as follows:



4

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
test
-
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
math.uww.edu server. Finally, after local testing, the code will be deployed and tested i
n a
multi
-
server environment, exploiting rapidly scalable technology in an elastic environment
.

This
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
elastic
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
areable.

Initial
d
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
s

will be written up and
submit
ted for critic
al
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
load
-
stressing servers, and these will be employed to provide levels of service
demand that will cause the elastic system to exercise its rapid
l
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
parameters.

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
-
for
-
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

5

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


3
, 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
week
-
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
ture
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
porate
-
training
-
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.


My
schedule of how I will use my sabbatical

is as follows:

Prior to s
tart of term

Read

Programm
ing Ruby

and
Agile
Web Development
.

Code TicketServant application

Week 1

Create and deploy initial custom server images. Create server
start
-
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
start
-
up.

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
appl
ication tiers.

Week 5

Code Purple Comet
!

registration module.

Week 6

Select

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


6

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

ou
tline for
technical description of server images and tool set.

Code Purple Comet
!

help
-
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
-
access
modules

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
!

site.

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
,
Manning
.


Fowler, C. (2006
).
Rails Recipes,

Pragmatic Bookshelf.


Orsini, R. (2007).

Rails Cookbook
,
O'Reilly.


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


Tate,
B.
and
C. Hibbs (2006
).
Ruby on Rails: Up and Running
,
O'Reilly.


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

Pragmatic Bookshelf.


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

Pragmatic
Bookshelf


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

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

Amazon Web Services

http://aws.amazon.com

Capistrano

http://www.capify.org

Ruby

http://www.ruby
-
lang.org


7

Ruby on Rails

http://r
ubyonrails.com



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
s

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

the "application of technology to instruction and distance

learning."


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



T
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
publi
cation.


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
rticles


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


Education:

1982

Ed.D. in Mathematics Education




Oklahoma State University




Dissertation: "Dominance of solutions of linear differential equations"




1978

M.A. in Mathematics




University of Wisconsin
-
Madison




1976

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




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
b
een
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
-
Whitewater:

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



Semester

Co
urses

Student Evaluation Average Scores


Spring 2007

MATH 143

4.636

COMPSCI 481

4.800

Fall 2006

COMPSCI 382

4.366

COMPSCI 481

4.547

Spring 2006

COMPSCI 382

4.462

COMPSCI 481

4.778

Fall 2005

COMPSCI 382

4.333

COMPSCI 481

4.857


Scholarly Activity:


Sel
ect
Presentations

"Configuring LVM and RAID on Linux,"

IBM
AP System p AIX a
nd Linux Conference,
Singapore,
November

27
-
30, 2006.


"Configuring and running mod_perl,"

IBM
AP System p AIX a
nd Linux Conference, Singapore,
November

27
-
30, 2006.

"Identity Man
ag
ement with LDAP and Linux,"

IBM
AP System p AIX a
nd Linux Conference,
Singapore,
November

27
-
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
gramming,"
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
-
12,
2003.

"Basic Perl Scripting," IBM eServer pSeries (RS/6000) Linux and NUMA
-
Q Technical
Universit
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
University
, October 8
-
12, 200
1.

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