Archive

Posts Tagged ‘Practical JXTA’

JXTA 2.6 è pronto

agosto 25th, 2010

Salve a tutti,

con un pò di ritardo eccomi qui a comunicarvi che la nuova versione di JXTA, la 2.6, è finalmente pronta. Di seguito eccovi la traduzione di un articolo scritto da Jérôme Verstrynge, colui che ha guidato con estrema determinazione e diligenza l’intero processo di sviluppo per quest’ultima versione.

JXTA/JXSE 2.6 è pronto!

Dopo più di un anno di duro lavoro, JXSE 2.6, l’implementazione in Java dei protocolli JXTA, è finalmente pronta.

“Euh… Che? Di nuovo JXTA? Me lo ricordi? Ooooh sì, quel progetto P2P Open Source avviato da Sun Microsystems nel 2001!!! Mi ricordo… difficilissimo da far funzionare, in qualche modo bacato, scarsa documentazione. Non riuscivo a capire il comportamento che ci stava dietro. Avevo grandi speranze, l’ho provato, poi l’ho lasciato perdere! Beh, che novità?”

La versione 2.6 è stata un’occasione per cominciare a ridurre le enormi lacune tecniche accumulate nel codice. Abbiamo iniziato con la rimozione di tonnellate di codice morto e con il refactoring di tonnellate di altro codice in modo da renderlo più leggibile. C’è ancora molto da fare. Un bit sequenziale alla volta.

Non è tutto:

OSGi
Adesso è possibile avviare la rete JXTA come bundle OSGi. L’implementazione OSGi di Apache Felix è stata integrata in JXSE come dipendenza e può essere usata come framework OSGi standard
Per ridurre l’utilizzo di thread e altre risorse è stato implementato un singolo oggetto Task Manager per utilizzare un singolo gruppo di thread. Notevole è stato l’impatto sulle performance. 300 peergroup possono essere eseguiti senza rallentamenti su un MAC.

Gestore della Cache

Nuove implementazioni del gestore della cache basate su Apache Derby, H2 o Berkeley DB sono ora diaponibili. Queste possono rimpiazzare la attuale implementazione standard B-Tree File System. Niente più piccoli file nel tuo hard disk. Il recupero degli advertising e in generale molto più veloce.

Oggetti per la Configurazione
Oggetti per la configurazione facili da usare, basati sulla classe Java Properties, sono adesso disponibili per impostare il Gestore della rete (NetworkManager). Queste possono essere facilmente salvati e caricati da documenti XML.
Metodi per la connettività
un nuovo set di metodi di monitoraggio tra EDGE, RENDEZVOUS e RELAY è stato implementato. Adesso un peer può davvero sapere dove si trova nella rete.

Nuova implementazione TCP
Una nuova implementazione del livello TCP basata sul NIO Netty è stato implementato. L’intenzione è quella di non reinventare la ruota e delegare il delegabile a performanti librerie già esistenti.

Documentazione
Finalmente, una lunga attesa e relativamente completa documentazione di cosa accade dietro le quinte è stata resa disponibile nella guida del programmatore. Il codice resta una specie di labirinto, ma questa volta abbiamo una mappa per schivare il minotauro.

Maven
E ultimo, ma non per importanza, stiamo stiamo ultimando la migrazione del progetto a Maven. Gli Artefatti saranno postati in un repository opensource offerto da Sonatype. Presto, una integrazione continua non sarà più un sogno.

Tutto questo arriva dopo la risoluzione di una lunga serie di bug, tra i quali uno davvero brutto in agguato durante la creazione della connessione tra due peers NATtati. Semplicemente non avrebbe funzionato.

“Allora, che cosa viene dopo?” - Beh, non vediamo l’ora di finire la migrazione da Java.net di Kenai, un nuovo protocollo HTTP, più refactoring per il miglioramennto del codice, l’attuazione del NAT traversal per il TCP e l’esecuzione di più peer sulla stessa JVM. Quest’ultimo è l’ultimo anello mancante per un completo ambiente di sviluppo guidato dai test. Questo ci ha impedito di realizzare una serie completa di test JUnit. Tutte le questioni in sospeso sono adesso ben definite, basta affrontarle una alla volta.

JXTA / JXSE 2.5 è ancora parte di Glassfish. Sun ha ridotto la sua partecipazione al progetto a partire dalla fine del 2008, ma alcune persone sono rimaste molto attive partecipando al trasferimento del know-How. Noi non sappiamo  in che misura Oracle deciderà di partecipare. La possibilità di cedere tutto ad Apache è stata proposta.

“Ci sono dei libri?” - per coloro che non vogliono passare dalle Guide del programmatore, le specifiche dei protocolli JXTA, usare Google e cercare di eseguire gli obsoleti esempi trovati in rete, ho rivisto la prima edizione di “Practical JXTA”.

Questo libro è un’introduzione a JXTA, JXSE e al P2P per ingegneri del software. Esso contiene un nuovo capitolo riguardante i problemi legati al NAT traversal.

Il progetto sta subendo una migrazione da javadev verso kenai. Potete trovare la nuova home del progetto JXTA all’indirizzo http://jxta.kenai.com/ mentre il binding in java lo trovate qui.

Vi ricordo inoltre che Jérôme ha ultimato la revisione del sul libro “Practical JXTA“, acquistabile sulla apposita pagina ospitata da lulu.com.

Comunicazioni, Core JXTA , , , ,

Practical JXTA, breve commento di Mike Duigou

dicembre 17th, 2008

Jérôme Verstrynge è lautore di Practical JXTA un libro (in lingua inglese) che propone un approccio pratico all’adozione di JXTA. Qualche giorno fa Mike Duigou, uno dei principali sviluppatori di JXTA, ha scritto un breve commento sul libro, ne riportiamo la traduzione:

La mia copia del recentemente pubblicato Practical JXTA, è arrivata l’altro giorno. L’ho sfogliato mentre compilavo. Non ho ancora avuto tempo di leggerlo in dettaglio, solo l’introduzione l’indice e la biografia dell’autore.

Guardando l’indice sembra che il libro centri esattamente il punto che tradizionalmente (o recentemente) ha causato confusione e panico tra gli sviluppatori mentre apprendevano JXTA. Aiuta anche molto il fatto che il libro sia basato sull’ultimo rilascio di JXSE, la 2.5. Alcuni listati scritti nei vecchi libri non compilano più correttamente con le ultime versioni ( e alcuni sono abbastanza sicuro che non abbiano mai compilato). JXTA si è evoluto e migliorato molto negli anni e senza nuove edizioni i vecchi libri su JXTA, o almeno i loro listati di esempio, sono diventati obsoleti. Imparare JXTA con un nuovo e aggiornato libro dovrebbe essere molto più semplice.

Ho in programma di leggere il libro per intero appena ne avrò il tempo.

Anche se non abbiamo ancora avuto la possibilità di leggere il libro possiamo dire che il codice di esempio (liberamente scaricabile dal sito) è molto ben strutturato e cerca di evitare la scontatezza dei listati di esempio.

La Redazione.

Bloggers , , , , ,