Universidad Carlos Iii De Madrid Escuela Politécnica Superior

Total Page:16

File Type:pdf, Size:1020Kb

Universidad Carlos Iii De Madrid Escuela Politécnica Superior UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR INGENIERÍA DE TELECOMUNICACIÓN Delivering an Olympic Games Autor: Agustín Treceño Orgaz Tutor: Mario Muñoz Organero This page intentionally left blank Delivering an Olympic Games Agustin Treceno December 9, 2013 Dedicated to my parents. Abstract The technology involved in the distribution of the results during an Olympic Games is extremely complex. More than 900 servers, 1,000 network devices, 9,500 computers and 3,500 technologists are necessary to make it happen. Would it be possible to implement a solution with less resources using cutting edge tech- nology? The following study answers this question by designing two scalable and high performance web-based applications to manage tournaments offering a REST interface to stakeholders. The first solution architecture is based on Java using frameworks such as Spring and Hibernate. The second solution architec- ture uses JavaScript with frameworks such as NodeJS, AngularJS, Mongoose and Express. Contents 1 Introduction 1 1.1 Motivation .............................. 1 1.2 Objectives ............................... 1 1.3 About this document ......................... 2 1.3.1 Source code .......................... 2 1.3.2 Roadmap ........................... 2 2 Behind the Olympics 3 2.1 Architecture .............................. 3 2.2 The Olympic Data Feed ....................... 5 3 Spring Solution Architecture 9 3.1 Introduction to Spring ........................ 9 3.1.1 Features ............................ 9 3.1.1.1 Based on Plain Old Java Object (POJO) .... 10 3.1.1.2 Loose coupling through Dependency Injection (DI) and interface orientation ........... 10 3.1.1.3 Separation of concerns through Aspect-Oriented Programming (AOP) ............... 10 3.1.1.4 Boilerplate reduction through templates ..... 11 i 3.1.2 Spring Modules ........................ 11 3.1.3 The IoC Container ...................... 12 3.1.4 Aspect-Oriented Programming (AOP) ........... 14 3.1.5 Alternatives to Spring .................... 15 3.2 Design and Implementation ..................... 17 3.2.1 Java Scaffolding ....................... 17 3.2.2 Persistence Layer ....................... 20 3.2.2.1 The Model ..................... 20 3.2.2.2 Configuring JPA .................. 20 3.2.2.3 Creating Entities .................. 25 3.2.2.4 JavaBean Support ................. 28 3.2.2.5 Bean Validation .................. 30 3.2.2.6 Using Reflection .................. 30 3.2.2.7 Comparing Entities ................ 30 3.2.2.8 Defining Entity Relationships ........... 31 3.2.2.9 Active Record Pattern ............... 33 3.2.2.10 Repository Pattern ................ 37 3.2.3 Service Layer ......................... 39 3.2.3.1 Configuring a Service Layer ............ 39 3.2.3.2 Transaction Management ............. 41 3.2.4 Web Layer .......................... 44 3.2.4.1 The Basics ..................... 44 3.2.4.2 Setting up Spring MVC .............. 44 3.2.4.3 Adding Security .................. 56 3.3 Cloud Deployment .......................... 59 3.3.1 Pivotal CF with ClearDB .................. 60 3.3.2 Heroku with Amazon RDS ................. 65 3.4 Testing ................................. 75 3.4.1 Logic Unit Tests ....................... 76 3.4.2 Integration Unit Tests .................... 78 3.4.3 Front-end Unit Tests ..................... 82 ii 3.4.4 Integration Tests ....................... 92 3.4.5 Non-functional Tests ..................... 94 3.4.5.1 Load testing with Siege .............. 94 3.4.5.2 Stress Testing with Siege ............. 110 4 NodeJS Solution Architecture 117 4.1 Introduction to NodeJS ....................... 117 4.2 Design and Implementation ..................... 118 4.2.1 JavaScript Scaffolding .................... 118 4.2.2 Responsive Web Design ................... 121 4.2.2.1 Zurb Foundation .................. 122 4.2.2.2 Twitter Bootstrap ................. 126 4.2.3 Build Process ......................... 129 4.3 Cloud Deployment .......................... 132 4.4 Testing ................................. 134 4.4.1 Unit Tests ........................... 134 4.4.2 End-to-End Tests ....................... 139 4.4.3 Non-functional Tests ..................... 144 4.4.3.1 Load testing with Siege .............. 144 4.4.3.2 Stress Testing with Siege ............. 153 5 Conclusions and Future Work 160 5.1 Conclusions .............................. 160 5.2 Future Work ............................. 161 5.2.1 Real-time Results ....................... 162 5.2.2 Offline Capabilities ...................... 162 5.2.3 Speeding-up Results ..................... 162 A Working with Git 163 A.1 The Basics .............................. 164 A.2 Initialising a Repository ....................... 165 A.3 Adding a Remote Repository .................... 168 A.4 Working within a Team ....................... 169 iii B Installing MySQL 177 B.1 Installation on Mac OS X ...................... 177 B.2 Post-installation set-up ........................ 180 C Installing Apache Benchmark 183 D Quote 186 References 192 iv List of Figures 2.1 Architecture of the results information system ........... 4 3.1 DI trends from July 2010 to July 2013 (source: Google Trends) . 16 3.2 EER Model of a sporting event (Crow’s foot notation) ...... 21 3.3 Cloud Foundry plugin for STS ................... 61 3.4 Pivotal CF web interface ....................... 64 3.5 Diaulos deployed to Pivotal CF ................... 66 3.6 Heroku Dashboard - Diaulos ..................... 67 3.7 AWS Management Console ..................... 70 3.8 Selenium IDE ............................. 85 3.9 Memory usage with one web dyno ................. 93 3.10 Server Response Time - Load Testing - Diaulos .......... 102 3.11 Server Throughput - Load Testing - Diaulos ............ 104 3.12 Apdex Score - Load Testing - Diaulos ............... 104 3.13 Top Web Transactions - Load Testing - Diaulos .......... 106 3.14 List of Web Transactions - Load Testing - Diaulos ........ 106 3.15 Database Response Time - Load Testing - Diaulos ........ 107 3.16 Database Throughput - Load Testing - Diaulos .......... 107 3.17 Top DB Operations - Load Testing - Diaulos ........... 108 v 3.18 Number of instances and Load - Load Testing - Diaulos ..... 108 3.19 CPU Usage - Load Testing - Diaulos ................ 109 3.20 Memory Usage - Load Testing - Diaulos .............. 109 3.21 Garbage Collector Usage - Load Testing - Diaulos ......... 109 3.22 Server Response Time - Stress Testing - Diaulos .......... 112 3.23 Server Throughput - Stress Testing - Diaulos ........... 112 3.24 Apdex Score - Stress Testing - Diaulos ............... 112 3.25 Top Web Transactions - Stress Testing - Diaulos ......... 113 3.26 Database Response Time - Stress Testing - Diaulos ........ 113 3.27 Database Throughput - Stress Testing - Diaulos .......... 114 3.28 Top DB Operations - Stress Testing - Diaulos ........... 114 3.29 Number of instances and Load - Stress Testing - Diaulos ..... 115 3.30 CPU Usage - Stress Testing - Diaulos ............... 115 3.31 Memory Usage - Stress Testing - Diaulos .............. 116 3.32 Garbage Collector Usage - Stress Testing - Diaulos ........ 116 4.1 Programming languages trend (source: GitHub) .......... 118 4.2 Heroku Dashboard - Stadion .................... 133 4.3 Stadion deployed to Heroku ..................... 135 4.4 E2E Tests with Selenium - Stadion ................. 141 4.5 Server Response Time - Load Testing - Stadion .......... 150 4.6 Server Throughput - Load Testing - Stadion ............ 150 4.7 Apdex Score - Load Testing - Stadion ............... 150 4.8 Top Web Transactions - Load Testing - Stadion .......... 151 4.9 Database Response Time - Load Testing - Stadion ........ 152 4.10 Database Throughput - Load Testing - Stadion .......... 152 4.11 Top Database Operations - Load Testing - Stadion ........ 152 4.12 Memory Usage - Load Testing - Stadion .............. 153 4.13 Server Response Time - Stress Testing - Stadion ......... 155 4.14 Server Throughput - Stress Testing - Stadion ........... 155 4.15 Apdex Score - Stress Testing - Stadion ............... 156 vi 4.16 Top Web Transactions - Stress Testing - Stadion ......... 156 4.17 Web Transactions (detail) - Stress Testing - Stadion ....... 157 4.18 Database Response Time - Stress Testing - Stadion ........ 157 4.19 Database Throughput - Stress Testing - Stadion ......... 157 4.20 Top Database Operations - Stress Testing - Stadion ....... 158 4.21 Memory Usage - Stress Testing - Stadion .............. 158 A.1 Git Workflow ............................. 175 D.1 Scrum task board ........................... 188 vii List of Tables 3.1 Spring Modules ............................ 12 3.2 User Simulation - Load Testing - Diaulos ............. 103 3.3 Competition Simulation - Load Testing - Diaulos ......... 103 3.4 Web Transactions - Load Testing - Diaulos ............ 105 3.5 User Simulation - Stress Testing - Diaulos ............. 110 3.6 Competition Simulation - Stress Testing - Diaulos ......... 111 4.1 User simulation - Load Testing - Stadion .............. 148 4.2 Competition simulation - Load Testing - Stadion ......... 149 4.3 Web transactions - Load Testing - Stadion ............. 151 4.4 User Simulation - Stress Testing - Stadion ............. 154 4.5 Competition Simulation - Stress Testing - Stadion ........ 154 4.6 User Simulation - Stress Testing (2 web dynos) .......... 159 4.7 Competition Simulation - Stress Testing (2 web dynos) ...... 159 B.1 Content of MySQL home folder ................... 180 D.1 Quote ................................. 187
Recommended publications
  • Spring Roo - Reference Documentation
    Spring Roo - Reference Documentation DISID CORPORATION S.L. Table of Contents Getting started . 1 1. Overview . 2 2. What’s new in Spring Roo 2.0 . 3 Improved extensibility . 3 No backward compatibility . 3 Usability improvements . 3 Centered in Spring technologies . 3 Application architecture . 4 Domain model . 4 View layer . 4 3. Requirements . 6 4. Install Spring Roo . 7 Using Spring Roo . 9 5. The Roo shell . 10 6. Impatient beginners . 12 7. Create your Spring Boot application . 13 8. Configure the project settings . 14 9. Setup the persistence engine . 15 10. The domain model . 16 JPA entities . 16 DTOs . 20 11. The data access layer . 21 Spring Data repositories . 21 Default queries . 21 12. The service layer . 22 Service API and Impl . 22 13. The view layer . 23 Thymeleaf view engine . 23 Spring MVC Controllers . 23 Spring Webflow . 25 14. The integration layer . 26 REST API . 26 WS API . 26 Email . ..
    [Show full text]
  • What's New in GWT?
    What’s New in GWT? David Chandler Google Web Toolkit Team Atlanta, GA USA [email protected] 1 Agenda Why rich Web apps with GWT? GWT Quickstart Developer tools GWT performance for your users Building with GWT 2.12 2 GWT in 10 sec Asynchronous JavaScript And XML++ 3 GWT in 60 sec Open source Java to JavaScript compiler Lets you write rich Web apps in Java Cross-browser just works (FireFox, Chrome, Safari, IE 6+) Produces small, fast JavaScript Easy (and efficient) RPC Great for large projects / teams 4 Browser-Proof Your JS Code IE Firefox Safari Chrome Opera 5 5 No plugins required Silverlight VML Flash 6 6 Can you find the bug? Hint: JavaScript is a dynamic language 7 7 Catch errors at compile time Java is a static language 8 8 Completion, refactoring... 9 9 Eating our own dogfood += AdSense, Maps, Docs, Groups... 10 10 Demos Booked In Typing race 11 Rich ecosystem www.gwtmarketplace.com 12 More ecosystem Util: GIN, gwt-dnd, gwt-fx, gwt-comet, ... Widgets: EXT-GWT, Smart-GWT, ... Frameworks: Vaadin! 13 4+ years in review May 2006 GWT 1.0 Launch at JavaOne … … Aug 2008 GWT 1.5 Java 5 language support Apr 2009 GWT 1.7 Dedicated IE8 support Fall 2009 GWT 2.0 UIBinder (XML template), runAsync() Oct 2010 GWT 2.1 MVP, RequestFactory, Spring Roo 14 14 GWT delivers... Productivity for developers - Language, IDEs, tools, libraries - People, ecosystem Performance for users - 'Perfect' caching - Whole program optimization 15 15 Developing with GWT Develop - Google Plugin for Eclipse, GWT Designer, STS / Roo Debug - In Eclipse with dev mode
    [Show full text]
  • Great Lakes Software Symposium Westin Chicago Northwest November 11 - 13, 2011
    Great Lakes Software Symposium Westin Chicago Northwest November 11 - 13, 2011 Fri, Nov. 11, 2011 Ballroom 3-4 Ballroom 1-2 Gallery Chambers Stanford Trafalgar 12:00 - 1:00 PM REGISTRATION 1:00 - 1:15 PM WELCOME 1:15 - 2:45 PM What's new in Spring Resource-Oriented Programming HTML5 Concurrency without Busy Java Introduction to Lean-Agile Craig Walls Architectures : REST I Tim Berglund pain in pure Java Developer's Software Development Brian Sletten Venkat Subramaniam Guide to Java 7 Paul Rayner Ted Neward 2:45 - 3:15 PM BREAK 3:15 - 4:45 PM NoXML: Spring Resource-Oriented NoSQL Smackdown! Collections for Concurrency Busy Java Measure for Measure for XML-Haters Architectures : REST II Tim Berglund Venkat Subramaniam Developer's Guide – Lean Principles Craig Walls Brian Sletten to Multi-Paradigm Design for Effective Metrics Ted Neward and Motivation Paul Rayner 4:45 - 5:00 PM BREAK 5:00 - 6:30 PM Introducing Spring Strategic Design Cassandra: Radical Towards a Humane Busy Java Resource-Oriented Roo: From Zero Using DDD NoSQL Scalability Interface—Aesthetics Developer's Architectures : to Working Spring Paul Rayner Tim Berglund and Usability Guide to Guava RDF/SPARQL Application in Record Time Venkat Subramaniam Ted Neward Brian Sletten Craig Walls 6:30 - 7:15 PM DINNER 7:15 - 8:00 PM Keynote: by Venkat Subramaniam Great Lakes Software Symposium Westin Chicago Northwest November 11 - 13, 2011 Sat, Nov. 12, 2011 Ballroom 3-4 Ballroom 1-2 Gallery Chambers Stanford Trafalgar 8:00 - 9:00 AM BREAKFAST 9:00 - 10:30
    [Show full text]
  • Characters and Numbers A
    Index ■Characters and Numbers by HTTP request type, 313–314 #{ SpEL statement } declaration, SpEL, 333 by method, 311–312 #{bean_name.order+1)} declaration, SpEL, overview, 310 327 @Required annotation, checking ${exception} variable, 330 properties with, 35 ${flowExecutionUrl} variable, 257 @Resource annotation, auto-wiring beans with ${newsfeed} placeholder, 381 all beans of compatible type, 45–46 ${resource(dir:'images',file:'grails_logo.pn g')} statement, 493 by name, 48–49 ${today} variable, 465 overview, 42 %s placeholder, 789 single bean of compatible type, 43–45 * notation, 373 by type with qualifiers, 46–48 * wildcard, Unix, 795 @Value annotation, assigning values in controller with, 331–333 ;%GRAILS_HOME%\bin value, PATH environment variable, 460 { } notation, 373 ? placeholder, 624 ~.domain.Customer package, 516 @Autowired annotation, auto-wiring 23505 error code, 629–631 beans with all beans of compatible type, 45–46 ■A by name, 48–49 a4j:outputPanel component, 294 overview, 42 AboutController class, 332 single bean of compatible type, 43–45 abstract attribute, 49, 51 by type with qualifiers, 46–48 AbstractAnnotationAwareTransactionalTe @PostConstruct annotation, 80–82 sts class, 566 @PreDestroy annotation, 80–82 AbstractAtomFeedView class, 385–386 @RequestMapping annotation, mapping AbstractController class, 298 requests with AbstractDependencyInjectionSpringConte by class, 312–313 xtTests class, 551–552, 555 985 ■ INDEX AbstractDom4jPayloadEndpoint class, AbstractTransactionalTestNGSpringConte 745, 747 xtTests class, 555,
    [Show full text]
  • Generation of an Architecture View for Web Applications Using a Bayesian Network Classifier Juan-Carlos Castrejon-Castillo, Rafael Lozano, Genoveva Vargas-Solar
    Generation of an Architecture View for Web Applications using a Bayesian Network Classifier Juan-Carlos Castrejon-Castillo, Rafael Lozano, Genoveva Vargas-Solar To cite this version: Juan-Carlos Castrejon-Castillo, Rafael Lozano, Genoveva Vargas-Solar. Generation of an Architecture View for Web Applications using a Bayesian Network Classifier. CONIELECOMP 2012 - International Conference on Electrical Communications and Computers, Feb 2012, Cholula, Puebla, Mexico. pp.368- 373, 10.1109/CONIELECOMP.2012.6189940. hal-00922891 HAL Id: hal-00922891 https://hal.archives-ouvertes.fr/hal-00922891 Submitted on 2 Jan 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Generation of an Architecture View for Web Applications using a Bayesian Network Classifier Juan Castrejon,´ Rafael Lozano Genoveva Vargas-Solar Campus Ciudad de Mexico´ LIG-LAFMIA Labs Instituto Tecnologico´ y de Estudios Superiores de Monterrey Centre National de la Recherche Scientifique fA00970883, [email protected] [email protected] Abstract—A recurring problem in software engineering is the apply changes to individual components, by maintaining clear correct definition and enforcement of an architecture that can responsibilities and dependencies by means of three logical guide the development and maintenance processes of software grouping layers, that is, Model, View and Controller layer.
    [Show full text]
  • Getting Started with Roo
    Getting Started with Roo Getting Started with Roo Josh Long and Steve Mayzak Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Getting Started with Roo by Josh Long and Steve Mayzak Copyright © 2011 Josh Long and Steve Mayzak. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mike Loukides Cover Designer: Karen Montgomery Production Editor: Jasmine Perez Interior Designer: David Futato Proofreader: O’Reilly Production Services Illustrator: Robert Romano Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Getting Started with Roo, the image of the common tree kangaroo, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-30790-5 [LSI] 1312551620 Table of Contents Preface ..................................................................... vii 1. Your First Intrepid Hops … err, Steps .....................................
    [Show full text]
  • Spring Roo in Action by Ken Rimple, Srini Penchikala
    MANNING Ken Rimple Srini Penchikala FOREWORD BY BEN ALEX Spring Roo in Action by Ken Rimple, Srini Penchikala Chapter 10 Copyright 2012 Manning Publications brief contents PART 1STARTING SPRING APPS RAPIDLY WITH ROO...................1 1 ■ What is Spring Roo? 3 2 ■ Getting started with Roo 25 PART 2DATABASES AND ENTITIES ........................................... 55 3 ■ Database persistence with entities 57 4 ■ Relationships, JPA, and advanced persistence 93 PART 3WEB DEVELOPMENT...................................................125 5 ■ Rapid web applications with Roo 127 6 ■ Advanced web applications 156 7 ■ RIA and other web frameworks 173 8 ■ Configuring security 189 PART 4INTEGRATION ...........................................................209 9 ■ Testing your application 211 10 ■ Enterprise services—email and messaging 243 11 ■ Roo add-ons 266 12 ■ Advanced add-ons and deployment 296 vii viii BRIEF CONTENTS PART 5 ROO IN THE CLOUD...................................................321 13 ■ Cloud computing 323 14 ■ Workflow applications using Spring Integration 337 Enterprise services— email and messaging This chapter covers Roo support for enterprise services Asynchronous messaging using a JMS topic Email service Asynchronous messaging using a JMS queue Monitoring messaging activity In the previous two chapters, you secured your Roo application by adding the Spring Security API to the application architecture mix, and you learned how to enrich the web tier of the Roo application so it’s functional from a business stand­ point. In addition to robust security features and a rich user interface, a real-world application also requires services such as customer email notification and offline data processing that occurs outside of your main business operations, where your customers receive notifications about results at a later time. In this chapter, we discuss the integration that the Roo framework provides for email and asynchronous messaging using the Java Message Service (JMS) API.
    [Show full text]
  • Vysoké Uˇcení Technické V Brnˇe Srovnání Nástroj˚U Seam Forge a Spring
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Digital library of Brno University of Technology VYSOKÉ UCEN͡ TECHNICKÉ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACNÍCHˇ TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMU˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS SROVNÁNÍ NÁSTROJU˚ SEAM FORGE A SPRING ROO THE COMPARISON OF SEAM FORGE AND SPRING ROO TOOLS BAKALÁRSKÁˇ PRÁCE BACHELOR’S THESIS AUTOR PRÁCE ONDREJˇ NAVLÁCILˇ AUTHOR VEDOUCÍPRÁCE ING.RADEKKOCÍ,ˇ PH.D. SUPERVISOR BRNO 2013 Abstrakt Cílem této bakalárskéˇ práce je porovnat nástroje pro rapidní vývoj Spring Roo a JBoss Forge na tvorbeˇ vzorových aplikací, které budou poté nasazeny na aplikacníˇ server JBoss AS. Práce v první cástiˇ popisuje vývoj platformy Java EE, nástroj˚ua framework˚upro rapidní vývoj internetových aplikací obecne,ˇ d˚uvod potrebyˇ techtoˇ nástroj˚upro platformu Java EE. Ve druhé cástiˇ je popsána tvorba jednoduchých aplikací se stejnou funkcionalitou s nástroji Spring Roo a JBoss Forge a porovnání jejich možností, jako podpora tvorby test˚u,použití na již vytvorenéˇ aplikaci, ciˇ podpora ve vývojových prostredích.ˇ Abstract The goal of this bachelor’s thesis is to compare the rapid application development tools Spring Roo and JBoss Forge and to deploy created applications on the JBoss AS application server. The first part this thesis describes an evolution of Java EE platform, evolution of tools and frameworks for rapid application development and also reasons for a need of these tools in Java EE platform. The second part describes creation of simple applications with the same functionality using Spring Roo and JBoss Forge.
    [Show full text]
  • Überconf Westin Westminster July 12 - 15, 2011
    ÜberConf Westin Westminster July 12 - 15, 2011 Tue, Jul. 12, 2011 Westminster I Westminster II Standley I Standley II Cotton Creek I Cotton Creek II Meadowbrook I Meadowbrook II Windsor Waverly 8:00 - 9:00 AM EARLY REGISTRATION: iOS & ANDROID WORKSHOPS ATTENDEES ONLY - WESTMINSTER BALLROOM FOYER 9:00 - 6:00 PM Fundamentals Android of iOS Apps Training - Development Full Day (day long) Ted Neward Venkat Subramaniam 5:00 - 6:30 PM MAIN UBERCONF REGISTRATION - WESTMINSTER BALLROOM FOYER 6:30 - 8:30 PM DINNER/KEYNOTE - WESTMINSTER BALLROOM 3/4 7:30 - 8:30 PM Keynote: by Terry Ryan 8:30 - 10:30 PM OPENING NIGHT OUTDOOR RECEPTION - SOUTH COURTYARD ÜberConf Westin Westminster July 12 - 15, 2011 Wed, Jul. 13, 2011 Westminster I Westminster II Standley I Standley II Cotton Creek I Cotton Creek II Meadowbrook I Meadowbrook II Windsor Waverly 7:00 - 8:00 AM 5K FUN RUN & POWER WALK - MEET IN LOBBY 7:30 - 8:30 AM BREAKFAST & LATE REGISTRATION - WESTMINSTER BALLROOM 3/4 8:30 - 10:00 AM Programming Economic Programming Continuous Agile.next Architectural Effective What's Strategic Building Concurrency Games in HTML5 Delivery Neal Ford Choices around Groovy new in Spring Design Workflow (Full Day) Software Tim Berglund Part I: Value Open Source Hamlet D`Arcy Craig Walls Using DDD Applications Venkat Projects proposition, the Solutions Paul Rayner with StonePath Subramaniam Matthew deployment Alex Antonov David Bock McCullough pipeline, automated tests, CI Jez Humble 10:00 - 10:30 AM MORNING BREAK 10:30 - 12:00 PM Programming Sonar: Code NoSQL Continuous
    [Show full text]
  • Spring 3.1 and Beyond – Themes and Trends
    Spring 3.1 and Beyond – Themes and Trends Jürgen Höller, Principal Engineer, SpringSource CONFIDENTIAL © 2010 SpringSource, A division of VMware. All rights reserved Deployment Platforms: Becoming More Diverse Application Application Application Spring Spring Spring + Libs + Libs + Libs WebSphere Tomcat Cloud Platform CONFIDENTIAL 2 Deployment Platforms in 2011: Latest Releases . Java EE moving on to Java EE 6 • GlassFish 3 • JBoss 6 • Other servers still on Java EE 5 (at best) . Tomcat moving on to Tomcat 7 • Servlet 3.0 based (Java EE 6 level) . Cloud platforms becoming a serious option for regular Java web application deployment • Google App Engine: Jetty++ • Amazon Elastic Beanstalk: Tomcat++ CONFIDENTIAL 3 Wide Variety of Data and Datastores . Not all data resides in relational databases • cloud environments often suggest alternatives for scalability reasons • BigTable, Redis, Mongo, etc . Distributed caches add challenges as well • not least of it all in terms of application-level access patterns • GemFire, Coherence, etc . Hardly any standardization available • just an abandoned caching JSR that never achieved a final release • caching – but only caching – possibly getting picked up in Java EE 7 • alternative datastore space is too diverse CONFIDENTIAL 4 Wide Variety of Web Clients . More and more client-side web technologies • HTML 5 as a next-generation browser standard • Adobe Flex as a rich client technology on the basis of Flash . Server-side state to be minimized or even removed completely • in particular: no server-side user interface state • strictly controlled user session state . JSF's state-centric approach not too desirable anymore • except for special kinds of applications (which it remains very useful for) • general web applications and web services based on JAX-RS / MVC style • nevertheless: JSF keeps evolving – JSF 2.2 coming up in Q4 2011 CONFIDENTIAL 5 Java SE 7: Concurrent Programming .
    [Show full text]
  • Client-Server Web Apps with Javascript and Java
    Client-Server Web Apps with JavaScript and Java Casimir Saternos Client-Server Web Apps with JavaScript and Java by Casimir Saternos Copyright © 2014 EzGraphs, LLC. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or [email protected]. Editors: Simon St. Laurent and Allyson MacDonald Indexer: Judith McConville Production Editor: Kristen Brown Cover Designer: Karen Montgomery Copyeditor: Gillian McGarvey Interior Designer: David Futato Proofreader: Amanda Kersey Illustrator: Rebecca Demarest April 2014: First Edition Revision History for the First Edition: 2014-03-27: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449369330 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Client-Server Web Apps with JavaScript and Java, the image of a large Indian civet, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
    [Show full text]
  • Springsource Tool Suite 2.2.0.Release - New and Noteworthy
    SPRINGSOURCE TOOL SUITE 2.2.0.RELEASE - NEW AND NOTEWORTHY SpringSource Tool Suite 2.2.0 - New and Noteworthy - Christian Dupuis 2.2.0 October 4, 2009 Updated for 2.2.0.RELEASE www.springsource.com SPRINGSOURCE TOOL SUITE 2.2.0.RELEASE - NEW AND NOTEWORTHY NEW FEATURES – 2.2.0.RELEASE Spring Development Tools Only IDE to fully support latest Spring 3.0 STS has been updated to support latest versions of Spring 3.0 (including RC1 and RC2). Editing, Validating and Visualization of Autowire-based Configurations Spring configurations based on @Autowired, @Resource and custom annotations can now be visualized and validated within STS. This feature can be mixed and matched with traditional XML-based configurations and understands qualifier annotations and XML definitions. To enable the visualization of autowired bean dependencies, open the STS preferences and navigate to Spring -> Beans Support and check the “Display extended content” option. In order to turn on validation warnings and errors displayed in the Java Editor, enable the “Annotation-based Autowiring Rule” of the “Beans Validator” (Preferences -> Spring -> Project Validators). www.springsource.com SPRINGSOURCE TOOL SUITE 2.2.0.RELEASE - NEW AND NOTEWORTHY Visualization and Testing of REST and MVC Applications Usages of @RequestMapping annotations can now be visualized in a separate view called “@RequestMappings”. To open the view select the configuration file of configuration set in the Spring Explorer and select “Show Request Mappings” in the context menu. The view allows accessing the URL in an embedded web browser. The user is queried for required values defined in the REST-style URL.
    [Show full text]