Java™ in Web 2.0



Alexis Roos
Principal Field Technologist, CTO Office
OEM SW Sales
Sun Microsystems, Inc.
                                           1
Agenda




    • Java overview
    • Technologies supported by Java Platform
      to create Web 2.0 services
    • Future trends



                                                2
The Java Eco-System
                            6.5+ M     250+ M    850+ K    > 2.6 Billion
                 $2.8B      Java Dev. JavaFX GlassFish     Java Powered
                In Java                runtime Downloads      Phones
   $3B                      world wide
              App Servers                      Per month
Java Mobile
Game Market




                                                                 > 6 Billion
                                              > 40.0             Java Cards
                                              Million             Deployed
 Multi-Function        850+ M      Blu-ray Disc Digital TVs &
   Printers           PCs with       Devices     Set-Top Boxes
                        Java
                                                                               4
Java and Web 2.0
• End to end: server side but also allows to deliver services to smart cards,
  phones, desktop and TVs
• Convergence: mix and match Communications & Web
• Service Orientation: reusable and reuse other services (including
  legacy)
• Role specialization: different classes of developers: Communication,
  Enterprise, BPM, Web 2.0, ..
• Rich and robust platform: large set of specs and APIs
• Standards based
Java and Web 2.0 mash-ups
Agenda




    • Java overview
    • Technologies supported by Java Platform
      to create Web 2.0 services
    • Future trends



                                                6
Technologies supported by Java
Platform to create Web 2.0 services
• SOA
• Web Services
    > SOAP WS
    > RESTful WS
•   SIP Services
•   Java EE 6
•   AJAX
•   Dynamic languages and web frameworks
•   Java FX
SOA

• https://open-esb.dev.java.net/
• Enterprise Service Bus
• Service engines: BPEL, Intelligent Event Processing,
  XSLT, Data Mashup, Encoding, etc
• Wide range of adapters: communications, databases,
  EIS, etc.
• Very easy to use
  through Netbeans IDE
SOAP Web Services

• https://metro.dev.java.net/
• High-performance, extensible, easy-to-use web service
  stack
• Secure, reliable and transactions WS: WS-*
• Interoperable with .NET
• Transport neutral
• Very easy to use
  through IDEs support
RESTful Web Services

• https://jersey.dev.java.net/
• Standard annotation-driven API to build RESTful Web
  services in Java: Resources / Methods / Representations
• Rapid creation of RESTful WS from JPA entity classes
  and patterns.
• Generation of JavaScript client stubs from RESTful web
  services for building RESTful client applications.
• Test client generation for testing RESTful web services.
• Very easy to use through
  IDEs support
SIP Services

• https://sailfin.dev.java.net/
• Standard (JSR 116, 289) for developing and deploying
  communications applications
• Adds SIP servlet support on top of Java EE / GlassFish
• Allows Converged Java EE, SIP applications
• Highly scalable and carrier-grade
• Test client generation for testing SIP services.
• Very easy to use through
  IDEs support
Demo

• Done from scratch using IDE:
  > RESTful Web Services Creation from Database tables
    leveraging Google Map
  > Twitter status updates based on SIP Presence


• Netbeans 6.8 beta
  > http://www.netbeans.org/downloads/
  > Includes GlassFish V3 Preview
  > Java EE 6, SE, ME, Java FX, PHP, Ruby, Groovy, C/C++, etc.
• SailFin V2 (based on GF 2.1.1)
  > https://sailfin.dev.java.net/downloads/instructions.html
Java Enterprise Edition 6

• Most public reviews complete: Final release scheduled for
  Q4 2009
• GlassFish v3 is the Reference Implementation
• Flexible - One size no longer has to fit all
  > Full Platform
  > Web Profile: Servlet 3.0, EJB Lite 3.1, JPA 2.0, JSP 2.2, EL 1.2, JSTL
     1.2, JSF 2.0, JTA 1.1, JSR 45, Common Annotations
  > Opportunity for more profiles
• Extensible: Embrace Open Source Frameworks
• Productivity: More annotations, more POJOs, less XML,
  simplified packaging
Java Enterprise Edition 6
• Servlet 3.0:
    > Ease of use: annotations for ease of development, optional web.xml, etc.
    > Web Framework pluggability; Asynchronous Processing
• EJB 3.1
    > Ease-of-use improvements: no-interface view: once source file per bean;
      EJB inside web applications: No ejb-jar; Use WEB-INF/classes; Shared
      component environment; Portable JNDI
    > Singleton beans: @Singleton; Lightweight asynchronicity
    > Enhanced EJB Timer Service; Embeddable EJB Container
•   Java Persistence Architecture 2.0
•   Java Contexts & Dependency Injection (AKA - “Web Beans”)
•   Java Server Faces 2.0: MVC based, Easier to use than JSP.
•   JAX-RS 1.1 – RESTful services
AJAX and reverse AJAX

• Java Server Faces 2.0
  > Integrated AJAX support
  > Simplified component creation
• Comet
  > Techniques that enable a server to push data to client browsers
    through an HTTP open line of communication
Dynamic languages

• Pros vs Java
  >   Agile development
  >   More flexibility
  >   Metaprogramming and run-time code generation
  >   Domain-specific languages
  >   Productivity
• Cons vs Java
  >   Slower execution
  >   Scalability
  >   Different languages require different runtimes
  >   Maturity: contributors, ecosystem, testing, available libraries and
      frameworks, tooling, manageability, etc.
Dynamic languages and JVM: JRuby ex

• High performance, Real threading
• Vast array of libraries




http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/
Dynamic languages and web frameworks
• Run dynamic language applications along side Java EE
  apps with security, scalability, Java language and APIs
  benefits.
Dynamic languages – Pluggable Web
Framework

   JSF       Grails        ...         Rails      Merb          ...   Django         ...

          Servlet Spec                            Rack                       WSGI

             Web                                JRuby                      Jython
           Container                           Container                  Container


                                       V3 Kernel

                                        Grizzly

                                         JVM

    Key         GlassFish v3 Modules           Java Framework         Python Framework
                 Web Framework
                                               Ruby Framework
                 Interface
Other languages available on Java VM ..

• Clojure (Lisp)

• Scala

•   PHP
•   Rhino (JavaScript)
•   Java FX
•   And others ..
Demo
• Done from scratch using IDE:
  > Ruby + Java demo
  > Ruby on Rails




• Netbeans 6.8 beta
  > http://www.netbeans.org/downloads/
  > Includes GlassFish V3 Preview
  > Java EE 6, SE, ME, Java FX, PHP, Ruby, Groovy, C/C++, etc.
Java FX

• http://javafx.com/
• Platform for creating and delivering Rich Internet
  Applications across multiple screens
• Powered by the Java Platform
• Declarative Scripting Language
• Escape the browser deployment model linking with Java
  and Javascript
• Richness of Java development
Agenda




    • Java overview
    • Technologies supported by Java Platform
      to create Web 2.0 services
    • Future trends



                                                23
Development

• Team collaboration
  >   Presence
  >   Chat
  >   Continuous integration
  >   Issue Tracking
  >   Team Member Status Resources
• Cloud Plug-In
• Web on Web
• etc.
Runtime

• Multi screens
• Mixing and matching frameworks and languages
• PaaS

• Event processing
• Web based Integration

• New APIs: Semantic Web programming, NLP, Augmented
  Reality, etc.
Resources
• Open ESB
  > http://wiki.open-esb.java.net/
• SailFin
  > https://sailfin.dev.java.net/
• GlassFish (Java EE RI)
  > https://glassfish.dev.java.net/
      > https://jersey.dev.java.net/
      > https://javaserverfaces.dev.java.net/
      > http://glassfish-scripting.dev.java.net/
• Jruby
  > http://jruby.org/
  > http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
• Java FX
  > http://javafx.com/
Alexis Roos
alexis.roos@sun.com

Java™ in Web 2.0

  • 1.
    Java™ in Web2.0 Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc. 1
  • 2.
    Agenda • Java overview • Technologies supported by Java Platform to create Web 2.0 services • Future trends 2
  • 3.
    The Java Eco-System 6.5+ M 250+ M 850+ K > 2.6 Billion $2.8B Java Dev. JavaFX GlassFish Java Powered In Java runtime Downloads Phones $3B world wide App Servers Per month Java Mobile Game Market > 6 Billion > 40.0 Java Cards Million Deployed Multi-Function 850+ M Blu-ray Disc Digital TVs & Printers PCs with Devices Set-Top Boxes Java 4
  • 4.
    Java and Web2.0 • End to end: server side but also allows to deliver services to smart cards, phones, desktop and TVs • Convergence: mix and match Communications & Web • Service Orientation: reusable and reuse other services (including legacy) • Role specialization: different classes of developers: Communication, Enterprise, BPM, Web 2.0, .. • Rich and robust platform: large set of specs and APIs • Standards based
  • 5.
    Java and Web2.0 mash-ups
  • 6.
    Agenda • Java overview • Technologies supported by Java Platform to create Web 2.0 services • Future trends 6
  • 7.
    Technologies supported byJava Platform to create Web 2.0 services • SOA • Web Services > SOAP WS > RESTful WS • SIP Services • Java EE 6 • AJAX • Dynamic languages and web frameworks • Java FX
  • 8.
    SOA • https://open-esb.dev.java.net/ • EnterpriseService Bus • Service engines: BPEL, Intelligent Event Processing, XSLT, Data Mashup, Encoding, etc • Wide range of adapters: communications, databases, EIS, etc. • Very easy to use through Netbeans IDE
  • 9.
    SOAP Web Services •https://metro.dev.java.net/ • High-performance, extensible, easy-to-use web service stack • Secure, reliable and transactions WS: WS-* • Interoperable with .NET • Transport neutral • Very easy to use through IDEs support
  • 10.
    RESTful Web Services •https://jersey.dev.java.net/ • Standard annotation-driven API to build RESTful Web services in Java: Resources / Methods / Representations • Rapid creation of RESTful WS from JPA entity classes and patterns. • Generation of JavaScript client stubs from RESTful web services for building RESTful client applications. • Test client generation for testing RESTful web services. • Very easy to use through IDEs support
  • 11.
    SIP Services • https://sailfin.dev.java.net/ •Standard (JSR 116, 289) for developing and deploying communications applications • Adds SIP servlet support on top of Java EE / GlassFish • Allows Converged Java EE, SIP applications • Highly scalable and carrier-grade • Test client generation for testing SIP services. • Very easy to use through IDEs support
  • 12.
    Demo • Done fromscratch using IDE: > RESTful Web Services Creation from Database tables leveraging Google Map > Twitter status updates based on SIP Presence • Netbeans 6.8 beta > http://www.netbeans.org/downloads/ > Includes GlassFish V3 Preview > Java EE 6, SE, ME, Java FX, PHP, Ruby, Groovy, C/C++, etc. • SailFin V2 (based on GF 2.1.1) > https://sailfin.dev.java.net/downloads/instructions.html
  • 13.
    Java Enterprise Edition6 • Most public reviews complete: Final release scheduled for Q4 2009 • GlassFish v3 is the Reference Implementation • Flexible - One size no longer has to fit all > Full Platform > Web Profile: Servlet 3.0, EJB Lite 3.1, JPA 2.0, JSP 2.2, EL 1.2, JSTL 1.2, JSF 2.0, JTA 1.1, JSR 45, Common Annotations > Opportunity for more profiles • Extensible: Embrace Open Source Frameworks • Productivity: More annotations, more POJOs, less XML, simplified packaging
  • 14.
    Java Enterprise Edition6 • Servlet 3.0: > Ease of use: annotations for ease of development, optional web.xml, etc. > Web Framework pluggability; Asynchronous Processing • EJB 3.1 > Ease-of-use improvements: no-interface view: once source file per bean; EJB inside web applications: No ejb-jar; Use WEB-INF/classes; Shared component environment; Portable JNDI > Singleton beans: @Singleton; Lightweight asynchronicity > Enhanced EJB Timer Service; Embeddable EJB Container • Java Persistence Architecture 2.0 • Java Contexts & Dependency Injection (AKA - “Web Beans”) • Java Server Faces 2.0: MVC based, Easier to use than JSP. • JAX-RS 1.1 – RESTful services
  • 15.
    AJAX and reverseAJAX • Java Server Faces 2.0 > Integrated AJAX support > Simplified component creation • Comet > Techniques that enable a server to push data to client browsers through an HTTP open line of communication
  • 16.
    Dynamic languages • Prosvs Java > Agile development > More flexibility > Metaprogramming and run-time code generation > Domain-specific languages > Productivity • Cons vs Java > Slower execution > Scalability > Different languages require different runtimes > Maturity: contributors, ecosystem, testing, available libraries and frameworks, tooling, manageability, etc.
  • 17.
    Dynamic languages andJVM: JRuby ex • High performance, Real threading • Vast array of libraries http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/
  • 18.
    Dynamic languages andweb frameworks • Run dynamic language applications along side Java EE apps with security, scalability, Java language and APIs benefits.
  • 19.
    Dynamic languages –Pluggable Web Framework JSF Grails ... Rails Merb ... Django ... Servlet Spec Rack WSGI Web JRuby Jython Container Container Container V3 Kernel Grizzly JVM Key GlassFish v3 Modules Java Framework Python Framework Web Framework Ruby Framework Interface
  • 20.
    Other languages availableon Java VM .. • Clojure (Lisp) • Scala • PHP • Rhino (JavaScript) • Java FX • And others ..
  • 21.
    Demo • Done fromscratch using IDE: > Ruby + Java demo > Ruby on Rails • Netbeans 6.8 beta > http://www.netbeans.org/downloads/ > Includes GlassFish V3 Preview > Java EE 6, SE, ME, Java FX, PHP, Ruby, Groovy, C/C++, etc.
  • 22.
    Java FX • http://javafx.com/ •Platform for creating and delivering Rich Internet Applications across multiple screens • Powered by the Java Platform • Declarative Scripting Language • Escape the browser deployment model linking with Java and Javascript • Richness of Java development
  • 23.
    Agenda • Java overview • Technologies supported by Java Platform to create Web 2.0 services • Future trends 23
  • 24.
    Development • Team collaboration > Presence > Chat > Continuous integration > Issue Tracking > Team Member Status Resources • Cloud Plug-In • Web on Web • etc.
  • 25.
    Runtime • Multi screens •Mixing and matching frameworks and languages • PaaS • Event processing • Web based Integration • New APIs: Semantic Web programming, NLP, Augmented Reality, etc.
  • 26.
    Resources • Open ESB > http://wiki.open-esb.java.net/ • SailFin > https://sailfin.dev.java.net/ • GlassFish (Java EE RI) > https://glassfish.dev.java.net/ > https://jersey.dev.java.net/ > https://javaserverfaces.dev.java.net/ > http://glassfish-scripting.dev.java.net/ • Jruby > http://jruby.org/ > http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby • Java FX > http://javafx.com/
  • 27.