Dr. John Clevenger Professor of Computer Science, Emeritus - - PowerPoint PPT Presentation

dr john clevenger
SMART_READER_LITE
LIVE PREVIEW

Dr. John Clevenger Professor of Computer Science, Emeritus - - PowerPoint PPT Presentation

Dr. John Clevenger Professor of Computer Science, Emeritus California State University, Sacramento Technical Director ACM International Collegiate Programming Contest Applied Research Areas Operating Systems Computer Graphics


slide-1
SLIDE 1
  • Dr. John Clevenger
  • Professor of Computer Science, Emeritus

California State University, Sacramento

  • Technical Director

ACM International Collegiate Programming Contest

slide-2
SLIDE 2

Applied Research Areas

 Operating Systems  Computer Graphics  Computer Game Architecture  Programming Contests

  • Dr. John Clevenger -- CSc 209
slide-3
SLIDE 3

What’s a Programming Contest ?

 Teams  Judges  Problems  Scoreboards and Scoring Algorithms  System Support Software

  • Dr. John Clevenger -- CSc 209
slide-4
SLIDE 4

The International Collegiate Programming Contest (“ICPC”)

 Competition between University Teams around the world  Established by ACM in 1977  Sponsored by IBM since 1997  Multi‐tiered contest

  • Local university contests
  • Regional Contests
  • World Finals Contest
  • Dr. John Clevenger -- CSc 209
slide-5
SLIDE 5

ICPC 2016‐17

  • Dr. John Clevenger -- CSc 209

 46,381 student contestants  2,948 universities  103 countries  530 sites spread over six “super‐regions”  41st Annual World Finals: May 20‐25, 2017 in Rapid City, SD 

http://icpc.baylor.edu

slide-6
SLIDE 6

ICPC World Finals

  • Dr. John Clevenger -- CSc 209
slide-7
SLIDE 7

Programming Contest Software

 Contest Control System (CCS)  Scoreboard/Presentation Systems  Contest Data Server (CDS)  Balloon Management Software  Analytic Tools  Live TV Presentations  Security Tools

  • Dr. John Clevenger -- CSc 209
slide-8
SLIDE 8

Contest Control Systems

  • Dr. John Clevenger -- CSc 209

Server

Team1 Team2 TeamN … Admin Automated Judge (AJ) … Scoreboard Server … Human Judge Automated Judge (AJ) Human Judge …

slide-9
SLIDE 9
  • Dr. John Clevenger -- CSc 209

The CSUS “PC2” CCS

 Used in contests around the world (including at 17 different ICPC

World Finals)

PC2 Downloads

as of Spring 2014

slide-10
SLIDE 10

Cloud Computing

  • Dr. John Clevenger -- CSc 209

 What IS “cloud computing”?

slide-11
SLIDE 11

The Cloud Computing Secret:

  • Dr. John Clevenger -- CSc 209
slide-12
SLIDE 12

Cloud Computing Models

  • Dr. John Clevenger -- CSc 209

Infrastructure as a Service (IaaS)

(Virtual machines, servers, storage, …)

Platform as a Service (PaaS)

(Programming tools, databases, web servers, …)

Software as a Service (SaaS)

Email, messaging, payroll processing, CAD, accounting, customer relations, games and VR, …

Web clients

(browsers, mobile apps, thin clients, terminal emulators, …)

slide-13
SLIDE 13

Contest as a Service (CaaS)

  • Dr. John Clevenger -- CSc 209

Software as a Service (SaaS)

Contest Server Contest Admin Contest AutoJudge Contest Human Judge Contest Team Contest Scoreboard Contest Admins, Judges, Teams, Spectators, …

slide-14
SLIDE 14

CaaS Requirements

 Contest setup  Component “spin‐up”

 servers, admins, teams, judges “as needed”

 Scalability

 Load balancing/monitoring

 Use existing support facilities

 Application servers (TomCat, Jetty, Websphere)  Docker, Cloud Foundry  Cloud Service Providers

  • Amazon WS, Google AppEngine, Microsoft Azure,

IBM Bluemix, ….

  • Dr. John Clevenger -- CSc 209
slide-15
SLIDE 15

CaaS: PC2 Version 10

  • Dr. John Clevenger -- CSc 209

AppServer

Jetty WebServer Jersey REST Services MySQL Database …

Spawn Machines

Resource Manager

Jetty

Dispatcher

Jetty

Checker

Jetty

Run

Compare Compile

Spawn additional machines as needed Http Requests

slide-16
SLIDE 16

Current Ongoing Projects

PC2 Version 9 Extensions

Team “sandboxing”

Web‐based Team interface

ICPC CMS Services access tool

Web‐based Test Run submission

“Next‐Gen” Cloud‐based Contest Control Systems

REST‐based Run Flow in a Cloud CCS

Architecture‐independent remote machine spawning

Using Docker containers for Cloud CCS modules

  • Dr. John Clevenger -- CSc 209
slide-17
SLIDE 17

Available Projects

 Distributed Application Load Balancing

 Front‐end  Back‐end

 Contest Administrator Configuration interface  Infrastructure automation tools  Application server performance measurement

  • Dr. John Clevenger -- CSc 209
slide-18
SLIDE 18

Front‐end Load Balancing

 Users need a single set of URLs (REST endpoints)  Multiple AppServers must respond to the same URLs…  Need a front‐end balancer/router

 Multiple candidates: Pound, HA‐Proxy, OpenShift

  • Dr. John Clevenger -- CSc 209

AppServer1

Spawn Machines

Resource Manager

AppServer2 AppServer3 Load Balancer

Http Requests to fixed Contest URLs

Admins, Judges, Teams, Spectators

?

slide-19
SLIDE 19

Back‐end Load Balancing

 Resource Manager automatically starts (one) AppServer,

Dispatcher, & Checker

 How does it determine when more are needed?

 RM must implement “system monitoring”

  • Dr. John Clevenger -- CSc 209

AppServer1

Spawn at Startup

Resource Manager Dispatcher1 Checker1

AppServer2 Dispatcher2 Checker2 Load Monitor

… … Check load Spawn new modules

slide-20
SLIDE 20

PC2V10 Contest Admin Interface

  • Dr. John Clevenger -- CSc 209

Submissions

AppServer

Jetty WebServer Jersey REST Services

Resource Manager

Dispatcher Checker

DB

Contest Administrator Contest Teams Contest Configuration

X

slide-21
SLIDE 21

Infrastructure Automation Tools

 Integrating DevOps into PC2 V10

 Development

 Design / Code / Test

 Operations

 Deployment / Monitoring / Scaling / Disaster Recovery /

Documentation

 Automation tools

 Puppet, Chef, Salt, Ansible, Google Borg*

 Integrate an appropriate tool into the PC2 V10

framework

  • Dr. John Clevenger -- CSc 209

* probably not available 

slide-22
SLIDE 22

Application Server Performance

 Current architecture uses embedded Jetty for web services:

  • Dr. John Clevenger -- CSc 209

Application

Jetty WebServer

Http requests Communications with other modules

 Differs from the traditional Application Server model:

  • Appl. Server

(e.g. TomCat, Websphere, …)

Application

Http requests

slide-23
SLIDE 23
  • App. Server Performance, cont.

 Two important questions:

 How scalable is the embedded Jetty model?  What are the performance characteristics of Jetty

  • vs. the traditional model?

 Tools and Frameworks exist for measuring these:

 Apache Jmeter, MultiMechanize, Siege, Locust, HttpPerf, …

  • Dr. John Clevenger -- CSc 209
slide-24
SLIDE 24

Possible Future Projects

 Expanding the Cloud CCS capabilities

 Additional User Interactions  Further work on cloud provider‐architecture

 Database Optimization for Scalability

 Configure various Master/Slave DBMS configurations  Use performance measurement tools to find optimal configuration

under loading

 Status Tracking

 Provide SysAdmins with tools to show module status/state, history,

traffic, etc.

  • Dr. John Clevenger -- CSc 209
slide-25
SLIDE 25

Background/Experience

 Extensive Java (preferably JavaEE)

 GUI creation  Event handling  Development tools (Eclipse, Git, …)  Design Patterns

 Web services

 Application Servers (Tomcat, Jetty, …)  REST principles  Web protocols and standards

 HTTP/S, HTML, JSON, XML, …

 Good English writing skills  A Penchant for Programming!

  • Dr. John Clevenger -- CSc 209
slide-26
SLIDE 26

Contact Info / Resumes:

Dr. John Clevenger

 email: clevenger@csus.edu  office: RVR 5018/5001

 Hours: by appointment

Thank You!

  • Dr. John Clevenger -- CSc 209