Thrift

From air
Revision as of 13:04, 9 April 2016 by FAURE.MAXIMILIEN (talk | contribs) (Introduction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

https://thrift.apache.org/

Introduction

Thrift est un langage spécifique, dévloppé initialement par Facebook en C++, pour définir une interface de composant logiciel, ce qui permet une communication entre les composants qui peuvent ne pas être dans le même langage ni même sur la même machine. Il fourni des abstraction claires pour le transport de donnée et la sérialisation des données. Fourni aussi de nombreuses implementations de style de server (comme threadPoolServer or nonBlockingServer).

ThriftArchitechture.png

Fonctionnement

Une fois thrift installé sur la machine on peut créer un fichier .thrift qui défini les services implémentés par le serveur qui seront appelés par le(s) client(s). Un fichier .thrift contient des données et des services. Ce fichier servira ensuite à générer un fichier dans un langage spécifié qui rendra accessible un certain nombre de services.

Exemple de fichier .thrift :

 namespace java exemple //pour générer du code java
 namespace py exemple //pour générer du code python

 service AditionService
 {
       i32 add(1:i32 x1, 2:i32 x2),
 }

Ce simple fichier permet, via la commande : "thrift --gen <language> <Thrift filename>", de générer du code <language> permettant une communication entre un server et un client qu'il faudrait maintenant instancier. (Sachant que le client pourrait être en python et le server en java.)

Liens

https://en.wikipedia.org/wiki/Apache_Thrift