JP2010039861A - Component processor and component processing program - Google Patents
Component processor and component processing program Download PDFInfo
- Publication number
- JP2010039861A JP2010039861A JP2008203381A JP2008203381A JP2010039861A JP 2010039861 A JP2010039861 A JP 2010039861A JP 2008203381 A JP2008203381 A JP 2008203381A JP 2008203381 A JP2008203381 A JP 2008203381A JP 2010039861 A JP2010039861 A JP 2010039861A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- request
- component
- unit
- program
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】コンポーネントの開発に要するコストを削減する。
【解決手段】コンポーネント処理装置1は、アプリケーションプログラムからの要求を受信し、要求が初期化要求の場合、初期化制御部12を呼び出して、要求が初期化要求以外の場合、処理制御部21を呼び出す要求受信部11を有する。初期化制御部12は、処理実行部23が提供する複数のフック関数に対して、それぞれコンポーネントプログラムにおいて実行する複数の処理の対応付けを行い、処理制御部21は、要求のうち、コンポーネントプログラムに非依存の共通処理を共通処理部22に依頼し、依存する処理を処理実行部23に依頼する。共通処理部22は、コンポーネントプログラムに非依存の共通処理を実行し、処理実行部23は、複数のフック関数のそれぞれに対応付けられている複数の処理の実行に対する要求をコンポーネントプログラムに対して依頼する。
【選択図】図2The cost of developing a component is reduced.
A component processing apparatus receives a request from an application program, calls an initialization control unit when the request is an initialization request, and calls the processing control unit when the request is other than an initialization request. The request receiving unit 11 is called. The initialization control unit 12 associates a plurality of processes executed in the component program with the plurality of hook functions provided by the process execution unit 23, and the process control unit 21 includes the component program in the request. Independent common processing is requested to the common processing unit 22, and dependent processing is requested to the processing execution unit 23. The common processing unit 22 executes a common process independent of the component program, and the process execution unit 23 requests the component program to execute a plurality of processes associated with each of the plurality of hook functions. To do.
[Selection] Figure 2
Description
本発明は、コンポーネント処理装置及びコンポーネント処理プログラムに関する。 The present invention relates to a component processing apparatus and a component processing program.
従来より、コーデック(Codec)やデマルチプレクサ(Demuxer)などのデータ処理ロジック(以下、コンポーネントという)の再利用性を高めるために、コンポーネントにアクセスするためのAPI(Application Programming Interface)を標準化しようという流れがある。この標準化された規格として、例えば、OpenMAX Integration Layer(以下、OpenMAX ILという)が存在する(例えば、非特許文献1参照)。 Conventionally, a flow of standardizing API (Application Programming Interface) for accessing components in order to improve the reusability of data processing logic (hereinafter referred to as components) such as codecs and demuxers. There is. As this standardized standard, for example, there is an OpenMAX Integration Layer (hereinafter referred to as OpenMAX IL) (see, for example, Non-Patent Document 1).
この標準化に伴い、コンポーネントの再利用性が高くなる一方で、規定された状態遷移や他のコンポーネントとの通信方法を正しく実装する義務が開発者に発生する。そのため、独自の方法でコンポーネントを実装する場合と比較して、コンポーネントの初期開発コストが増大するという問題点があった。 With this standardization, the reusability of components increases, while the developer is obliged to correctly implement the specified state transitions and communication methods with other components. Therefore, there is a problem in that the initial development cost of the component increases as compared with the case where the component is mounted by a unique method.
その課題に対して、状態遷移や通信方法などを共通の実装として代替するフレームワークを提供することが考えられる。しかしながら、コンポーネントの形態は多様であり、コンポーネントに対する一意なインターフェースを提供することは困難であった。
本発明は、コンポーネントの開発に要するコストを削減することができるコンポーネント処理装置を提供することを目的とする。 An object of this invention is to provide the component processing apparatus which can reduce the cost required for component development.
本発明の一態様によれば、所定の機能の処理を実行するためのコンポーネントプログラムに対して所定のデータ処理を行わせるためのコンポーネント処理装置であって、前記コンポーネントプログラムに設けられる複数の処理のそれぞれに対応する複数の処理I/Fを提供し、前記複数の処理I/Fのそれぞれに対応付けられている前記複数の処理の実行に対する要求を前記コンポーネントプログラムに対して依頼する処理実行部と、前記コンポーネントプログラムに非依存の共通処理を実行する共通処理部と、アプリケーションプログラムからの要求のうち、前記コンポーネントプログラムに非依存の共通処理を前記共通処理部に依頼し、前記コンポーネントプログラムに依存する処理を前記処理実行部に依頼するように制御する処理制御部と、前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行う初期化制御部と、前記要求を受信し、前記要求が初期化要求の場合、前記初期化制御部を呼び出して、前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行い、前記要求が前記初期化要求以外の場合、前記処理制御部を呼び出す要求受信部とを有することを特徴とするコンポーネント処理装置を提供することができる。 According to one aspect of the present invention, there is provided a component processing apparatus for causing a component program for executing processing of a predetermined function to perform predetermined data processing, and a plurality of processing provided in the component program. A process execution unit that provides a plurality of process I / Fs corresponding to each of the plurality of process I / Fs, and requests the component program to request execution of the plurality of processes associated with each of the plurality of process I / Fs; A common processing unit that executes common processing independent of the component program, and requests common processing independent of the component program from the application program, and depends on the component program Process control for controlling to request the process execution unit to process An initialization control unit for associating the plurality of processes executed in the component program with respect to the plurality of process I / Fs provided by the process execution unit, and receiving the request, Is an initialization request, the initialization control unit is called to associate the plurality of processes executed in the component program with the plurality of process I / Fs provided by the process execution unit. When the request is other than the initialization request, it is possible to provide a component processing apparatus including a request receiving unit that calls the processing control unit.
本発明のコンポーネント処理装置によれば、コンポーネントの開発に要するコストを削減することができる。 According to the component processing apparatus of the present invention, the cost required for component development can be reduced.
以下、図面を参照して本発明の実施の形態について詳細に説明する。
まず、図1に基づき、本実施の形態に係る情報処理装置の構成について説明する。図1は、本実施の形態に係る情報処理装置の構成を示すブロック図である。図1に示すように、情報処理装置100は、中央処理装置(以下、CPUという)101と、ROM102と、RAM103と、インターフェース(以下、I/Fという)104と、バス105とを有して構成されている。CPU101、ROM102、RAM103及びI/F104は、互いにバス105を介して接続されている。また、I/F104には、モニタ106及びスピーカ107が接続されている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
First, the configuration of the information processing apparatus according to the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram showing the configuration of the information processing apparatus according to this embodiment. As shown in FIG. 1, the
ROM102には、コンポーネントプログラムとコンポーネント処理プログラムが格納されている。CPU101は、これらのプログラムをROM102から読み出し、RAM103上に展開して実行する。コンポーネントプログラムは、例えば、ビデオのデコード処理またはオーディオのデコード処理などの単機能の処理を行うプログラムである。CPU101は、これらの単機能の処理を組み合わせて、最終的なデータ処理を行い、I/F104を介して、モニタ106またはスピーカ107に出力する。コンポーネントプログラムがCPU101上で実行されることにより、後述するコンポーネントが構成される。
The
コンポーネント処理プログラムは、規定された状態遷移や他のコンポーネントとの通信方法などの共通処理を行うインターフェースプログラムである。このコンポーネント処理プログラムがCPU101上で実行されることにより、本実施の形態のコンポーネント処理装置が構成される。
The component processing program is an interface program that performs common processing such as prescribed state transitions and communication methods with other components. By executing this component processing program on the
なお、コンポーネントプログラムの一部がCPU101とは異なるプロセッサやコプロセッサ、専用HWで実行されても良く、本発明の本質に影響を与えるものではない。
A part of the component program may be executed by a processor, a coprocessor, or a dedicated HW different from the
図2は、本実施の形態に係るコンポーネント処理装置の構成を示すブロック図である。図2に示すように、コンポーネント処理装置1は、要求受信部11と、初期化制御部12と、コアサポート部13と、複数、ここでは2つの基本処理部14a及び14bと、システム処理要求部15とを有して構成されている。なお、コンポーネント処理装置1は、2つの基本処理部14a及び14bを有しているが、1つあるいは3つ以上の基本処理部を有していてもよい。基本処理部は、後述するコンポーネントとしての特定処理部に対応して生成される。
FIG. 2 is a block diagram showing the configuration of the component processing apparatus according to this embodiment. As shown in FIG. 2, the
要求受信部11は、コマンドキュー16と、実行判断部17とを有して構成されている。基本処理部14aは、コンポーネント処理装置1が提供する関数18a及び18bと、フック関数19a及び19bとを有して構成されている。一方、基本処理部14bは、関数18c及び18dと、フック関数19c及び19dとを有して構成されている。
The request reception unit 11 includes a
また、コンポーネント処理装置1の外には、API31と、複数、ここでは2つの特定処理部32a及び32bと、システム処理部33とを有している。API31は、複数のAPI関数31aから31dを有して構成されている。API関数31aから31dは、それぞれ関数18aから18dに対応付けられる。これらの対応付けは、初期化制御部12により行われる。
In addition to the
コンポーネントとしての特定処理部32aは、単機能の処理を実行するフック関数の実体34a及び34bと、初期化情報部35aとを有して構成されている。一方、コンポーネントとしての特定処理部32bは、単機能の処理を実行するフック関数の実体34c及び34dと、初期化情報部35bとを有して構成されている。フック関数19aから19dは、それぞれフック関数の実体34aから34dに対応付けられる。これらの対応付けは、初期化制御部により行われる。
The
要求受信部11には、図示しないアプリケーションからのコマンド、言い換えると、要求が送信される。要求受信部11は、API31を介してアプリケーションからの要求を基本処理部14a又は14bに送信する。アプリケーションからの要求は、API関数31aから31dのAPI呼び出しによって行われる。各API関数31aから31dの種類によって、要求される処理の内容が大別されており、各API関数31aから31dには、引数として各処理に関連するパラメータやデータ、基本処理部14a又は14bを識別するための識別子が付随することがある。各API関数31aから31dと、コンポーネント処理装置1が提供する関数18aから18dとは、上述したように1対1に対応付けられている。この対応付けは、コンポーネント処理装置1に発行される初期化要求によって行われる。初期化要求に対する初期化処理は、初期化制御部12により行われる。即ち、要求受信部11は、API31を介して送信される要求が初期化要求の場合、この初期化要求を初期化制御部12に送信する。
A command from an application (not shown), in other words, a request is transmitted to the request receiving unit 11. The request receiving unit 11 transmits a request from the application to the
また、要求受信部11のコマンドキュー16は、アプリケーションからの要求を複数格納する。このコマンドキュー16は、アプリケーションからの要求を複数格納可能な要求格納部を構成する。実行判断部17は、コマンドキュー16に格納された要求を実行するか否かを判断する。特に、実行判断部17は、他のコンポーネントの処理などを監視し、実行条件が整ったときのみ、コマンドキュー16に格納された要求を基本処理部14aまたは14bに送信する。
The
このように、要求受信部11内にコマンドキュー16及び実行判断部17を設けることにより、後述する処理制御部が異なるプロセスで動作可能となるので、アプリケーションの処理とデータの処理とを並行して実行することができる。また、処理制御部の起動条件を設けることで、処理の準備が整わない際に不用意にプロセスを動作させることを抑制し、システム性能を向上させることができる。
Thus, by providing the
初期化制御部12は、要求受信部11から初期化要求が送信されると、各API関数31aから31dと、コンポーネント処理装置1が提供する関数18aから18dとをそれぞれ対応付ける。この対応付けを実行するためのテーブルは、初期化制御部12内の図示しない記憶部に別途保持されている。
When the initialization request is transmitted from the request receiving unit 11, the
また、初期化制御部12は、要求受信部11から初期化要求が送信されると、コンポーネント処理装置1の初期化を実行する。この初期化の内容は、コンポーネント処理装置1内で使用される領域の確保及び初期化などである。
In addition, when the initialization request is transmitted from the request receiving unit 11, the
更に、初期化制御部12は、要求受信部11から初期化要求が送信されると、特定処理部32a内の初期化情報部35a及び特定処理部32b内の初期化情報部35bを呼び出す。初期化制御部12は、初期化情報部35a及び35bの存在を別途用意される初期化関数テーブルによって確認する。初期化要求には特定処理部32a及び32bの識別子が付与されており、識別子を基に初期化関数テーブルから実行すべき初期化関数を選択する。初期化制御部12は、コンポーネント処理装置1が特定処理部32a及び32bに提供する処理I/Fであるフック関数19aから19dのポインタと、特定処理部32aが用意する関数の実体34aから34dをそれぞれ対応付ける。対応付けは、特定処理部32a及び32bがそれぞれ保持する初期化情報部35a及び35bの情報を用いて行われる。
Further, when the initialization request is transmitted from the request receiving unit 11, the
例えば、処理I/Fであるフック関数19aは、共通処理の前後及び途中に別の処理を組み込むための関数である。共通処理の前後及び途中にフック関数19aのポインタが記述され、特定処理部32aが提供する関数の実体34aがフック関数19aのポインタと対応付けられる。共通処理では、フック関数19aのポインタに関数の実体34aが対応付けられている場合のみ、フック関数19aを介して対応付けられている関数の実体34aが適宜実行される。
For example, the
コアサポート部13は、コンポーネント間の通信及び接続に対応する処理を行い、基本処理部14aまたは14bに送信する。また、コアサポート部13は、オペレーティングシステム(以下、OSという)またはハードウエア(以下、HWという)に依存する処理に対する要求をシステム処理要求部15に送信する。
The
基本処理部14aは、規定された状態遷移や他のコンポーネントとの通信方法などの共通処理を行う。基本処理部14bも同様の構成のため説明を省略する。なお、基本処理部14a及び14bの詳細な構成については、後述する図3を用いて説明する。
The
システム処理要求部15には、OSまたはHWに依存する処理に対する要求がコアサポート部13、基本処理部14a、14bまたはAPI31から供給される。システム処理要求部15は、OSまたはHWに依存する処理に対する要求をシステム処理部33に供給する。システム処理部33は、OSまたはHWに依存する処理、例えば、メモリ領域の確保及びキューの処理、スレッドや排他制御の管理などを実行する。
A request for processing dependent on the OS or HW is supplied to the system
メモリ領域の確保及びキューの処理などは、OSまたはHWに依存している処理であるため、呼び出し方法もOSまたはHWによって異なる。そのため、OSまたはHWに依存した関数呼び出しを基本処理部14aまたは14b中に含めると、コンポーネント処理装置1自体の再利用性が悪化する。そのため、OSまたはHWに依存した関数を抽象化する層、ここでは、システム処理要求部15を定めることにより、その層を経由してOSまたはHWに依存した関数を基本処理部14aまたは14bの外に出すことができる。
The allocation of the memory area, the queue processing, and the like are processes that depend on the OS or HW, so that the calling method differs depending on the OS or HW. Therefore, if a function call depending on the OS or HW is included in the
ここで、基本処理部14a及び14bの構成について説明する。なお、基本処理部14a及び14bは、同様の構成のため、代表して基本処理部14aの構成について説明する。図3は、基本処理部の構成を示すブロック図である。図3に示すように、基本処理部14aは、処理制御部21と、共通処理部22と、処理実行部23とを有して構成されている。
Here, the configuration of the
処理制御部21は、要求受信部11からの関数呼び出しによって、呼び出された関数18aまたは18bを実行する。具体的には、API関数31aに対応した関数18aまたはAPI関数31bに対応した関数18bが実行される。各関数の中身では規格で定められた共通処理が実行される。共通処理の前後及び途中にフック関数のポインタが記述されており、特定処理部32aが提供する関数の実体がフック関数のポインタと対応付けられている場合には、フック関数を通して特定処理部32aの関数が適宜実行される。
The process control unit 21 executes the called
このように、共通処理の前後及び中途の複数個所にフック関数のポインタを記述するのは、特定処理部32aの多様性を考慮したことによる。例えば、特定処理部32aがソフトウエアのみで動作する場合、共通処理の最後で関数が呼び出される場合があり、特定処理部32aが内部に専用HWを保持する場合、共通処理を実行する前にHWのキックが実行される場合もあるためである。
In this manner, the hook function pointers are described at a plurality of locations before and after the common processing and in the middle because of the diversity of the
共通処理部22は、規格に定められた共通処理を実行する。共通処理部22は、共通処理の一例として、他のコンポーネントとプログラムの通信に関する通信処理を実行する。他のコンポーネントとプログラムの通信に関する通信処理は、実装負荷が高い部分であるため共通化の効果が大きい。通信方法は規格で定められており、この通信処理において、共通処理部22は、通信に用いるデータ領域、例えば、バッファの確保を行う。また、共通処理部22は、バッファに付随する情報領域、例えば、バッファヘッダの設定を行う。更に、共通処理部22は、他のコンポーネントとのネゴシエーション、例えば、送受信するデータの属性の確認及び互いの設定情報の確認などを行う。他のコンポーネントもまた、同じAPI規格にあわせて作成されているため、他のコンポーネントに対して要求を出す場合には、API31を通して関数呼び出しを行う。ここでいう、他のコンポーネントプログラムに対する要求とは、バッファ、言い換えると、データの送受信であったり、ネゴシエーションであったりする。
The
また、共通処理部22は、共通処理の他の一例として、コンポーネントプログラムの状態遷移の管理に関する状態遷移処理を実行する。コンポーネントプログラムの状態遷移の管理に関する状態遷移処理は、仕様把握の負荷が高い部分であるため共通化の効果が大きい。遷移すべき状態の種類は規格で定められており、どのAPI関数が呼び出されると、どのような状態に遷移するかもまた規格で定められている。また、明示的に状態を遷移させるためのAPI関数が規格で定められている場合もある。例えば、OpenMAX ILでは、SendCommand(“コマンドの種類は状態遷移”,“遷移させたい状態はA”)といったようなAPI関数とコマンドの種類が定義されている。
In addition, the
処理実行部23は、フック関数のポインタに特定処理部32aの関数が対応付けられている場合には、フック関数を通して特定処理部32aの関数を実行する。また、処理実行部23は、フック関数のポインタに特定処理部32aの関数が対応付けられていない場合には、何も処理を実行しない。
When the function of the
図4は、初期化関数テーブルを説明するための説明図である。図4に示すように初期化関数テーブルには、フック関数名と、そのフック関数のポインタが指し示す特定処理部32a内のアドレスとが対応付けられる。初期化制御部12は、初期化要求を受信した後に、初期化情報部35aを参照することにより、これらの対応付けを実行した初期化関数テーブルを生成する。例えば、図4では、フック関数名が“プロセスデータ”であり、プロセスデータに対応するポインタのアドレスが“A”である。また、“セットパラメータ”に対応するポインタのアドレスは“B”であることも示している。更に“プロセスデータ”の前に実行される“プリプロセスデータ”に対しては関数の実体が対応付けられていないことも示している。
FIG. 4 is an explanatory diagram for explaining the initialization function table. As shown in FIG. 4, the initialization function table associates a hook function name with an address in the
次に、このように構成されるコンポーネント処理装置1の動作について、暗号処理を例に説明する。特定処理部32aは、DES(Data Encryption Standard)及びAES(Advanced Encryption Standard)の暗号処理を実行するデータ処理ロジック、即ち、コンポーネントであり、制御命令を受け付けることにより処理アルゴリズムが切り替わる。また、特定処理部32aは、図示しないデータ処理プログラム、例えば、ハッシュ計算処理を実行するデータ処理プログラムに対して暗号処理結果を送信する。なお、データ処理プログラムは、標準規格に則ったプログラムであるが、本実施の形態の内容を含んでいなくてもよい。
Next, the operation of the
なお、説明を簡略化するため、標準規格に定められたコマンドを以下の6つのコマンド、ここでは、初期化コマンド、通信確立コマンド、状態遷移コマンド、設定コマンド、データ処理コマンド及び終了コマンドと仮定する。 In order to simplify the description, the commands defined in the standard are assumed to be the following six commands, here, an initialization command, a communication establishment command, a state transition command, a setting command, a data processing command, and an end command. .
また、標準規格に定められたコマンド以外、言い換えると、コンポーネント固有のカスタムコマンドを定義してもよい。カスタムコマンドの定義は、初期化制御部12が上述した初期化の処理を行う際に、初期化制御部によって実行される。コンポーネントによっては、標準規格に定められたコマンド以外のコマンド実行したい場合がある。このように、コンポーネント固有のカスタムコマンドの定義を行うことにより、コンポーネント毎に固有のコマンドを実行することができる。
In addition to the commands defined in the standard, in other words, component-specific custom commands may be defined. The definition of the custom command is executed by the initialization control unit when the
初期化コマンドは、コンポーネントの初期化処理を行うためのコマンドである。
通信確立コマンドは、標準規格に則った他のデータ処理プログラム、本実施の形態ではデータ処理プログラムとの通信経路を確立するためのコマンドである。
状態遷移コマンドは、コンポーネントの状態を遷移させるためのコマンドである。本実施の形態では、コンポーネントの状態として「準備中」と「実行可」の2種類の状態を持つものとする。
設定コマンドは、コンポーネントの設定を変更するためのコマンドである。本実施の形態では、使用する暗号アルゴリズムを設定するために用いられる。
データ処理コマンドは、データ処理、ここでは、暗号処理の対象となるデータを入力し、暗号処理の実行を要求するためのコマンドである。なお、データ処理コマンドを発行する際にはコンポーネントの状態が「実行可」でなければならないことが規格によって定められているものとする。
終了コマンドは、コンポーネントの終了処理を行うためのコマンドである。
The initialization command is a command for performing component initialization processing.
The communication establishment command is a command for establishing a communication path with another data processing program conforming to the standard, in this embodiment, the data processing program.
The state transition command is a command for transitioning the component state. In the present embodiment, it is assumed that there are two types of states of the component, “Preparing” and “Executable”.
The setting command is a command for changing the setting of the component. In the present embodiment, it is used to set a cryptographic algorithm to be used.
The data processing command is a command for inputting data to be subjected to data processing, here, encryption processing, and requesting execution of the encryption processing. It is assumed that the standard defines that the component state must be “executable” when issuing a data processing command.
The end command is a command for performing component end processing.
このうち、コンポーネントの設定及びデータ処理は、コンポーネントの内容に影響を与える処理であるため、コンポーネントの開発者は、設定ファイルなどに基づいて、それら2つの処理に対応する設定関数と処理関数を実装し、対応付けるフック関数19a及び19bを選択したものとする。詳しくは、フック関数19aは設定コマンドに対して共通処理部14aが提供するフック関数のうちの1つであり、コンポーネントの開発者は必要とするフック関数に対して特定処理部32aの提供する関数の実体を対応付ける。このとき、複数のフック関数に対して対応付けを行っても良いし、不必要ならば全く対応付けを行わなくても構わない。本実施形態では、フック関数19aに対して関数の実体34a(設定関数)が対応付けられたものとする。また、フック関数19bは処理コマンドに対して共通処理部14aが提供するフック関数のうちの1つであり、同様に、本実施形態では、フック関数19bに対して関数の実体34b(設定関数)が対応付けられたものとする。更に、その他のコマンドに対しても同様にフック関数が提供されるが、本実施形態ではそれらのフック関数に対して関数の対応付けをしないものとする。図2では紙面の都合上、対応付けが行われていないフック関数を図示しない。
Among these, component settings and data processing are processes that affect the contents of the component, so component developers implement setting functions and processing functions corresponding to these two processes based on the configuration file etc. Assume that the hook functions 19a and 19b to be associated are selected. Specifically, the
API31を通して初期化コマンドが要求受信部11に入力される。初期化コマンドを受信した要求受信部11は、初期化制御部12を呼び出す。初期化制御部12は、コンポーネント処理装置1の必要な初期化処理を実施した後、特定処理部32aに要求を発行する。初期化制御部12は、特定処理部32aの設定関数と処理関数とを、それぞれ処理実行部23のフック関数19a及び19bに対して登録する。また、初期化制御部12は、コンポーネントの状態を「準備中」に設定する。
An initialization command is input to the request receiving unit 11 through the
API31を通して通信確立コマンドが要求受信部11に入力される。通信確立コマンドを受信した要求受信部11は、処理制御部21を起動する。処理制御部21は、コマンドの内容を判断し、共通処理部22を実行する。共通処理部22は、データ処理プログラムとの間で使用するデータ領域の確保、例えば、バッファ管理を行い、通信経路を確立する。続いて処理制御部21は、処理実行部23を呼び出す。ここでは、通信確立コマンドに対する処理実行部23のフック関数に関数の実体が対応付けられていないため、処理実行部23は、処理を何も実行しない。
A communication establishment command is input to the request receiving unit 11 through the
API31を通して設定コマンド、ここでは、AESが要求受信部11に入力される。設定コマンドを受信した要求受信部11は、処理制御部21を起動する。処理制御部21は、コマンドの内容を判断し、共通処理部22を実行する。続いて処理制御部21は、処理実行部23を起動する。ここでは、処理I/Fであるフック関数19aに対して特定処理部32aが提供する関数、ここでは設定関数が対応付けられているため、処理実行部23はフック関数19aを通して特定処理部32aを起動する。特定処理部32aは、自身の処理アルゴリズムをAESに設定する。
A setting command, here AES, is input to the request receiving unit 11 through the
API31を通して状態遷移コマンドが要求受信部11に入力される。状態遷移コマンドを受信した要求受信部11は、処理制御部21を起動する。処理制御部21は、コマンドの内容を判断し、共通処理部22を実行する。共通処理部22は、状態遷移コマンドの情報からコンポーネントの状態を「実行可」と設定する。続いて処理制御部21は処理実行部23を起動する。ここでは、状態遷移コマンドに対する処理実行部23のフック関数に関数の実体が対応付けられていないため、処理実行部23は、処理を何も実行しない。
A state transition command is input to the request receiving unit 11 through the
API31を通して処理コマンドが要求受信部11に入力される。処理コマンドを受信した要求受信部11は、処理制御部21を起動する。処理制御部21は、コマンドの内容を判断し、共通処理部22を実行する。共通処理部22は、コンポーネントの状態が「実行可」であるかを判断する。続いて処理制御部21は、処理実行部23を起動する。ここでは、処理I/Fであるフック関数19bに対して特定処理部32aが提供する関数、ここでは処理関数が対応付けられているため、処理実行部23は、フック関数19bを通して特定処理部32aを起動する。特定処理部32aは、AESのアルゴリズムを用いた暗号処理を実施する。特定処理部32aの処理結果は、共通処理部22によってデータ処理プログラムに対して送信される。
A processing command is input to the request receiving unit 11 through the
API31を通して終了コマンドが要求受信部11に入力される。終了コマンドを受信した要求受信部11は、処理制御部21を起動する。処理制御部21は、コマンドの内容を判断し、共通処理部22を実行する。共通処理部22は、設定したデータ領域や通信経路、登録した関数の開放処理を実施する。続いて処理制御部21は、処理実行部23を呼び出す。ここでは、終了コマンドに対する処理実行部23のフック関数に関数の実体が対応付けられていないため、処理実行部23は、処理を何も実行しない。
An end command is input to the request receiving unit 11 through the
上記フローにおいて、メモリ領域の確保など、OSまたはHWに依存する処理についての要求は、システム処理要求部15を介してシステム処理部33に供給され、システム処理部33において、OSまたはHWに依存する処理が実行される。
In the above flow, a request for processing dependent on the OS or HW, such as securing a memory area, is supplied to the
以上のように、コンポーネント処理装置1は、規定された状態遷移や他のコンポーネントとの通信方法などを共通処理として実装するようにした。また、コンポーネント処理装置1は、共通処理の前後及び途中に別の処理を組み込むためのフック関数を設定し、このフック関数にコンポーネント固有の処理を対応付けるようにした。その結果、コンポーネントの開発者は、規定された状態遷移や他のコンポーネントとの通信方法を考慮してコンポーネントの開発をしなくてもよくなる。即ち、コンポーネントの開発者は、コンポーネント固有のアルゴリズムのみを実装すればよくなる。
As described above, the
よって、本実施の形態のコンポーネント処理装置によれば、コンポーネントの開発に要するコストを削減することができる。 Therefore, according to the component processing apparatus of the present embodiment, the cost required for component development can be reduced.
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以上、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。 Each “unit” in this specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond to a specific hardware or software routine on a one-to-one basis. Therefore, in the present specification, the embodiment has been described above assuming a virtual circuit block (unit) having each function of the embodiment.
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムコードがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明のコンポーネント処理装置を実現することができる。 The program for executing the operations described above is recorded or stored as a computer program product in its entirety or in part on a portable medium such as a flexible disk or CD-ROM or a storage medium such as a hard disk. Yes. The program code is read by a computer, and all or part of the operation is executed. Alternatively, all or part of the program can be distributed or provided via a communication network. The user can easily realize the component processing apparatus of the present invention by downloading the program via a communication network and installing the program on the computer, or installing the program from the recording medium on the computer.
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。 The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the scope of the present invention.
1…コンポーネント処理装置、11…要求受信部、12…初期化制御部、13…コアサポート部、14a,14b…基本処理部、15…システム処理要求部、16…コマンドキュー、17…実行判断部、18a〜18d…関数、19a〜19d…フック関数、21…処理制御部、22…共通処理部、23…処理実行部、31…API、31a〜31d…API関数、32a,32b…特定処理部、33…システム処理部、35a,35b…初期化情報部、100…情報処理装置、101…CPU、102…ROM、103…RAM、104…I/F、105…バス。
DESCRIPTION OF
Claims (6)
前記コンポーネントプログラムに設けられる複数の処理のそれぞれに対応する複数の処理I/Fを提供し、前記複数の処理I/Fのそれぞれに対応付けられている前記複数の処理の実行に対する要求を前記コンポーネントプログラムに対して依頼する処理実行部と、
前記コンポーネントプログラムに非依存の共通処理を実行する共通処理部と、
アプリケーションプログラムからの要求のうち、前記コンポーネントプログラムに非依存の共通処理を前記共通処理部に依頼し、前記コンポーネントプログラムに依存する処理を前記処理実行部に依頼するように制御する処理制御部と、
前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行う初期化制御部と、
前記要求を受信し、前記要求が初期化要求の場合、前記初期化制御部を呼び出して、前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行い、前記要求が前記初期化要求以外の場合、前記処理制御部を呼び出す要求受信部と、
を有することを特徴とするコンポーネント処理装置。 A component processing device for causing a component program for executing processing of a predetermined function to perform predetermined data processing,
A plurality of process I / Fs corresponding to each of a plurality of processes provided in the component program are provided, and a request for execution of the plurality of processes associated with each of the plurality of process I / Fs is sent to the component A process execution unit that requests the program;
A common processing unit that executes common processing independent of the component program;
Among the requests from the application program, request a common process independent of the component program to the common processing unit, and control a process control unit to control the process execution unit to request the process execution unit,
An initialization control unit that associates the plurality of processes executed in the component program with the plurality of process I / Fs provided by the process execution unit;
When the request is received and the request is an initialization request, the initialization control unit is called, and the plurality of processing I / Fs provided by the processing execution unit are executed in the component program, respectively. A request receiving unit that associates a plurality of processes and calls the process control unit when the request is other than the initialization request; and
A component processing apparatus comprising:
前記要求が前記処理実行部において実行可能か否かを判断する実行判断部と、
を有し、
前記実行判断部は、前記要求が前記処理実行部において実行可能であると判断した場合、前記要求格納部に格納された前記要求を前記処理制御部にロードすることを特徴とする請求項1から3の何れか1項に記載のコンポーネント処理装置。 The request receiving unit is a request storage unit capable of storing a plurality of received requests;
An execution determination unit that determines whether or not the request can be executed in the process execution unit;
Have
The said execution determination part loads the said request | requirement stored in the said request | requirement storage part to the said process control part, when it judges that the said request | requirement is executable in the said process execution part. 4. The component processing apparatus according to any one of 3.
前記コンポーネントプログラムに設けられる複数の処理のそれぞれに対応する複数の処理I/Fを提供し、前記複数の処理I/Fのそれぞれに対応付けられている前記複数の処理の実行に対する要求を前記コンポーネントプログラムに対して依頼する第1のコード部と、
前記コンポーネントプログラムに非依存の共通処理を実行する第2のコード部と、
アプリケーションプログラムからの要求のうち、前記コンポーネントプログラムに非依存の共通処理を前記共通処理部に依頼し、前記コンポーネントプログラムに依存する処理を前記処理実行部に依頼するように制御する第3のコード部と、
前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行う第4のコード部と、
前記要求を受信し、前記要求が初期化要求の場合、前記初期化制御部を呼び出して、前記処理実行部が提供する前記複数の処理I/Fに対して、それぞれ前記コンポーネントプログラムにおいて実行する前記複数の処理の対応付けを行い、前記要求が前記初期化要求以外の場合、前記処理制御部を呼び出す第5のコード部と、
をコンピュータに実行させることを特徴とするコンポーネント処理プログラム。 A component processing program for causing a processing program for executing a specific function to perform specific data processing,
A plurality of process I / Fs corresponding to each of a plurality of processes provided in the component program are provided, and a request for execution of the plurality of processes associated with each of the plurality of process I / Fs is sent to the component A first code part to request for the program;
A second code unit that executes common processing independent of the component program;
A third code unit that controls to request the common processing unit to perform a common process independent of the component program, and to request the process execution unit to perform a process dependent on the component program. When,
A fourth code unit that associates the plurality of processes executed in the component program with the plurality of process I / Fs provided by the process execution unit;
When the request is received and the request is an initialization request, the initialization control unit is called, and the plurality of processing I / Fs provided by the processing execution unit are executed in the component program, respectively. A plurality of processes associated with each other, and when the request is other than the initialization request, a fifth code section that calls the process control section;
A component processing program for causing a computer to execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008203381A JP2010039861A (en) | 2008-08-06 | 2008-08-06 | Component processor and component processing program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008203381A JP2010039861A (en) | 2008-08-06 | 2008-08-06 | Component processor and component processing program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2010039861A true JP2010039861A (en) | 2010-02-18 |
Family
ID=42012322
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008203381A Pending JP2010039861A (en) | 2008-08-06 | 2008-08-06 | Component processor and component processing program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2010039861A (en) |
-
2008
- 2008-08-06 JP JP2008203381A patent/JP2010039861A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10762204B2 (en) | Managing containerized applications | |
| EP3074867B1 (en) | Managing containerized applications | |
| CN110199271B (en) | Method and apparatus for field programmable gate array virtualization | |
| CN101930449B (en) | Client, brokerage server and method for providing cloud storage | |
| JP4709166B2 (en) | Method and system for a security model for a computer device | |
| RU2327208C2 (en) | Driver model, independent of processing mode | |
| KR101066682B1 (en) | Notification method for shared resources | |
| US10223321B2 (en) | Combining redirected USB interfaces into a single composite device | |
| US20110004916A1 (en) | Securely using service providers in elastic computing systems and environments | |
| JP2008165795A (en) | Dynamic virtual machine generation | |
| JP2009528620A (en) | Move virtual machines with resources such as hardware devices | |
| JP4286798B2 (en) | Method for installing driver file on hard drive, computer and computer-readable storage medium | |
| JP2008539484A (en) | Universal serial bus function delegation | |
| JP2016526226A (en) | Limited driver platform runs drivers in sandbox in user mode | |
| US10114779B2 (en) | Isolating a redirected USB device to a set of applications | |
| TW201030623A (en) | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller | |
| CN102473100A (en) | Method, device and computer program for providing multimedia functionality using software packaging components | |
| US11068613B2 (en) | Differentiating and managing identical USB devices | |
| KR20130104958A (en) | Apparatus and methods for executing multi-operating systems | |
| JP6070423B2 (en) | Information processing apparatus, information processing method, and program | |
| US8769544B2 (en) | Method and system for managing parallel resource request in a portable computing device | |
| JP5157520B2 (en) | Processing control system, server, and processing control program | |
| US8631480B2 (en) | Systems and methods for implementing security services | |
| JP2010039861A (en) | Component processor and component processing program | |
| JP2006164266A (en) | Improving operating system performance |