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 Computer Game Architecture Programming Contests Dr. John Clevenger -- CSc 209
What’s a Programming Contest ? Teams Judges Problems Scoreboards and Scoring Algorithms System Support Software Dr. John Clevenger -- CSc 209
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
ICPC 2016 ‐ 17 46,381 student contestants 2,948 universities 103 countries 530 sites spread over six “super ‐ regions” 41 st Annual World Finals: May 20 ‐ 25, 2017 in Rapid City, SD http://icpc.baylor.edu Dr. John Clevenger -- CSc 209
ICPC World Finals Dr. John Clevenger -- CSc 209
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
Contest Control Systems Scoreboard Admin Team1 Human Judge … Team2 Server Human Judge … TeamN Automated Judge (AJ) … Automated Judge (AJ) Server … Dr. John Clevenger -- CSc 209
The CSUS “ PC 2 ” CCS Used in contests around the world (including at 17 different ICPC World Finals) PC 2 Downloads as of Spring 2014 Dr. John Clevenger -- CSc 209
Cloud Computing What IS “cloud computing”? Dr. John Clevenger -- CSc 209
The Cloud Computing Secret: Dr. John Clevenger -- CSc 209
Cloud Computing Models Web Software as a Service (SaaS) clients Email, messaging, payroll processing, CAD, accounting, customer relations, games and VR, … (browsers, mobile apps, Platform as a Service (PaaS) thin (Programming tools, databases, web servers, …) clients, terminal emulators, Infrastructure as a Service (IaaS) …) (Virtual machines, servers, storage, …) Dr. John Clevenger -- CSc 209
Contest as a Service (CaaS) Software as a Service (SaaS) Contest Contest AutoJudge Contest Scoreboard Server Contest Team Contest Contest Admins, Admin Judges, Contest Teams, Human Spectators, Judge … Dr. John Clevenger -- CSc 209
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, o IBM Bluemix, …. Dr. John Clevenger -- CSc 209
CaaS: PC 2 Version 10 Resource Manager Spawn Machines Jetty AppServer MySQL Database Jetty WebServer Jersey REST Compile Http Requests Services Dispatcher Checker Run Jetty Jetty … Compare … Spawn additional machines as needed Dr. John Clevenger -- CSc 209
Current Ongoing Projects PC 2 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
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
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 Admins, Judges, Teams, Spectators Resource AppServer1 Manager Spawn Machines ? Load AppServer2 Balancer Http Requests to fixed Contest URLs AppServer3 … Dr. John Clevenger -- CSc 209
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” Resource Spawn at Startup Manager AppServer1 Load Check load Monitor Dispatcher1 Checker1 Spawn new modules AppServer2 Dispatcher2 Checker2 … … … Dr. John Clevenger -- CSc 209
PC2V10 Contest Admin Interface Contest Teams Resource AppServer Manager Jetty WebServer Submissions DB Jersey REST X Services Contest Configuration Checker Dispatcher Contest Administrator Dr. John Clevenger -- CSc 209
Infrastructure Automation Tools Integrating DevOps into PC 2 V10 Dev elopment Design / Code / Test Op eration s Deployment / Monitoring / Scaling / Disaster Recovery / Documentation Automation tools Puppet, Chef, Salt, Ansible, Google Borg* Integrate an appropriate tool into the PC 2 V10 framework * probably not available Dr. John Clevenger -- CSc 209
Application Server Performance Current architecture uses embedded Jetty for web services: Application Http Jetty Communications WebServer requests with other modules Differs from the traditional Application Server model: Appl. Server (e.g. TomCat, Websphere, …) Http requests Application Dr. John Clevenger -- CSc 209
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
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
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
Contact Info / Resumes: Dr. John Clevenger email: clevenger@csus.edu office: RVR 5018/5001 Hours: by appointment Thank You! Dr. John Clevenger -- CSc 209
Recommend
More recommend