Apache Thrift
Apache Thrift è un linguaggio di definizione di interfaccia (IDL) usato per definire e creare servizi per diversi linguaggi informatici[1], in dettaglio, un protocollo di comunicazione binario[2]. È usato come framework per chiamate di procedura remota (RPC) e fu sviluppato presso Facebook per lo "sviluppo di servizi per linguaggi scalabili". Combina un software stack con un motore della generazione di codice per costruire servizi che lavora efficientemente per diversi gradi e senza soluzione di continuità tra Delphi, C#, C++ (su sistemi POSIX compatibili), Cappuccino, Cocoa, Erlang, Go, Haskell, Java, OCaml, Perl, PHP, Python, Ruby, Node.js e Smalltalk[3].
Sebbene sviluppato presso Facebook, ora è un progetto open source presso la Apache Software Foundation. L'implementazione fu descritta in un articolo tecnico reso disponibile su Facebook nell'aprile 2007, ora presente su Apache.
Architettura
modificaThrift include uno stack completo per la creazione di client e server. Ad alto livello c'è un codice generato dalla definizione Thrift.
Protocolli supportati
modifica- TBinaryProtocol
- TCompactProtocol
- TDebugProtocol
- TDenseProtocol
- TJSONProtocol
- TSimpleJSONProtocol
Creare un servizio Thrift
modificaCreazione di un servizio Thrift in C++:
enum PhoneType {
HOME,
WORK,
MOBILE,
OTHER
}
struct Phone {
1: i32 id,
2: string number,
3: PhoneType type
}
Note
modifica- ^ Andrew Prunicki, Apache Thrift: Introduction, su jnb.ociweb.com, http://www.ociweb.com/, Object Computing Inc. – An Open Solutions Company. URL consultato l'11 aprile 2011 (archiviato dall'url originale il 23 luglio 2011).«Through a simple and straightforward Interface Definition Language (IDL), Thrift allows you to define and create services that are both consumable by and serviceable by numerous languages. Using code generation, Thrift creates a set of files that can then be used to create clients and/or servers. In addition to interoperability, Thrift can be very efficient through a unique serialization mechanism that is efficient in both time and space.»
- ^ Installing and using Apache Cassandra With Java Part 4 (Thrift Client), su sodeso.nl, http://www.sodeso.nl/, Sodeso – Software Development Solutions. URL consultato il 30 marzo 2011 (archiviato dall'url originale il 15 agosto 2010).«Thrift is a separate Apache project which is, to put it simply, a binary communication protocol.»
- ^ Andrew Prunicki, Apache Thrift: Code Generation, su jnb.ociweb.com, http://www.ociweb.com/, Object Computing Inc. – An Open Solutions Company. URL consultato il 12 aprile 2011 (archiviato dall'url originale il 23 luglio 2011).«Thrift supports many languages too varying degrees. The complete list is below. Be careful before assuming that just because your language has some support that it supports all of the features of Thrift. Python for instance, only supports TBinaryProtocol. Cocoa, C++, C#, Erlang, Haskell, Java, OCaml, Perl, PHP, Python, Ruby, and Smalltalk»
Voci correlate
modificaAltri progetti
modifica- Wikimedia Commons contiene immagini o altri file su Apache Thrift
Collegamenti esterni
modifica- (EN) Apache Thrift, su thrift.apache.org.
- (EN) Thrift: The Missing Guide, su diwakergupta.github.com. URL consultato il 29 aprile 2019 (archiviato dall'url originale il 23 febbraio 2013).
- (EN) Thrift Ant task, su code.google.com.
- (EN) Tutorial di Thrift, su thrift.pl. URL consultato il 26 ottobre 2013 (archiviato dall'url originale l'8 febbraio 2016).