つの言語では十分ではありません。作成されたクライアントを考えてみてください。コード・セットを生成する必要があります。実装のためのファイルがあることがわかります。ソフトウェア・スタックの実装は異なり、以下を見るとわかるように、生成されるファイルは異なるものの、型、定数、サービスの実装が生成されるという点は同じです。実装したサービスを使用するサーバーの実装に移りましょう。サーバーは極めて単純です。モジュールを公開し、その後でこれから使用する必要なモジュールをインポートします。示したソフトウェア・スタックであることに注意してください。基に、数学計算の実装の派生クラスを定義します。構成されたサービスの実装を定義します。スタックのコンポーネントを組み立てています。クラスで初期化しています。スタックを組み立てています。メソッドを呼び出し、スレッド化されたリクエストを処理できるようにしています。ユーティリティーが作成されたことを思い出してください。サーバーをテストすることができます。パスに公開する必要があります。PYTHONPATH=$PYTHONPATH:./gen-pyこの定義が終わると、このコマンド・ユーティリティーを使用してサーバーをテストすることができます。このユーティリティーのヘルプ情報とともに、このアプリケーションの使い方の例を示しています。(サーバーの場所とポート番号)、呼び出し対象の関数、一連の引数を指定する必要があります。localhost、先ほど定義したポート番号、そして対象とするテスト関数およびその引数を指定しています。872$この自動生成されたテスト・アプリケーションは、クライアントを準備する前に、作成したサーバーをテストする便利な手段になります。クライアントについて見て行きましょう。言語を使用してクライアントを作成します。使用する場合のプログラミング言語ごとの違いを説明する上で役立つとともに、複数のプログラミング言語を使用した素晴らしいテスト環境を提供することにもなります。クライアントのソース全体を示しています。モジュールが見えるようにします。モジュール内に生成されるコードからソフトウェア・スタックを作成しています。ソケットを作成し、そのソケットをトランスポート・レイヤーに接続しています。このソケットをプロトコル・インスタンスとして初期化し、さらにプロトコル・インスタンスをサービスとして初期化します。サーバーへの接続を作成すると、背後でサーバーに対してシリアライズされているサービス関数を呼び出すことができます。それが終わるとトランスポートが閉じられ、それによってサーバーのスレッドが解放されます。示す出力が得られます。ここまで紹介してきた、言語によって異なる抽象化のコード量はわずかです。使用していることがわかり、こうした単純なサービスの割には大がかりなことをしています。使用することにより、サービスを公開するクライアント・アプリケーションやサーバー・アプリケーションを容易に作成することができます。使用するとインターフェース定義フォーマットを統一できるため、このようなアプリケーションを複数のプログラミング言語で作成する場合であっても作業が容易になります。アクセスがあるアプリケーションの場合は、セキュリティーが重要です。クラスを使用したセキュアな通信をサポートすることができます。実装がラップされています。サーバーとの間で確実かつセキュアに通信を行うことができます。複数のアプリケーション環境およびそれらの通信を橋渡しする優れた手段ですが、気軽に使用できるものではありません。ドキュメントは少ない上に古く、またプログラミング言語ごとにサポートのレベルが異なるため、苛立たしい思いをさせられることがあります。ドキュメントには、サポートされている多くのプログラミング言語で例が示されておらず、生成されたコードを念入りに調べない限り動作を理解することができません。このような未熟な部分があるものの、このユーティリティーによって、通信、シリアライズ、サービス作成のための詳細なコードの大部分を自動生成することができます。裏で行うこうした作業のおかげで、アプリケーションに集中することができるとともに、複数のプログラミング言語を使用する分散アプリケーションを短時間で作成することができます。関する主要な情報源です。使用する方法について学んでください。インストールは、比較的容易に行える手順になっています。使用するにあたっての要件がよくわからない場合は、こちらのビルド用件のリストを調べてください。作成するに至った動機、興味深い設計上のトレードオフと実装の詳細の一例について紹介する素晴らしい論文です。アプリケーションについて紹介しています。