SlideShare a Scribd company logo
Javaone 2010 report Tadaya Tsuyukubo @ttddyy http://bit.ly/ttddyy_javaone2010
Oracle OpenWorld + JavaOne Year 2010 Sep 19-23 San Francisco
 
Java 7, 8 Productivity Performance Modularity   Project Coin Productivity with More Concise Code Project Lambda Closures for Java Project Jigsaw The Modular Java Platform   NIO2(jsr203),  Concurrency and Collections updates(jsr166y), JDBC4.1, etc.
Project Coin Diamond Map<String, List<Integer>> map = new HashMap<>() Try-with-resources try( InputStream is = new FileInputStream(in);        OutputStream os = new FileOutputStream(out) ) {      ...  } catch (Exception e) {      ...  }     Strings in Switch Improved integral literals Vargs warnings Multi-catch & precise rethrow
Project Lambda SAM (Single Abstract Method)      Collections.sort( data, #( int a, int b ){ a.length() - b.length() } );        double max =           students.filter(  #{ s -> s.gradYear == 2010 })                        .map(  #{ s -> s.score })                        .max(); Method Reference          Collections.sortBy(students,                                   #Student.getName);
Project Jigsaw eliminate the class path light weight memory foot print module-info.java meta data (module dependency info) @Version(&quot;1.0&quot;)  @ImportModules( {     @ImportModule(name=&quot;java.se&quot;),       @ImportModule(name=&quot;com.foo.OrderProcessingService&quot;),       @ImportModule(name=&quot;com.bar.PrintService&quot;)  } )  @MainClass(&quot;hello.HelloWorld&quot;)  module hello;
etc. Value Class   value class Foo {       property Foo parent;       property String name;  }   JVM upto 32G Heap Compaction NUMA (Non-Uniform Memory Access) G1GC (Garbage First GC) Integrate JRockit to HotSpot  Nondisruptive, Scalable, High Performance VM
Java Release Plan Plan B Java7  (mid 2011) most of &quot;Project Coin&quot; New I/O APIs Fork/Join Framework InvokeDynamic etc.  Java8  (late 2012) Project Lambda Project Jigsaw Rest of Project Coin etc.
Web related tech sessions EJB3 features (Transaction, Business Tier) Bean Validation (JSR303) Hibernate Validator CDI(Contexts and Dependency Injection)  (JSR299) @Inject, @Model, @Singleton, @Stateless, etc. JPA 2.0  (JSR317)      For Java6 Common Annotation for the Java Platform (JSR250) @Resource, @PostConstruct, @PreDestroy
Annotation Jam @Secure @Transactional @RequestScoped @Named   class SomeClass {      ...... } @BusinessLogic   class SomeClass { } use customized stereotype
Web session summary new features are mostly available in spring using spring is a correct choice giving more confusion to developers EJB containers are required mostly commercial still heavy weight   Advantage of using EJB  session clustering remoting commercial support? vendor specific tools spring is much better!!      - lightweight      - integration to other tech
Case Study  (mint.com) Free personal financial management web 2billion financial transaction 10m+ transaction per day     Architecture         spring + hibernate memcached intensive use of AOP
DB Scaling NOSQL lose integrity  ==> not best fit   User ID based sharding Hierarchical data model Logical database separation user data & non user data put user_id to all hierarchical entities (user data) every user data is exclusive and have locality
Implementation  Minimize infrastructure sharding info to implementation context annotation  AOP @MintUserdata class UserService {      ....  } @MintCommondata class MasterDataService {      ....  } switch SessionFactory, Datasource by AOP based on the annotation
Monitoring collect data from real prod requests viewed page, traffic, behavior cache statistics hibernate statistics thread pool & queue size     monitoring overhead must be low  aggregate results in memory persist periodically
Monitoring Impl monitor all spring beans AOP autoproxy all beans, no code change All methods (request-response lifecycle) can be drilldown           build custom tool (80/20 rule) intensive use of AOP to monitor application error logs log messages are parametrized, centeralized web tool to easily search/parse errors like splunk ~/account.htm?id=1 100ms AccountController#info() 10ms AccountService#getInfo() 20ms AccountDao#getInfoById() 70ms
Security & How to reduce Bug  Use hibernate to enforce isolation use AOP or hibernate callback  if data tries to access data that doesn't belong to the user, throws exception   Detect crosstalk (multi thread test) run test class with multiple user (sequential, multithread)
Case Study (eBay) 10bil requests per day 10K java servers partition everything asynchronous everywhere automate everything everything fails embrace inconsistency expect (r)evolution dependencies matters respect authority (data) never enough data custom infrastructure
Case Study (Sinapto) Online Poker in Italy 3000 concurrent players Architecture Vertical, Horizontal partitioning (table, tournament) asynchronous  (event driven) pass around status object
Case Study (Caché) Specialized to write huge data        example: 3-D map of Galaxy         monitor 1billion stars, more & more newly found ones (Peta byte level data)    stock market trading information government, healthcare, financial industry solution: wrote DB : 130+K sustained inserts per sec
JDBC:      runs over tcp/ip (even locally)         use JNI (Java Native Interface)    Store multi dimensional data      XEP: serialize & store      MDS: Monitoring & Deiscovery Service
NOSQL This does not replace RDBMS Suit for representing data in a simple datastructure High Scalability Flexible modification Specialized process   Characteristic no join mostly search data by single rowkey eventual consistency
Data Model       Eventual Consistency no transaction, no consistency application needs to handle consistency Example: For column based DB, there is no association table, and no cascade delete. When parent data is removed, child data needs to deleted by application  RDBMS NoSQL relational column, KV, etc.
Testing Unit Test selenium IDE junit mock Integration Test starting container at beginning of test in code
Functional Programming      &quot;OO is better to project our world structure          FP excels at actual coding of the algorithm&quot;      Use OO to build classes      Use FP to implement methods Java 7, 8 will have FP(closure) feature. (lambda project)
Conclusion spring is the best!!    Java future loadmap, Case Studies    javaone 2010    Technical sessions Spring One Server Side  No Fluff, Just Stuff   met jp java community

More Related Content

What's hot (20)

PDF
Introduction to JPA and Hibernate including examples
ecosio GmbH
 
PPTX
Hibernate Basic Concepts - Presentation
Khoa Nguyen
 
PPT
Introduction to Hibernate
Krishnakanth Goud
 
PDF
Data access
Joshua Yoon
 
PPTX
Hibernate tutorial
Mumbai Academisc
 
PPT
Scala
Andreas Enbohm
 
PPTX
Java7 - Top 10 Features
Andreas Enbohm
 
DOC
24 collections framework interview questions
Arun Vasanth
 
PDF
JPA and Hibernate
elliando dias
 
PPT
hibernate with JPA
Mohammad Faizan
 
PPTX
Introduction to Hibernate Framework
Raveendra R
 
PDF
Java Web Programming [3/9] : Servlet Advanced
IMC Institute
 
PDF
Java Web Programming [5/9] : EL, JSTL and Custom Tags
IMC Institute
 
PPTX
Hybrid Applications
Andreas Enbohm
 
DOCX
Java questions with answers
Kuntal Bhowmick
 
PDF
Hibernate Presentation
guest11106b
 
PPTX
Hibernate ppt
Aneega
 
PPT
Hibernate Tutorial
Ram132
 
PDF
Java Web Programming [6/9] : MVC
IMC Institute
 
PPT
D2 8 Enhydra Shark
brutkowski
 
Introduction to JPA and Hibernate including examples
ecosio GmbH
 
Hibernate Basic Concepts - Presentation
Khoa Nguyen
 
Introduction to Hibernate
Krishnakanth Goud
 
Data access
Joshua Yoon
 
Hibernate tutorial
Mumbai Academisc
 
Java7 - Top 10 Features
Andreas Enbohm
 
24 collections framework interview questions
Arun Vasanth
 
JPA and Hibernate
elliando dias
 
hibernate with JPA
Mohammad Faizan
 
Introduction to Hibernate Framework
Raveendra R
 
Java Web Programming [3/9] : Servlet Advanced
IMC Institute
 
Java Web Programming [5/9] : EL, JSTL and Custom Tags
IMC Institute
 
Hybrid Applications
Andreas Enbohm
 
Java questions with answers
Kuntal Bhowmick
 
Hibernate Presentation
guest11106b
 
Hibernate ppt
Aneega
 
Hibernate Tutorial
Ram132
 
Java Web Programming [6/9] : MVC
IMC Institute
 
D2 8 Enhydra Shark
brutkowski
 

Viewers also liked (7)

PDF
Introduction to sq lite
punu_82
 
PPT
мясной дом Бородина.
Санечка Бравова
 
PDF
The sqlite3 commnad line tool
punu_82
 
ODP
SCDN 1
scdn
 
KEY
第5回SCDN - Things that become possible with HTML5
scdn
 
PDF
Creating, altering and dropping tables
punu_82
 
PDF
Sq lite functions
punu_82
 
Introduction to sq lite
punu_82
 
мясной дом Бородина.
Санечка Бравова
 
The sqlite3 commnad line tool
punu_82
 
SCDN 1
scdn
 
第5回SCDN - Things that become possible with HTML5
scdn
 
Creating, altering and dropping tables
punu_82
 
Sq lite functions
punu_82
 
Ad

Similar to Java one 2010 (20)

PPT
Tu1 1 5l
shibli009
 
PPTX
Java se7 features
Kumaraswamy M
 
PPTX
Webinar september 2013
Marc Gille
 
PPT
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky
 
PPT
Struts 2 Overview
skill-guru
 
PDF
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
 
PPT
Java New Evolution
Allan Huang
 
PPT
J2 Ee Overview
Atul Shridhar
 
PPTX
Resthub
Sébastien Deleuze
 
PPT
DDD Framework for Java: JdonFramework
banq jdon
 
ODP
Spring framework
srmelody
 
ODP
GlassFish and JavaEE, Today and Future
Alexis Moussine-Pouchkine
 
PPTX
Java 7 and 8, what does it mean for you
Dmitry Buzdin
 
PDF
Spring Boot 3 And Beyond
VMware Tanzu
 
PPT
Cloud State of the Union for Java Developers
Burr Sutter
 
PDF
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
 
PDF
Batch Applications for the Java Platform
Sivakumar Thyagarajan
 
PPT
J2EE - Practical Overview
Svetlin Nakov
 
PDF
Unit 07: Design Patterns and Frameworks (3/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
PPT
JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05
Michael Vorburger
 
Tu1 1 5l
shibli009
 
Java se7 features
Kumaraswamy M
 
Webinar september 2013
Marc Gille
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky
 
Struts 2 Overview
skill-guru
 
Java EE 7 in practise - OTN Hyderabad 2014
Jagadish Prasath
 
Java New Evolution
Allan Huang
 
J2 Ee Overview
Atul Shridhar
 
DDD Framework for Java: JdonFramework
banq jdon
 
Spring framework
srmelody
 
GlassFish and JavaEE, Today and Future
Alexis Moussine-Pouchkine
 
Java 7 and 8, what does it mean for you
Dmitry Buzdin
 
Spring Boot 3 And Beyond
VMware Tanzu
 
Cloud State of the Union for Java Developers
Burr Sutter
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
 
Batch Applications for the Java Platform
Sivakumar Thyagarajan
 
J2EE - Practical Overview
Svetlin Nakov
 
Unit 07: Design Patterns and Frameworks (3/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05
Michael Vorburger
 
Ad

Recently uploaded (20)

PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 

Java one 2010

  • 1. Javaone 2010 report Tadaya Tsuyukubo @ttddyy http://bit.ly/ttddyy_javaone2010
  • 2. Oracle OpenWorld + JavaOne Year 2010 Sep 19-23 San Francisco
  • 3.  
  • 4. Java 7, 8 Productivity Performance Modularity   Project Coin Productivity with More Concise Code Project Lambda Closures for Java Project Jigsaw The Modular Java Platform   NIO2(jsr203),  Concurrency and Collections updates(jsr166y), JDBC4.1, etc.
  • 5. Project Coin Diamond Map<String, List<Integer>> map = new HashMap<>() Try-with-resources try( InputStream is = new FileInputStream(in);       OutputStream os = new FileOutputStream(out) ) {      ... } catch (Exception e) {      ... }     Strings in Switch Improved integral literals Vargs warnings Multi-catch & precise rethrow
  • 6. Project Lambda SAM (Single Abstract Method)     Collections.sort( data, #( int a, int b ){ a.length() - b.length() } );       double max =          students.filter(  #{ s -> s.gradYear == 2010 })                       .map(  #{ s -> s.score })                       .max(); Method Reference         Collections.sortBy(students,                                  #Student.getName);
  • 7. Project Jigsaw eliminate the class path light weight memory foot print module-info.java meta data (module dependency info) @Version(&quot;1.0&quot;)  @ImportModules( {     @ImportModule(name=&quot;java.se&quot;),      @ImportModule(name=&quot;com.foo.OrderProcessingService&quot;),      @ImportModule(name=&quot;com.bar.PrintService&quot;)  } )  @MainClass(&quot;hello.HelloWorld&quot;)  module hello;
  • 8. etc. Value Class   value class Foo {      property Foo parent;      property String name;  }   JVM upto 32G Heap Compaction NUMA (Non-Uniform Memory Access) G1GC (Garbage First GC) Integrate JRockit to HotSpot  Nondisruptive, Scalable, High Performance VM
  • 9. Java Release Plan Plan B Java7  (mid 2011) most of &quot;Project Coin&quot; New I/O APIs Fork/Join Framework InvokeDynamic etc. Java8  (late 2012) Project Lambda Project Jigsaw Rest of Project Coin etc.
  • 10. Web related tech sessions EJB3 features (Transaction, Business Tier) Bean Validation (JSR303) Hibernate Validator CDI(Contexts and Dependency Injection)  (JSR299) @Inject, @Model, @Singleton, @Stateless, etc. JPA 2.0  (JSR317)      For Java6 Common Annotation for the Java Platform (JSR250) @Resource, @PostConstruct, @PreDestroy
  • 11. Annotation Jam @Secure @Transactional @RequestScoped @Named   class SomeClass {     ...... } @BusinessLogic   class SomeClass { } use customized stereotype
  • 12. Web session summary new features are mostly available in spring using spring is a correct choice giving more confusion to developers EJB containers are required mostly commercial still heavy weight   Advantage of using EJB session clustering remoting commercial support? vendor specific tools spring is much better!!      - lightweight      - integration to other tech
  • 13. Case Study  (mint.com) Free personal financial management web 2billion financial transaction 10m+ transaction per day     Architecture         spring + hibernate memcached intensive use of AOP
  • 14. DB Scaling NOSQL lose integrity  ==> not best fit   User ID based sharding Hierarchical data model Logical database separation user data & non user data put user_id to all hierarchical entities (user data) every user data is exclusive and have locality
  • 15. Implementation Minimize infrastructure sharding info to implementation context annotation  AOP @MintUserdata class UserService {     .... } @MintCommondata class MasterDataService {     .... } switch SessionFactory, Datasource by AOP based on the annotation
  • 16. Monitoring collect data from real prod requests viewed page, traffic, behavior cache statistics hibernate statistics thread pool & queue size     monitoring overhead must be low  aggregate results in memory persist periodically
  • 17. Monitoring Impl monitor all spring beans AOP autoproxy all beans, no code change All methods (request-response lifecycle) can be drilldown           build custom tool (80/20 rule) intensive use of AOP to monitor application error logs log messages are parametrized, centeralized web tool to easily search/parse errors like splunk ~/account.htm?id=1 100ms AccountController#info() 10ms AccountService#getInfo() 20ms AccountDao#getInfoById() 70ms
  • 18. Security & How to reduce Bug Use hibernate to enforce isolation use AOP or hibernate callback if data tries to access data that doesn't belong to the user, throws exception   Detect crosstalk (multi thread test) run test class with multiple user (sequential, multithread)
  • 19. Case Study (eBay) 10bil requests per day 10K java servers partition everything asynchronous everywhere automate everything everything fails embrace inconsistency expect (r)evolution dependencies matters respect authority (data) never enough data custom infrastructure
  • 20. Case Study (Sinapto) Online Poker in Italy 3000 concurrent players Architecture Vertical, Horizontal partitioning (table, tournament) asynchronous  (event driven) pass around status object
  • 21. Case Study (Caché) Specialized to write huge data       example: 3-D map of Galaxy        monitor 1billion stars, more & more newly found ones (Peta byte level data)   stock market trading information government, healthcare, financial industry solution: wrote DB : 130+K sustained inserts per sec
  • 22. JDBC:     runs over tcp/ip (even locally)        use JNI (Java Native Interface)    Store multi dimensional data     XEP: serialize & store     MDS: Monitoring & Deiscovery Service
  • 23. NOSQL This does not replace RDBMS Suit for representing data in a simple datastructure High Scalability Flexible modification Specialized process   Characteristic no join mostly search data by single rowkey eventual consistency
  • 24. Data Model       Eventual Consistency no transaction, no consistency application needs to handle consistency Example: For column based DB, there is no association table, and no cascade delete. When parent data is removed, child data needs to deleted by application RDBMS NoSQL relational column, KV, etc.
  • 25. Testing Unit Test selenium IDE junit mock Integration Test starting container at beginning of test in code
  • 26. Functional Programming      &quot;OO is better to project our world structure          FP excels at actual coding of the algorithm&quot;     Use OO to build classes     Use FP to implement methods Java 7, 8 will have FP(closure) feature. (lambda project)
  • 27. Conclusion spring is the best!!   Java future loadmap, Case Studies   javaone 2010   Technical sessions Spring One Server Side No Fluff, Just Stuff   met jp java community