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

Java overview the piramide of success

  • 1.
    Java overview: the pyramidof success Artem Bilan CS Ltd. Spring Integration commiter Email: clericsmail@gmail.com
  • 2.
    Who is ArtemBilan 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 tothe top 3
  • 4.
    Agenda • Javasyntax • 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 ourown pyramid! JAVA syntax 5
  • 6.
    Java starts fromsource 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 rightway to start! 7
  • 8.
    Swing: the rightway 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
  • 11.
  • 12.
  • 13.
    Multi-Threading & Concurrency Phaser ForkJoinPool Executors Atomics Locks Volatile Synchronized 13
  • 14.
    Data Bases: Persistencepower Typical data issue From DB to Java Select * from orders Be clever! Think different! 14
  • 15.
    Data Bases: Persistencepower Hybrid solutions Key/Value MongoDB JPA Lucene XA Oracle DataSource Sql 15
  • 16.
  • 17.
  • 18.
    WEB & Developmenttools Delicious results! 18
  • 19.
    Frameworks: don’t reinventthe wheel! • Good solutions • New ideas Don’t afraid experiment • Right things at the right place + • DRY • KISS • Postal Low + 19
  • 20.
    Spring - thepower 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 startintegrate! Business here Money there Everything in one place Integrate them all! 22
  • 23.
    WEB-Services: Let’s startintegrate! SOAP REST XML JSON Etc. Any with HTTP 23
  • 24.
    WEB-Services: Let’s startintegrate! You are the man 24
  • 25.
    Patterns: developres’ langauge Singleton Factory Builder Bridge Strategy Adapter Observer Composite 25
  • 26.
  • 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 nolimit 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
  • 33.
    More info • Java Specification • Cay S. Horstmann • Joshua Bloch • Bruce Eckel • Martin Fowler • Spring Framework • Hibernate • EIP • Steve McConnell 33