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

PPTX
Hibernate in Nutshell
PPTX
[Java eeconf 2016] spring jta principles of work with transactions. Dmytro S...
PDF
Metadata and Provenance for ML Pipelines with Hopsworks
PPTX
Spring Data - Intro (Odessa Java TechTalks)
PPTX
Hibernate in Action
PPTX
Session 38 - Core Java (New Features) - Part 1
ODP
Spring Data in 10 minutes
PPT
Hibernate presentation
Hibernate in Nutshell
[Java eeconf 2016] spring jta principles of work with transactions. Dmytro S...
Metadata and Provenance for ML Pipelines with Hopsworks
Spring Data - Intro (Odessa Java TechTalks)
Hibernate in Action
Session 38 - Core Java (New Features) - Part 1
Spring Data in 10 minutes
Hibernate presentation

What's hot (20)

PDF
Introduction to JPA and Hibernate including examples
PPTX
Hibernate Basic Concepts - Presentation
PPT
Introduction to Hibernate
PDF
Data access
PPTX
Hibernate tutorial
PPT
PPTX
Java7 - Top 10 Features
DOC
24 collections framework interview questions
PDF
JPA and Hibernate
PPT
hibernate with JPA
PPTX
Introduction to Hibernate Framework
PDF
Java Web Programming [3/9] : Servlet Advanced
PDF
Java Web Programming [5/9] : EL, JSTL and Custom Tags
PPTX
Hybrid Applications
DOCX
Java questions with answers
PDF
Hibernate Presentation
PPTX
Hibernate ppt
PPT
Hibernate Tutorial
PDF
Java Web Programming [6/9] : MVC
PPT
D2 8 Enhydra Shark
Introduction to JPA and Hibernate including examples
Hibernate Basic Concepts - Presentation
Introduction to Hibernate
Data access
Hibernate tutorial
Java7 - Top 10 Features
24 collections framework interview questions
JPA and Hibernate
hibernate with JPA
Introduction to Hibernate Framework
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [5/9] : EL, JSTL and Custom Tags
Hybrid Applications
Java questions with answers
Hibernate Presentation
Hibernate ppt
Hibernate Tutorial
Java Web Programming [6/9] : MVC
D2 8 Enhydra Shark
Ad

Viewers also liked (7)

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

Similar to Java one 2010 (20)

PPT
JavaOne_2010
PPT
Tu1 1 5l
PDF
Application Architecture Trends
PPT
Clustered Architecture Patterns Delivering Scalability And Availability
PPTX
SeaJUG May 2012 mybatis
PDF
ActiveJDBC - ActiveRecord implementation in Java
PPT
Rollin onj Rubyv3
PDF
Spring Mvc
PPT
The 90-Day Startup with Google AppEngine for Java
PPTX
Ups and downs of enterprise Java app in a research setting
PPT
Spring Framework
PPT
Spring Framework
PPTX
Yes, Sql!
PPT
JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05
ODP
What's new in Java EE 6
PDF
An Introduction to Spring Data
PPT
SQL/NoSQL How to choose ?
PDF
New Features of Java7 SE
PPTX
Spring
PDF
Arquitetura Java em 2007 (Java Architecture in 2007)
JavaOne_2010
Tu1 1 5l
Application Architecture Trends
Clustered Architecture Patterns Delivering Scalability And Availability
SeaJUG May 2012 mybatis
ActiveJDBC - ActiveRecord implementation in Java
Rollin onj Rubyv3
Spring Mvc
The 90-Day Startup with Google AppEngine for Java
Ups and downs of enterprise Java app in a research setting
Spring Framework
Spring Framework
Yes, Sql!
JDO Presentation given at Java User Group Switzerland (JUGS) on 31.03.05
What's new in Java EE 6
An Introduction to Spring Data
SQL/NoSQL How to choose ?
New Features of Java7 SE
Spring
Arquitetura Java em 2007 (Java Architecture in 2007)

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Cloud computing and distributed systems.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Cloud computing and distributed systems.
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Per capita expenditure prediction using model stacking based on satellite ima...

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