dr john clevenger
play

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


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

  2. Applied Research Areas  Operating Systems  Computer Graphics  Computer Game Architecture  Programming Contests Dr. John Clevenger -- CSc 209

  3. What’s a Programming Contest ?  Teams  Judges  Problems  Scoreboards and Scoring Algorithms  System Support Software Dr. John Clevenger -- CSc 209

  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

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

  6. ICPC World Finals Dr. John Clevenger -- CSc 209

  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

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

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

  10. Cloud Computing  What IS “cloud computing”? Dr. John Clevenger -- CSc 209

  11. The Cloud Computing Secret: Dr. John Clevenger -- CSc 209

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

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

  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, o IBM Bluemix, …. Dr. John Clevenger -- CSc 209

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

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

  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

  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 Admins, Judges, Teams, Spectators Resource AppServer1 Manager Spawn Machines ? Load AppServer2 Balancer Http Requests to fixed Contest URLs AppServer3 … Dr. John Clevenger -- CSc 209

  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” Resource Spawn at Startup Manager AppServer1 Load Check load Monitor Dispatcher1 Checker1 Spawn new modules AppServer2 Dispatcher2 Checker2 … … … Dr. John Clevenger -- CSc 209

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

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

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

  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

  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

  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

  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

Recommend


More recommend