かんたんに説明する
2015.01.21 @ぶらいじぇん
API クライアント
Java
API サーバ
Java
APIライブラリ
(Jar)を使う
Java <-> Java
○
API クライアント
Java Ruby
API サーバ
Java
APIライブラリ
(Jar)を使えない
Ruby ≠ Java
×
API クライアント
Thrift クライアント
Java Ruby
API サーバ
Java×
Thriftクライアント
あきらめた
Thrift による
Ruby <-> Java の変換
Thrift サーバ
APIライブラリ(Jar)を使う
Java <-> Java
○○
API クライアント
Thrift サーバ
Java
 ThriftサーバはAPIサーバを叩き、同じインター
フェースを各言語へ提供するブリッジとなる
 Thriftクライアントは自らの言語でThriftサーバ
に対してRPC呼び出しをする
Thrift クライアント
Ruby
API サーバ
Java
API クライアント
Thrift サーバ
Java
Thrift クライアント
Python
Thrift クライアント
PHP, …
1. C GLib
2. C++ library
3. C# library
4. D library
5. Delphi library
6. Erlang library
7. Go library
8. Haxe library
9. Haskell library
10. Java library
11. JavaScript library
12. node.js library
13. OCaml library
14. Perl library
15. PHP library
16. Python library
Thriftクライアントと同様に
Java以外の言語でもOK
ApacheThrift(アパッチ スリフト)は、「スケーラブルな
言語間サービス開発」のためにFacebookにて開発された
RPCフレームワークである。これはソフトウェアスタック
とコード生成エンジンを組み合わせることで、C++、C#、
Java、Perl、Python、PHP、Erlang、Rubyなどの言語間にて
効率的かつシームレスに動作するサービスを開発すること
を可能とする。
http://ja.wikipedia.org/wiki/Apache_Thrift
https://thrift.apache.org/

Apache Thrift Outline