SlideShare une entreprise Scribd logo
1  sur  33
Java overview:
the pyramid of success
            Artem Bilan
               CS Ltd.
    Spring Integration commiter



   Email: clericsmail@gmail.com
Who is Artem Bilan


                      Spring Integration Reference Manual

                                                  Mark Fisher
                                                           …
                                                  Artem Bilan



                      https://github.com/artembilan

                      http://linkedin.com/in/cleric


cleric@csltd.com.ua   http://forum.vingrad.ru/showuser-18365.html




                                                        2
Thorny path to the top




                         3
Agenda


 • Java syntax           •   Patterns
 • Swing                 •   Messaging
 •   Garbage collector   •   Scripting
 •   Multi-Threading     •   Demo time
 •   Data Bases          •   Summary & Questions
 •   WEB
 •   Development tools
 •   Frameworks
 •   WEB-Services



                                                   4
Let’s build our own pyramid!




             JAVA syntax




                               5
Java starts from source

public static void main(String[] args) {
...
}

  public static <T> T argThat(Matcher<T> matcher) {
    return reportMatcher(matcher).<T>returnNull();
  }

@Entity
@Table(name = ‘USERS')
@SQLInsert(sql = 'insert into TMP_USERS (PASSWORD,
                       LOGIN, ID) values (?, ?, ?)')
@AccessType('field')
@XmlType(name = ‘User')
class User extends BaseEntity<Long> {

                                                6
Swing: the right way to start!




                                 7
Swing: the right way to start!




                     Swing




Components                        Java
                                 Syntax

                                          8
Garbage collector & memory model




          -XX:+UseParallelGC
          -XX:+UseConcMarkSweepGC
          -XX:+UseG1GC
                                    9
Garbage collector & memory model




                                   10
Multi-Threading & Concurrency




                                11
Multi-Threading: Epic Fail




                             12
Multi-Threading & Concurrency


    Phaser    ForkJoinPool


                 Executors

Atomics

                     Locks




  Volatile    Synchronized

                                13
Data Bases: Persistence power

                            Typical data issue




   From DB to Java


     Select * from orders                 Be clever!




                                       Think different!



                                                          14
Data Bases: Persistence power


                             Hybrid solutions

                                         Key/Value
                    MongoDB
                                            JPA
                    Lucene
                                                 XA
                    Oracle

                      DataSource           Sql


                                                 15
WEB: Globalize yourself!




                           16
Development & build tools




                            17
WEB & Development tools




                          Delicious results!




                                           18
Frameworks: don’t reinvent the wheel!

 • Good solutions
 • New ideas                   Don’t afraid experiment
 • Right things at the right
   place                                 +
 • DRY
 • KISS
 • Postal Low
                                         +




                                                   19
Spring - the power of application

   • Spring AMQP          • Spring IDE
   • Spring Batch         • Spring OSGi
   • Spring BlazeDS       • Spring Rich Client
   • Spring Data          • Spring Security
   • Spring Android       • Spring Slices
   • Spring Hadoop        • Spring Social
   • Spring GemFire       • Spring Web Flow
   • Spring LDAP          • Spring Web Services
   • Spring Mobile        • Spring.NET
   • Spring Roo           • Etc.
   • Spring Integration



                                                  20
JEE vs Spring




                VS
                VS


                VS




                     21
WEB-Services: Let’s start integrate!




       Business here              Money there




   Everything in one place     Integrate them all!
                                                     22
WEB-Services: Let’s start integrate!

      SOAP                          REST



                              XML      JSON    Etc.




                                    Any with
                                     HTTP


                                                      23
WEB-Services: Let’s start integrate!




    You are the man


                                       24
Patterns: developres’ langauge
    Singleton      Factory




    Builder         Bridge




    Strategy       Adapter




    Observer      Composite




                                 25
Messaging is everywhere




                          26
Scripting & DSLs

                 httpFlow {
                    httpGet(url:{"http://google.com/search?q=$it"},
Groovy                      responseType: String)
                 }


val httpFlow =
   http.GET[String]{
        search: String => "http://google.com/search?q="+search        Scala
   }


          <http:outbound-gateway http-method="GET"
                                  expected-response-type="java.lang.String"
                                  url="http://google.com/search?q={search}"
XML                               request-channel="input">
              <http:uri-variable name="search" expression="payload"/>
          </http:outbound-gateway>



                                                                          27
There is no limit to perfection




                                  28
Demo time

  ABS                                    Client-Bank

         Oracle procedure         Java

                            WS



                            iB2
             POS                  JDBC




Processing                          Card-backoffice

                                                 29
Demo time




  Web Service




                Magic
                JAVA
                        30
Conclusions




              is an unlimited IT universe
                 has growing community
                     is a flexible platform
                           helps business
                   makes Internet closer



                                      31
More info

  •   Java Specification
  •   Cay S. Horstmann
  •   Joshua Bloch
  •   Bruce Eckel
  •   Martin Fowler
  •   Spring Framework
  •   Hibernate
  •   EIP
  •   Steve McConnell

                           33

Contenu connexe

Similaire à Java overview the piramide of success

using Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud Foundryusing Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud FoundryJoshua Long
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Arun Gupta
 
Getting Started with MongoDB using Node.js
Getting Started with MongoDB using Node.jsGetting Started with MongoDB using Node.js
Getting Started with MongoDB using Node.jsNic Raboy
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyJim Dowling
 
Machine learning model to production
Machine learning model to productionMachine learning model to production
Machine learning model to productionGeorg Heiler
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript DelusionJUGBD
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudArun Gupta
 
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudRunning your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudArun Gupta
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusJarrod Overson
 
Node.js #digpen presentation
Node.js #digpen presentationNode.js #digpen presentation
Node.js #digpen presentationGOSS Interactive
 
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachJDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachPROIDEA
 
Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labUgo Landini
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?Balajihope
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynotejimfuller2009
 
Jug gridgain java_grid_computing_made_simple
Jug gridgain java_grid_computing_made_simpleJug gridgain java_grid_computing_made_simple
Jug gridgain java_grid_computing_made_simpleSubhashiniSukumar
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN StackValeri Karpov
 
Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Dan Kuebrich
 

Similaire à Java overview the piramide of success (20)

using Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud Foundryusing Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud Foundry
 
Cloudy Ajax 08 10
Cloudy Ajax 08 10Cloudy Ajax 08 10
Cloudy Ajax 08 10
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
 
Getting Started with MongoDB using Node.js
Getting Started with MongoDB using Node.jsGetting Started with MongoDB using Node.js
Getting Started with MongoDB using Node.js
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
 
Machine learning model to production
Machine learning model to productionMachine learning model to production
Machine learning model to production
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the Cloud
 
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudRunning your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the Cloud
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
COBOL to Apache Spark
COBOL to Apache SparkCOBOL to Apache Spark
COBOL to Apache Spark
 
Node.js #digpen presentation
Node.js #digpen presentationNode.js #digpen presentation
Node.js #digpen presentation
 
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachJDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
 
Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech lab
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
 
Jug gridgain java_grid_computing_made_simple
Jug gridgain java_grid_computing_made_simpleJug gridgain java_grid_computing_made_simple
Jug gridgain java_grid_computing_made_simple
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012
 

Java overview the piramide of success

  • 1. Java overview: the pyramid of success Artem Bilan CS Ltd. Spring Integration commiter Email: clericsmail@gmail.com
  • 2. Who is Artem Bilan Spring Integration Reference Manual Mark Fisher … Artem Bilan https://github.com/artembilan http://linkedin.com/in/cleric cleric@csltd.com.ua http://forum.vingrad.ru/showuser-18365.html 2
  • 3. Thorny path to the top 3
  • 4. Agenda • Java syntax • Patterns • Swing • Messaging • Garbage collector • Scripting • Multi-Threading • Demo time • Data Bases • Summary & Questions • WEB • Development tools • Frameworks • WEB-Services 4
  • 5. Let’s build our own pyramid! JAVA syntax 5
  • 6. Java starts from source public static void main(String[] args) { ... } public static <T> T argThat(Matcher<T> matcher) { return reportMatcher(matcher).<T>returnNull(); } @Entity @Table(name = ‘USERS') @SQLInsert(sql = 'insert into TMP_USERS (PASSWORD, LOGIN, ID) values (?, ?, ?)') @AccessType('field') @XmlType(name = ‘User') class User extends BaseEntity<Long> { 6
  • 7. Swing: the right way to start! 7
  • 8. Swing: the right way to start! Swing Components Java Syntax 8
  • 9. Garbage collector & memory model -XX:+UseParallelGC -XX:+UseConcMarkSweepGC -XX:+UseG1GC 9
  • 10. Garbage collector & memory model 10
  • 13. Multi-Threading & Concurrency Phaser ForkJoinPool Executors Atomics Locks Volatile Synchronized 13
  • 14. Data Bases: Persistence power Typical data issue From DB to Java Select * from orders Be clever! Think different! 14
  • 15. Data Bases: Persistence power Hybrid solutions Key/Value MongoDB JPA Lucene XA Oracle DataSource Sql 15
  • 18. WEB & Development tools Delicious results! 18
  • 19. Frameworks: don’t reinvent the wheel! • Good solutions • New ideas Don’t afraid experiment • Right things at the right place + • DRY • KISS • Postal Low + 19
  • 20. Spring - the power of application • Spring AMQP • Spring IDE • Spring Batch • Spring OSGi • Spring BlazeDS • Spring Rich Client • Spring Data • Spring Security • Spring Android • Spring Slices • Spring Hadoop • Spring Social • Spring GemFire • Spring Web Flow • Spring LDAP • Spring Web Services • Spring Mobile • Spring.NET • Spring Roo • Etc. • Spring Integration 20
  • 21. JEE vs Spring VS VS VS 21
  • 22. WEB-Services: Let’s start integrate! Business here Money there Everything in one place Integrate them all! 22
  • 23. WEB-Services: Let’s start integrate! SOAP REST XML JSON Etc. Any with HTTP 23
  • 24. WEB-Services: Let’s start integrate! You are the man 24
  • 25. Patterns: developres’ langauge Singleton Factory Builder Bridge Strategy Adapter Observer Composite 25
  • 27. Scripting & DSLs httpFlow { httpGet(url:{"http://google.com/search?q=$it"}, Groovy responseType: String) } val httpFlow = http.GET[String]{ search: String => "http://google.com/search?q="+search Scala } <http:outbound-gateway http-method="GET" expected-response-type="java.lang.String" url="http://google.com/search?q={search}" XML request-channel="input"> <http:uri-variable name="search" expression="payload"/> </http:outbound-gateway> 27
  • 28. There is no limit to perfection 28
  • 29. Demo time ABS Client-Bank Oracle procedure Java WS iB2 POS JDBC Processing Card-backoffice 29
  • 30. Demo time Web Service Magic JAVA 30
  • 31. Conclusions is an unlimited IT universe has growing community is a flexible platform helps business makes Internet closer 31
  • 32.
  • 33. More info • Java Specification • Cay S. Horstmann • Joshua Bloch • Bruce Eckel • Martin Fowler • Spring Framework • Hibernate • EIP • Steve McConnell 33