リスト4: XML-RPCカレンダー・サーバー

Python XML-RPCサーバー <1/8>
◇Pythonには、XML-RPCサーバーを実装するモジュール
SimpleXMLRPCServer も含まれています。
◇同じ名前のモジュール内のSimpleXMLRPCServer クラスのイン
スタンスを使用して関数やインスタンスを登録し、XML-RPCサービ
スを公開することができます。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.0
Python XML-RPCサーバー <2/8>
◇必要な作業を行うメソッドを使用してインスタンスを記述し、この
インスタンスを登録するというのが最も簡単な方法です。
◇ただし、この場合メソッド名にピリオドを含めることはできません。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.1
Python XML-RPCサーバー <3/8>
◇まずは、簡単なカレンダー・サーバーを作成しましょう。
◇リスト4 (calserver.py) は、XML-RPCカレンダー・サーバーの実
装です。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.2
Python XML-RPCサーバー <4/8>
リスト4: XML-RPCカレンダー・サーバー
import calendar, SimpleXMLRPCServer
#The server object
class Calendar:
def getMonth(self, year, month):
return calendar.month(year, month)
def getYear(self, year):
return calendar.calendar(year)
calendar_object = Calendar()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))
server.register_instance(calendar_object)
#Go into the main listener loop
print "Listening on port 8888"
server.serve_forever()
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.3
Python XML-RPCサーバー <5/8>
◇クラスCalendar は、公開するメソッドを実装します。
◇これらのメソッドは数字を受け取り、ストリングを返します。
◇このオブジェクトのインスタンスを作成し、次にXML- RPCサー
バー・クラスのインスタンスを作成します。
◇これを使用してカレンダー・インスタンスを登録します。
◇これでサーバーで、getMonth メソッドとgetYear メソッドが使用で
きるようになります。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.4
Python XML-RPCサーバー <6/8>
◇メイン・コードでは、サーバー・オブ ジェクトを作成し、listenアドレ
スとlistenポートを表すタプルを与えています。
◇アドレスは、ホスト名、IPアドレスのどちらでも指定可能で す。
◇最後に、このサーバーをそのメイン・ループに置きます。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.5
Python XML-RPCサーバー <7/8>
calender_server.py
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.6
Python XML-RPCサーバー <8/8>
◇メイン・ループは、ユーザーがCTRL-Cを押した場合など、オペ
レーティング・システム の信号が中断することを解釈した場合にの
み中断します。
◇分離されたコンソールを立ち上げ、サーバー・スクリプトを実行し
ます。
【特別セッション】 身近な生活のリズムを記録するシステム(Life Style Logger)と、Pythonの分散プログラミングモジュール(xmlrpc)
p.7