web-dev-qa-db-ja.com

RPCフレームワークとApache Thriftとは何ですか?

大学のプロジェクトで Apache Thrift を学ぶ必要があります。これが tutorial にあるように、それはRPCフレームワークであり、Thriftについて their documentation 以外の唯一のドキュメントでした。

誰かがRPCフレームワークとは何か、これがApache Thriftとどのように関係しているか教えてもらえますか?

89
bula

RPCフレームワークは一般に、プログラマーがリモートプロセスでコードを呼び出すことができるツールのセットです。同じマシン上の別のプロセス。

Apache Thriftの特定の場合、効率的で、OSプラットフォームとプログラミング言語の両方で利用できるように設計されたフレームワークについて説明します。さらに、トランスポート(ソケット、パイプなど)およびプロトコル(バイナリ、JSON、さらには圧縮)に関する柔軟性に加えて、SSLまたはSASLサポートなどのオプションがあります。

たとえば、、C++で記述されたLinuxマシンにサーバーをセットアップし、HTTPを介したJSONベースのプロトコルを通じて世界にサービスを提供します。 。このサービスは、Windowsマシンで実行されているPythonで記述されたクライアントプログラムによって呼び出される場合があります。サーバーとクライアントの両方のコードは、Thrift IDLファイルから生成されます。実行するには、基本的に目的のプログラムロジックのみを追加し、すべての要素をまとめる必要があります。

Apache Thriftの最高のreferenceは、まだ Apache Thrift Whitepaper です。詳細の一部は少し時代遅れですが、基本概念は依然として有効です。もう1つの良い読み物は Diwaker Guptaの「Missing Guide」 であり、最後に重要なのは Randy Abernethy からの今後の本です。

初心者には、Apache Thrift tutorial suite から始めることをお勧めします。これらの例は、多くのコア機能を示しています。質問に出くわした場合は、SOまたはThriftメーリングリストで質問してください。

142
JensG