JP6151946B2 - 情報処理システム、情報処理装置およびそれらの制御方法 - Google Patents

情報処理システム、情報処理装置およびそれらの制御方法 Download PDF

Info

Publication number
JP6151946B2
JP6151946B2 JP2013070460A JP2013070460A JP6151946B2 JP 6151946 B2 JP6151946 B2 JP 6151946B2 JP 2013070460 A JP2013070460 A JP 2013070460A JP 2013070460 A JP2013070460 A JP 2013070460A JP 6151946 B2 JP6151946 B2 JP 6151946B2
Authority
JP
Japan
Prior art keywords
remote procedure
procedure call
sequence identifier
component
stub
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.)
Expired - Fee Related
Application number
JP2013070460A
Other languages
English (en)
Other versions
JP2014194636A (ja
JP2014194636A5 (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 JP2013070460A priority Critical patent/JP6151946B2/ja
Priority to US14/224,188 priority patent/US9678815B2/en
Publication of JP2014194636A publication Critical patent/JP2014194636A/ja
Publication of JP2014194636A5 publication Critical patent/JP2014194636A5/ja
Application granted granted Critical
Publication of JP6151946B2 publication Critical patent/JP6151946B2/ja
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、遠隔手続き呼び出しを利用する情報処理技術に関するものである。
外部の機能コンポーネントにより提供される機能をアプリケーションが利用するための技術として、遠隔手続き呼び出し(RPC)がある。遠隔手続き呼び出しでは、機能コンポーネントにより提供される機能を利用するための関数インターフェイスを呼び出し側のコンポーネント(以下、呼出コンポーネント)で規定する。当該関数インターフェイスをアプリケーションが呼び出すことで、機能コンポーネントに対し遠隔手続き呼び出しメッセージが送信され、機能が実行される。そして、場合によっては機能コンポーネントは呼出コンポーネントに対し返信メッセージを送信する。
また、遠隔手続き呼び出しの際に呼出コンポーネントは宛先判断をし、適切にメッセージが送受信されるよう制御する。これにより、呼出コンポーネントと機能コンポーネントとのプロセス上の関係に依存せずに呼び出しが可能になる。つまり、同一のプロセスにある場合、異なるプロセスにある場合、あるいは異なるCPUに割り当てられている場合を問わずに、呼び出し可能になる。そのため、アプリケーション開発者は、コンポーネント間メッセージ送受信に関する記述する必要が無くなり、開発が容易となる。
ところで、遠隔手続き呼び出しにおいては、呼出コンポーネントが呼び出した機能コンポーネントの処理から、更に別の機能コンポーネントを呼び出すこともある。このような場合、アプリケーション開発においては、1つの処理シーケンスに対応するそれぞれのコンポーネントでの処理、および処理結果の関連付けを行う必要がある。
特許文献1は、ひとつの処理単位を複数の計算機で分割処理する技術が開示されている。具体的には、分割処理するにあたって、それぞれ分割後の処理に対して同一の処理シーケンスであることを識別するリクエスト番号を付与し、ログ出力に利用する方法を開示している。また、リクエスト番号が、物理的な装置間を跨って送信される際は、遠隔手続き呼び出しの引数として追加されて送信する方法を開示している。これらの処理により、あるリクエストに基づく処理結果を突き合わせる事を可能としている。
特開2009−110337号公報
しかしながら、特許文献1などの従来の手法では、呼び出した先のコンポーネントから、更に、他のコンポーネントの呼び出しを行った場合、識別子が引き継がれない。詳細には、呼び出した先のコンポーネントが自身の識別子を使って他のコンポーネントを別途に呼び出すだけである。つまり、遠隔手続き呼び出しを用いた処理シーケンスを複数のコンポーネントに跨がって実行する場合、識別子が伝播しない。そのため、各コンポーネントにおける動作ログを参照しても、当該各コンポーネントにおける処理結果の関連性を識別することが困難となる。
本発明は上述の問題点に鑑みなされたものであり、遠隔手続き呼び出しに関連して実行される複数のコンポーネントにおける各処理結果の関連性を容易に識別可能とする技術を提供することを目的とする。
上述の問題点を解決するため、本発明に係る情報処理システムは以下の構成を備える。すなわち、第1のコンポーネントのアプリケーションが第2のコンポーネントの機能関数に対し遠隔手続き呼び出しを行う情報処理システムにおいて、前記アプリケーションからの遠隔手続き呼び出しを受け付け前記第2のコンポーネントに遠隔手続き呼び出しメッセージを送信する前記第1のコンポーネント内のスタブと、前記スタブから遠隔手続き呼び出しメッセージを受け付け、所定の機能の実行を制御する前記第2のコンポーネント内のスケルトンと、を含み、前記スタブは、シーケンス識別子を格納する第1の管理手段と、前記アプリケーションからの遠隔手続き呼び出しに対して前記第1の管理手段から取得したシーケンス識別子を設定する設定手段と、前記設定されたシーケンス識別子をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する生成手段と、前記生成した遠隔手続き呼び出しメッセージを送信する送信手段と、を有し、前記第1の管理手段は、前記遠隔手続き呼び出しが非同期呼出の場合、前記送信手段による遠隔手続き呼び出しメッセージの送信の後、前記第1の管理手段に格納されたシーケンス識別子を削除し、前記スケルトンは、前記遠隔手続き呼び出しメッセージを受信する受信手段と、前記受信した遠隔手続き呼び出しメッセージのヘッダから前記埋め込まれたシーケンス識別子を抽出する抽出手段と、前記抽出したシーケンス識別子を格納する第2の管理手段と、を有する。
本発明によれば、着目している遠隔手続き呼び出しから派生して実行される処理結果の関連性を容易に識別することができる。
第1実施形態に係る情報処理装置の構成図である。 機能ブロックを示す図である。 処理の流れを示すフローチャートである。 遠隔手続き呼び出しメッセージの一例を示す図である。 シーケンス識別子の一例を示す図である。 実行結果出力の一例を示す図である。 実行結果出力の他の例を示す図である。 シーケンス識別子のリストの一例を示す図である。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係る情報処理システムの第1実施形態として、情報処理装置101を例に挙げて以下に説明する。特に、第1実施形態では、呼出コンポーネントから機能コンポーネントに対して機能実行要求を出した場合に返答が返る遠隔手続き呼び出し(所謂同期呼出)の場合に関して説明する。
<装置構成>
図1は、第1実施形態に係る情報処理装置の概略構成を示すブロック図である。ここでは、情報処理装置を単一のコンピュータ装置として示しているが、複数のコンピュータ装置により構成してもよい。その場合は、複数のコンピュータ装置は互いに通信可能なようにローカルエリアネットワーク(LAN)やバスなどで接続される。
情報処理装置101は、装置全体を制御するCPU(Central Processing Unit)102、ROM(Read Only Memory)103、RAM(Random Access Memory)104を含んでいる。ROM103は、変更を必要としないプログラムやパラメータを格納する。一方、RAM104は、プログラムやデータの一時記憶やワークメモリとして利用される。バス105は、これらの各部を互いに通信可能に接続するシステムバスである。
なお、情報処理装置101は、ユーザの操作を受け、ポインティングデバイスやキーボードなど、データを入力する入力インターフェイス(不図示)を備えていても良い。また、情報処理装置101は、保持するデータや供給されたデータを表示出力するための表示部(不図示)や、ネットワーク回線に接続するためのネットワークインタフェース(不図示)を備えていても良い。また、情報処理装置101は、ハードディスクやメモリカードなどを含む外部記憶装置(不図示)を備えていても良い。また、情報処理装置101は、磁気ディスク、光ディスク、半導体メモリなどの着脱可能媒体を読み取る読取装置(不図示)を備えていても良い。
CPU102は、情報処理装置101の起動に沿ってROM103に格納される各種プログラムをRAM104にロードし、ロードされた各種プログラムを実行することによって、後述の各種機能を実現する。
図2は、第1実施形態に係る情報処理装置の機能ブロック図である。以下の各部は、CPU102が、ROM103に格納される各種プログラムを実行することにより実現される。
コンポーネント201及び202は、それぞれ、所定の処理を行うコンポーネントである。以下の説明においては、コンポーネント201が、コンポーネント202の機能を遠隔手続き呼び出しを用いて呼び出すことを想定する。そこで、以下では、コンポーネント201を呼出コンポーネント、コンポーネント202を機能コンポーネントと呼ぶ。つまり、ここでは、機能コンポーネント202は、呼出コンポーネント201からの呼び出しに応じて、所定の処理を実行し機能を提供する。
ここでは、呼出コンポーネント201、機能コンポーネント202の実行単位は、オペレーティングシステム(OS)からメモリ領域の割り当てを受けて、所定の処理を実行するプログラム単位(以下、プロセス)とする。また、情報処理装置101では、複数のプロセスが動作するものとする。
呼出コンポーネント201内(第1のコンポーネント内)には、スタブ203、アプリケーション205、識別子管理部209、識別子付与部210が配置される。
スタブ203は、遠隔手続き呼び出しにおけるスタブである。具体的には、アプリケーション205が遠隔手続き呼び出しにより機能コンポーネント202を呼び出す場合、スタブが保持する呼出関数(不図示)を呼び出す。このときスタブ203は、呼び出し先の機能コンポーネント202内のスケルトン204に対して、機能実行を要求する遠隔手続き呼び出しメッセージ206を送信する。
識別子管理部209(第1の管理手段、第1の格納手段)は、後述するシーケンス識別子を管理する機能部であり、シーケンス識別子を保持する。識別子付与部210は、シーケンス識別子を生成する機能部である。
さらに、スタブ203は、送信部207、受信部208、識別子取得部211、識別子格納部212、識別子埋込部213、識別子抽出部214を含んでいる。
送信部207は、スケルトン204に対して遠隔手続き呼び出しメッセージを送信する機能部であり、受信部208は、スケルトン204からの遠隔手続き呼び出しメッセージを受信する機能部である。
識別子取得部211は、識別子管理部209よりシーケンス識別子を取得する機能部である。識別子格納部212は、識別子管理部209に対してシーケンス識別子を格納するよう制御する機能部である。
識別子埋込部213は、後述する遠隔手続き呼び出しメッセージ206に対しシーケンス識別子を埋め込む機能部である。識別子抽出部214は、スケルトン204から受信した遠隔手続き呼び出し返信メッセージ215からシーケンス識別子を抽出する機能部(返信識別子抽出手段)である。
機能コンポーネント202内(第2のコンポーネント内)には、スケルトン204、識別子管理部218、機能関数223が配置される。
スケルトン204は、スタブ203からの遠隔手続き呼び出しメッセージを受信し、当該メッセージで指定された機能に対応する機能関数223を呼び出す(実行制御する)機能部である。
識別子管理部218(第2の管理手段、第2の格納手段)は、機能コンポーネントにおけるシーケンス識別子を管理する機能部である。機能関数223は、スケルトン204を介して所定の機能を提供する。
さらに、スケルトン204は、受信部216、送信部217、識別子取得部219、識別子格納部220、識別子埋込部221、識別子抽出部222を含んでいる。
受信部216は、スタブ203から送信された遠隔手続き呼び出しメッセージ206を受信する機能部である。また、送信部217は、スタブ203に遠隔手続き呼び出し返信メッセージ215を送信する機能部(返信メッセージ送信手段)である。
識別子取得部219は、識別子管理部218よりシーケンス識別子を取得する機能部である。識別子格納部220は、識別子管理部218に対してシーケンス識別子を格納するよう制御する機能部である。
識別子埋込部221は、後述する遠隔手続き呼び出し返信メッセージ215に対しシーケンス識別子を埋め込む機能部である。識別子抽出部222は、スタブ203から受信した遠隔手続き呼び出しメッセージ206からシーケンス識別子を抽出する機能部である。
ここでは、識別子管理部209および識別子管理部218は、OSの提供するスレッド固有領域(スレッドが個別に持つデータ領域)として実現されるものとする。なお、呼出コンポーネント201および機能コンポーネント202は、単一のコンピュータ装置上に配置するよう構成しても良いし、異なるコンピュータ装置上に配置するよう構成しても良い。
また、遠隔手続き呼び出しメッセージ206は、呼出コンポーネント201においてOSがプロセスに割り当てるメモリ領域(ヒープ領域)に配置されるものとする。同様に遠隔手続き呼び出し返信メッセージ215は、機能コンポーネント202においてOSがプロセスに割り当てるメモリ領域(ヒープ領域)に配置されるものとする。
なお、呼出コンポーネント201と機能コンポーネント202が単一のコンピュータ装置で実行される場合、遠隔手続き呼び出しメッセージ206及び遠隔手続き呼び出し返信メッセージ215は、OSが提供する共有メモリ領域に置かれ得る。
<装置の動作>
図3は、第1実施形態に係る呼び出し処理の流れを説明するフローチャートである。なお、以下では説明を簡単にするために、呼出コンポーネント201及び機能コンポーネント202は、双方とも、単一の情報処理装置101のCPU102により実行されるものとして説明する。ただし、上述のように、呼出コンポーネント201及び機能コンポーネント202を、それぞれ、互いに通信可能に構成された異なる2台の情報処理装置で実行する形態でも良い。
ステップS301では、CPU102は、呼出コンポーネント201の処理を開始する。ここで、呼出コンポーネント201の処理は、アプリケーション205が持つスレッドにより実行されるものとする。また、ステップS302では、CPU102は、機能コンポーネント202の処理を開始する。ここで、機能コンポーネント202の処理は、スケルトン204が持つスレッドにより実行されるものとする。
ステップS303では、アプリケーション205は、遠隔手続き呼び出しを開始するため、スタブ203を呼出関数を介して呼び出す。
ステップS304では、スタブ203は、識別子管理部209に対して、シーケンス識別子の保持状況を問い合わせる。そして、ステップS305では、スタブ203は、識別子管理部209が、シーケンス識別子を保持しているか否かを判定する。シーケンス識別子を保持しているならステップS308へ、保持していないならステップS309へ進む。例えば、識別子管理部209(つまりスレッド固有領域)を読みに行き、”NULL”出会った場合は”保持していない”と判定し、それ以外であれば”保持している”と判定する。
ステップS306では、識別子管理部209は、識別子付与部210に対し、シーケンス識別子の発行を依頼する。識別子付与部210(識別子生成手段)では、例えば、タイマ(不図示)から取得した現在時刻に基づいて32bit長の乱数を生成し、これをシーケンス識別子として返す。なお、シーケンス識別子の生成方法としては、その他にも文字列、呼び出し元アプリケーションの識別子、日時などが考えられる。なお、シーケンス識別子は、当該シーケンスを一意に識別可能なものであればよく、ユーザからシーケンス識別子の指定を受付けるよう構成しても良い。
ステップS307では、識別子付与部210は、生成したシーケンス識別子を、識別子管理部209(スレッド固有領域)に書き込む。なお、生成したシーケンス識別子の格納制御を、識別子格納部212に依頼するよう構成しても良い。
ステップS308では、スタブ203は、スケルトン204に送信することになる遠隔手続き呼び出しメッセージ206をヒープ領域に確保する。そして、スタブ203は、ヒープ領域に確保された遠隔手続き呼び出しメッセージ206に対して、機能コンポーネント202を示すあて先情報402、呼出コンポーネント201自身を示す呼出元情報403を書き込む。また、併せて、呼出関数の引数である引数情報405、呼び出し対象の機能を示す呼出機能情報404を書き込む。
図4は、遠隔手続き呼び出しメッセージの一例を示す図である。なお、機能コンポーネント202が、呼出コンポーネント201とは異なるコンピュータ装置に配置される場合、機能コンポーネント202のプラットフォームに合わせ、引数情報405のエンディアン変換などが併せて実行される。なお、後述する遠隔手続き呼び出し返信メッセージ215のフォーマットは、遠隔手続き呼び出しメッセージ206と同じである。
ステップS309では、識別子取得部211は、識別子管理部209からシーケンス識別子を取得する。そして、ステップS310では、識別子埋込部213は、取得したシーケンス識別子を、遠隔手続き呼び出しメッセージ206に埋め込む。ここでは、シーケンス識別子を遠隔手続き呼び出しメッセージ206のヘッダ部分401に埋め込む。
ステップS311では、送信部207は、生成された遠隔手続き呼び出しメッセージ206を機能コンポーネント202を宛先として送信する。送信後、生成された遠隔手続き呼び出しメッセージはヒープ領域から削除される。なお、送信部207は、あて先情報402に応じて通信経路選択を行う。送信後、呼出コンポーネント201は、機能コンポーネント202からの返答を待つため、受信待ち状態に入る。
ステップS312では、受信部216は、呼出コンポーネント201からの遠隔手続き呼び出しメッセージ206を受信しヒープ領域に書き込む。そして、ステップS313では、識別子抽出部222は、ヒープ領域に書き込まれた遠隔手続き呼び出しメッセージ206から、シーケンス識別子を抽出する。
ステップS314では、識別子格納部220は、抽出したシーケンス識別子を、識別子管理部218に格納する。このとき、シーケンス識別子は遠隔手続き呼び出しメッセージ206と関連付けて格納される。例えば、呼出コンポーネント201における識別子管理部209の場合と同様に、シーケンス識別子はスレッド固有領域に置かれる。
ステップS315では、スケルトン204は、遠隔手続き呼び出しメッセージ206に埋め込まれている呼出機能情報404、引数情報405を元に、機能関数223を呼び出す。そして、機能関数223が戻り値を返す場合、戻り値を受け取り、スタブ203に返信することになる遠隔手続き呼び出し返信メッセージ215に書き込む(返信メッセージ生成手段)。なお、遠隔手続き呼び出し返信メッセージ215は、ステップS312で書き込んだヒープ領域の遠隔手続き呼び出しメッセージ206に対して上書きを行うことにより生成しても良い。あるいは、新たにヒープ領域を確保して、新規に生成した遠隔手続き呼び出し返信メッセージ215に対して書き込みを行っても良い。例えば、機能関数223に対する入力と出力との間でデータ構造が異なる場合、新たに領域を確保する必要が生じる。
ここでは、新たに遠隔手続き呼び出し返信メッセージ215用のヒープ領域を確保するものとする。呼出コンポーネント201より受信した遠隔手続き呼び出しメッセージ206から呼出元情報403を読み込み一時的に保存した後、ステップS312で受信し格納した遠隔手続き呼び出しメッセージ206のヒープ領域を開放する。その後、新たにヒープ領域に遠隔手続き呼び出し返信メッセージ215を、戻り値の形式にあわせて確保し、あて先情報402に一時的に記憶した呼出元情報403を書き込む。
ステップS316では、識別子取得部219は、識別子管理部218から、遠隔手続き呼び出し返信メッセージ215に対応するシーケンス識別子を取得する。そして、ステップS317では、識別子埋込部221は、シーケンス識別子を遠隔手続き返信呼び出し返信メッセージ215に埋め込む。
ステップS318では、送信部217は、遠隔手続き呼び出し返信メッセージ215をスタブ203に送信する。その後、機能コンポーネント202は再びメッセージ受信待ち状態(S302)となる。
ステップS319では、受信部208は、機能コンポーネント202からの遠隔手続き呼び出し返信メッセージ215を受信しヒープ領域に書き込む。そして、ステップS320では、識別子抽出部214は、ステップS319でヒープ領域に書き込んだ遠隔手続き呼び出し返信メッセージ215から、シーケンス識別子を抽出する。更に、ステップS321では、識別子格納部212は、抽出したシーケンス識別子を、識別子管理部209に格納する。
ステップS322では、スタブ203は、遠隔手続き呼び出しを行ったアプリケーション205に対して呼出関数の結果を返す。この際に、機能関数223に戻り値がある場合、遠隔手続き呼び出し返信メッセージ215から戻り値を読み込み、アプリケーション205に対して渡す。
なお、アプリケーション205に対して呼出関数の結果を返した後、識別子管理部209は、関連するシーケンス識別子を削除しても良い。なお、削除しない場合、アプリケーション205は、識別子取得部211を介してシーケンス識別子を取得することが出来る。
例えば、ステップS305にて、シーケンス識別子を保持しておらず、ステップS306〜S307にて生成し格納した場合は、シーケンス識別子を削除し、そうでない場合は、保持したままにしても良い。スタブ203の呼出関数が、異なる組み合わせの機能関数223から呼ばれている場合、シーケンス識別子は、識別子管理部209(スレッド固有領域)に格納されている。この場合、ステップS305にて”Yes”とし、格納済みのシーケンス識別子を引き継いで利用することで、遠隔手続き呼び出しの呼び出しが多重に行われた場合にも、当該シーケンス識別子を関連する全ての処理で参照可能となる。
以上説明したとおり第1実施形態によれば、シーケンス識別子を、関数処理の最中はスレッド固有領域に格納し、メッセージ通信の際にはメッセージヘッダに格納するよう制御する。これにより、例えば、スタブ内での関数呼出し、メッセージ送信・受信、スケルトン内での関数呼び出し、遠隔手続き呼び出しされた処理からの遠隔手続き呼び出しなどにおいて、シーケンス識別子を引き継ぐことが可能となる。そのため、当該シーケンス識別子を、複数のコンポーネントに跨がる複数の処理の処理結果の付きあわせ、解析ツールによる処理の可視化などを補助する情報として利用することが可能となる。
(変形例1)
以下では、呼出コンポーネントが機能コンポーネントからの応答を待たない場合(所謂非同期呼出)について説明する。
非同期呼出の場合、図3を参照して説明した処理の流れのうち、以下の点が異なってくる。まず、ステップS308では、スケルトン204に送信する遠隔手続き呼び出しメッセージに対してスケルトン204は返答を行わないため、呼出元情報403を書き込まない。そして、ステップS311のメッセージの送信の後、ステップS322へ飛び、アプリケーション205に返答を返す。この時、シーケンス識別子を識別子管理部209(スレッド固有領域)から削除するかどうかは、第1実施形態のステップS322と同様の判断で良い。また、ステップS315で機能関数223を実行した後、識別子格納部220を用いて、空のシーケンス識別子を書き込む。これにより、シーケンス識別子は識別子管理部218から削除される。その後、機能コンポーネント202はメッセージ受信待ち状態となる。
(変形例2)
変形例2では、呼出コンポーネントにて、アプリケーションがシーケンス識別子を付与した後、機能コンポーネントに機能実行要求を出す遠隔手続き呼び出しを行う場合について説明する。また、アプリケーションおよび機能関数において実行結果を出力する。以下では、図3を参照して説明した上述の処理と異なる部分のみ説明する。
ステップS303では、アプリケーション205は、スタブ203の呼出関数を呼ぶ前に、シーケンス識別子を設定し、当該シーケンス識別子を識別子管理部209に格納する。
図5は、シーケンス識別子の一例を示す図である。シーケンス識別子501は、識別子格納部212に格納されたシーケンス識別子を例示的に示しており、ここでは、値として文字列”JOB001”が設定されているものとする。
また、ステップS303にて、スタブ203は、実行結果(アプリケーションによるスタブ呼び出しの結果)をファイル601にログ出力する(第1の出力手段)。図6は、実行結果出力の一例を示す図である。例えば、シーケンス識別子602は”JOB001”であり、日時603は”12/04 17:20”であり、内容604は”Start Application”となる。つまり、呼出コンポーネント201において、シーケンス識別子”JOB001”に関連して、時刻”12/04 17:20”に”Application”が開始されたことを示している。
一方、ステップS315において、機能コンポーネント202において機能関数を実行中に、スケルトン204は、実行結果をファイル701にログ出力する(第2の出力手段)。図7は、機能コンポーネントで出力される実行結果出力の例を示す図である。書きだしたシーケンス識別子702の値は”JOB001”、日時703の値は”12/04 17:22”、内容704の値は”Exec Function”となる。つまり、機能コンポーネント202において、シーケンス識別子”JOB001”に関連して、時刻”12/04 17:22”に”Function”が実行されたことを示している。
ステップS322において、スタブ203は、返答を受けたアプリケーション205は、実行結果をファイル601にログ出力する。書きだしたシーケンス識別子602の値は”JOB001”、日時603の値は”12/04 17:23”、内容604の値は”End Application”となる。つまり、呼出コンポーネント201において、シーケンス識別子”JOB001”に関連して、時刻”12/04 17:23”に”Application”が終了されたことを示している。
一連の処理が全て終了した後、スタブ203により生成されたファイル601およびスケルトン204により生成されたファイル701から、各コンポーネントで実行された複数の処理結果を一覧することが可能となる。例えば、シーケンス識別子の値が”JOB001”のものを抽出しマージすることで、”JOB001”に関連付けられた遠隔手続き呼び出しに関する複数の処理結果を一覧することが可能となる。
(変形例3)
変形例3では、複数のシーケンス識別子を識別子管理部が保持する形態を説明する。以下では、上述の第1実施形態と異なる点のみ説明する。
識別子管理部209では、シーケンス識別子をリスト構造を用いて複数個保持可能に構成されている。図8は、3つのシーケンス識別子を含むリスト構造を例示的に示す図である。そのため、ステップS303の後、ステップS304及びS305はスキップし、ステップS306、ステップS307の順で実施する。ステップS307において、生成したシーケンス識別子を格納する際に、識別子管理部209で保持しているシーケンス識別子のリストの末尾に追加する。リスト構造は、識別子管理部209により管理されており、例えば、新たに追加したシーケンス識別子803は、既存のシーケンス識別子801、802の後に追加されている。
ステップS310では、識別子埋込部213は、シーケンス識別子のリスト全体を、遠隔手続き呼び出しメッセージ206に埋め込む。また、機能コンポーネント202で実行されるステップS313、S314、S316、S317においても、シーケンス識別子のリスト全体を抽出、格納、取得、埋め込みの対象とする。ただし、ステップS322にて、スタブ203は、アプリケーション205に返答を行う際に、末尾のシーケンス識別子803を削除する。これにより、アプリケーション205による遠隔手続き呼び出しに関連(派生)したシーケンス識別子を、当該遠隔手続き呼び出しの終了をトリガに好適に削除することが可能となる。

Claims (10)

  1. 第1のコンポーネントのアプリケーションが第2のコンポーネントの機能関数に対し遠隔手続き呼び出しを行う情報処理システムであって、
    前記アプリケーションからの遠隔手続き呼び出しを受け付け前記第2のコンポーネントに遠隔手続き呼び出しメッセージを送信する前記第1のコンポーネント内のスタブと、
    前記スタブから遠隔手続き呼び出しメッセージを受け付け、所定の機能の実行を制御する前記第2のコンポーネント内のスケルトンと、
    を含み、
    前記スタブは、
    シーケンス識別子を格納する第1の管理手段と、
    前記アプリケーションからの遠隔手続き呼び出しに対して前記第1の管理手段から取得したシーケンス識別子を設定する設定手段と、
    前記設定されたシーケンス識別子をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する生成手段と、
    前記生成した遠隔手続き呼び出しメッセージを送信する送信手段と、
    を有し、
    前記第1の管理手段は、前記遠隔手続き呼び出しが非同期呼出の場合、前記送信手段による遠隔手続き呼び出しメッセージの送信の後、前記第1の管理手段に格納されたシーケンス識別子を削除し、
    前記スケルトンは、
    前記遠隔手続き呼び出しメッセージを受信する受信手段と、
    前記受信した遠隔手続き呼び出しメッセージのヘッダから前記埋め込まれたシーケンス識別子を抽出する抽出手段と、
    前記抽出したシーケンス識別子を格納する第2の管理手段と、
    を有する
    ことを特徴とする情報処理システム。
  2. 前記スケルトンは、
    前記受信した遠隔手続き呼び出しメッセージに基づいて前記機能関数を実行し実行結果を取得する実行制御手段と、
    前記第2の管理手段から取得したシーケンス識別子をヘッダに埋め込むと共に前記実行結果を格納する遠隔手続き呼び出し返信メッセージを生成する返信メッセージ生成手段と
    前記生成した遠隔手続き呼び出し返信メッセージを送信する返信メッセージ送信手段と、
    を更に有し、
    前記スタブは、
    遠隔手続き呼び出し返信メッセージを受信する受信手段と、
    前記受信した遠隔手続き呼び出し返信メッセージからシーケンス識別子を抽出する返信識別子抽出手段と、
    を更に有し、
    前記スタブは、前記抽出したシーケンス識別子を前記第1の管理手段に格納する
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記第1の管理手段は、前記スタブのスレッド固有領域として構成され、前記第2の管理手段は、前記スケルトンのスレッド固有領域として構成される
    ことを特徴とする請求項1又は2に記載の情報処理システム。
  4. 前記スタブは、前記遠隔手続き呼び出しの実行結果と前記第1の管理手段に格納されたシーケンス識別子とを関連付けてログ出力する第1の出力手段を更に有し、前記スケルトンは、前記機能関数の実行結果と前記第2の管理手段に格納されたシーケンス識別子とを関連付けてログ出力する第2の出力手段を更に有する、
    ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理システム。
  5. 前記スタブは、前記第1の管理手段に格納するシーケンス識別子の指定をユーザから受け付ける受付手段を更に有する
    ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理システム。
  6. 前記スタブは、前記アプリケーションからの遠隔手続き呼び出しに基づいてシーケンス識別子を生成し前記第1の管理手段に格納する識別子生成手段を更に有する
    ことを特徴とする請求項1乃至5の何れか一項に記載の情報処理システム。
  7. 前記第1の管理手段は、関連する複数のシーケンス識別子を1つのリスト構造として格納し、前記設定手段は、前記アプリケーションからの遠隔手続き呼び出しに対して前記第1の管理手段から取得した1つのリスト構造を設定し、前記生成手段は、前記設定された1つのリスト構造をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する
    ことを特徴とする請求項1乃至6の何れか一項に記載の情報処理システム。
  8. 第1のコンポーネントのアプリケーションが第2のコンポーネントの機能関数に対し遠隔手続き呼び出しを行う情報処理システムにおける前記第1のコンポーネント内のスタブとして機能する情報処理装置であって、
    シーケンス識別子を格納する第1の管理手段と、
    前記アプリケーションからの遠隔手続き呼び出しに対して前記第1の管理手段から取得したシーケンス識別子を設定する設定手段と、
    前記設定されたシーケンス識別子をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する生成手段と、
    前記生成した遠隔手続き呼び出しメッセージを送信する送信手段と、
    を有し、
    前記第1の管理手段は、前記遠隔手続き呼び出しが非同期呼出の場合、前記送信手段による遠隔手続き呼び出しメッセージの送信の後、前記第1の管理手段に格納されたシーケンス識別子を削除する
    ことを特徴とする情報処理装置。
  9. 第1のコンポーネントのアプリケーションが第2のコンポーネントの機能関数に対し遠隔手続き呼び出しを行う情報処理システムの制御方法であって、
    前記情報処理システムは、
    前記アプリケーションからの遠隔手続き呼び出しを受け付け前記第2のコンポーネントに遠隔手続き呼び出しメッセージを送信する前記第1のコンポーネント内のスタブと、
    前記スタブから遠隔手続き呼び出しメッセージを受け付け、所定の機能の実行を制御する前記第2のコンポーネント内のスケルトンと、
    を含んでおり、前記制御方法は、
    前記第1のコンポーネント内の第1の格納手段にシーケンス識別子を格納する第1の格納工程と、
    前記スタブが、前記アプリケーションからの遠隔手続き呼び出しに対して前記第1の格納手段から取得したシーケンス識別子を設定する設定工程と、
    前記スタブが、前記設定されたシーケンス識別子をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する生成工程と、
    前記スタブが、前記生成した遠隔手続き呼び出しメッセージを送信する送信工程と、
    前記スタブが、前記遠隔手続き呼び出しが非同期呼出の場合、前記送信工程による遠隔手続き呼び出しメッセージの送信の後、前記第1の格納手段に格納されたシーケンス識別子を削除する削除工程と、
    前記スケルトンが、前記遠隔手続き呼び出しメッセージを受信する受信工程と、
    前記スケルトンが、前記受信した遠隔手続き呼び出しメッセージのヘッダから前記埋め込まれたシーケンス識別子を抽出する抽出工程と、
    前記スケルトンが、前記抽出したシーケンス識別子を前記第2のコンポーネント内の第2の格納手段にシーケンス識別子を格納する第2の格納工程と、
    を含む
    ことを特徴とする情報処理システムの制御方法。
  10. 第1のコンポーネントのアプリケーションが第2のコンポーネントの機能関数に対し遠隔手続き呼び出しを行う情報処理システムにおける前記第1のコンポーネント内のスタブとして機能する情報処理装置の制御方法であって、
    前記第1のコンポーネント内の格納手段にシーケンス識別子を格納する格納工程と、
    前記アプリケーションからの遠隔手続き呼び出しに対して前記格納手段から取得したシーケンス識別子を設定する設定工程と、
    前記設定されたシーケンス識別子をヘッダに埋め込んだ遠隔手続き呼び出しメッセージを生成する生成工程と、
    前記生成した遠隔手続き呼び出しメッセージを送信する送信工程と、
    前記遠隔手続き呼び出しが非同期呼出の場合、前記送信工程による遠隔手続き呼び出しメッセージの送信の後、前記格納手段に格納されたシーケンス識別子を削除する削除工程と、
    を含むことを特徴とする情報処理装置の制御方法。
JP2013070460A 2013-03-28 2013-03-28 情報処理システム、情報処理装置およびそれらの制御方法 Expired - Fee Related JP6151946B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013070460A JP6151946B2 (ja) 2013-03-28 2013-03-28 情報処理システム、情報処理装置およびそれらの制御方法
US14/224,188 US9678815B2 (en) 2013-03-28 2014-03-25 Information processing system, information processing apparatus, and method of controlling them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070460A JP6151946B2 (ja) 2013-03-28 2013-03-28 情報処理システム、情報処理装置およびそれらの制御方法

Publications (3)

Publication Number Publication Date
JP2014194636A JP2014194636A (ja) 2014-10-09
JP2014194636A5 JP2014194636A5 (ja) 2016-05-19
JP6151946B2 true JP6151946B2 (ja) 2017-06-21

Family

ID=51622184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070460A Expired - Fee Related JP6151946B2 (ja) 2013-03-28 2013-03-28 情報処理システム、情報処理装置およびそれらの制御方法

Country Status (2)

Country Link
US (1) US9678815B2 (ja)
JP (1) JP6151946B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105159786B (zh) * 2015-07-03 2018-10-30 北京奇虎科技有限公司 一种进程间通信的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301618A (ja) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd 遠隔手続き呼び出し方法
US6377691B1 (en) * 1996-12-09 2002-04-23 Microsoft Corporation Challenge-response authentication and key exchange for a connectionless security protocol
JP3932685B2 (ja) * 1998-08-11 2007-06-20 富士ゼロックス株式会社 ネットワーク上で遠隔手続き呼び出しを実行するための方法、及び、遠隔手続き呼び出しを実行可能なネットワーク・システム
US9137212B2 (en) * 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
US7904717B2 (en) * 2007-06-19 2011-03-08 Oracle America, Inc. Method, apparatus, and manufacture for decryption of network traffic in a secure session
US8752006B1 (en) * 2007-07-02 2014-06-10 Cisco Technology, Inc. System and method and apparatus for automatically generating computer code for remote procedure calls
JP2009110337A (ja) * 2007-10-31 2009-05-21 Nec Corp 情報処理装置、情報処理システムおよび情報処理方法
US9491261B1 (en) * 2013-07-29 2016-11-08 Amazon Technologies, Inc. Remote messaging protocol

Also Published As

Publication number Publication date
US20140298362A1 (en) 2014-10-02
JP2014194636A (ja) 2014-10-09
US9678815B2 (en) 2017-06-13

Similar Documents

Publication Publication Date Title
US11868785B2 (en) Application program page processing method and device
CN108108162B (zh) 应用程序编程接口生成方法及装置
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
JP2007213490A (ja) アプリケーションサーバシステムおよび仮想マシンプログラム
JP5939123B2 (ja) 実行制御プログラム、実行制御方法および情報処理装置
CN104679598A (zh) 用于选择同步或异步进程间通信机制的系统和方法
CN111475516A (zh) 分布式锁的调用方法、装置、计算机设备及存储介质
CN117724852B (zh) 一种云电脑计算资源分配方法及装置
CN110781137A (zh) 分布式系统的目录读取方法、装置、服务器和存储介质
CN112650710B (zh) 数据迁移的发送方法及装置、存储介质、电子装置
JP2002259146A (ja) アプリケーション実行装置及び方法
JP6151946B2 (ja) 情報処理システム、情報処理装置およびそれらの制御方法
CN110795156B (zh) 移动存储器加载方法、瘦客户端、存储介质及装置
CN105843691B (zh) 一种浏览器中进程间通信的方法和装置
US20110321043A1 (en) System, Method and Program Product for Native Interface Optimization of Read-Only Arrays
KR20120062854A (ko) 계산기 장치
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
CN112272836A (zh) 信息处理装置、图像数据生成装置、信息处理系统、信息处理方法和程序
JP2016051395A (ja) 画像形成装置およびリソース管理方法
JP2008305021A (ja) 情報処理装置及びアプリケーション管理方法
CN114490000A (zh) 任务处理方法、装置、设备及存储介质
US9298517B2 (en) Exclusive control request allocation method and system
CN112162962A (zh) 一种数据批量同步方法、装置、计算机设备及存储介质
US20130239113A1 (en) Information processing apparatus, computer product, and information processing method
JP5364931B2 (ja) 計算機システム、及び、サーバ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170413

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: 20170428

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170526

R151 Written notification of patent or utility model registration

Ref document number: 6151946

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees