JP4681669B2 - 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置 - Google Patents

要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置 Download PDF

Info

Publication number
JP4681669B2
JP4681669B2 JP2009517636A JP2009517636A JP4681669B2 JP 4681669 B2 JP4681669 B2 JP 4681669B2 JP 2009517636 A JP2009517636 A JP 2009517636A JP 2009517636 A JP2009517636 A JP 2009517636A JP 4681669 B2 JP4681669 B2 JP 4681669B2
Authority
JP
Japan
Prior art keywords
entry
entry point
request
device driver
function
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
JP2009517636A
Other languages
English (en)
Other versions
JPWO2008149417A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008149417A1 publication Critical patent/JPWO2008149417A1/ja
Application granted granted Critical
Publication of JP4681669B2 publication Critical patent/JP4681669B2/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

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)
  • Studio Devices (AREA)
  • Communication Control (AREA)

Description

この発明は、要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置に関する。
従来より、デバイスドライバが、カーネルを介して、対象となるハードディスクなどのデバイス(以下、対象デバイスと記す)の動作制御を実行する方法が知られている。具体的には、デバイスドライバは、カーネルからエントリ関数を呼び出させることによりアプリケーションからの要求を対象デバイスに通知し、当該対象デバイスは、通知された要求内容に従って、例えば、Read/Writeなどの動作を実行する。すなわち、図4の(A)に示すように、要求内容が、要求元のアプリケーション、カーネルとしてのOS(Operating System)、デバイスドライバの経路で対象デバイスに伝えられる。なお、エントリ関数とは、デバイスドライバのカーネルへの登録関数のことである。
一方、要求元のアプリケーションから対象デバイスに対する要求内容を、デバイスドライバを修正することなく抽出する技術(フィルタリング技術)に対する需要がある。すなわち、フィルタリング技術を用いて対象デバイスに対するRead/Write要求などの内容を抽出して把握することで、例えば、業務を継続しながらも、対象デバイスへの更新要求を適宜抽出して、円滑にデータを新しいデバイスへ移行することが可能になる。また、図4の(B)に示すように、カーネルとしてのOSとデバイスドライバとの間に論理ボリュームを管理する論理ボリュームマネージャを設置している構成においては、フィルタリング技術を用いて論理ボリュームマネージャからの要求内容を把握することで、円滑に論理ボリュームを移行することが可能になる。なお、図4は、従来技術を説明するための図である。
フィルタリング技術としては、対象デバイスとは独立した擬似デバイスを用いるものがある。具体的には、擬似デバイスをOSに設定して、対象デバイスに対して通知される要求を、擬似デバイスに対して行なわせることで、要求内容を抽出する。その後、擬似デバイスは、要求内容を対象デバイスに通知することで、対象デバイスは、従来の動作を実行する。例えば、図4の(C)に示すように、要求元のアプリケーションが対象デバイスを「デバイス番号:1」として認識している場合は、当該要求元のアプリケーションが「デバイス番号:2」である擬似デバイスを認識するように設定を変更することで、擬似デバイスを介して要求内容を抽出する。
また、特許文献1では、デバイスドライバの不具合を発見して修正(デバック)するデバック用デバイスドライバを、デバックの対象となるデバイスドライバ(デバック対象デバイスドライバ)とリンクさせることで、デバック対象デバイスドライバの内部コードを変更することなく、デバック用の出力データを抽出する技術を開示している。
また、特許文献2では、利用者の作成したプログラムコードを試験的に実行するシステムにおいて、システムに重大な障害を与えることを回避するために、当該システムが持つ実行時ライブラリを参照させないように、プログラムコードの実行時に使用されるライブラリ関数を同名のダミー関数と予め静的にリンクすることで、プログラムコードを修正することなく実行する技術を開示している。
特開2000−99364号公報 特開2006−139465号公報
ところで、上記した従来のフィルタリング技術は、要求元アプリケーションの仕様に基づいてフィルタリング方法を設計する必要があるので、容易に要求内容が抽出できないという問題点があった。すなわち、要求元アプリケーションがデバイスを識別する方法を、当該要求元アプリケーションの仕様に基づいて解明した上で、フィルタリング方法を設計する必要があり、容易に要求内容が抽出できないという問題点があった。
また、要求元のアプリケーションのソースコードなどの仕様が完全に公開されていない場合は、対象デバイスを識別する方法の解明が困難であることから、要求元のアプリケーションの認識設定を対象デバイスから擬似デバイスに変更することができず、容易に要求内容が抽出できないという問題点があった。
また、仮にデバイスを識別する方法を解明しても、解明した方法によっては要求元アプリケーションにおける対象デバイスの認識を擬似デバイスへ変更することが困難な場合があるので、容易に要求内容が抽出できないという問題点があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、容易に要求内容を抽出することが可能になる要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムであるとともに、アプリケーションから前記対象デバイスに対し行なわれる要求を抽出する要求抽出方法をコンピュータに実行させる要求抽出プログラムであって、前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出手順と、前記エントリポイント抽出手順によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出し、抽出した要求を求記憶部に格納する要求抽出手順と、前記要求抽出手順によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知手順と、をコンピュータに実行させることを特徴とする。
また、本発明は、エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムをコンピュータに実行させることにより、アプリケーションから前記対象デバイスに対し行なわれる要求をコンピュータが抽出する要求抽出方法であって、前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出工程と、前記エントリポイント抽出工程によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出する要求抽出工程と、前記要求抽出工程によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知工程と、を含んだことを特徴とする。
また、本発明は、エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムを実行することにより、アプリケーションから前記対象デバイスに対し行なわれる要求を抽出する要求抽出装置であって、前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出手段と、前記エントリポイント抽出手段によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出する要求抽出手段と、前記要求抽出手段によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知手段と、を備えたことを特徴とする。
本発明によれば、要求元アプリケーションの仕様に依存することなく、要求元のアプリケーションからの要求を抽出することが可能になる。すなわち、要求元のアプリケーションのデバイス認識を変更したりするなど、要求元アプリケーションの仕様ごとにフィルタリング方法を設計する手間を排除できるので、容易に要求を抽出することが可能になる。
また、本発明によれば、デバイスドライバはフィルタオブジェクトが無い時と全く同じように対象デバイスを制御することができる。そのため、例えば、業務を継続しながらも、円滑にデータを新しいデバイスへ移行するなどの付加価値の高いデバイスドライバを提供することが可能になる。
以下に添付図面を参照して、この発明に係る要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置の実施例を詳細に説明する。なお、以下では、この発明を制御装置に適用した場合を実施例として説明する。また、以下では、実施例1における制御装置の概要および特徴、実施例1における制御装置の構成および処理の手順、実施例1の効果を順に説明する。
[用語の説明]
まず最初に、以下の実施例で用いる主要な用語を説明する。以下の実施例で用いる「デバイスドライバ」とは、「カーネル」から「エントリ関数」を呼び出させることによりハードディスクなどの対象デバイスを動作させるソフトウェアのことであり、「カーネル」とは、「アプリケーションや周辺機器の監視」、「ハードディスクやメモリなどの資源の管理」といったOS(Operating System)の基本動作を実装したソフトウェアのことである。
また、「エントリ関数」とは、「デバイスドライバ」の「カーネル」への登録関数のことであり、「エントリポイント通知関数」などがこれに含まれる。ここで、「エントリポイント」とは、「エントリ関数」のメモリアドレスの集合、具体的には、read、writeなど複数の「エントリ関数」のメモリアドレスをまとめた構造体のことであり、「エントリポイント通知関数」とは、「デバイスドライバ」のインストール時に、「デバイスドライバ」が「カーネル」から呼び出す関数のことであり、「エントリポイント通知関数」が呼び出されることにより、OSは、当該「デバイスドライバ」の「エントリポイント」を取得することができる。例えば、Sun Microsystems社が提供するOSであるSolaris(登録商標)では、「mod_install」が「エントリポイント通知関数」となる。
[実施例1における制御装置の概要および特徴]
続いて、図1を用いて、実施例1における制御装置の主たる特徴を具体的に説明する。図1は、実施例1における制御装置の概要および特徴を説明するための図である。
実施例1における制御装置においては、デバイスドライバに結合するように設定され、
かつ、エントリポイント通知関数および自身のエントリポイントを予め定義したフィルタ
オブジェクトが設置され、当該フィルタオブジェクトが、アプリケーションから対象ドラ
イバに対し行なわれる要求内容を抽出することを概要とする。ここで、実施例1における
制御装置の管理者は、デバイスドライバのインストール前に(あるいは、デバイスドライ
バのアンインストール後に)、リンクエディタを使用することにより(例えば、Sola
ris(登録商標)の場合は、ldコマンドを使用することにより)、当該デバイスドラ
イバとリンクするようにフィルタオブジェクトを設定し(図1の(A)の(1)参照)、さらに、当該フィルタオブジェクトに対して、エントリポイント通知関数およびエントリポイントを予め定義しておく(図1の(A)の(2)参照)。
すなわち、実施例1における制御装置は、このようにして設置されたフィルタオブジェクトを用いることにより、当該フィルタオブジェクトが、図1の(A)に示すように、要求元であるアプリケーションから、カーネル(OS)、デバイスドライバの経路で対象デバイスに対し行なわれる要求の内容(例えば、Read/Write要求など)を抽出することを概要とする。
ここで、本発明は、容易に要求内容を抽出することが可能になることに主たる特徴がある。この主たる特徴について簡単に説明すると、実施例1における制御装置に設置されるフィルタオブジェクトは、デバイスドライバのインストール時において、当該デバイスドライバがフィルタオブジェクトに予め定義されたエントリポイント通知関数を呼び出した場合に、当該デバイスドライバのエントリポイントを抽出する。
すなわち、図1の(B)に示すように、デバイスドライバのインストール時において、当該デバイスドライバは、予め実施例1における制御装置に設置されたフィルタオブジェクトと結合し、一つのファイル(ソフトウェア)として動作するようになる。そして、デバイスドライバは、カーネル(OS)のエントリポイント通知関数(Solaris(登録商標)の場合では、「mod_install」)を呼び出すのではなく、フィルタオブジェクトのエントリポイント通知関数を呼び出し(図1の(B)の(3)参照)、これにより、フィルタオブジェクトは、当該デバイスドライバのエントリポイントを、呼び出されたエントリポイント通知関数の引数を参照することによって抽出する。例えば、フィルタオブジェクトは、Solaris(登録商標)の場合は、呼び出されたエントリポイント通知関数の引数「mod_install(xx)のカッコ内のアドレス」を参照して、デバイスドライバのエントリポイント(xx)を抽出する(図1の(B)の(4)参照)。
そして、実施例1における制御装置に設置されるフィルタオブジェクトは、エントリポイントが抽出された後に、当該フィルタオブジェクトのエントリポイントを引数に設定してカーネルのエントリポイント通知関数を呼び出して要求内容を抽出する。例えば、フィルタオブジェクトは、デバイスドライバのエントリポイント(xx)を抽出した後に、自身のエントリポイント(yy)を引数に設定してカーネル(OS)のエントリポイント通知関数「mod_install(yy)」を呼び出す(図1の(C)の(5)参照)。これにより、カーネル(OS)は、要求元であるアプリケーションからの要求内容を、デバイスドライバではなく、フィルタオブジェクトに対して通知する。例えば、Read/Write要求として、「yy_read」や「yy_write」をフィルタオブジェクトに対して通知し(図1の(C)の(6)参照)、フィルタオブジェクトは、デバイス
ドライバから対象デバイスに対して行なわれる要求内容を抽出する。
そして、実施例1における制御装置に設置されるフィルタオブジェクトは、要求内容を抽出した際に、自身のエントリポイントへ渡された引数をそのまま設定して、抽出されたデバイスドライバのエントリポイントのエントリ関数を呼び出すことにより、要求内容それぞれをデバイスドライバに通知する。すなわち、図1の(D)に示すように、フィルタオブジェクトは、自らが設定したエントリ関数群の個々の関数(yy_readやyy_write)の中で、抽出したデバイスドライバのエントリポイントのエントリ関数(xx_readやxx_write)をカーネル(OS)から呼び出すことにより、要求元であるアプリケーションからの要求内容それぞれをデバイスドライバに通知する。
なお、カーネルから呼び出されるエントリ関数と同名の関数を、フィルタオブジェクトに定義したまま残しておくと、デバイスドライバをカーネルへ組み込む時に、シンボルの衝突エラーを引き起こすため、上記の操作が終了した後は、リンクエディタのシンボル属性定義ファイルを使用することにより、同関数のスコープをローカル属性に変更することでこれらが実行されないように設定を行なう。
このようなことから、実施例1における制御装置においてフィルタオブジェクトを設置することにより、要求元アプリケーションの仕様に依存することなく、要求元のアプリケーションからの要求内容を抽出することができるので、上記した主たる特徴の通り、容易に要求内容を抽出することが可能になる。
[実施例1における制御装置の構成]
次に、図2を用いて、実施例1における制御装置を説明する。図2は、実施例1における制御装置の構成を示すブロック図である。
図2に示すように、実施例1における制御装置10は、カーネル11と、デバイスドライバ12と、フィルタオブジェクト13とから構成され、さらに、管理部20と、アプリケーション30と、対象デバイス40aを備えるディスク装置40とに接続される。
管理部20は、制御装置10の管理者から、後述するフィルタオブジェクト13の設置に関する設定の入力を受け付けて管理したり、後述するデバイスドライバ12のインストールを受け付けて管理したりする。
ディスク装置40に備えられる対象デバイス40aは、アプリケーション30からの要求を、後述するデバイスドライバ12を介して受信し、例えば、Read/Writeなどの動作を実行するものであり、具体的には、ハードディスクなどがこれに対応する。
カーネル(OS)11は、OSの基本動作を実装したソフトウェアであり、例えば、ア
プリケーション30からの要求内容を、対象デバイスを動作させるソフトウェアであるデ
バイスドライバ12を介して、対象デバイス40aに通知したりする。
フィルタオブジェクト13は、管理部20に入力された設定に基づいて、制御装置10に設置されるものであり、デバイスドライバ13に結合するように設定され、かつ、エントリポイント通知関数および自身のエントリポイントが予め定義され、特に本発明に密接に関連するものとしては、図2に示すように、エントリポイント抽出部13aと、要求内容抽出部13bと、要求内容通知部13cと、メモリ14とを備える。また、メモリ14は、図2に示すように、エントリポイント記憶部14aと、要求内容記憶部14bとを備える。エントリポイント記憶部14aは、フィルタオブジェクト13のエントリポイントを記憶し、さらに、エントリポイント抽出部13aによって抽出されるエントリポイントを記憶する。また、要求内容記憶部14bは、要求内容抽出部13bによって抽出されたアプリケーション30から対象デバイス40aへの要求内容を記憶する。以下、これらについて詳述する。
エントリポイント抽出部13aは、デバイスドライバ12のインストール時において、デバイスドライバ12がフィルタオブジェクト13に予め定義されたエントリポイント通知関数を呼び出した場合に、デバイスドライバ12のエントリポイントを抽出し、その結果をエントリポイント記憶部14aに格納する。ここで、図2に示すように、デバイスドライバ12のインストール時において、デバイスドライバ12は、予め制御装置10に設置されたフィルタオブジェクト13と連結して、一つのファイルとして動作するようになる。そして、デバイスドライバ12がフィルタオブジェクト13に予め定義されたエントリポイント通知関数を呼び出すことにより、エントリポイント抽出部13aは、デバイスドライバ12のエントリポイントを、呼び出されたエントリポイント通知関数の引数を参照することによって抽出する。例えば、フィルタオブジェクト13は、Solaris(登録商標)の場合では、呼び出されたエントリポイント通知関数の引数「mod_install(xx)のカッコ内のアドレス」を参照して、デバイスドライバのエントリポイ
ント(xx)を抽出する(図1の(B)の(4)参照)。
要求内容抽出部13bは、エントリポイント記憶部14aにデバイスドライバ12のエントリポイントが格納された後に、エントリポイント記憶部14aが記憶するフィルタオブジェクト13のエントリポイントを引数に設定してカーネル(OS)11のエントリポイント通知関数を呼び出して要求内容を抽出し、その結果を、要求内容記憶部14bに格納する。例えば、要求内容抽出部13bは、デバイスドライバ12のエントリポイント(xx)を抽出した後に、フィルタオブジェクト13のエントリポイント(yy)を引数に設定してカーネル(OS)11のエントリポイント通知関数「mod_install(yy)」を呼び出す(図1の(C)の(5)参照)。これにより、カーネル(OS)11は、要求元であるアプリケーション30からの要求内容(例えば、Read/Write要求として、「yy_read」や「yy_write」)をフィルタオブジェクト13に対して通知し(図1の(C)の(6)参照)、要求内容抽出部13bは、デバイスドライバ12から対象デバイス40aに対して行なわれる要求内容を抽出する。
要求内容通知部13cは、フィルタオブジェクト13のエントリポイントへ渡された引数をそのまま設定して、抽出されたデバイスドライバ12のエントリポイントのエントリ関数を呼び出すことにより、要求内容それぞれをデバイスドライバ12に通知する。すなわち、図1の(D)に示すように、要求内容通知部13cは、フィルタオブジェクト13が設定したエントリ関数群の個々の関数(yy_readやyy_write)の中で、抽出したデバイスドライバ12のエントリポイントのエントリ関数(xx_readやxx_write)をカーネル(OS)11から呼び出すことにより、要求元であるアプリケーションからの要求内容それぞれをデバイスドライバ12に通知する。
[実施例1における制御装置による処理の手順]
次に、図3を用いて、実施例1における制御装置10による処理を説明する。図3は、実施例1における制御装置の処理を説明するための図である。
図3に示すように、まず、実施例1における制御装置10は、フィルタオブジェクト13の設定が終了し、デバイスドライバ12のインストールが開始されると(ステップS301肯定)、エントリポイント抽出部13aは、デバイスドライバ12のエントリポイントを抽出する(ステップS302)。
すなわち、「デバイスドライバ12と結合し、かつ、エントリポイント通知関数およびエントリポイントを定義する」というフィルタオブジェクト13に関する設定が管理部20に対して入力されたことにより、制御装置10にフィルタオブジェクト13が設置され、そののち、デバイスドライバ12のインストールが開始されると、デバイスドライバ12は、フィルタオブジェクト13と結合される。ここで、デバイスドライバ12がフィルタオブジェクト13に予め定義されたエントリポイント通知関数を呼び出すことにより、エントリポイント抽出部13aは、デバイスドライバ12のエントリポイントを、呼び出されたエントリポイント通知関数の引数を参照することによって抽出する。
そして、要求内容抽出部13bは、エントリポイント記憶部14aが記憶するフィルタオブジェクト13のエントリポイントを引数に設定してカーネル(OS)11のエントリポイント通知関数を呼び出して要求内容を抽出する(ステップS303)。例えば、要求内容抽出部13bは、フィルタオブジェクト13のエントリポイント(yy)を引数に設定してカーネル(OS)11のエントリポイント通知関数「mod_install(yy)」を呼び出すことにより、アプリケーション30からデバイスドライバ12を介して対象デバイス40aに対して行なわれる要求内容を抽出する。
続いて、要求内容通知部13cは、フィルタオブジェクト13のエントリポイントへ渡された引数をそのまま設定して、抽出されたデバイスドライバ12のエントリポイントのエントリ関数を呼び出すことにより、要求内容それぞれをデバイスドライバ12に通知し(ステップS304)、処理を終了する。すなわち、図1の(D)に示すように、要求内容通知部13cは、フィルタオブジェクト13が設定したエントリ関数群の個々の関数(yy_readやyy_write)の中で、抽出したデバイスドライバ12のエントリポイントのエントリ関数(xx_readやxx_write)をカーネル(OS)11から呼び出すことにより、要求元であるアプリケーションからの要求内容それぞれをデバイスドライバ12に通知する。
上述したように、実施例1によれば、デバイスドライバ12のインストール時において、デバイスドライバ12にフィルタオブジェクト13へ予め定義されたエントリポイント通知関数を呼び出させた場合に、デバイスドライバ12のエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部14aに格納し、エントリポイントが抽出された後に、アプリケーション30からカーネル(OS)11に対して要求があった場合には、フィルタオブジェクト13のエントリポイントを引数に設定してカーネル11のエントリポイント通知関数を呼び出してカーネル11から当該要求に対応するエントリ関数を呼び出させることにより要求内容を抽出するので、要求元アプリケーションの仕様に依存することなく、要求元のアプリケーションからの要求内容を抽出することが可能になる。すなわち、要求元のアプリケーションのデバイス認識を変更したりするなど、要求元アプリケーションの仕様ごとにフィルタリング方法を設計する手間を排除できるので、容易に要求内容を抽出することが可能になる。
また、実施例1によれば、フィルタオブジェクト13が、要求内容を抽出した際に、自身のエントリポイントへ渡された引数をそのまま設定して、抽出されたデバイスドライバ12のエントリポイントのエントリ関数を呼び出すことにより、要求内容それぞれをデバイスドライバ12に通知するので、デバイスドライバ12はフィルタオブジェクト13が無い時と全く同じように対象デバイス40aを制御することができる。そのため、例えば、業務を継続しながらも、円滑にデータを新しいデバイスへ移行するなどの付加価値の高いデバイスドライバを提供することが可能になる。
上記の実施例1において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動でおこなうこともでき(例えば、抽出した要求内容を自動的にデバイスドライバ12に通知するのではなく、制御装置10の管理者が、要求内容を参照したのちに、デバイスドライバ12に通知するなど)、あるいは、手動的におこなうものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる(例えば、フィルタオブジェクト13の設定を自動的に実行するなど)。この他、上記文章中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に更新することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各処理部および各記憶部の分散・統合の具体的形態(例えば、図2の形態など)は図示のものに限られず、例えば、要求内容抽出部13bと要求内容通知部13cとを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、本実施例で説明した要求内容抽出プログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
以上のように、本発明に係る要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置は、デバイスドライバに結合するように設定され、かつ、エントリポイント通知関数およびエントリポイントを予め定義されたフィルタオブジェクトが設置され、当該フィルタオブジェクトが、アプリケーションから対象ドライバに対し行なわれる要求内容を抽出する場合に有用であり、特に、容易に要求内容を抽出することが可能になることに適する。
図1は、実施例1における制御装置の概要および特徴を説明するための図である。 図2は、実施例1における制御装置の構成を示すブロック図である。 図3は、実施例1における制御装置の処理を説明するための図である。 図4は、従来技術を説明するための図である。
10 制御装置
11 カーネル(OS)
12 デバイスドライバ
13 フィルタオブジェクト
13a エントリポイント抽出部
13b 要求内容抽出部
13c 要求内容通知部
14 メモリ
14a エントリポイント記憶部
14b 要求内容記憶部
20 管理部
30 アプリケーション
40 ディスク装置
40a 対象デバイス

Claims (3)

  1. エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムであるとともに、アプリケーションから前記対象デバイスに対し行なわれる要求を抽出する要求抽出方法をコンピュータに実行させる要求抽出プログラムであって、
    前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出手順と、
    前記エントリポイント抽出手順によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出し、抽出した要求を求記憶部に格納する要求抽出手順と、
    前記要求抽出手順によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知手順と
    をコンピュータに実行させることを特徴とする要求抽出プログラム。
  2. エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムをコンピュータに実行させることにより、アプリケーションから前記対象デバイスに対し行なわれる要求をコンピュータが抽出する要求抽出方法であって、
    前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出工程と、
    前記エントリポイント抽出工程によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出する要求抽出工程と、
    前記要求抽出工程によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知工程と、
    を含んだことを特徴とする要求抽出方法。
  3. エントリ関数が存在するカーネルに対してアプリケーションから、処理を実行させるための指示を含む要求があった場合に、前記カーネルから前記要求が指示する処理を実行するためのエントリ関数を呼び出させることにより対象デバイスを動作させるソフトウェアであるデバイスドライバとリンクするように設定され、かつ、前記デバイスドライバが自身のエントリ関数のメモリアドレスの集合であるエントリポイントを通知するためのエントリポイント通知関数と、自身のエントリポイントとを予め定義したフィルタオブジェクトを含む要求抽出プログラムを実行することにより、アプリケーションから前記対象デバイスに対し行なわれる要求を抽出する要求抽出装置であって、
    前記デバイスドライバのインストール時において、当該デバイスドライバに前記第エントリポイント通知関数を呼び出させた場合に、前記第1エントリポイント通知関数の引数に設定されたエントリポイントを参照して、当該デバイスドライバのエントリポイントを抽出し、抽出したエントリポイントをエントリポイント記憶部に格納するエントリポイント抽出手段と、
    前記エントリポイント抽出手段によって前記エントリポイントが抽出された後に、前記アプリケーションから前記カーネルに対して要求があった場合には、前記フィルタオブジェクトのエントリポイントが示すエントリ関数のメモリアドレスの集合のうち1つのメモリアドレスを引数に設定して前記カーネルの第エントリポイント通知関数を呼び出し、前記カーネルに、引数として設定された前記1つのメモリアドレスを通知し、前記カーネルから当該要求に対応するエントリ関数を呼び出させ、呼び出させたエントリ関数に対応する要求を前記アプリケーションからの要求として抽出する要求抽出手段と、
    前記要求抽出手段によって前記要求を抽出した際に、前記エントリポイント記憶部に格納された前記デバイスドライバのエントリポイントを引数とするエントリ関数であって前記要求に対応するエントリ関数を呼び出すことにより、前記要求それぞれを前記デバイスドライバに通知する要求通知手段と、
    を備えたことを特徴とする要求抽出装置。
JP2009517636A 2007-06-04 2007-06-04 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置 Expired - Fee Related JP4681669B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/061316 WO2008149417A2 (ja) 2007-06-04 2007-06-04 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置

Publications (2)

Publication Number Publication Date
JPWO2008149417A1 JPWO2008149417A1 (ja) 2010-08-19
JP4681669B2 true JP4681669B2 (ja) 2011-05-11

Family

ID=40094289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009517636A Expired - Fee Related JP4681669B2 (ja) 2007-06-04 2007-06-04 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置

Country Status (3)

Country Link
US (1) US20100115533A1 (ja)
JP (1) JP4681669B2 (ja)
WO (1) WO2008149417A2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243753B1 (en) * 1998-06-12 2001-06-05 Microsoft Corporation Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
US6323875B1 (en) * 1999-04-28 2001-11-27 International Business Machines Corporation Method for rendering display blocks on display device
US7089551B2 (en) * 2001-02-06 2006-08-08 Hewlett-Packard Development Company, L.P. System for installing peripheral software during peripheral installation
US7069354B2 (en) * 2002-10-01 2006-06-27 Hewlett-Packard Development Company, L.P. Method and apparatus for identifying multiple paths to a SCSI device using a calculated unique identifier
US7607141B2 (en) * 2004-05-03 2009-10-20 Microsoft Corporation Systems and methods for support of various processing capabilities
US7571448B1 (en) * 2004-07-28 2009-08-04 Symantec Corporation Lightweight hooking mechanism for kernel level operations
US7877760B2 (en) * 2006-09-29 2011-01-25 Microsoft Corporation Distributed hardware state management in virtual machines
US20080104590A1 (en) * 2006-11-01 2008-05-01 Mccrory Dave Dennis Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks

Also Published As

Publication number Publication date
US20100115533A1 (en) 2010-05-06
JPWO2008149417A1 (ja) 2010-08-19
WO2008149417A2 (ja) 2008-12-11

Similar Documents

Publication Publication Date Title
JP4436036B2 (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
RU2443012C2 (ru) Конфигурация изолированных расширений и драйверов устройств
JP5719487B2 (ja) アプリケーションをランタイム・インスタンスにインストールするための方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム(アプリケーション・インストール)
JP2021002317A (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
JP5093259B2 (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
KR101806090B1 (ko) 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹
US8543991B2 (en) Profile driven multicore background compilation
US9558023B2 (en) Live application mobility from one operating system level to an updated operating system level and applying overlay files to the updated operating system
CN109739619B (zh) 一种基于容器化应用的处理方法、装置及存储介质
KR20150022849A (ko) 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법
JP5965059B2 (ja) 情報処理装置及び特定方法
JP2022513382A (ja) 関数ジャンプを実現するための方法、装置及びコンピュータ記憶媒体
CN104932972A (zh) 一种反动态调试应用程序的方法及装置
KR100766863B1 (ko) 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법
US8392469B2 (en) Model based distributed application management
JP4681669B2 (ja) 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置
WO2011157105A2 (zh) 组件扩展方法和装置
US7073096B2 (en) File path resolving debugger
US20140282527A1 (en) Applying or Removing Appropriate File Overlays During Live Application Mobility
JP2013164879A (ja) 情報処理装置、互換性評価方法、及びプログラム
US8850399B2 (en) Software development using code retraction and background warm up
US20200142689A1 (en) System And Methods for Patch Management
TW202111518A (zh) 應用程式存在之監視及重新安裝技術
JP2009238176A (ja) 情報処理装置およびプログラムの検証方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101224

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110204

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees