Python XML-RPCクライアント <1/7> ◇ Python XML-RPCクライアントは、非常に簡単に書くことができ ます。 ◇モジュールxmlrpclibには、必要なすべての機構が含まれていま す。 ◇リスト1 (currtime.py) の例では、XML-RPCを使ってUserLand サーバーから現在の時刻を取得しています。 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.0 Python XML-RPCクライアント <2/7> リスト1 (currtime.py): XML-RPCを使って現在の時刻を取得する import xmlrpclib # Port 80 is the default server = xmlrpclib.ServerProxy("http://time.xmlrpc.com") currentTimeObj = server.currentTime currtime = currentTimeObj.getCurrentTime() print currtime print currtime.value 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.1 Python XML-RPCクライアント <3/7> ◇リモートの XML-RPCオブジェクトを呼び出すには、XML-RPCを 使用して要求をサーバーに転送するプロキシー・オブジェクトを作 成します。 ◇プロキシー・オブ ジェクトのルック・アンド・フィールは通常の Pythonオブジェクトと似ており、要求は簡単な関数呼び出しです。 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.2 Python XML-RPCクライアント <4/7> ◇実際にプロキシー化されているのはサーバーです。 ◇プロキシーは、ServerProxy クラスのインスタンスを初期化するこ とによってセットアップされます。 ◇セットアップには、リモート・サーバーの完全なURLを渡します (必ずURLスキーム「http://」を含めます)。 ◇ポート80がデフォルトのアクセスポートです。 ◇リモート・サーバーがポート8080でlistenしていた場合は、代わり に「http://time.xmlrpc.com:8080」を使用します。 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.3 Python XML-RPCクライアント <5/7> ◇サーバーのプロキシーは、サーバーがホストしているすべての 実際のリモート・オブジェクトを通常の属性として保持しています。 ◇リスト1(currtime.py)では、 currentTime という名前のリモート・ オブジェクトへのハンドルを得ています。 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.4 Python XML-RPCクライアント <6/7> ◇リモート・オブジェクトへのハンドルで、プロキシー・オブジェクト 上のメソッドを呼び出すことができ、呼び出されたプロキシー・オ ブジェクトが現在の時刻を返します。 ◇応答は、DateTimeというXML-RPCの型です。 DateTimeオブ ジェクトのプレーンなストリング表現を得るために、value 属性を 使用します。 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.5 Python XML-RPCクライアント <7/7> ◇クライアント・サーバーをポート1234(即ち、任意のポート)で通 信させ、且つ、同一コンピュータ(即ち、各自のPCで)動作させたい 場合は、「 xmlrpclib.ServerProxy("http://time.xmlrpc.com") 」の代 わりに、何「?」を使用すればよいか? 【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc) p.6
© Copyright 2024 ExpyDoc