JP5635760B2 - 情報処理システム、情報処理方法、およびコンピュータプログラム - Google Patents

情報処理システム、情報処理方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP5635760B2
JP5635760B2 JP2009239868A JP2009239868A JP5635760B2 JP 5635760 B2 JP5635760 B2 JP 5635760B2 JP 2009239868 A JP2009239868 A JP 2009239868A JP 2009239868 A JP2009239868 A JP 2009239868A JP 5635760 B2 JP5635760 B2 JP 5635760B2
Authority
JP
Japan
Prior art keywords
return value
function
component
information
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009239868A
Other languages
English (en)
Other versions
JP2011086206A (ja
JP2011086206A5 (ja
Inventor
政太郎 白岩
政太郎 白岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009239868A priority Critical patent/JP5635760B2/ja
Priority to US12/877,271 priority patent/US8397247B2/en
Publication of JP2011086206A publication Critical patent/JP2011086206A/ja
Publication of JP2011086206A5 publication Critical patent/JP2011086206A5/ja
Priority to US13/771,946 priority patent/US8893161B2/en
Application granted granted Critical
Publication of JP5635760B2 publication Critical patent/JP5635760B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Description

本発明は、情報処理システム、情報処理方法、およびコンピュータプログラムに関する。
製品の多様化、機能の複雑化、ソフトウェア肥大化の傾向が続く現在のシステム開発において、ソフトウェアは役割の観点で分割されドメイン毎の開発が行われる。さらにソフトウェアをソフトウェアの部品であるコンポーネントとして再利用して開発の効率化、品質の向上を実現していくコンポーネント開発が注目されている。近年、製品の要件やハードウェアの特性に応じて一つの機器内で複数のプロセッサ(CPU)やオペレーティングシステム(OS)を用いて開発することが一般的となっている。その結果、機器内においても分散環境下でのコンポーネント開発が必要となっている。一般に分散環境下の異なるCPU/OS上でコンポーネント開発をする場合には、コンポーネント開発ミドルウェア上で開発が行われる。コンポーネント開発ミドルウェアは環境間のデータ表現形式(バイトオーダ、アラインメント)の差異の吸収処理(データマーシャリング)やCPUやプロセスが異なるコンポーネント間のサービス呼出しをサポートする。コンポーネント開発ミドルウェアの利用により、コンポーネントの位置透過性が実現し、開発者は遠隔手続き呼出しにより同一プロセス内の関数を実行するのと同様に分散環境にあるサービスを利用することが可能となる。コンポーネント開発ミドルウェアによる遠隔手続き呼出しによって、コンポーネントのアプリケーションロジックと開発環境固有の実装とを切り離し、開発のし易さとコンポーネントの再利用性を向上させている。
遠隔手続き呼出しでは通常の同一プロセス内の関数呼出しとは異なり下記の課題がある。まず、遠隔手続き呼出しの内部処理では「コンポーネント間の通信処理」に加えて「データマーシャリング」が行われている。そのため、同一プロセス内の関数を実行する場合と比較して実行に時間がかかるだけではなく、頻繁に呼出しを行う場合にシステム全体のスループット低下にもつながる。そこで、有効な結果が得られない無駄な呼出しを抑制する必要があるが、有効な結果を取得する為のタイミング制御にも通信が発生し、オーバヘッドが掛かる。次に、遠隔手続き呼出しでは分散環境下のサーバのサービスを実行するため、サーバがビジー状態か否かを同一プロセスの場合と同等な低い通信オーバヘッドで監視することが困難である。そのため、サーバが他のリクエストやサーバ自身の処理でビジー状態の場合に、クライアントが長時間ブロックして処理が中断する。
特許文献1では、上記の課題を解決する手法として、リソースの空き状況を専用の遠隔手続き呼出しで確認する手法やリソースの空き状況を管理する専用のコンポーネントを用意して空き状況を事前に問い合わせる。この手法では、クライアントではリソースの解放待ちによるブロックの回避が可能になる。しかしながら、サーバでは、遠隔手続き呼出しがクライアントからのリクエストドリブンで行われる。そのため、クライアントが過剰に呼出しを実行することによってサーバアプリケーションの処理スループットを低下させることとなり、次のような問題がある。第1に、サーバ・コンポーネントからの返信内容に変化がない場合であっても、クライアントへ処理を通知する仕組みが無い為、過剰にリクエストを処理することがある。第2に、サーバ・コンポーネントが高優先度の処理を実行する必要があっても、クライアントからのリクエストに答える必要があり、高優先度の処理が中断される。第3に、機器の省電力モードなどでサーバ・コンポーネントを休止状態にする必要があっても、サービスを直に中断することが出来ない。
特許第3544140号公報
本発明は、クライアントからの遠隔手続き呼出しをサーバから抑制する技術を提供することを目的とする。
上記課題に鑑みて、本発明に係る情報処理システムは、クライアント・コンポーネントとサーバ・コンポーネントとを備え、前記クライアント・コンポーネントの有するプログラムが前記サーバ・コンポーネントの有する関数に対して遠隔手続き呼出しを行う情報処理システムであって、前記クライアント・コンポーネントは、前記関数の戻り値情報を保持するための保持手段と、前記プログラムから前記関数に対する遠隔手続き呼出しの要求を受け付ける呼出手段と、を備え、前記サーバ・コンポーネントは、前記呼出手段から前記関数の戻り値を要求された場合に前記関数を実行して得られた第1戻り値を前記呼出手段に返す実行手段と、前記プログラムからの遠隔手続き呼出しに対する前記サーバ・コンポーネントの処理負荷を抑制するモードに設定された場合に、前記呼出手段から前記関数の戻り値を要求されていない状態で前記関数を実行して得られた第2戻り値を含む戻り値情報を前記保持手段に保持させる設定手段と、を備え、前記呼出手段は、前記保持手段に前記戻り値情報が保持されていない場合に、前記関数に対して遠隔手続き呼出しを行い、返された前記第1戻り値を前記プログラムに返し、前記保持手段に前記戻り値情報が保持されている場合に、前記関数に対する遠隔手続き呼出しを行わずに、前記戻り値情報に含まれる前記第2戻り値を前記プログラムに返すことを特徴とする。
本発明によれば、クライアントからの遠隔手続き呼出しをサーバから抑制する技術が提供される。
本実施形態に係る情報処理装置100の構成ブロック図の一例。 本実施形態に係るRPCインスタンス150の詳細ブロック図の一例。 本実施形態に係るRPCインスタンス150の相関図の一例。 本実施形態に係るサーバRPCインスタンス220の動作の一例のフローチャート。 本実施形態に係るクライアント情報テーブル224の一例。 本実施形態に係る通常モードにRPC要求を受信した場合のクライアントRPCインスタンス210の動作の一例のフローチャート。 本実施形態に係る優先モードに設定された場合のサーバRPCインスタンス303の動作の一例のフローチャート。 本実施形態に係る戻り値情報800の一例。 本実施形態に係る戻り値情報900の別の例。 本実施形態に係る節電モードに移行する場合の情報処理装置100全体の動作のシーケンス図。
以下、添付の図面に従って本発明に係る実施形態を説明する。以下において、遠隔手続き呼出しを単に「RPC(リモート・プロシージャ・コール)」と表す。
<第1の実施形態>
〔情報処理装置100の構成図〕
図1を用いて本実施形態に係る情報処理装置100の構成を説明する。本実施形態では、本発明に係る情報処理システムの例として、ノードX110、ノードY120、およびユーザ・インタフェース130を備える情報処理装置100を扱う。ノードX110、ノードY120、およびユーザ・インタフェース130は内部ネットワーク140で相互に接続されており、これらが協調動作して情報処理装置100を動作させる。
ノードX110は、CPU111、メモリ112、コンポーネントA113、コンポーネントB114、およびデバイス118を含む。CPU111は、ノードX110全体の動作を司る。メモリ112は、ノードX110で使用されるコンピュータプログラムやデータなどを記憶し、ROMやRAMなどで実現される。コンポーネントA113は、ノードX110で利用されるプログラムの部品であり、関数A115およびRPCインスタンス150を含む。RPCインスタンス150は、コンポーネントA113がRPCを実行する際に用いられるプログラムであるが、詳細は後述する。コンポーネントB114も同様に、ノードX110で利用されるプログラムの部品であり、関数Ba116、関数Bb117、およびRPCインスタンス150を含む。本実施例では、関数Ba116および関数Bb117は、デバイス118の状態を取得する関数であるとする。例えば、デバイス118が搬送アームである場合に、関数Ba116は搬送アーム先端の位置を取得し、関数Bb117は搬送アーム先端の高さを取得する。ノードY120は、CPU121、メモリ122、関数C125を含むコンポーネントC123、および関数D126を含むコンポーネントD124を含む。ノードY120に含まれる各要素はノードX110に含まれる各要素と同様のため、説明を省略する。
ユーザ・インタフェース130は、モード・ボタン131および節電ボタン132を含む。モード・ボタン131は、情報処理装置100の状態を通常モードと優先モードとの間で切り替えるためのボタンである。優先モードに設定された場合に、ノードX110はコンポーネントB114よりもコンポーネントA113を優先して動作する。節電ボタン132は、情報処理装置100の状態を通常モードと節電モードとの間で切り替えるためのボタンである。節電モードに設定された場合に、ノードX110はデバイス118の電源をOFFにする。
続いて、図2を用いてRPCインスタンス150の詳細を説明する。RPCインスタンス150は、コンポーネントに対してRPCの機能を提供する。RPCインスタンス150は、クライアントRPCインスタンス210とサーバRPCインスタンス220との一方または両方を含む。クライアントRPCインスタンス210は、呼出部211および保持部212を含む。呼出部211は、呼出元関数200から呼出先関数230に対するRPC要求を受け付ける。呼出部211は、呼出元関数200から取得した呼出先関数名、ノード名、返信先情報、および引数データを通信用のフォーマットにシリアライズして実行部221に送信し、呼出先関数230の戻り値を要求する。そして、呼出部211は、実行部221から受信したデータをデシリアライズして呼出先関数230の戻り値を取得し、該戻り値を呼出元関数200に返す。保持部212は、戻り値情報213を保持する。戻り値情報213の詳細は後述する。
サーバRPCインスタンス220は、実行部221、管理部222、および設定部223を含む。実行部221は、呼出部211からRPC要求を受信した場合に、受信したデータをデシリアライズして取得した関数名に対応する呼出先関数230を実行して、戻り値を得る。そして、実行部221は、得られた戻り値を通信用フォーマットにシリアライズして、受信していた返信先情報に基づいて呼出部211に送信する。管理部222は、クライアント情報テーブル224、優先モード情報テーブル225、および節電モード情報テーブル226を管理する。これらのテーブルの詳細は後述する。設定部223は、情報処理装置100のモードが切り替わる場合に、保持部212の戻り値情報213を設定または削除する。
続いて、図3を用いて各コンポーネントが有するRPCインスタンス150について説明する。本実施形態では、呼出先関数230を含むコンポーネントには、サーバRPCインスタンス220が一つずつ含まれるとする。以下、呼出先関数230を含むコンポーネントをサーバ・コンポーネントと呼ぶ。また、呼出元関数200を含むコンポーネントには、サーバ・コンポーネントに対応するクライアントRPCインスタンス210が含まれる。以下、呼出元関数200を含むコンポーネントをクライアント・コンポーネントと呼ぶ。具体的には、コンポーネントA113は、クライアントRPCインスタンス302を介してコンポーネントB114に含まれる関数を利用する。コンポーネントC123は、クライアントRPCインスタンス304を介してコンポーネントA113に含まれる関数を利用し、クライアントRPCインスタンス305を介してコンポーネントB114に含まれる関数を利用する。コンポーネントD124は、クライアントRPCインスタンス306を介してコンポーネントA113に含まれる関数を利用し、クライアントRPCインスタンス307を介してコンポーネントB114に含まれる関数を利用する。一方、コンポーネントA113は、サーバRPCインスタンス301を介してコンポーネントC123とコンポーネントD124とからRPCを受け付ける。コンポーネントB114は、サーバRPCインスタンス303を介してコンポーネントA113、コンポーネントC123、およびコンポーネントD124からRPCを受け付ける。
〔サーバ側のRPC応答処理〕
図4のフローチャートを用いて、RPCの要求を受信した場合のサーバRPCインスタンス220の動作について説明する。例として、コンポーネントC123の有する関数C125がコンポーネントB114の有する関数Ba116をRPCで利用する場合を扱う。このフローチャートの動作は、コンピュータで読み取り可能な記憶媒体であるメモリ112に記憶されたコンピュータプログラムをCPU111が処理することによって実行される。
S401で、コンポーネントB114の有するサーバRPCインスタンス303の実行部221は、コンポーネントC123の有するクライアントRPCインスタンス305の呼出部211からRPC要求を受信する。S402で、実行部221は、RPCの要求してきたクライアント・コンポーネントの名称、該コンポーネントを含むノード名、および該コンポーネント返信先情報を関連づけて、管理部222の有するクライアント情報テーブル224に登録する。S403で、実行部221は、RPC要求に含まれる関数Ba116を実行して戻り値を取得する。S404で、実行部221は、取得した戻り値を呼出部211に送信する。
図5を用いてコンポーネントB114の有するサーバRPCインスタンス303のクライアント情報テーブル224について説明する。管理部222は、クライアント情報テーブル224として、クライアント名511、ノード名512、および返信先情報513を関連付けて記憶する。クライアント名511は、コンポーネントB114にRPC要求を送信したクライアント・コンポーネントの名称である。ノード名512は、クライアント・コンポーネントを含むノードの名称である。返信先情報513は、クライアント・コンポーネントのクライアントRPCインスタンス210の宛先である。なお、管理部222は、クライアント名511やノード名512をそれぞれに割り当てられたIDで管理してもよい。本実施形態では、RPC要求を送信したクライアント・コンポーネントをクライアント情報テーブル224に登録するが、個別に手動で登録してもかまわない。
〔通常モードのクライアント側のRPC処理〕
図6のフローチャートを用いて、通常モードにRPC要求を受信した場合のクライアントRPCインスタンス210の動作について説明する。例として、コンポーネントC123の有する関数C125がコンポーネントB114の有する関数Ba116をRPCで利用する場合を扱う。このフローチャートの動作は、コンピュータで読み取り可能な記憶媒体であるメモリ122に記憶されたコンピュータプログラムをCPU121が処理することによって実行される。
S601で、コンポーネントC123の有するクライアントRPCインスタンス305の呼出部211は、関数C125から関数Ba116に対するRPC要求を受け付ける。S602で、呼出部211は、関数Ba116の戻り値が戻り値情報213に設定されているか否かを判定する。通常モードの場合には、戻り値情報213は設定されていない(S602において「NO」)ので、処理はS603に移行する。S603で、呼出部211は実行部221に対してRPC要求を送信する。RPC要求の詳細は前述の通りであるため、ここでは繰り返さない。S606で、呼出部211は取得した関数Ba116の戻り値を関数C125に返す。
〔優先モード時のRPC処理〕
情報処理装置100が優先モードに設定された場合の動作について説明する。本実施形態では、モード・ボタン131の押下によって情報処理装置100が通常モードから優先モードに切り替わった場合に、ノードX110はコンポーネントA113の動作を優先する。そのため、ノードX110は、可能な限りコンポーネントB114の動作を行わないようにする。図3を用いて前述したとおり、コンポーネントB114は、コンポーネントA113、コンポーネントC123、およびコンポーネントD124にサービスを提供する。ここで、コンポーネントB114が一切のRPC要求を拒絶した場合には、コンポーネントA113からの要求も拒絶してしまい、コンポーネントA113の処理が優先されない。また、単純に、コンポーネントB114がコンポーネントA113以外からの要求を無視した場合には、キューがあふれてしまい、状態の不整合が発生してしまうおこれがある。したがって、コンポーネントA113の動作を優先するために、コンポーネントB114は、コンポーネントA113以外からのRPC要求を抑制する。そのために、本実施形態では、コンポーネントB114は、コンポーネントA以外のコンポーネントに対して、戻り値情報213を設定する。戻り値情報213を設定されたコンポーネントは、コンポーネントB114にRPC要求を行わずに、戻り値情報213から取得した戻り値を呼出元関数200に返す。
まず、図7のフローチャートを用いて、情報処理装置100が優先モードに設定された場合のサーバRPCインスタンス303の動作について説明する。このフローチャートの動作は、コンピュータで読み取り可能な記憶媒体であるメモリ112に記憶されたコンピュータプログラムをCPU111が処理することによって実行される。S701で、コンポーネントB114の有するサーバRPCインスタンス303の設定部223は、どのモード変更が行われるかを判定する。優先モードの場合(S701において「優先モード切替」)に、処理はS702に移行する。S702で、設定部223は、管理部222の有する優先モード情報テーブル225から、優先モード情報を取得する。
図5を用いて、優先モード情報テーブル225について説明する。管理部222の保持する優先モード情報テーブル225は、優先モードの切替時に戻り値情報を設定するクライアントに関する優先モード情報を含む。優先モード情報は、クライアント名521、関数名522、戻り値タイプ523、および利用回数524を関連付けた情報である。クライアント名521は、コンポーネントBの有するクライアント・コンポーネントの名称である。関数名522は、当該クライアント・コンポーネントがRPC要求を行う呼出先関数230の名称である。戻り値タイプ523は、情報処理装置100が優先モードに設定される場合に、クライアントに設定される戻り値の種類である。戻り値タイプ523が「直前値」の場合に、設定部223は、戻り値情報を設定する時点で呼出先関数230を実行した戻り値を設定する。戻り値タイプ523が「エラー値」の場合に、設定部223は、呼出先関数230を実行した際にエラーだった場合の戻り値を設定する。利用回数524は、クライアント・コンポーネントにおいて、呼出部211が保持部212に設定された戻り値を利用できる回数である。情報処理装置100が優先モードに設定されている間は、呼出部211が常に戻り値情報に含まれる戻り値を参照できるように、利用回数524は無制限に設定される。このように、優先モード情報テーブル225は、情報処理装置100が優先モードに設定された場合に戻り値情報を設定すべきクライアント・コンポーネントの情報を保持する。優先モード情報テーブル225は、事前に設定される。
図7に戻り、S704で、実行部221は、関数名522で指定された関数を、戻り値タイプ523に従って実行し、戻り値を取得する。S705で、設定部223は、取得した戻り値をクライアントRPCインスタンス210の戻り値情報213に設定する。ここで、クライアントRPCインスタンス210の返信先情報は、クライアント情報テーブル224に登録されているものを利用できる。なお、ノード名512が同一であるクライアントに関しては、戻り値情報をまとめて各ノードに送信してもよい。
図8を用いて、情報処理装置100が優先モードに設定された場合におけるコンポーネントC123の有するクライアントRPCインスタンス305の戻り値情報800を説明する。図3を用いて説明したように、クライアントRPCインスタンス305は、コンポーネントC123からコンポーネントB114に対してRPCを行う場合に利用されるRPCインスタンス150である。戻り値情報800は、関数リスト810とデータリスト820とを含む。関数リスト810は、コンポーネントC123がRPCで利用するコンポーネントB114の関数の一覧である。関数名811は、RPCで利用する関数の名称である。データリストID812は、各関数が参照するデータリスト820のIDである。データリスト820は、それぞれの関数に対する戻り値を含む。データリストID821は、データリスト820のIDであり、データリストID812に対応する。戻り値822は、優先モード時にコンポーネントB114の関数に対するRPCが要求された場合に、呼出部211が呼出元関数200に返す戻り値である。残り利用回数823は、呼出部211が戻り値822を利用可能な回数の残数である。後続データリスト824は、他のデータリスト820へのリンクである。情報処理装置100が優先モードにある場合には、戻り値情報800に示すデータがコンポーネントC123の有するクライアントRPCインスタンス305の保持部212に設定される。
続いて、再び図6のフローチャートを用いて、優先モード時にRPC要求を受け付けた場合のクライアントRPCインスタンス210の動作について説明する。S601で、呼出部211が例えば関数C125から関数Ba116に対するRPC要求を受け付けたとする。S602で、呼出部211は、保持部212に戻り値情報213が設定されているか否かを判定する。図8の戻り値情報800に示すとおり、関数Ba116の戻り値情報213が設定されている(S602において「YES」)ため、処理はS604に移行する。S604で、呼出部211は戻り値情報213から関数Ba116の戻り値を取得する。S605で、呼出部211は戻り値情報213を更新する。優先モードの場合に更新の必要はない。S606で、呼出部211は関数Ba116の戻り値を関数C125に返す。このように、コンポーネントC123からコンポーネントB114に実際にRPCを行うことなく、関数C125に対して関数Ba116の戻り値を返すことが出来る。そのため、コンポーネントB114は、コンポーネントA113からのRPC要求だけを処理することが出来る。
続いて、再びモード・ボタン131が押されて、優先モードから通常モードに変更された場合の情報処理装置100の動作について、図7のフローチャートを用いて説明する。S701で、設定部223は優先モードの切替であると判定し、S702で、設定部223は優先モード情報テーブル225から優先モード情報を取得する。S703で、設定部223は、優先モードを解除する(S703において「NO」)と判定し、S706で、設定部223は、取得した優先モード情報に従って、保持部212の戻り値情報213を削除する。例えば、設定部223は、図8に示す戻り値情報800を削除する。これにより、呼出部211は、再び通常モードのRPC処理を行うことになる。
〔節電モード時のRPC処理〕
情報処理装置100が節電モードに設定された場合の動作について説明する。本実施形態では、節電ボタン132の押下によって情報処理装置100が通常モードから節電モードに切り替わった場合に、デバイス118の電源をOFFにする。節電モードに移行の際に、コンポーネントA113の関数A115は、デバイス118の状態を取得するため、コンポーネントB114の関数Ba116を2回呼び出す必要があるとする。ここで、関数A115が関数Ba116を呼び出すまでに時間を要するとすると、関数Ba116の呼出が終了するまで、ノードX110はデバイス118の電源がOFFにできない。そこで、コンポーネントB114は、関数Ba116の戻り値を事前に取得して、コンポーネントA113に登録する。こうすることによって、ノードX110はデバイス118の電源を早期にOFFにすることが可能となる。関数Ba116の戻り値はコンポーネントA113に設定されているため、デバイス118の電源がOFFになった後でも、関数A115は処理を継続できる。
まず、図7のフローチャートを用いて、情報処理装置100が節電モードに設定された場合のサーバRPCインスタンス220の動作について説明する。S701で、節電モードへの切替である(S701において「節電モード切替」)であるため、処理はS707に移行する。S707で、設定部223は、管理部222の有する節電モード情報テーブル226から、節電モード情報を取得する。図5を用いて、節電モード情報テーブル226について説明する。管理部222の保持する節電モード情報テーブル226は、節電モードの切替時に戻り値情報を設定するクライアントに関する節電モード情報を含む。節電モード情報は、クライアント名531、関数名532、戻り値タイプ533、および利用回数534を含む情報である。これらは優先モード情報と同様であるため、説明を省略する。情報処理装置100が節電モードに設定されている間は、節電モードへの移行に必要な回数だけ「直前値」を返すように利用回数534を「2回」に設定し、それ以降は「エラー値」を返すように利用回数534は無制限に設定される。このように、節電モード情報テーブル226は、情報処理装置100が節電モードに設定された場合に戻り値情報を設定すべきクライアント・コンポーネントの情報を保持する。節電モード情報テーブル226は、事前に設定される。図7に戻り、S709、S710が処理されるが、これらの動作は前述のS704、S705の動作とそれぞれ同様のため、説明を繰り返さない。
図9を用いて、情報処理装置100が節電モードに設定された場合におけるコンポーネントA113の有するクライアントRPCインスタンス302の戻り値情報900を説明する。関数リスト901には、関数Baに対してータリストID「1」が設定される。データリスト902の残り利用関数には「2」が設定される。つまり、データリスト902の戻り値の利用回数の上限は2回である。また、データリスト902には、後続データリストが指定される。
続いて、再び図6のフローチャートを用いて、節電モード時にRPCの要求を受信した場合のクライアントRPCインスタンス210の動作について説明する。S605以外の処理は前述の優先モード時の処理と同様のため、説明は繰り返さない。S605で、呼出部211は戻り値情報213を更新する。図9を用いて、戻り値情報213の更新について説明する。データリスト902に保持される戻り値が使用された場合に、呼出部211は、残り利用回数を1回減らす。そして、残り利用回数が0回になった場合に、呼出部211は、関数リスト901のデータリストIDをデータリスト902の後続データリストに切り替える。その結果、保持部212は、戻り値情報910を保持することになる。従って、この場合に呼出部211が関数A115から関数Baに対するRPC要求を受け付けた場合は、データリスト913の戻り値を返すことになる。なお、説明のためにデータリスト912を記載しているが、メモリ容量を節約するために、データリスト912は削除するのが望ましい。
再び節電ボタン132が押されて、節電モードから通常モードに変更された場合の情報処理装置100の動作については、優先モードから通常モードに変更される場合と同様であるため、説明を繰り返さない。
図10のシーケンス図を用いて、節電モードに移行する場合の情報処理装置100全体の動作を説明する。節電ボタン132が押下されると、S1001で、コンポーネントA113に対して節電モードへの移行が通知され、S1002で、コンポーネントB114に対して節電モードへの移行が通知される。コンポーネントB114は、S1003で関数Ba116を実行して、S1004でデバイス118の状態を取得する。S1005で、コンポーネントB114はコンポーネントA113に対して戻り値情報を設定する。その後、S1006で、コンポーネントB114はデバイス118の電源をOFFにする。S1007で、コンポーネントA113は関数A115で関数Ba116へのRPCを要求するが、戻り値情報が設定するため、コンポーネントB114への要求を行わずに、デバイス118の状態を取得する。
以上により、本発明によれば、クライアント・コンポーネントからのRPC要求をサーバ・コンポーネントから抑制することが可能となる。また、クライアント・コンポーネントでは、実際にRPC要求を行わなくても、呼出先関数の戻り値を得ることができ、処理を継続することが可能となる。その結果、クライアント・コンポーネントとサーバ・コンポーネントとの間の通信負荷を減らすことが出来る。さらに、節電モードに変更する場合に必要となる関数を事前に実行することで、早期に節電モードに移行可能となる。また、サーバ・コンポーネントは戻り値情報の利用回数の上限を設定することにより、不適当な戻り値をクライアント・コンポーネントが利用し続けることを防止することが可能となる。

Claims (8)

  1. クライアント・コンポーネントとサーバ・コンポーネントとを備え、前記クライアント・コンポーネントの有するプログラムが前記サーバ・コンポーネントの有する関数に対して遠隔手続き呼出しを行う情報処理システムであって、
    前記クライアント・コンポーネントは、
    前記関数の戻り値情報を保持するための保持手段と、
    前記プログラムから前記関数に対する遠隔手続き呼出しの要求を受け付ける呼出手段と、
    を備え、
    前記サーバ・コンポーネントは、
    前記呼出手段から前記関数の戻り値を要求された場合に前記関数を実行して得られた第1戻り値を前記呼出手段に返す実行手段と、
    前記プログラムからの遠隔手続き呼出しに対する前記サーバ・コンポーネントの処理負荷を抑制するモードに設定された場合に、前記呼出手段から前記関数の戻り値を要求されていない状態で前記関数を実行して得られた第2戻り値を含む戻り値情報を前記保持手段に保持させる設定手段と、
    を備え、
    前記呼出手段は、
    前記保持手段に前記戻り値情報が保持されていない場合に、前記関数に対して遠隔手続き呼出しを行い、返された前記第1戻り値を前記プログラムに返し、
    前記保持手段に前記戻り値情報が保持されている場合に、前記関数に対する遠隔手続き呼出しを行わずに、前記戻り値情報に含まれる前記第2戻り値を前記プログラムに返す
    ことを特徴とする情報処理システム。
  2. 前記サーバ・コンポーネントは、前記関数に対して遠隔手続き呼出しを行うクライアント・コンポーネントの宛先情報を記憶する管理手段をさらに備え、
    前記設定手段は、前記管理手段により記憶される前記宛先情報を参照して、前記クライアント・コンポーネントに前記戻り値情報を保持させる
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記設定手段は、前記抑制するモードを解除する場合に、前記保持手段に保持された戻り値情報を削除することを特徴とする請求項1又は2に記載の情報処理システム。
  4. 前記設定手段は、前記関数の前記第2戻り値の利用回数の上限を前記第2戻り値に関連付けて前記戻り値情報に設定し、
    前記呼出手段は、前記戻り値情報に含まれる前記第2戻り値の利用回数が前記上限に達した場合に、前記第2戻り値を削除する
    ことを特徴とする請求項3に記載の情報処理システム。
  5. 前記設定手段は、前記抑制するモードに設定された場合に、その時点で前記関数を実行して得られた戻り値を、前記第2戻り値として前記戻り値情報に含めることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  6. 前記設定手段は、前記抑制するモードに設定された場合に、前記関数の実行においてエラーが発生した場合の戻り値を、前記第2戻り値として前記戻り値情報に含めることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
  7. クライアント・コンポーネントとサーバ・コンポーネントとを備える情報処理システムにおいて、前記クライアント・コンポーネントの有するプログラムが前記サーバ・コンポーネントの有する関数に対して遠隔手続き呼出しを行う情報処理方法であって、
    前記クライアント・コンポーネントは、前記関数の戻り値情報を保持するための保持手段を備え、
    前記情報処理方法は、
    前記サーバ・コンポーネントが、前記プログラムからの遠隔手続き呼出しに対する前記サーバ・コンポーネントの処理負荷を抑制するモードに設定された場合に、前記クライアント・コンポーネントから前記関数の戻り値を要求されていない状態で前記関数を実行して得られた第2戻り値を含む戻り値情報を前記保持手段に保持させる設定工程と、
    前記クライアント・コンポーネントが、前記プログラムから前記関数に対する遠隔手続き呼出しの要求を受け付ける呼出工程と、
    前記サーバ・コンポーネントが、前記呼出工程において前記関数の戻り値を要求された場合に前記関数を実行して得られた第1戻り値を前記クライアント・コンポーネントに返す実行工程と、
    前記保持手段に前記戻り値情報が保持されていない場合に、前記関数に対して遠隔手続き呼出しを行い、返された前記第1戻り値を前記プログラムに返し、前記保持手段に前記戻り値情報が保持されている場合に、前記関数に対する遠隔手続き呼出しを行わずに、前記戻り値情報に含まれる前記第2戻り値を前記プログラムに返す工程と、を有することを特徴とする情報処理方法。
  8. コンピュータを、
    クライアント・コンポーネントの有するプログラムからの遠隔手続き呼出しに対応する関数を有するサーバ・コンポーネントを有する情報処理装置であって、
    前記クライアント・コンポーネントから前記関数の戻り値を要求された場合に前記関数を実行して得られた第1戻り値を前記クライアント・コンポーネントに返す実行手段と、
    前記クライアント・コンポーネントからの遠隔手続き呼出しに対する前記サーバ・コンポーネントの処理負荷を抑制するモードに設定された場合に、前記クライアント・コンポーネントの保持手段に、前記クライアント・コンポーネントから前記関数の戻り値を要求されていない状態で前記関数を実行して得られた第2戻り値を含む戻り情報を保持させる設定手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
JP2009239868A 2009-10-16 2009-10-16 情報処理システム、情報処理方法、およびコンピュータプログラム Active JP5635760B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009239868A JP5635760B2 (ja) 2009-10-16 2009-10-16 情報処理システム、情報処理方法、およびコンピュータプログラム
US12/877,271 US8397247B2 (en) 2009-10-16 2010-09-08 Information processing system, information processing method and computer-readable storage medium
US13/771,946 US8893161B2 (en) 2009-10-16 2013-02-20 Information processing system, information processing method and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009239868A JP5635760B2 (ja) 2009-10-16 2009-10-16 情報処理システム、情報処理方法、およびコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2011086206A JP2011086206A (ja) 2011-04-28
JP2011086206A5 JP2011086206A5 (ja) 2012-11-29
JP5635760B2 true JP5635760B2 (ja) 2014-12-03

Family

ID=43880272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009239868A Active JP5635760B2 (ja) 2009-10-16 2009-10-16 情報処理システム、情報処理方法、およびコンピュータプログラム

Country Status (2)

Country Link
US (2) US8397247B2 (ja)
JP (1) JP5635760B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216788B (zh) * 2014-09-04 2018-09-07 百度在线网络技术(北京)有限公司 功能处理的实现方法和装置
CN111355983B (zh) * 2018-12-21 2022-03-18 北京字节跳动网络技术有限公司 业务数据处理方法、装置、服务器及存储介质
CN112583733A (zh) * 2020-12-01 2021-03-30 北京三快在线科技有限公司 一种接口的流量整形方法、装置、存储介质及电子设备
CN115114047A (zh) * 2022-05-30 2022-09-27 锐凌无线有限责任公司 远程调用方法、系统、装置、电子设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404519A (en) * 1989-10-11 1995-04-04 Texas Instruments Incorporated System for extending software calls to functions on another processor by means of a communications buffer
JP3001426B2 (ja) * 1996-09-04 2000-01-24 日本電気ソフトウェア株式会社 データキャッシュ管理方式
JPH10105420A (ja) * 1996-09-25 1998-04-24 Hitachi Ltd リモートプロシジャコール処理方式
US6126328A (en) * 1997-02-28 2000-10-03 Oracle Corporation Controlled execution of partitioned code
JPH11312203A (ja) * 1998-04-30 1999-11-09 Toshiba Corp ワークフロー管理システムおよび情報先取り制御方法
US6356863B1 (en) * 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
JP3544140B2 (ja) 1999-03-12 2004-07-21 日本電気株式会社 分散オブジェクト環境における排他制御方式
US6986147B2 (en) * 2001-03-28 2006-01-10 International Business Machines Corporation Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment
US8549114B2 (en) * 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
US20050081216A1 (en) * 2003-10-08 2005-04-14 Sun Microsystems,Inc. Method, system, and program for calling a target object from a caller object
US8458466B2 (en) * 2008-12-22 2013-06-04 International Business Machines Corporation System and method for handling cross-platform system call in a hybrid system

Also Published As

Publication number Publication date
JP2011086206A (ja) 2011-04-28
US20110093872A1 (en) 2011-04-21
US8397247B2 (en) 2013-03-12
US20130167163A1 (en) 2013-06-27
US8893161B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
CN107209710B (zh) 节点系统、服务器设备、缩放控制方法和程序
WO2017133623A1 (zh) 一种数据流处理方法、装置和系统
JP2015537307A (ja) コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法
Pyarali et al. Evaluating and optimizing thread pool strategies for real-time CORBA
US20090254917A1 (en) System and method for improved i/o node control in computer system
CN113939805A (zh) 一种进程间通信的方法及系统
JPH0544693B2 (ja)
WO2009113381A1 (ja) マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法
JP5635760B2 (ja) 情報処理システム、情報処理方法、およびコンピュータプログラム
CN111404931B (zh) 一种基于持久性内存的远程数据传输方法
CN101453404A (zh) 一种实现负载均衡的方法及装置
CN113641410A (zh) 一种基于Netty的高性能网关系统的处理方法及系统
US20170366612A1 (en) Parallel processing device and memory cache control method
JP2005346573A (ja) Webサービス提供方法、Webサービスシステムにおけるサーバ装置およびクライアント端末、Webサービスシステム、ならびに、Webサービスプログラムおよび記録媒体
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
US8205199B2 (en) Method and system for associating new queues with deployed programs in distributed processing systems
CN115987872A (zh) 一种基于资源路由的云系统
EP3783484B1 (en) Data processing method and computer device
US11317470B2 (en) Network system, network device applied thereto and operation method for network device, and operation method for network node
JP6919419B2 (ja) 通信装置、通信プログラム、および、通信方法
JPH11306151A (ja) 分散オブジェクト処理装置及びプログラム記憶媒体
CN107102901B (zh) 一种任务处理方法和装置
CN114168233B (zh) 一种数据处理方法、装置、服务器及存储介质
TW200931317A (en) Middleware bridge system and method
CN117294770A (zh) 业务组件调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141017

R151 Written notification of patent or utility model registration

Ref document number: 5635760

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151