リスト1 (currtime.py): XML

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