ITLAB – Laboratorio IT

SOA (Service Oriented Architecture), Web 2.0, Open Source e Java.

  • Feed

    Feed ITLAB

  • Chi sono

    Mi chiamo Andrea Gumina. Sono laureato in Scienze dell'Informazione e lavoro per un'azienda di consulenza IT. Da qualche anno mi occupo di integrazione di sistemi, di SOA (Service Oriented Architecture) da poco meno di tre.

  • Bookmarks

  • Licenza

  • Statistiche

Archivio per la categoria ‘Open Source’

YDN: la piattaforma di Yahoo! per gli sviluppatori

Pubblicato da Andrea Gumina su 23 Febbraio 2009

Christian Heilmann, in “Yahoo For The Masses“, sintetizza l’offerta di YDN (Yahoo! Developer Network), la piattaforma di Yahoo! per gli sviluppatori.

Interfaccia Utente:

Performance:

API:

—-><—-

Hai trovato questo articolo interessante? Segui il feed e commenta!

Pubblicato su Open Source, Web 2.0 | Contrassegnato da tag: , , , , , , , , | Lascia un commento »

Da Facebook un nuovo IDL: Thrift

Pubblicato da Andrea Gumina su 7 Febbraio 2009

L’IDL (Interface Description Language) è un linguaggio con cui descrivere interfacce; vi si ricorre quando si desidera esporre – solitamente in modalità RPC (Remote Procedure Call) – un componente software ad altri sistemi, anche se sviluppati con linguaggi di programmazione diversi. L’IDL è paragonabile ad una lingua franca tra linguaggi di programmazione differenti: tipi semplici e complessi, parametri di input e di output, operazioni, ecc. espressi secondo il linguaggio di programmazione dei sistemi coinvolti, sono tutti ricondotti ai corrispondenti costrutti dell’IDL, che diviene così il linguaggio comune per questa comunicazione. CORBA (IDL) e WSDL sono esempi di IDL.

Facebook, tempo fa, ha aperto il codice dell’IDL che usa al suo interno: Thrift.

Thrift è quindi un linguaggio con cui definire interfacce: tipi semplici e complessi, tipi strutturati e operazioni con parametri di input e di output. Con il compilatore che include, si genera poi, a partire dalle interfacce così descritte, data-bindings e stubs, lato server e client.

Thrift è indipendente da trasporto, protocollo e serializzazione: non ne impone di specifici ma ne stabilisce l’interfaccia in modo da poter essere adattato o esteso. Di alcuni trasporti (file, memoria, socket e pochi altri) ne include l’implementazione.

Thrift, infine, è compatibile sia in avanti che all’indietro: i campi non attesi ma presenti nel pacchetto serializzato sono semplicemente ignorati, quelli attesi, ma non presenti, lasciati vuoti e il fatto segnalato. Questa caratteristica è soddisfatta sia per le strutture che per i parametri dei metodi; potrebbe però non essere garantita nel caso in cui un server obsoleto non riceva un campo rimosso da un nuovo client.

Thrift nasce da esigenze ben precise: l’interoperabilità tra un certo numero di linguaggi (Java, C++, PHP, Python e altri), la generazione automatica del codice di “traduzione” tra formati d’interscambio e nativi, il volersi sottrarre all’aggiornamento contemporaneo di tutti i sistemi e il desiderio di concentrarsi sulla logica di business piuttosto che sui dettagli d’infrastruttura.

Facebook impiega Thrift in un elevato numero di sistemi, tra cui: ricerca, logging, gestione degli annunci pubblicitari e applicazioni mobili.

Thrift è un progetto Open Source ospitato su Apache.

—-><—-

Hai trovato questo articolo interessante? Segui il feed e commenta!

Pubblicato su Java, Open Source | Contrassegnato da tag: , , , , , , | Lascia un commento »

Da Google un nuovo formato dati: Protocol Buffers

Pubblicato da Andrea Gumina su 2 Febbraio 2009

Google, tempo fa, ha aperto il codice di Protocol Buffers, il formato dati che usa al suo interno. L’accoglienza, stranamente, non è stata delle migliori: in molti si sono chiesti se Google non avesse semplicemente reinventato la ruota.

Protocol Buffers comprende un linguaggio con cui esprimere strutture dati indipendenti dall’implementazione e dal trasporto (rete, disco, ecc.), un compilatore con cui generare il data-binding per un certo numero di linguaggi (Java, C++, Python e altri) e librerie con cui serializzare, de-serializzare e manipolare il pacchetti dati.

Google afferma che questo formato è efficiente (veloce nella serializzazione e nella de-serializzazione), compatto (pacchetto binario dalle dimensioni molto contenute) e compatibile, sia con le versioni precedenti che con quelle successive (i campi sconosciuti sono ignorati, a quelli mancanti è assegnato l’eventuale valore di default); comunque un benchmarking non è mostrato ed è consigliato un confronto con il formato già in uso (che magari si pensa di sostituire).

I dati serializzati con Protocol Buffers possono anche essere salvati su disco o su una base dati, unica accortezza quella di far riferimento alla definizione della struttura: il pacchetto dati serializzato, infatti, non è autodescrittivo (sui documenti è comunque descritta una strategia per conseguire qualcosa di simile).

Protocol Buffers è nato non per competere con JSON (JavaScript Object Notation) , XML, ASN.1, ecc. ma per soddisfare alcuni requisiti – prestazioni, riduzione del traffico rete e spazio disco, efficienza negli aggiornamenti del software e generazione dei data-binding – anche a rischio di perdere i vantaggi della standardizzazione e della leggibilità propri, ad esempio, di XML.

—-><—-

Sullo stesso argomento:

—-><—-

Hai trovato questo articolo interessante? Segui il feed e commenta!

Pubblicato su Architetture, Java, Open Source | Contrassegnato da tag: , , , , , , , , , | Lascia un commento »