dr. john clevenger - california state university,...

26
Dr. John Clevenger Professor of Computer Science, Emeritus California State University, Sacramento Technical Director ACM International Collegiate Programming Contest

Upload: others

Post on 17-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

Dr. John Clevenger• Professor of Computer Science, Emeritus

California State University, Sacramento

• Technical DirectorACM International Collegiate Programming Contest

Page 2: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

Applied Research Areas Operating Systems

Computer Graphics

Computer Game Architecture

Programming Contests

Dr. John Clevenger -- CSc 209

Page 3: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

What’s a Programming Contest ? Teams

Judges

Problems

Scoreboards and Scoring Algorithms

System Support Software

Dr. John Clevenger -- CSc 209

Page 4: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 5: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 6: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

ICPC World Finals

Dr. John Clevenger -- CSc 209

Page 7: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 8: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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…

Page 9: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

Dr. John Clevenger -- CSc 209

The CSUS  “PC2” CCS Used in contests around the world (including at 17 different ICPC 

World Finals)

PC2 Downloadsas of Spring 2014

Page 10: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

Cloud Computing

Dr. John Clevenger -- CSc 209

What IS “cloud computing”?

Page 11: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

The Cloud Computing Secret:

Dr. John Clevenger -- CSc 209

Page 12: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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,

…)

Page 13: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

ContestAdmins, Judges, Teams,

Spectators,…

Page 14: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

o Amazon WS, Google AppEngine, Microsoft Azure, IBM Bluemix, ….

Dr. John Clevenger -- CSc 209

Page 15: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

CaaS:  PC2 Version 10

Dr. John Clevenger -- CSc 209

AppServer

Jetty WebServer

Jersey REST

Services

MySQLDatabase

Spawn Machines

Resource Manager

Jetty

Dispatcher

Jetty

Checker

JettyRun

Compare

Compile

Spawn additional machines as needed

Http Requests

Page 16: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 17: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 18: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

?

Page 19: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

AppServer1Spawn at Startup Resource

Manager

Dispatcher1 Checker1

AppServer2 Dispatcher2 Checker2

Load Monitor

… …

Check load

Spawn new modules

Page 20: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 21: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 22: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 23: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 24: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 25: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

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

Page 26: Dr. John Clevenger - California State University, Sacramentoathena.ecs.csus.edu/~clevengr/209/CSc209.Spring2017.Presentation… · Dr. John Clevenger -- CSc 209 AppServer Jetty WebServer

Contact Info / Resumes:Dr. John Clevenger

email:  [email protected] 

office:  RVR 5018/5001

Hours:  by appointment

Thank You!

Dr. John Clevenger -- CSc 209