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
© Copyright 2024 ExpyDoc