Download Slides

Total Page:16

File Type:pdf, Size:1020Kb

Download Slides !SQL - Augmenting the RDBMS with a Distributed Key Value Store in the Real World or “Consistency, schmistency....” Geir Magnusson Jr V.P. Platform and Architecture Gilt Groupe Inc. [email protected] Agenda ‣ About Me ‣ The Talk in One slide ‣ Gilt : What We Do and Why We Needed !SQL ‣ Goal : Turning off the RDBMS at Peak ‣ Project Voldemort : What it is and why we chose it ‣ Summary About Me ‣ VP, Platform and Architecture at Gilt Groupe ‣ Commercial developer for 20+ years ‣ Bloomberg, Intel, IBM, Gluecode, Adeptra, Joost, 10gen ‣ Open source practitioner and advocate for 10 years ‣ Apache Software Foundation ‣ Member, Director, Officer ‣ Apache Geronimo, Apache Harmony, Apache DB, Apache Velocity, Jakarta Commons, etc ‣ Codehaus ‣ Project Voldemort ‣ Not a database domain expert The Talk in One Slide Modern data-oriented apps are forcing us - programmers, architects, and C[I|T]Os - rethink our applications and data models. Thankfully, databases are changing in response. You should go investigate these new technologies. (It turns out this is ok, since as object oriented programmers, we want to get away from this relational hooey anyway.) The Summary Slide From the End ‣ The RDBMS is great - it’s served us well for almost 40 years. ‣ We’re in a kind of “renaissance” for databases ‣ New problems challenge status quo architectures ‣ Advances in distributed computing gives us powerful alternatives ‣ This is changing how we approach data in our apps ‣ Different APIs ‣ Different responsibilities as programmers ‣ This stuff works - people use it in anger ‣ Expand your professional toolbox - go play and learn Gilt : What we do and why we needed !SQL (and where I learned what a “Louboutin” was) About Gilt Groupe (not a sales pitch) http://www.gilt.com/ Gilt Groupe provides access, by invitation only, to the world’s best brands at prices up to 70% off retail. Each sale lasts 36 hours and features hand selected styles from a single designer. How does it work? ‣ Every day we run 10-20 sales of limited-inventory luxury goods ‣ Members know who the designers are, but not the specific items ‣ Sales begin at 12 o’clock sharp (EST) ‣ Members scramble to get items into shopping carts - can reserve for 10 minutes only From an actual member... “Today was round II of Gilt Groupe's Final Sale. […] I clicked BUY NOW, and it was in someone's shopping cart so I proceeded to click BUY NOW, BUY NOW, BUY NOW, BUY NOW, BUY NOW, BUY NOW, BUY NOW, BUY NOW, BUY NOW,BUY NOW, BUY NOW, BUY NOW, BUY NOW, for the next 5 minutes and then................................. a shopping angel reigned down from heaven and it was in my shopping cart! I scored the ADAM find that was normally $375 for $68.” Activity Funnel D I A)! Millions of page views / hour, fast ramp F up F I C B)! High volume transactions (registration, login, wait list) U L T Y C)! High volume, shared state (add to cart, checkout) “Shared nothing” Architecture F5 F5 Zeus Zeus RoR thin RoR thin RoR thin RoR thin DB Are you sure it’s “Shared-Nothing”? F5 F5 Zeus Zeus RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 Nothing is RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 shared! RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 Don’t look here. Nothing DB to see here. Move along. “Half an Amazon” “What’s that burning smell?” F5 F5 Zeus Zeus RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 DB Goal : Turn off the RDBMS at peak Activity Funnel D I A)! Millions of page views / hour, fast ramp F up F I C B)! High volume transactions (registration, login, wait list) U L T Y C)! High volume, shared state (add to cart, checkout) Transaction sequence Inventory Shopping Cart Checkout Inventory Management ‣ This is our highest transactional load ‣ Must be sure to provide a ‘reservation’ to a product unit once and only once ‣ Must be fast and durable Inventory Solution ‣ Partition inventory so horizontally scalable ‣ Custom server keeps all assigned inventory in memory ‣ All operations are in memory, transactional - lock at SKU level ‣ Local write-behind transaction log for recovery Server Server Server Server Single JVM Single JVM Single JVM Single JVM in-memory inventory in-memory inventory in-memory inventory in-memory inventory data data data data Inventory Service Inventory Service Inventory Service Inventory Service (request processor) (request processor) (request processor) (request processor) tx log tx log tx log tx log partition 0 partition 1 partition 2 partition 3 DB Shielded from Inventory Requests F5 F5 Zeus Zeus RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 Server Server Server Server Single JVM Single JVM Single JVM Single JVM in-memory inventory in-memory inventory in-memory inventory in-memory inventory data data data data RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 Inventory Service Inventory Service Inventory Service Inventory Service RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 (request processor) (request processor) (request processor) (request processor) RoR thin x5 RoR thin x5 RoR thin x5 RoR thin x5 tx log tx log tx log tx log DB Transaction sequence Inventory Shopping Cart Checkout Shopping Cart and Order Processing ‣ Shopping Cart : High tx activity and churn on hundreds of thousands of ~5k documents. Speed and availability important, less worried about losing data. (single write) ‣ Order processing : Lower tx activity, need high- availability and multi-copy writes (we don’t want to lose them!) Need availability and speed ‣ We decided early on that Amazon’s Dynamo approach was the way to go http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf ‣ Project Voldemort was the only implementation at the time in production that we could find http://project-voldemort.com ‣ I’m a Java Weenie (tm) so I like the fact that it’s written in Java What is Project Voldemort ‣ Distributed “key value” store designed for availability Survive server failures and network partitions ‣ Combines several techniques : ‣ Decentralized architecture - no master ‣ Data partitioned and replicated via consistent hashing ‣ Multi-node reads and writes for redundancy ‣ Objects are versioned for consistency ‣ Pluggable persistence Basic Architecture Client JVM Client application Voldemort Client Library Server Server Server Server JVM JVM JVM JVM Voldemort Server Voldemort Server Voldemort Server Voldemort Server StorageEngine StorageEngine StorageEngine StorageEngine BDB BDB BDB BDB Consistent Hashing ‣ Keys hash to a point on fixed circular 2^32-1 0 0 space 7 1 6 Circular space is divided into a large 2 ‣ 5 3 set of ordered buckets, called nodes 4 ‣ Nodes are distributed across servers 2^32-1 0 0 7 1 6 2 5 3 4 0, 4 1,5 2,6 3,7 Storage Storage Storage Storage Vector Clocks ‣ Mechanism to disambiguate between versions of the same object ‣ Non-locking optimistic locking ‣ A vector clock is a list of (nodeID, counter) tuples ‣ Every object has a vector clock, which is updated on each write, and examined on each read ‣ Explicit in the client API Vector Clocks When an object is read, if there are multiple versions and Voldemort canʼt figure it out... you have to! &16+*,;'O#'02$*,/*+4',(/)'/)'#&,'./>+."'1+*$-)+',(+'52/,+)'$2+'-)-$.."' ($#3.+3'1"'&#+'&9',(+',&0'L'#&3+)'/#',(+'02+9+2+#*+'./),;'O#'*$)+'&9' #+,5&2>'0$2,/,/&#)'&2'%-.,/0.+')+27+2'9$/.-2+)4'52/,+'2+D-+),)'%$"' 3 servers : Sx, Sy, Sz 1+' ($#3.+3' 1"' #&3+)' ,($,' $2+' #&,' /#' ,(+' ,&0' L' #&3+)' /#' ,(+' 02+9+2+#*+'./),'*$-)/#8',(+')/M+'&9'7+*,&2'*.&*>',&'82&5;'O#',(+)+' )*+#$2/&)4'/,'/)'3+)/2$1.+',&'./%/,',(+')/M+'&9'7+*,&2'*.&*>;'=&',(/)' +#34' !"#$%&' +%0.&")' ,(+' 9&..&5/#8' *.&*>' ,2-#*$,/&#' )*(+%+R' <.&#8'5/,('+$*('A#&3+4'*&-#,+2C'0$/24'!"#$%&'),&2+)'$',/%+),$%0' Sequence of writes : ,($,'/#3/*$,+)',(+'.$),',/%+',(+'#&3+'-03$,+3',(+'3$,$'/,+%;'S(+#' ,(+'#-%1+2'&9'A#&3+4'*&-#,+2C'0$/2)'/#',(+'7+*,&2'*.&*>'2+$*(+)'$' D1 ,(2+)(&.3' A)$"' FTC4' ,(+' &.3+),' 0$/2' /)' 2+%&7+3' 92&%' ,(+' *.&*>;' U.+$2."4' ,(/)' ,2-#*$,/&#' )*(+%+' *$#' .+$3' ,&' /#+99/*/+#*/+)' /#' 2+*&#*/./$,/&#' $)' ,(+' 3+)*+#3$#,' 2+.$,/&#)(/0)' *$##&,' 1+' 3+2/7+3' D2 $**-2$,+.";'V&5+7+24',(/)'02&1.+%'($)'#&,')-29$*+3'/#'02&3-*,/&#' D3 / D4 $#3',(+2+9&2+',(/)'/))-+'($)'#&,'1++#',(&2&-8(."'/#7+),/8$,+3;'' !"#! $%&'()*+,-+.-/&)-01-2,3-4()-01-+4&52)*+,6- D5 <#"'),&2$8+'#&3+'/#'!"#$%&'/)'+./8/1.+',&'2+*+/7+'*./+#,'8+,'$#3' ' 0-,&&0+2$,/&#)'9&2'$#"'>+";'O#',(/)')+*,/&#4'9&2')$>+'&9')/%0./*/,"4' 5+'3+)*2/1+'(&5',(+)+'&0+2$,/&#)'$2+'0+29&2%+3'/#'$'9$/.-2+J92++' 7*/(5&-89-:&56*+,-&;+<()*+,-+.-2,-+=>&')-+;&5-)*?&"- +#7/2&#%+#,'$#3'/#',(+')-1)+D-+#,')+*,/&#'5+'3+)*2/1+'(&5'2+$3' $#3'52/,+'&0+2$,/&#)'$2+'+:+*-,+3'3-2/#8'9$/.-2+);'' !"#$%&' ($)' $**+))' ,&' %-.,/0.+' 12$#*(+)' ,($,' *$##&,' 1+' )"#,$*,/*$.."'2+*&#*/.+34'/,'5/..'2+,-2#'$..',(+'&16+*,)'$,',(+'.+$7+)4' P&,(' 8+,' $#3' 0-,' &0+2$,/&#)' $2+' /#7&>+3' -)/#8' <%$M&#W)' 5/,(' ,(+' *&22+)0&#3/#8' 7+2)/&#' /#9&2%$,/&#' /#' ,(+' *&#,+:,;' <#' /#92$),2-*,-2+J)0+*/9/*'2+D-+),'02&*+))/#8'92$%+5&2>'&7+2'V==X;' -03$,+' -)/#8'
Recommended publications
  • Testing and Deploying IBM Rational HATS® Applications on Apache Geronimo Server
    Testing and Deploying IBM Rational HATS® 8.5 Applications on Apache Geronimo Server 3.1 Royal Cyber Inc. Modernized e-business solutions Testing and Deploying IBM Rational HATS® Applications on Apache Geronimo Server Overview This white paper explains how to run, test and deploy IBM Host Access Transformation Service® (HATS) web application on Apache Geronimo Application server. Part 1 - Introduction In the 'Introduction' part the overview of the White Paper is provided. Basic introduction to the IBM Host Access Transformation Service (HATS) and Apache Geronimo Server are provided in this part. Part 2 - Deploying and Installing Apache Geronimo Server In the 'Deploying and Installing Geronimo Server' part, the entire process of deploying the Geronimo Server is explained. Along with that using IBM HATS projects in the Geronimo Server are also explained Part 3 - Benefits In the 'Benefits' part, the overall benefits of the combination IBM HATS-Apache Geronimo Server are discussed. Testing and Deploying IBM Rational HATS® Applications on Apache Geronimo Server PART 1- INTRODUCTION Application server is a very important component in the overall scheme of the web systems as it provides platform for launching or executing applications. It manages all the involved resources like Hardware, OS, Network, etc. It is not just mere hosting of the application, an application server acts as a stage for the deployment and development of Enterprise JavaBeans (EJBs), Web services, etc. In short, Application server interacts between the front end (end users) and system resources at backend. There are various Application servers available in market both paid and unpaid. However, for working with IBM HATS, Apache's Geronimo server is one of the top Application server choices.
    [Show full text]
  • California State University, Northridge the Design And
    CALIFORNIA STATE UNIVERSITY, NORTHRIDGE THE DESIGN AND IMPLEMENTATION OF A SMALL TO MEDIUM RESTAURANT BUSINESS WEB APPLICATION A graduate project submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science By Edward Gerhardstein May 2011 The graduate project of Edward Gerhardstein is approved: John Noga , Ph.D. Date Robert McIlhenny , Ph.D. Date Jeff Wiegley , Ph.D., Chair Date California State University, Northridge ii Table of Contents Signature page ii Abstract vi 1 Overview of Pizza Application 1 2 Open Source Licenses Servers 2 2.1 Open Source License Definition . .2 2.2 Ubuntu . .2 2.3 Apache Tomcat . .2 2.4 MySQL . .4 3 Selected Concepts and Terminologies 6 3.1 Model-View-Controller (MVC) . .6 3.2 JavaScript . .7 3.3 Ajax . .7 3.4 XML . .7 3.5 DTD . .7 3.6 XML Schema . .7 3.7 CSS . .8 4 J2EE Concepts 9 4.1 J2EE Overview . .9 4.2 JavaBean . .9 4.3 Enterprise JavaBeans (EJB) . .9 4.4 Other J2EE APIs and Technologies . .9 4.5 Servlets . 10 4.6 JavaServer Pages (JSP) . 11 4.6.1 Scriptlet . 11 5 Apache Struts Framework 13 5.1 Apache Struts Overview . 13 5.2 ActionServlet . 13 5.3 Struts Config . 13 6 Pizza Application Overview 15 6.1 Design Layout . 15 6.2 Workflow . 15 6.3 JSP Page formats - Index.jsp/Templates . 17 6.4 JSP Page Divisions . 18 7 ClockIn/Clockout and Logon Functionality 21 7.1 ClockIn/Clockout Functionality . 21 iii 7.2 Logon Functionality . 21 8 Administrator Functionality 24 8.1 Administrator Functionality Description .
    [Show full text]
  • Talend Open Studio for Big Data Release Notes
    Talend Open Studio for Big Data Release Notes 6.0.0 Talend Open Studio for Big Data Adapted for v6.0.0. Supersedes previous releases. Publication date July 2, 2015 Copyleft This documentation is provided under the terms of the Creative Commons Public License (CCPL). For more information about what you can and cannot do with this documentation in accordance with the CCPL, please read: http://creativecommons.org/licenses/by-nc-sa/2.0/ Notices Talend is a trademark of Talend, Inc. All brands, product names, company names, trademarks and service marks are the properties of their respective owners. License Agreement The software described in this documentation is licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.html. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This product includes software developed at AOP Alliance (Java/J2EE AOP standards), ASM, Amazon, AntlR, Apache ActiveMQ, Apache Ant, Apache Avro, Apache Axiom, Apache Axis, Apache Axis 2, Apache Batik, Apache CXF, Apache Cassandra, Apache Chemistry, Apache Common Http Client, Apache Common Http Core, Apache Commons, Apache Commons Bcel, Apache Commons JxPath, Apache
    [Show full text]
  • Apache Harmony Project Tim Ellison Geir Magnusson Jr
    The Apache Harmony Project Tim Ellison Geir Magnusson Jr. Apache Harmony Project http://harmony.apache.org TS-7820 2007 JavaOneSM Conference | Session TS-7820 | Goal of This Talk In the next 45 minutes you will... Learn about the motivations, current status, and future plans of the Apache Harmony project 2007 JavaOneSM Conference | Session TS-7820 | 2 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 3 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 4 Apache Harmony In the Beginning May 2005—founded in the Apache Incubator Primary Goals 1. Compatible, independent implementation of Java™ Platform, Standard Edition (Java SE platform) under the Apache License 2. Community-developed, modular architecture allowing sharing and independent innovation 3. Protect IP rights of ecosystem 2007 JavaOneSM Conference | Session TS-7820 | 5 Apache Harmony Early history: 2005 Broad community discussion • Technical issues • Legal and IP issues • Project governance issues Goal: Consolidation and Consensus 2007 JavaOneSM Conference | Session TS-7820 | 6 Early History Early history: 2005/2006 Initial Code Contributions • Three Virtual machines ● JCHEVM, BootVM, DRLVM • Class Libraries ● Core classes, VM interface, test cases ● Security, beans, regex, Swing, AWT ● RMI and math 2007 JavaOneSM Conference | Session TS-7820 |
    [Show full text]
  • Open Source Software Licenses, Notices, and Information
    Intergraph InPursuit® WebRMS 03.06.1909 Open Source Software Licenses, Notices, and Information This information is provided for Intergraph InPursuit® WebRMS, a software program of Intergraph® Corporation D/B/A Hexagon Safety & Infrastructure® (“Hexagon”). Source Code Access Intergraph InPursuit WebRMS may include components licensed pursuant to open source software licenses with an obligation to offer the recipient source code. Please see below the list of such components and the information needed to access the source code repository for each. In the event the source code is inaccessible using the information below, please email [email protected]. Component, version Link to download repository Hibernate ORM https://github.com/hibernate/hibernate-orm/releases/tag/3.6.10.Final 3.6.10.Final javassist 3.12.0.GA https://github.com/jboss-javassist/javassist/releases/tag/rel_3_12_0_ga wsdl4j 1.6.1 https://sourceforge.net/projects/wsdl4j/files/WSDL4J/1.6.1/ aspectj 1.8.4 http://git.eclipse.org/c/aspectj/org.aspectj.git/tag/?h=V1_8_4 displaytag 1.2.9 https://github.com/hexagonSI-RMS/displaytag-hexagon Open Source Software Components Intergraph InPursuit WebRMS may include the open source software components identified below. This document provides the notices and information regarding any such open source software for informational purposes only. Please see the product license agreement for Intergraph InPursuit WebRMS to determine the terms and conditions that apply to the open source software. Hexagon reserves all other rights. Component, version URL Copyright License link ActiveMQ KahaDB, version http://activemq.apache.org/kahadb.html © 2005-2012 Apache Software Foundation License 1 5.5.1 ActiveMQ, version 5.5.1 http://activemq.apache.org/ © 2005-2012 Apache Software Foundation License 1 Activiti, version 5.14.0 https://www.activiti.org/ © 2010-2016 Alfresco Software, Ltd.
    [Show full text]
  • Apache Geronimo Uncovered a View Through the Eyes of a Websphere Application Server Expert
    Apache Geronimo uncovered A view through the eyes of a WebSphere Application Server expert Skill Level: Intermediate Adam Neat ([email protected]) Author Freelance 16 Aug 2005 Discover the Apache Geronimo application server through the eyes of someone who's used IBM WebSphere® Application Server for many years (along with other commercial J2EE application servers). This tutorial explores the ins and outs of Geronimo, comparing its features and capabilities to those of WebSphere Application Server, and provides insight into how to conceptually architect sharing an application between WebSphere Application Server and Geronimo. Section 1. Before you start This tutorial is for you if you: • Use WebSphere Application Server daily and are interested in understanding more about Geronimo. • Want to gain a comparative groundwork understanding of Geronimo and WebSphere Application Server. • Are considering sharing applications between WebSphere Application Server and Geronimo. • Simply want to learn and understand what other technologies are out there (which I often do). Prerequisites Apache Geronimo uncovered © Copyright IBM Corporation 1994, 2008. All rights reserved. Page 1 of 23 developerWorks® ibm.com/developerWorks To get the most out of this tutorial, you should have a basic familiarity with the IBM WebSphere Application Server product family. You should also posses a general understanding of J2EE terminology and technologies and how they apply to the WebSphere Application Server technology stack. System requirements If you'd like to implement the two technologies included in this tutorial, you'll need the following software and components: • IBM WebSphere Application Server. The version I'm using as a base comparison is IBM WebSphere Application Server, Version 6.0.
    [Show full text]
  • Full-Graph-Limited-Mvn-Deps.Pdf
    org.jboss.cl.jboss-cl-2.0.9.GA org.jboss.cl.jboss-cl-parent-2.2.1.GA org.jboss.cl.jboss-classloader-N/A org.jboss.cl.jboss-classloading-vfs-N/A org.jboss.cl.jboss-classloading-N/A org.primefaces.extensions.master-pom-1.0.0 org.sonatype.mercury.mercury-mp3-1.0-alpha-1 org.primefaces.themes.overcast-${primefaces.theme.version} org.primefaces.themes.dark-hive-${primefaces.theme.version}org.primefaces.themes.humanity-${primefaces.theme.version}org.primefaces.themes.le-frog-${primefaces.theme.version} org.primefaces.themes.south-street-${primefaces.theme.version}org.primefaces.themes.sunny-${primefaces.theme.version}org.primefaces.themes.hot-sneaks-${primefaces.theme.version}org.primefaces.themes.cupertino-${primefaces.theme.version} org.primefaces.themes.trontastic-${primefaces.theme.version}org.primefaces.themes.excite-bike-${primefaces.theme.version} org.apache.maven.mercury.mercury-external-N/A org.primefaces.themes.redmond-${primefaces.theme.version}org.primefaces.themes.afterwork-${primefaces.theme.version}org.primefaces.themes.glass-x-${primefaces.theme.version}org.primefaces.themes.home-${primefaces.theme.version} org.primefaces.themes.black-tie-${primefaces.theme.version}org.primefaces.themes.eggplant-${primefaces.theme.version} org.apache.maven.mercury.mercury-repo-remote-m2-N/Aorg.apache.maven.mercury.mercury-md-sat-N/A org.primefaces.themes.ui-lightness-${primefaces.theme.version}org.primefaces.themes.midnight-${primefaces.theme.version}org.primefaces.themes.mint-choc-${primefaces.theme.version}org.primefaces.themes.afternoon-${primefaces.theme.version}org.primefaces.themes.dot-luv-${primefaces.theme.version}org.primefaces.themes.smoothness-${primefaces.theme.version}org.primefaces.themes.swanky-purse-${primefaces.theme.version}
    [Show full text]
  • Apache Tomcat 8 Preview
    Apache Tomcat 8 Preview Mark Thomas, Staff Engineer © 2012 SpringSource, by VMware. All rights reserved Agenda Introductions Java EE 7 Tomcat specific changes Timescales Final thoughts Questions 2 Introductions 3 Introductions Mark Thomas Apache Tomcat committer (markt) Other ASF • Infrastructure team • Security • Commons • Member Staff Engineer at VMware • Tomcat • Security • tc Server • support 4 Java EE 7 5 Java EE 7 Servlet 3.1 JSP 2.3 Expression Language 3.0 WebSockets 1.0 Little / no demand for other Java EE 7 components in Tomcat Web container – Apache TomEE J2EE container – Apache Geronimo 6 Servlet 3.1 I am part of the Expert Group Latest draft: June 2012 New features • Non-blocking IO • HTTP upgrade • Change session ID on authentication Improvements • Clarified some ambiguities • Fixes some typos 7 Servlet 3.1 TBD features • Protection for uncovered HTTP methods in security constraints Dropped features • Overlays 8 JSP 2.3 There is no JSP expert group JSP 2.3 will be a maintenance release JSP 2.2 arrived very late in the Java EE 6 cycle • Expect JSP 2.3 to be the same Little to do in the JSP specification • Updates in light of EL specification changes Possible changes / clarifications • Should JSPs respond to all HTTP methods? 9 EL 3.0 I am part of the Expert Group Significant change Access to static methods and fields Lambda expressions • ((x,y)->x+y)(3,4) evaluates to 7 • fact = n -> n==0? 1: n*fact(n-1); fact(5) evaluates to 120 10 EL 3.0 Collection operators • Construction of Sets, Lists,
    [Show full text]
  • Tworzenie Aplikacji Java EE 5 Z Apache Geronimo 2
    Tworzenie aplikacji Java EE 5 z Apache Geronimo 2 Jacek Laskowski http://www.JacekLaskowski.pl Java Developers Day 2007 – Kraków, 26.10.2007, wersja 1 O mnie... ● Entuzjasta technologii Java EE 5 ● Założyciel i lider Warszawa JUG ● Aktywny uczestnik wielu projektów otwartych ● Członek zespołów rozwojowych Apache Geronimo, Apache OpenEJB, Apache ServiceMix, Apache ActiveMQ, Apache XBean ● Uczestnik programów NetBeans Community Acceptance Test (NetCAT) 5.0, 5.5 i 6.0 ● Prowadzi Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl ● Założyciel Polskiej Grupy Użytkowników Technologii BEA (PLBUG) ● Służbowo: konsultant oprogramowania w IBM Warsjava – Warsztaty Javowe 2007 ● Warsztaty Javowe – konferencja- warsztaty prowadzone przez członków Warszawa JUG ● Kiedy: 17 listopada 2007 ● Gdzie: Warszawa, MIMUW, ul. Banacha 2 ● Wstęp wolny! Warsjava 2007 – agenda O Apache Geronimo... ● Projekt otwarty serwera aplikacyjnego Java EE w Apache Software Foundation (ASF) ● Strona domowa – http://geronimo.apache.org ● Utworzony w 2003 r. przez programistów projektów JBoss, OpenEJB, MX4J, Jetty na licencji ASL 2.0 ● 29.04.2004 – Geronimo 1.0M1 – Java EE 1.4 ● 29.04.2007 – Geronimo 2.0M5 – Java EE 5 - certyfikacja! ● 19.10.2007 – Geronimo 2.0.2 – Java EE 5 ● IBM WebSphere Application Server Community Edition (IBM WASCE) Układanka Geronimo O Java EE 5... ● Najnowsze wydanie zestawu technologii rozwiązań Java do tworzenia aplikacji korporacyjnych ● Wpływ rozwiązań znanych z projektów otwartych na wprowadzone zmiany, m.in. Spring Framework, Hibernate, XDoclet, AspectJ ● Wykorzystanie usprawnień Java SE 5 – adnotacje ● Specyfikacje z zauważalnymi uproszczeniami: – JavaServer Faces 1.2 – Enterprise JavaBeans 3.0 z Java Persistence API 1.0 – JAX-WS 2.0 Java EE 5 w Geronimo ● Servlet 2.5 – Apache Tomcat 6 oraz Jetty 6 ● JSP 2.1 – Apache Tomcat 6 oraz Jetty 6 ● JSF 1.2 – Apache MyFaces 1.2 ● EJB 3.0 – Apache OpenEJB 3 ● JPA 1.0 – Apache OpenJPA 1.0.0 ● JAX-WS 2.0 – Apache Axis 2 oraz Apache CXF Java EE 5 jest nietrywialne..
    [Show full text]
  • Code Smell Prediction Employing Machine Learning Meets Emerging Java Language Constructs"
    Appendix to the paper "Code smell prediction employing machine learning meets emerging Java language constructs" Hanna Grodzicka, Michał Kawa, Zofia Łakomiak, Arkadiusz Ziobrowski, Lech Madeyski (B) The Appendix includes two tables containing the dataset used in the paper "Code smell prediction employing machine learning meets emerging Java lan- guage constructs". The first table contains information about 792 projects selected for R package reproducer [Madeyski and Kitchenham(2019)]. Projects were the base dataset for cre- ating the dataset used in the study (Table I). The second table contains information about 281 projects filtered by Java version from build tool Maven (Table II) which were directly used in the paper. TABLE I: Base projects used to create the new dataset # Orgasation Project name GitHub link Commit hash Build tool Java version 1 adobe aem-core-wcm- www.github.com/adobe/ 1d1f1d70844c9e07cd694f028e87f85d926aba94 other or lack of unknown components aem-core-wcm-components 2 adobe S3Mock www.github.com/adobe/ 5aa299c2b6d0f0fd00f8d03fda560502270afb82 MAVEN 8 S3Mock 3 alexa alexa-skills- www.github.com/alexa/ bf1e9ccc50d1f3f8408f887f70197ee288fd4bd9 MAVEN 8 kit-sdk-for- alexa-skills-kit-sdk- java for-java 4 alibaba ARouter www.github.com/alibaba/ 93b328569bbdbf75e4aa87f0ecf48c69600591b2 GRADLE unknown ARouter 5 alibaba atlas www.github.com/alibaba/ e8c7b3f1ff14b2a1df64321c6992b796cae7d732 GRADLE unknown atlas 6 alibaba canal www.github.com/alibaba/ 08167c95c767fd3c9879584c0230820a8476a7a7 MAVEN 7 canal 7 alibaba cobar www.github.com/alibaba/
    [Show full text]
  • David Blevins Apache Software Foundation @Dblevins @Apachetomee #Tomee
    Apache TomEE Tomcat with a Kick David Blevins Apache Software Foundation @dblevins @ApacheTomEE #TomEE Monday, August 8, 2011 Apache TomEE: Overview . Pronounced “Tommy” - short for Tomcat EE . Java EE 6 Web Profile certification in progress . Apache TomEE includes support for: - Servlet 3.0 (Apache Tomcat) - JPA 2.0 (Apache OpenJPA) - JSF 2.0 (Apache MyFaces) - CDI 1.0 (Apache OpenWebBeans) - EJB 3.1 (Apache OpenEJB) - JMS (Apache ActiveMQ) - WebServices (Apache CXF) s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: Overview . Certify, certify, certify . Preserve Tomcat - Leverage Tomcat JNDI, Security, everything - Get more, don’t give up anything - Add extras without removing anything - No need to learn a new server environment . Lightweight - 45MB zip (will be trimmed further) - Runs with no extra memory requirements (default 64MB) . Existing IDE tools for Tomcat should also work with TomEE s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: Web Profile Certification Status . We can’t say (them’s the rules) . Work being done on Amazon EC2 - t1.micro linux images, lot’s of them - 100 going at once! - Each has 613BM memory max - Though TomEE runs with default memory options (64MB) - It’s quick! . Will be Cloud certified! . Wish we could show you the setup (sorry, also the rules) s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: History . Predates Java EE 6 Web Profile . Previously known as OpenEJB-Tomcat integration - or ... OpenEJB-OpenJPA-ActiveMQ-CXF-DBCP-Tomcat integration - Tomcat EE (TomEE) is more accurate - Origin of EE 6 “EJBs in .wars” feature, aka Collapsed EAR . Drop-in-war for any Tomcat version: - Tomcat 5.5.x - Tomcat 6.x - Tomcat 7.x .
    [Show full text]
  • Jakartaee and the Road Ahead an ASF View Mark Struberg, RISE Gmbh, Apache Software Foundation, INSO TU Wien
    JakartaEE and the road ahead An ASF View Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien About me ● Mark Struberg ● 25 years in the industry ● Apache Software Foundation member ● struberg [at] apache.org ● RISE GmbH employee ● TU-Wien / INSO researcher ● Committer / PMC for Apache OpenWebBeans, MyFaces, TomEE, Maven, OpenJPA, BVal, Isis, DeltaSpike, JBoss Arquillian, ... ● Java JCP Expert Group member and spec lead ● MicroProfile Spec Author ● Twitter: @struberg Agenda ● History of JavaEE ● JakartaEE HowTo? ● What about MicroProfile ● ASF involvement ● ASF projects ● Modern EE stacks @ASF JakartaEE The History of JavaEE ● 1998 - First Specifications, e.g. EJB1 ● 2003 - Spring Framework ● 2006 - JavaEE 5 – first really usable release ● 2009 - JavaEE 6 – really usable, CDI-1.0, JAX-RS, Interceptors, etc ● 2013 - JavaEE 7 – 'Cloud Release wannabe' (aka Rohrkrepierer) ● 2017 - JavaEE 8 – JSON-P-1.1, JSON-B-1.0 – smallish updates, mainly community driven JakartaEE ● late 2017 Oracle decided moving JavaEE to OSS ● Hosted by the Eclipse Foundation ● 'Jakarta' mark sponsored by the ASF ● Next planned release is Jakarta EE9 – EE8 plus minor fixes Governance Model of JakartaEE ● Eclipse EE4J project ● Charter not yet final afaik ● 4 committees: – Steering Committee – Specification Committee – Marketing Committee – Enterprise Requirements Committee ● Plus the single projects (specs) -> real work done ● A seat on the Committees requires to be a 'Strategic Member' -> big $$ per year JakartaEE benefits ● OSS governance (sort of...)
    [Show full text]