Notes JavaOne 2006

Voici mes notes de JavaOne 2006. Beaucoup de choses à couvrir. Tout n’est pas là. Ceci n’est que ma perception de la conférence.


Chiffres

Java et
Open Source

NetBeans
Day

  • Plus de 1000 participants (on change de lieu
    l’année prochaine)
  • Présences de Jonathan Schwartz, Rich Green
    (nouveau VP software), James Gosling, Josh Bloch (Google), …
  • Annonce de JBoss et AMD comme nouveaux partenaires NetBeans
  • Sujets principaux:
  • Compte-rendu
    NetBeans Day

Keynote
#1 (Jonathan, Rich Green, Jeff Jackson)

  • Invités de Jonathan
    • Ed Zander (CEO Motorola).
    • Marc
      Fleury
      sur scène avec Jonathan, JBoss nouveau
      partenaire
      NetBeans
    • Mark Shuttleworth/Ubuntu sur DLJ
      (Distro Licence for Java)
      • Autres: Debian, NexentaOS, Gentoo, Schillix, OpenSolaris
  • Annonces Jeff Jackson
  • Démos
    • GlassFish + Netbeans (blog server)
    • Pub locator (Démo Craig McClanahan avec
      Creator et composants JSF Google Maps)
    • Java Petstore en AJAX
      (Java EE 5). Video.
    • “S”Mashup (Swing Mashup) Aerith
      • Application Swing de souvenir de voyage
        intégrant les Web
        Service de google maps, flickr et Yahoo geocoding
      • Rendu dans une
        applet

Keynote
#2 (Graham Hamilton, Bill Shannon)

  • Slides disponibles en
    ligne
    (public). Résumé
    détaillé ici.
  • Java SE 6 (Mustang)
    • http://mustang.dev.java.net
    • Qualité systémiques:
      compatibilité (weekly
      builds), performance (benchs + desktop), management (JConsole, DTrace).
    • Nouvelles fonctionnalités
      • Scripting (JSR 223)
      • Améliorations
        Desktop : GroupLayout de Matisse, SwingWorker, Splash screen, system
        tray, anti-aliased fonts Support Windows Vista (lnf, IE 7, …).
      • Web Services : sous-ensemble JAX-WS 2.0 (y compris JAXB
        2.0) + mini serveur Web pour callbacks
    • Version finale prévue pour octobre 2006
  • Java EE 5
    • Finalisé!
    • (voir plus bas
      les caractéristiques)
    • Participation unanime
      • Sun: GlassFish / Sun AS 9 disponible
        (implémentation complète de Java EE 5).
      • IBM: rien de dispo pour l’instant (stratégie
        Géronimo?).
      • JBoss: preview EJB 3 + persistance Hibernate.
      • BEA: preview EJB 3 + persistance Kodo.
      • Apache: Geronimo 2 en cours (version J2EE 1.4
        récenté)
      • Oracle: preview EJB 3 + tooling Eclipse Dali
      • Autres: SAP, Tmax Soft, ironFlare, ..
  • Java SE 7 (Dolphin)
    • Work in
      progress
    • Support de XPath et intégration d’expressions
      XML dans le langage.
      • Exemples:
        • void addUser(Element element, String
          user, String password) {
              element.add(
                        
          <account>
                        
          <user>{user}</user>
                        
          <password>{password}</password>
                        
          </account>);
          }
        • import java.lang.XML.\*;
          java.lang.XML myElement = <foo/>
    • Super Packages (sorte de “friend” C++)
    • Java Modules (JSR 277)
      • Successeur du format Jar, repository
    • BeanShell (JSR 274)
    • many
      more…
  • Futur de Java EE (réflexions)
    • Applications composites (JBI, SCA)
    • Intégration Portlets
    • Standardisation HA, Clustering
    • Scripting
    • AJAX
    • WS-\*
  • Démonstrations
    • Web Services Java EE 5 avec Vi (Enterprise Edition ;-)
    • EJB 3 avec NetBeans 5.5
      (intégration hints
      AVK
      ).
    • Look and Feel natif sur Windows Vista avec Java
      6
      beta,  splash screen, system tray
      icons, launching
      native apps
      • Java 1.4.2 et Java 5 seront disponibles et
        supportés sur Vista
    • Visual Basic for Java: 
      • Application JSF avec gestion
        d’événements (logique métier) en
        Basic.
      • Pas de code dispo pour l’instant.
    • JavaScript in the Web Tier: Project Phobos
      • JavaScript coté serveur avec un serveur
        très lightweight (blog).
      • (voir partie “Scripting”)

Keynote
#3 (Scott, James Gosling)

  • Introduction Scott McNealy
    • “Top 10 best things about not being CEO”
    • Digital Divide…
  • Demo Show James Gosling
    • GE Medical System, utilisation de Java 6 et JOGL
    • Jackpot
      dans NetBeans.
    • NetBeans Mobility (debug on device)
    • Real-Time (Greg Bollella): car
      racing
      + Real-Time app server.
    • Tommy
      – véhicule piloté en Java (DARPA challenge)

Java EE 5

  • Simplification des développements
    • EJB 3: POJO + annotations, configuration par exception,
      injection de dépendance (plus de JNDI)
    • Descripteurs de déploiement XML facultatifs
    • API Persistance: providers pluggables (TopLink,
      Hibernate, Kodo/OpenJPA)
    • JAX-WS 2.0: POJO + annotations
      • Supports latest W3C standards: SOAP 1.2, MTOM/XOP, XML
        Schema 1.0
      • Supports latest WS-I standards: Basic Profile 1.1,
        Attachment Profile 1.0
    • JAXB 2.0: binding Schema/DTD <=> classes
      Java. Utilisé dans WSDL/JAX-WS 2.0.
    • JSF 1.2: partie intégrante de la spec
      et (légèrement) modifiée pour
      intégrer AJAX
    • Injection de ressources (EJB session, DataSource, …)
      dans
      JSP/Servlet et dans l’ACC
    • Simplicité du packaging (config. par
      défaut)
    • Compatibilité avec J2EE 1.4 assurée
    • Diminution de la taille des applications entre 30% et 60%
      (nombre de fichiers et de lignes de code)
  • Implémentations Open Source GlassFish et NetBeans
    5.5
    • GlassFish
      • Application Server Java EE 5 complet et Open Source
        (CDDL)
      • Support de 20+
        frameworks
      • 2200 membres et 280 000 downloads
      • Roadmap: clustering
        et load-balancing dans GlassFish v2
         
      • Repository Maven 2
      • Intégration de JavaDB (Apache Derby)
      • Performances
        SPECjAppServer
        (seul serveur Open Source benché)
        • 712.87 JOPS@Standard avec 3 SunFire X4100 (2
          bi-coeurs) avec MySQL
        • Progrès sensible (167%) sur
          dernière publication avec AS 8.x
        • Ratio $/Perf (logiciel, matériel, support,
          etc…)
          • Sun: $72.64/JOPS
          • BEA: $200/JOPS
      • Collaboration avec Tmax et BEA sur GlassFish
      • Prototype pour un GlassFish “on-demand” basé
        sur un référentiels Maven 2
      • Version Real-Time
        de GlassFish
    • Démo
      CRUD
      dans NetBeans 5.5 (démo
      flash
      )
  • JBoss Seam (JSF+EJB3+Conversation) proposé
    pour un JSR “WebBeans”
    (JSR 299)
    • Autres implémentations potentielles : Struts
      Shale, ADF Faces
    • Autres participants au JSR: JBoss, Sun,
      Oracle, Borland, Google, Sybase

AJAX

Desktop

  • Swing toujours aussi sexy, mais plus
    accessible (abordable, simple)
  • Chiffres
    • 41% des développeurs font du Java
      coté client contre 37% coté serveur
    • 65% des PC possèdent la JVM Sun
      installée
    • Il y a plus de 20 Millions (!) de
      téléchargements par mois du JRE
  • Nombreuses nouveautés dans Java 6 (cf. plus haut)
  • Nouveaux JSR

Scripting

  • Deux étapes, deux JSRs
    • JSR 223 – Scripting for the Java Platform
      • JavaScript (Rhino) dans Mustang (Java 6)
      • Cross-invocation (y compris de script à
        script)
    • JSR 292 – Nouveau bytecode invokedynamic
      prévu pour Dolphin (Java 7)
      • Plus flexible
      • Plus performant
  • Projet Semplice
    • Langage “Basic” pour la JVM
    • Langage très proche de VisualBasic
      compilé en byte-code et s’exécutant sur la JVM
    • Performances excellentes (x13 pour un cas
      d’espèce de calcul de fractale)
    • Intéressant pour les développeurs
      VB 6 qui ne souhaitent pas passer à VB.net (trop
      différent)
    • Démo keynote
      avec Creator
      (pas l’unique cas d’usage)
  • Projet Phobos
    • JavaScript coté client (DHTML + AJAX) et
      coté
      serveur (gestion POST/GET, dispatch, gestion session/cookies,
      événements)
    • Serveur
      très lightweight (dérivé de GlassFish).
    • http://phobos.dev.java.net
  • Autres:
    • Sessions Groovy, BeanShell
    • JRuby on Rails
    • PHP dans Weblogic et Caucho Resin “Quercus”
      (prévu pour fin 2006, perf annoncées entre x4 et
      x 6 sur des
      applications réelles)
  • Pourquoi maintenant?
    • Java is bigger than the language (it’s the VM, stupid!)
    • Multi-cores systems and today’s scripting language
      interpreters make the JVM/HotSpot relevant
    • Appels Script <=> API Java

SOA

  • Java EE 5 comme socle technique
    • JAX-WS 2.0, WSDL 2.0, WS-\*
  • OpenESB
    disponible en Milestone 10 (version finale à l’automne?)
    • Implementation JBI 1.0 (SOAP HTTP binding) + Moteur BPEL
      (origine SeeBeyond)
      Multi-instances
    • Outillé: NetBeans Enterprise Pack
    • Download all-in-one: SOA
      Starter Kit
      (déploiement single instance)
  • JBI.next (v2.0) en prévision
  • Interopérabilité .Net: Project Tango / WSIT
    • Windows Communication Foundation (WCF), ex Indigo
    • Produit sous forme d’extensions à GlassFish
    • Travail commun avec Microsoft pour couvrir les
      spécifications WS-\*
      • Bootstrapping
      • Optimizing communication
      • Security optimization
      • Reliable messaging
      • Atomic transactions
    • Transports multiples pour JAX-WS 2.0 (bindings JMS, FTP,
      …)
    • Pas d’API runtime Tango, seulement JAX-WS et EJB
      + config file
    • Pas de modification de JAX-WS => transparent pour
      le développeur (gestion de config)
    • http://java.sun.com/webservices/interop/downloads/index.jsp
    • Support NetBeans : http://websvc.netbeans.org/wsit/

Wireless/Mobile

  • A lui seul, Motorola vend plus de
    téléphones par an que toute l’industrie ne vend
    de PC (100 millions avec Java)
  • Pitch “Unifions Java ME” de Motorola
  • Nombreux partenaires NetBeans
    Mobility
    : Sprint, Orange, Ricoh, SonyEricsson, SavaJe, Nokia,
    Motorola, Siemens/BenQ
  • JSR
    209
    • Disponibilité de Swing, Java 2D et
      d’un sous-ensemble d’API de gestion d’images dans le
      périphérique (téléphone).
    • Accès à tous les composants Swing,
      aux
      polices antialiased, aux gradients, transformations 2D,
      gestion de
      l’opacité, etc…
  • What’s next: Mobile Service Architecture (MSA), JSR 248
    • Secure transactions
    • 3D, SVG
    • SIP (JSR 180) et Bluetooth (JSR 82)
    • Possible: Location (JSR 179) et Personal
      Information Management (PIM), JSR 75
  • Sun
    SPOT
    :
    • Programmable Sensor Device 
      • Détecteur
        d’accélération, de température et de
        luminosité
      • 180 MHz 32 bit ARM920T core
      • 512K RAM, 4M Flash
      • 2.4 GHz IEEE 802.15.4 radio with integrated antenna
      • Port USB
      • JVM CLDC 1.1 embarquée dédiée
        (Sqwak) + Plugin NetBeans
    • Kits @ $500
  • Java Verified Program http://javaverified.com.

Temps
réel

Hands-on labs

  • NetBeans 5.0: Plug-in Development
  • Application Monitoring and Management with NetBeans 5.0
  • NetBeans Enterprise: Basic UML Modeling
  • NetBeans Enterprise Pack: BPEL
  • Web Services Based Portlet Applications Development using
    Sun Java Studio Creator 2
  • Building Production Quality GUI Applications using NetBeans
    5.0 GUI Builder (Matisse)
  • Explore Java SE 6 (Mustang) Features
  • Building Java SE 6 (Mustang) as a java.net Project
  • Developing Interoperable Next Generation Web Services with
    GlassFish, NetBeans, and WSIT
  • Dive into Java EE 5 Application Server using Project
    GlassFish
  • Smooth Migration: Leverage the EJB 3.0 Programming Model
    from within EJB 2.x Container
  • Building AJAX-Based JavaServer Faces Web Applications With
    Sun Java Studio Creator
  • AJAX: Riding the Web Application Horse a Little Further
  • Java Technology-Based Application Performance Analysis
  • Building Grid-Enabled Applications
  • Building Peer-toPeer Java Technology-Based Applications
    with JXTA Technology
  • Using DTrace on Java Applications in Solaris 10
  • Mobile Applications: Visualize it, Build it, Deploy it to
    Many Devices
  • Simplified Development of Wireless Sensor and Actuator
    Applications Using Java(TM) Technology (SPOT)

Divers

  • Sun is helping with Eclipse
    for Solaris/X86
  • Perfs Java – Nouveaux records SPECjBB2005 avec 1.5.0_08 (Press
    Release
    ) sur T1000 et T2000.
  • Téléphone Jasper SavaJe
    S20
    (vendu pour $199 aux participants de
    JavaOne, Swing dans une téléphone (JSR
    209)!
  • [Jonathan Schwartz] “Asking
    Sun how much money we make from Java is like asking GE how much
    it makes from the standard plug in the wall. [Java] is the fulcrum on
    which Sun’s business lies.”
    — San Jose Mercury
    News
  • “I
    don’t think there is any inherent discontinuity with making Java
    open-source and keeping Java compatible. Compatibility must be seen as
    preventing any party from taking unfair advantage of the marketplace,
    so that the customer gets the best value proposition, which is lots of
    competition, lots of richness and innovation,”
    [Simon]
    Phipps said. —
    eWeek

Java Facts

  • 5 million+ Java developers
  • 1052 Java Community Process (JCP) members
  • 300+ Java Specification Requests (JSRs)
  • 1.5 billion Java technology-enabled smart cards have been
    issued to date (Sun, 6/05).
  • Over 1.2 billion Java-enabled handsets by June 2006 (Ovum).
  • 8 of 10 new phones that shipped in 2005 were Java
    technology-enabled phones (Ovum).
  • Java is a leading platform for mobile applications and
    services with 150+ carrier deployments worldwide (Sun, 05/06).
  • Downloads of the Java Runtime Environment from java.com
    have reached over 262 million (Sun, 03/06).
  • Over 750 million desktops with Java software Java
    Technology for the Enterprise.
  • Over 5 million downloads of Java technology for the
    enterprise (Sun, 05/06).
  • 30+ Java-compatible application servers (Sun, 05/06).

Author: alexismp

Google Developer Relations in Paris.