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):
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: Garbage Collection | GlassFish 3 | Java Embedded | Java FX | Java Real-Time | Java Update | JDK 7 | JEE 6 | JME | JVM tuning | Robotic Audi TTS | Socket PC


Italian
English
18/12/2009 at 00:45
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.
18/12/2009 at 06:31
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..
20/12/2009 at 04:07
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!
Tra l’altro… http://www.ibm.com/developerworks/java/library/j-rtj4/index.html
30/04/2010 at 21:22
Ahah, quindi non sono stato il solo pazzo a fare la tesi su Real Time Java
A quanto pare non sta avendo il successo commerciale sperato, ma forse e’ solo questione di tempo…