Java updates from London

La conferenza e’ stata nel complesso molto interessante, riporto qui alcune impressioni ..

Getting more from your existing Java applications
Simon Ritter – Java Evangelist, Sun Microsystems

Questa parte era principalmente incentrata sul tuning della JVM soprattutto in riferimento a cio’ che spesso rappresenta il collo di bottiglia di numerose applicazioni Java-based, ovvero il garbage collection (GC). Non tutti gli sviluppatori sanno che esistono centinaia di parametri, alcuni dei quali legati a particolari implementazioni proprietarie (IBM, Oracle, BEA e altre), attraverso i quali e’ possibile modificare profondamente il comportamento e le prestazioni della JVM. I seguenti principi, definiti simpaticamente come il “GC Nirvana” delle JVMs, rappresentano i principali obiettivi di ottimizzazione da considerare (compatibili solo a due a due):

  • low GC overhead
  • low GC pause times
  • good space efficiency

E’ inoltre apparso chiaro sin dall’inizio come i meccanismi di GC siano aggiornati e migliorati di continuo anche all’interno di una stessa release, e questo attraverso le varie versioni di update rilasciate da Sun. E’ sempre bene quindi, nei limiti delle possibilita’ di progetto, installare l’ultimo update disponibile.

Java for Business. Getting the best (out of Sun) for your Java applications
Owen Stuart – Java Sustaining, Critical Situation Manager, Europe, Middle East and Africa

Questa parte era per me di poco interesse. Compito dello speaker era di spiegare il tipo di supporto offerto ai clienti.

A look at Java SE embedded and real-time Java
Helen Cullen, Andy Gilbert – Systems Engineers, OEM Software Sales

Sorprendente vedere insieme l’intera gamma di dispositivi embedded Java compatibili. Tra questi in particolare risalto il socket PC, nello specifico un’implementazione su sistema Linux/Java.  Ribadita inoltre la differenza tra la versione Micro Edition e quella Embedded (spesso confuse), la prima una versione molto ridotta destinata a dispositivi con capacita’ di memoria inferiori ai 32 MB (ormai davvero pochi), la seconda invece del tutto compatibile con la versione standard meno i pacchetti ritenuti opzionali (es. CORBA) e alcune risorse non strettamente necessarie (es. javadocs) rimossi quindi dal packaging. Molto interessante la parte relativa al Real-Time, sul quale argomento mi trovavo ancora un po’ scettico. Con Java si puo’ adesso implementare senza alcuna difficolta’ una sorta di soft real-time e, in maniera certamente piu’ complessa, un piu’ rigido hard real-time. I risultati sono significativi, come dimostra il seguente video:

New Stuff – Java Enterprise Edition 6 and GlassFish 3
Steve Elliott – Technology Evangelist, Sun Microsystems UK

Ottima l’introduzione all’argomento attraverso un rapido escursus sull’evoluzione subita nel corso degli anni dalla versione enterprise (J2EE o JEE). Sin dalla sua nascita l’intento e’ sempre stato quello di regolamentare il mercato in riferimento alle nuove tecnologie di volta in volta introdotte per migliorare lo sviluppo enterprise. Cosi’ e’ accaduto in passato con l’introduzione delle specifiche JPA ed EJB 3.0 (in risposta al successo di Hibernate), cosi’ accade ora con il nuovo JEE 6 il quale si “impadronisce” del meccanismo dell’inversion of control (tipico del framework Spring) oltre ovviamente ad altre interessanti novita’. Niente male anche l’application server GlassFish, di cui sinceramente conoscevo ben poco, presentato da Sun come implementazione di riferimento delle neo-rilasciate specifiche JEE. All’apparenza un ottimo prodotto, certamente da provare, disponibile anche in versione bundle per Eclipse.

More New Stuff – Java Standard Edition 7 and JavaFX
Simon Ritter – Java Evangelist Sun Microsystems
Simon Cook – Software Architect Sun Microsystems UK

Non molto chiaro in che modo Sun stia procedendo con lo sviluppo del nuovo JDK 7 (sebbene Simon Ritter abbia tentato di far chiarezza) nonostante numerosi JSR siano ancora in fase di approvazione. A seguire la lista completa di quanto e’ stato finora proposto (ad esempio date un occhio al progetto Coin):

vm Compressed 64-bit object pointers
Garbage-First GC (G1)
JSR 292: VM support for non-Java languages (InvokeDynamic)
lang JSR 308: Annotations on Java types
JSR TBD: Small language enhancements (Project Coin)
JSR 294: Language and VM support for modular programming
core Modularization (Project Jigsaw)
Upgrade class-loader architecture
Method to close a URLClassLoader
Unicode 5.1
Concurrency and collections updates (jsr166y)
JSR 203: More new I/O APIs for the Java platform (NIO.2)
SCTP (Stream Control Transmission Protocol)
SDP (Sockets Direct Protocol)
Elliptic-curve cryptography (ECC)
client XRender pipeline for Java 2D
Forward-port 6u10 deployment features
Create new platform APIs for 6u10 graphics features
Nimbus look-and-feel for Swing
Swing updates
web Update the XML stack

E per concludere questo lungo percorso uno sguardo a qualcosa di piu’ stylish dedicato al front-end, Java FX. In questo campo Adobe sembra ormai avere un netto vantaggio grazie a Flash, tuttavia Java FX possiede dalla sua una carta importante, ovvero la piena integrazione con il vasto mondo della tecnologia Java. Staremo a vedere se tale carta risultera’ vincente. Per conoscerne di piu’ potete dare un’occhiata ad alcuni screencasts oppure provare subito qualcosa di FX visitando una galleria di esempi.

Tags: | | | | | | | | | | |

4 Responses to “Java updates from London”

  1. Io feci la tesi su java realtime. La conversazione piu’ frequente era:
    qualcuno: su cosa fai la tesi?
    io: java realtime
    qualcuno: ma… java e’ lento!

    Detto questo, mi stupivo pure io quando ricercavo bibliografia, le applicazioni son davvero molte e di altissimo livello. Ricordo di una pagina dove veniva descritto un impiego fatto dalla NASA!

    Rimane da dire pero’ che si piega cmq a dei limiti. Io analizzai le reazioni in diverse condizioni, e il limite naturale e’ l’essere un processo in user space. Difatti appena partivo un processino del menga in kernel space tutto si integava finche’ quello non finiva. Immagino ci siano dei sistemi per bypassare sti limiti, ma a me interessava laurearmi e quindi mi son fermato li! :)
    C’erano anche dei discorsi e dei progetti su dei GC realtime (che alla fine e’ il problema vero), ma non ho piu’ seguito e dunque non so come stan le cose tre anni dopo.

  2. In termini di GC la JDK7 pare introdurra’ un nuovo algoritmo chiamato Garbage-First (o GC-1) di cui ci hanno descritto il nuovo funzionamento (tuttavia non molto facile da seguire per chi non fosse gia’ abbastanza afferrato sul tema), comunque nessuna citazione di una GC real-time, per cui grossi progressi forse non ce ne sono stati..

  3. stefano Says:

    se non ricordo male c’era una universita’ svedese (o danese, non ricordo :-| ) che ci stava lavorando. uhm, adesso mi hai fatto venir voglia di rileggermi la tesi quando torno a casa! :D

    Tra l’altro… http://www.ibm.com/developerworks/java/library/j-rtj4/index.html

  4. Vincenzo Says:

    Ahah, quindi non sono stato il solo pazzo a fare la tesi su Real Time Java :-D A quanto pare non sta avendo il successo commerciale sperato, ma forse e’ solo questione di tempo…

Leave a Reply

-->

Photostream

Tag Cloud

Categories

Social Links

Archives

Statistics

RSS Feed - IT


RSS Feed - EN