JP2017146892A - 情報処理装置、処理実行管理方法、および処理実行管理プログラム - Google Patents

情報処理装置、処理実行管理方法、および処理実行管理プログラム Download PDF

Info

Publication number
JP2017146892A
JP2017146892A JP2016029761A JP2016029761A JP2017146892A JP 2017146892 A JP2017146892 A JP 2017146892A JP 2016029761 A JP2016029761 A JP 2016029761A JP 2016029761 A JP2016029761 A JP 2016029761A JP 2017146892 A JP2017146892 A JP 2017146892A
Authority
JP
Japan
Prior art keywords
event
identification information
plug
execution
processing
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
Application number
JP2016029761A
Other languages
English (en)
Inventor
貴之 石黒
Takayuki Ishiguro
貴之 石黒
圭輔 太田
Keisuke Ota
圭輔 太田
庸介 浅田
Yosuke Asada
庸介 浅田
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
Priority to JP2016029761A priority Critical patent/JP2017146892A/ja
Publication of JP2017146892A publication Critical patent/JP2017146892A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ソフトウェアに処理を容易に追加できるようにする。【解決手段】記憶部11は、所定の実行契機イベントの発生に応じて実行する処理の手順が記述された追加プログラム2b,2c,3b,3cと、実行契機イベントを示すイベント識別情報と、処理を示す処理識別情報とを記憶する。演算部12は、実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラム1を実行するとともに、管理情報12aに、イベント識別情報と処理識別情報とを登録する。そして演算部12は、実行契機イベントが発生すると、管理情報12aを参照し、実行契機イベントを示すイベント識別情報に対応付けられた処理識別情報に対応する処理を、追加プログラム2b,2c,3b,3cに基づいて実行する。【選択図】図1

Description

本発明は、情報処理装置、処理実行管理方法、および処理実行管理プログラムに関する。
企業内のコンピュータシステムを構築する場合、顧客の運用に従い、既存のソフトウェアをカスタマイズすることが多い。例えば、顧客の要望に応じて、既存のソフトウェアの挙動が変更される。
ソフトウェアをカスタマイズする際、ソースコードの書き換えを行うと、影響範囲の確認や品質確保のため、コストや手間がかかる。そこで、顧客からの要望に応じてプラグインのようなプログラムを元のプログラムに追加して、元のプログラムの挙動を変更することが行われる。プログラムの挙動を変更する方法として、例えばDLL(Dynamic Link Library)などの機能呼び出し、DI(Dependency Injection)がある。
なおソフトウェアの修正に関連する従来技術としては、例えば次のような技術がある。第1の従来技術は、プログラム更新処理を実行した直後に新プログラムの動作検証を行うプログラム遠隔更新システムである。第2の従来技術は、依存関係にある複数の関数の修正を、通信を停止させずに、かつ、システムの誤動作を引き起こさずに実行するプログラム更新システムである。第3の従来技術は、従来のプラグイン構成をもつデバイス管理アプリケーションにおけるリモートタスクの実行制御の改善技術である。第4の従来技術は、問題を表す状況データの分析や、状況データに関連付けられた問題が既知の問題と合致するかどうかの判別、インストール可能な累積修復の送信などを行う、修復送達システムのためのコンピュータ実装プロセスである。
特開2004−326287号公報 特開2015−41273号公報 特開2015−114895号公報 特表2015−505097号公報
しかし、従来の技術で、ソフトウェアに対してプラグインにより処理を追加できる箇所は、例えば、明示的に外部のプログラムを特定した呼び出しを行っている部分に限定され、処理追加可能箇所の自由度が低い。明示的な外部プログラムの呼び出しを行っている部分以外で、新たなプログラムによる処理を追加するには、ソースコードの書き換えを行うことになり、手間がかかる。
1つの側面では、本件は、ソフトウェアに処理を容易に追加できるようにすることを目的とする。
1つの案では、以下のような記憶部と演算部とを有する情報処理装置が提供される。記憶部は、所定の実行契機イベントの発生に応じて実行する処理の手順が記述された追加プログラムと、実行契機イベントを示すイベント識別情報と、処理を示す処理識別情報とを記憶する。演算部は、実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラムを実行するとともに、イベントと該イベントの発生に応じて実行する処理との対応関係管理用の管理情報に、イベント識別情報と処理識別情報とを登録する。そして演算部は、実行契機イベントの発生に応じて、管理情報を参照し、実行契機イベントを示すイベント識別情報に対応付けられた処理識別情報に対応する処理を、追加プログラムに基づいて実行する。
1態様によれば、ソフトウェアで実行する処理を容易に追加できる。
第1の実施の形態に係る情報処理装置の構成例を示す図である。 第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。 コンピュータの機能を示すブロック図である。 プラグインの一例を示す図である。 設定ファイルの一例を示す図である。 プラグイン管理情報の一例を示す図である。 プラグイン登録処理の概要を示す図である。 プラグイン登録処理の手順の一例を示すフローチャートの前半を示す図である。 プラグイン登録処理の手順の一例を示すフローチャートの後半を示す図である。 メソッド実行処理の概要を示す図である。 メソッド実行処理の手順の一例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態ついて説明する。
図1は、第1の実施の形態に係る情報処理装置の構成例を示す図である。情報処理装置10は、記憶部11と演算部12とを有する。
記憶部11は、プラグインとして提供されている複数のファイル2,3を記憶する。ファイル2,3には、追加プログラム2b,2c,3b,3cと自己登録情報2a,3aとが含まれる。
追加プログラム2b,2c,3b,3cには、所定の実行契機イベントが発生したときに実行する処理の手順が記述されている。なお実行契機イベントは、プラグイン以外の実行プログラム1、または追加プログラム2b,2c,3b,3cの実行によって発生するイベントである。例えば追加プログラム2bには、処理識別情報「処理A」の処理の手順が記述されている。追加プログラム2cには、処理識別情報「処理B」の処理の手順が記述されている。追加プログラム3bには、処理識別情報「処理C」の処理の手順が記述されている。追加プログラム3cには、処理識別情報「処理D」の処理の手順が記述されている。
自己登録情報2a,3aには、実行契機イベントを示すイベント識別情報と、その実行契機イベントが発生したときに実行する処理を示す処理識別情報との組が設定されている。なお自己登録情報2a,3aには、各処理の優先度を設定することもできる。例えばファイル2の自己登録情報2aには、イベント識別情報「イベントX1」と処理識別情報「処理A」と優先度「1」との組、およびイベント識別情報「イベントX2」と処理識別情報「処理B」と優先度「1」の組が設定されている。ファイル3の自己登録情報3aには、イベント識別情報「イベントY1」と処理識別情報「処理C」と優先度「2」との組、およびイベント識別情報「イベントX2」と処理識別情報「処理D」と優先度「2」の組が設定されている。図1の例では、優先度の値が小さいほど、優先度が高いものとする。すなわち優先度「1」の処理の方が、優先度「2」の処理のよりも、実行の優先度が高い。
演算部12は、実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラム1を実行する。実行プログラム1の実行を開始した演算部12は、各ファイル2,3の自己登録情報2a,3aを参照する。そして演算部12は、イベントと該イベントが発生したときに実行する処理との対応関係管理用の管理情報12aに、ファイル2,3内の自己登録情報2a,3aに含まれるイベント識別情報と処理識別情報との組を登録する。なお演算部12は、自己登録情報2a,3a内の処理識別情報に処理の優先度が設定されている場合、処理の優先度も含めて、管理情報12aに登録する。
その後、イベント呼び出し命令の実行により実行契機イベントが発生すると、演算部12は、管理情報12aを参照し、実行契機イベントを示すイベント識別情報に対応付けられた処理識別情報で示される処理を、ファイル内の追加プログラムに基づいて実行する。なお演算部12は、管理情報12a内の各処理に優先度が設定されている場合、共通のイベントに対応付けられた複数の処理については、優先度の高い順に実行する。
例えば実行プログラム1には、イベント識別情報「イベントX1」、「イベントX2」、「イベントX3」の各イベントの呼び出し命令が含まれている。演算部12が実行プログラム1を実行し、まず「イベントX1呼び出し命令」が実行されると、「イベントX1」のイベントが発生する。演算部12は、「イベントX1」のイベントが発生すると、管理情報12aを参照し、「イベントX1」に対して「処理A」が対応付けられていることを認識する。そして演算部12は、「処理A」の処理手順が記述された追加プログラム2bを実行する。
追加プログラム2bには、イベント識別情報「イベントY1」のイベントの呼び出しを行う「イベントY1呼び出し命令」が含まれている。演算部12が追加プログラム2bを実行し、「イベントY1呼び出し命令」が実行されると、「イベントY1」のイベントが発生する。演算部12は、「イベントY1」のイベントが発生すると、管理情報12aを参照し、「イベントY1」に対して「処理C」が対応付けられていることを認識する。そして演算部12は、「処理C」の処理手順が記述された追加プログラム3bを実行する。
追加プログラム3bの実行が完了すると、演算部12は、追加プログラム2bの「イベントY1呼び出し命令」以降の処理を実行する。追加プログラム2bの実行が完了すると、演算部12は、実行プログラム1の「イベントX1呼び出し命令」以降の処理を実行する。
その後、「イベントX2呼び出し命令」が実行されると、「イベントX2」のイベントが発生する。演算部12は、「イベントX2」のイベントが発生すると、管理情報12aを参照し、「イベントX2」に対して「処理B」と「処理D」が対応付けられていることを認識する。発生したイベントに対して実行する処理が複数あるため、演算部12は、「処理B」と「処理D」との優先度を比較する。図1の例では、「処理B」の優先度が「1」、「処理D」の優先度が「2」であり、「処理B」の方が優先度が高い。そこで演算部12は、優先度が高い方の「処理B」の処理手順が記述された追加プログラム2cを実行する。追加プログラム2cの実行が完了すると、演算部12は、優先度が低い方の「処理D」の処理手順が記述された追加プログラム3cを実行する。追加プログラム3cの実行が完了すると、演算部12は、実行プログラム1の「イベントX2呼び出し命令」以降の処理を実行する。
その後、「イベントX3呼び出し命令」が実行されると、「イベントX3」のイベントが発生する。演算部12は、「イベントX3」のイベントが発生すると、管理情報12aを参照し、「イベントX3」に対して処理識別情報が対応付けられていないことを認識する。そこで、演算部12は、実行プログラム1の「イベントX3呼び出し命令」以降の処理を実行する。
このように、第1の実施の形態では、プラグインとして用意されたファイル2,3内に自己登録情報2a,3aを設けておけば、実行プログラム1へのプラグインを組み込むことができ、処理の追加が非常に容易である。例えば開発者は、実行プログラム1の開発時には、後に処理を追加できるように、多数のイベント呼出し命令を挿入しておく。その後、開発者は、実行プログラム1に処理を追加するための追加プログラムを作成した際には、予め設定しておいたイベント呼出し命令のいずれかが実行されるタイミングで作成した追加プログラムが実行されるように、自己登録情報を作成する。これにより、実行プログラム1のソースコードを書き換えることなく、実行プログラム1からの追加プログラムの呼び出しが可能となる。
しかも実行プログラム1内のイベント呼び出し命令の位置に加え、追加プログラム2b内のイベント呼び出し命令の位置にも、プラグインによって処理を追加することができる。その結果、ソフトウェアの機能修正の柔軟性が向上する。
さらに第1の実施の形態では、各処理に優先度を設定することができる。この優先度を用いて、共通のイベント発生時に実行する複数の処理の処理順を、容易に設定することができる。その結果、処理順に制約のある追加プログラムを実行させるときでも、簡単な優先度設定により、制約を満たす適切な順番で処理を実行させることができる。
なお、自己登録情報2a,3aには、単に処理の追加に関する情報だけでなく、既存の処理の実行抑止に関する情報を設定することもできる。例えば、記憶部11に、管理情報12aに登録されたいずれかの処理識別情報の削除指示が設定された設定ファイルを格納しておく。この場合、演算部12は、設定ファイルに従って、イベント識別情報と処理識別情報との組を、管理情報12aから削除する。例えば設定ファイルにおいて、ファイル2によって「イベントX2」に対して設定された「処理B」の削除が指定されていた場合、管理情報12aから、「イベントX2」に対応付けられた「処理B」が削除される。
このような設定ファイルを用いた既存の処理の実行抑止を行うことで、特定のイベント発生時に実行する処理を変更できる。例えばファイル2が先に作成され、その後、ファイル3が作成されたものとする。この場合、ファイル3を記憶部11に格納する際に、設定ファイルにおいて、「イベントX2」に対して設定された「処理B」の削除を指定することで、「イベントX2」のイベントが発生した際に実行される処理が「処理B」から「処理D」に変更される。
なお、演算部12は、例えば情報処理装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置により実現することができる。
以上が第1の実施の形態についての説明である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、プラグインモジュールを用いて、ソフトウェアに基づいて実行できる処理の追加・変更・削除を容易に行えるようにしたものである。
なおソフトウェアに基づいて実行できる処理の追加・変更・削除により、そのソフトウェアを実行するコンピュータの機能が、追加・変更・削除される。そこで以下の説明では、ソフトウェアに基づいて実行できる処理の追加・変更・削除は、コンピュータに対する機能の追加・変更・削除と同等であるものとする。
<ハードウェア構成>
第2の実施の形態の機能を実現することができるコンピュータのハードウェア構成について、図2を参照して説明する。
図2は、第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記憶媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図2に示したコンピュータ100と同様のハードウェアにより実現することができる。
コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またコンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
<処理機能>
次に、プラグインによる機能の変更を実現するためにコンピュータ100が有する処理機能について説明する。なお、以下の説明では、追加する機能の処理が記述されたプラグインプログラムを、単に「プラグイン」と呼ぶこととする。
図3は、コンピュータの機能を示すブロック図である。コンピュータ100は、記憶部110とプログラム実行部120とを有する。
記憶部110は、機能対象のソフトウェアのプログラム本体111、設定ファイル112、および複数のプラグインモジュール113,114,・・・を記憶している。
プログラム本体111は、ウェブアプリケーションなどの各種機能を実現するための実行形式のファイルである。プログラム本体111は、プラグインマネージャプログラム111a、非プラグイン111b、および複数のプラグイン111c,111d,・・・を含んでいる。
プラグインマネージャプログラム111aは、プラグインの読み込み、プラグイン内の機能の登録、イベント発生に応じたプラグインの起動などのプラグイン管理処理の手順が記述されたプログラムである。
非プラグイン111bは、プログラム本体111にプラグインとは別に組み込まれたプログラムである。非プラグイン111bは、プログラム記述中の複数の箇所に、イベント呼び出し命令が記述されている。
プラグイン111c,111dは、他のプログラムからプラグインとして呼び出され、実行されるプログラムである。プラグイン111c,111dは、イベントに登録する複数の機能を含んでいる。プラグイン111c,111dにも、イベント呼び出し命令を含めることができる。
設定ファイル112は、プラグイン内の機能をイベントに登録するため情報が記載されたファイルである。設定ファイル112には、例えば、プログラム本体111に含まれるプラグインのうちの、実行を抑止するプラグインを指定する情報を含めることもできる。
複数のプラグインモジュール113,114,・・・は、所定のプラグインフォルダ110−1内に格納されている。複数のプラグインモジュール113,114,・・・は、例えばDLLであり、複数のプラグイン113a,113b,・・・を含んでいる。複数のプラグイン113a,113b,・・・は、それぞれ複数の機能を有することができる。また、複数のプラグインモジュール113,114,・・・は、1つのプログラム内に含めることもできる。すなわち、1つのプラグイン113aは複数のプラグインモジュールを有し、1つのプラグインモジュールは複数のプラグインを有し、1つのプラグインは複数の機能を有するという、階層構造となっている。
プログラム実行部120は、プロセッサ101がプログラム本体111の記述に従って処理を実行することで実現する機能である、例えばプログラム実行部120は、プロセッサ101によって生成されるプロセスである。プログラム実行部120は、プラグインマネージャ121とプラグイン管理情報122とを有する。プラグインマネージャ121は、プラグインマネージャプログラム111aの記述に従ってプラグインの管理処理を実行する。例えばプラグインマネージャ121は、プログラム実行部120によって生成されるスレッドである。プラグイン管理情報122は、プログラム本体の実行中に呼び出し可能なプラグインの管理情報である。プラグイン管理情報122には、例えばイベント名と、そのイベント名のイベントが発生したときに実行するプラグインとの対応関係が示されている。
<データ構造>
以下、コンピュータ100で管理される情報のデータ構造について説明する。
まず、プラグイン113aの内部構造を説明する。なお、プラグインモジュール113内の他のプラグイン113b,・・・やプログラム本体111内のプラグイン111c,111d,・・・の内部構造も、プラグイン113aと同様である。
なお、以下の例では、オブジェクト指向プログラミングにおけるメソッドを登録対象の機能とする。各メソッドにはメソッド名が付与されており、メソッド名により登録する機能が指定できる。
図4は、プラグインの一例を示す図である。プラグイン113aには、イベント自己登録情報113−1、公開データ113−2、非公開データ113−3、およびメソッドごとの複数のプログラム113−4〜113−6が含まれる。
イベント自己登録情報113−1は、プラグイン113a内の機能をプラグインマネージャ121に登録するための情報である。イベント自己登録情報113−1には、例えば、どのイベントに、どの機能を、どの優先度で登録するかが指定されている。例えばイベント自己登録情報113−1には、「eveventXにmethodBを優先度110で登録、entXにmethodAを優先度100で登録、eventYにmethodAを優先度0で登録」というような情報が記載されている。
公開データ113−2は、プラグイン113aの実行に使用するデータのうち、他のプラグインに公開するデータである。非公開データ113−2は、プラグイン113aの実行に使用するデータのうち、他のプラグインに非公開とするデータである。
複数のプログラム113−4〜113−6は、プラグイン113aで提供されるメソッドの処理手順が記述されたプログラムである。複数のプログラム113−4〜113−6内には、イベント呼び出し命令を含めることができる。
次に設定ファイルについて具体的に説明する。
図5は、設定ファイルの一例を示す図である。図5に示す設定ファイル112は、XML(Extensible Markup Language)によって記述されている。
例えば「<PluginInfo type=“add”>」というタグで示された箇所の記述によって、所定のイベントに対して、そのイベントが発生したときに実行するメソッドが示されている。この記述に基づいて、プラグインマネージャ121が、プラグイン管理情報122に、該当イベントが発生したときに実行するメソッドを登録する。
また「<PluginInfo type=“del”>」というタグで示された箇所の記述によって、実行を抑止するプラグインまたはメソッドが示されている。例えば実行を抑止する対象として、プラグインの名称だけが指定されていれば、そのプラグイン全体の実行が抑止される。また実行を抑止する対象として、プラグインの名称と、停止するメソッドのメソッド名が指定されていれば、該当プラグイン内の指定されたメソッドの実行のみが抑止される。
次にプラグインマネージャ121によって生成されるプラグイン管理情報122について説明する。
図6は、プラグイン管理情報の一例を示す図である。プラグイン管理情報122には、イベント管理テーブル122aと複数の優先度管理テーブル122b,122c,・・・とが含まれる。
イベント管理テーブル122aには、メソッドを登録可能なイベント名が登録されている。登録されているイベント名には、対応する優先度管理テーブルへのポインタが設定されている。
優先度管理テーブル122b,122c,・・・は、それぞれイベント管理テーブル122a内のいずれかのイベント名に対応付けられている。優先度管理テーブル122b,122c,・・・には、対応するイベント名で示されるイベントが発生しときに実行するメソッドの優先度が設定されている。例えば優先度管理テーブル122b,122c,・・・には、優先度に対応付けてメソッドのメソッド名が設定されている。登録されているメソッドは、例えば優先度の数値が小さい程、先に実行される。メソッド名は、対応するメソッドをコンピュータ内で一意に識別する名称である。例えばメソッド名により、対応するメソッドを有するプラグインモジュールやプラグインを識別することができる。
<処理手順>
次に、コンピュータ100におけるプラグインの管理に関する処理手順について説明する。プラグインの管理に関する処理は、大別してプラグイン登録処理とイベント管理処理とがある。
まず、プラグイン登録処理について説明する。
図7は、プラグイン登録処理の概要を示す図である。なお、図7では、登録するメソッドの実行契機となるイベントの指定と、メソッドの優先度の指定との表記は省略している。また図7に示すメソッド名は、クラス名を除いた名前を示している。
プログラム実行部120によるプログラム本体111の実行開始時、プラグインマネージャ121は、プログラム本体111から既存のプラグイン111cのイベント自己登録情報を読み込む。図7の例では、プラグイン111cのイベント自己登録情報には、メソッド名「methodUpdate」、「methodDel」の2つのメソッドを登録することが示されている。プラグイン111cのイベント自己登録情報を読み込んだプラグインマネージャ121は、プラグイン管理情報122に、所定のイベントに対応付けられた優先度管理テーブルに、メソッド名「methodUpdate」、「methodDel」を登録する。
次にプラグインマネージャ121は、プラグインモジュール113によって提供されているプラグイン113a,113bそれぞれのイベント自己登録情報を読み込む。図7の例では、プラグイン113aのイベント自己登録情報には、機能追加用のメソッドとして、メソッド名「methodAdd」のメソッドを登録することが示されている。プラグインマネージャ121は、プラグイン113aのイベント自己登録情報に基づいて、プラグイン管理情報122内の所定のイベントに対応付けられた優先度管理テーブルに、メソッド名「methodAdd」を登録する。
また図7の例では、プラグイン113bのイベント自己登録情報には、プログラム本体111に含まれた機能の変更を目的としたメソッドとして、メソッド名「methodUpdate」のメソッドを登録することが示されている。プラグインマネージャ121は、プラグイン113bのイベント自己登録情報に基づいて、プラグイン管理情報122内の所定のイベントに対応付けられた優先度管理テーブルに、メソッド名「methodUpdate」を登録する。この際、プラグインマネージャ121は、すでにプラグイン管理情報122内にメソッド名「methodUpdate」の他のプラグインのメソッドが登録されていた場合、該当メソッドのメソッド名を、プラグイン管理情報122から削除する。
このように、プラグイン内のイベント自己登録情報によるメソッドの追加、変更が可能である。なお、図7には示していないが、プラグイン内のイベント自己登録情報により、他のプラグインによって登録されているメソッドの実行を抑止(無効化)することも可能である。
メソッドの追加、変更、抑止は、設定ファイル112によって指定することもできる。例えばプラグインマネージャ121は、各プラグインのイベント自己登録情報に基づく情報登録完了後、設定ファイル112を読み込む。図7の例では、設定ファイル112には、既存のプラグイン111cによって登録されたメソッドの無効化が指定されている。プラグインマネージャ121は、設定ファイル112に基づいて、プラグイン管理情報122に登録されている、メソッド名「methodUpdate」、「methodDel」のメソッドを無効化する。例えばプラグインマネージャ121は、プラグイン管理情報122からメソッド名「methodUpdate」、「methodDel」を削除する。
以下、図8、図9を参照して、プラグイン登録処理の手順を詳細に説明する。
図8は、プラグイン登録処理の手順の一例を示すフローチャートの前半を示す図である。以下、図8に示す処理をステップ番号に沿って説明する。なお、プラグイン登録処理は、プログラム実行部120が起動されたとき、またはプラグイン再読み込みの指示が入力されたときに実行される。
[ステップS101]プラグインマネージャ121は、予め指定されたフォルダ(プラグインフォルダ110−1)配下のプラグインモジュールを検索する。
[ステップS102]プラグインマネージャ121は、プログラム本体111もプラグインモジュールの1つとみなし、プラグインモジュールそれぞれを処理対象として、ステップS103〜S113の処理を実行する。例えばプラグインマネージャ121は、最初にプログラム本体111を処理対象とし、その後、プラグインフォルダ110−1内の各プラグインモジュールを処理対象とする。
[ステップS103]プラグインマネージャ121は、処理対象のプラグインモジュール内のプラグインを検索する。
[ステップS104]プラグインマネージャ121は、ステップS103の検索で見つかったプラグインそれぞれを処理対象として、ステップS105〜S112の処理を実行する。
[ステップS105]プラグインマネージャ121は、プラグインのイベント自己登録情報を読み込む。
[ステップS106]プラグインマネージャ121は、イベント自己登録情報において指定されたメソッドそれぞれを処理対象として、ステップS107〜S111の処理を実行する。
[ステップS107]プラグインマネージャ121は、処理対象のメソッドの実行契機として指定されているイベントのイベント名が、プラグイン管理情報122に登録済みか否かを判断する。例えばプラグインマネージャ121は、プラグイン管理情報122内のイベント管理テーブル122aを参照し、イベント管理テーブル122aに該当するイベント名が登録されていれば、登録済みと判断する。イベント名が登録済みの場合、処理がステップS109に進められる。イベント名が登録済みでなければ、処理がステップS108に進められる。
[ステップS108]プラグインマネージャ121は、プラグイン管理情報122にイベント名を追加し、指定されたメソッドを、指定された優先度で登録する。例えばプラグインマネージャ121は、指定されたメソッドの実行契機として指定されたイベントのイベント名を、イベント管理テーブル122aに登録する。次にプラグインマネージャ121は、登録したイベント名に対応する優先度管理テーブルを生成する。さらにプラグインマネージャ121は、登録したイベント名に対応付けて、生成した優先度管理テーブルへのポインタをイベント管理テーブル122aに設定する。そしてプラグインマネージャ121は、生成した優先度管理テーブル内に、処理対象の指定されたメソッドの優先度と、そのメソッドのメソッド名との組を登録する。その後、処理がステップS112に進められる。
[ステップS109]プラグインマネージャ121は、処理対象のメソッドに指定されている優先度が、既にプラグイン管理情報122に登録済みか否かを判断する。例えばプラグインマネージャ121は、イベント管理テーブル122aから、処理対象のメソッドに指定されているイベントのイベント名に対応付けられたポインタを抽出し、そのポインタで指し示された優先度管理テーブルを参照する。そしてプラグインマネージャ121は、参照した優先度管理テーブル内に、処理対象のメソッドに指定されている優先度が登録されている場合、該当優先度が登録済みであると判断する。優先度が登録済みであれば、処理がステップS111に進められる。優先度が登録済みでなければ、処理がステップS110に進められる。
[ステップS110]プラグインマネージャ121は、プラグイン管理情報122内の、処理対象のメソッドに指定されているイベントのイベント名に対応付けて、そのメソッドに指定された優先度と、そのメソッドのメソッド名との組を登録する。例えばプラグインマネージャ121は、ステップS109で参照した優先度管理テーブルに対して、処理対象のメソッドに指定された優先度と、そのメソッドのメソッド名との組を設定する。その後、処理がステップS112に進められる。
[ステップS111]プラグインマネージャ121は、プラグイン管理情報122内の、処理対象のメソッドに指定されているイベントのイベント名と優先度との組に対応付けて、処理対象のメソッドのメソッド名を追加する。例えばプラグインマネージャ121は、ステップS109で参照した優先度管理テーブルから、処理対象のメソッドの優先度が設定されているレコードを特定する。そしてプラグインマネージャ121は、特定したレコードのメソッドとして、処理対象のメソッドのメソッド名を追加する。
[ステップS112]プラグインマネージャ121は、処理対象のプラグイン内のすべてのメソッドに対して、ステップS107〜S111の処理が完了した場合、処理をステップS113に進める。
[ステップS113]プラグインマネージャ121は、処理対象のプラグインモジュール内のすべてのプラグインに対して、ステップS105〜S112の処理が完了した場合、処理をステップS114に進める。
[ステップS114]プラグインマネージャ121は、指定されたフォルダ内のすべてのプラグインモジュールに対して、ステップS103〜S113の処理が完了した場合、処理をステップS121(図9参照)に進める。
図9は、プラグイン登録処理の手順の一例を示すフローチャートの後半を示す図である。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS121]プラグインマネージャ121は、設定ファイル112を検索する。例えばプラグインマネージャ121は、所定のフォルダ内から、設定ファイル112の名称として予め指定されているファイル名のファイルを検索する。
[ステップS122]プラグインマネージャ121は、ステップS121の検索により設定ファイル112が見つかったか否かを判断する。設定ファイル112が見つかった場合、処理がステップS123に進められる。設定ファイル112が見つからなかった場合、プラグイン登録処理が終了する。
[ステップS123]プラグインマネージャ121は、設定ファイル112内の設定項目それぞれを処理対象として、ステップS124〜S130の処理を実行する。
[ステップS124]プラグインマネージャ121は、処理対象の設定項目の内容は、メソッドの登録指定か否かを判断する。登録指定であれば、処理がステップS125に進められる。登録指定でなければ、削除指定であるため、処理がステップS128に進められる。
[ステップS125]プラグインマネージャ121は、設定項目において、登録指定されているメソッドの起動契機として指定されているイベントが、プラグイン管理情報122に登録済みのイベントか否かを判断する。登録済みのイベントであれば、処理がステップS126に進められる。登録済みのイベントでなければ、処理がステップS127に進められる。
[ステップS126]プラグインマネージャ121は、登録指定されているメソッドの起動契機として指定されているイベントの登録を、プラグイン管理情報122から削除する。例えばプラグインマネージャ121は、プラグイン管理情報122内のイベント管理テーブル122aから、該当するイベントのイベント名とポインタとの組を削除する。さらにプラグインマネージャ121は、削除したポインタで指し示されている優先度管理テーブルを削除する。
[ステップS127]プラグインマネージャ121は、登録指定されているメソッドの起動契機として指定されているイベントに対応付けて、該当メソッドのメソッド名と優先度とをプラグイン管理情報122に登録する。例えばプラグインマネージャ121は、登録指定されたメソッドの実行契機として指定されたイベントのイベント名を、イベント管理テーブル122aに登録する。そしてプラグインマネージャ121は、登録したイベント名に対応する優先度管理テーブルを生成する。さらにプラグインマネージャ121は、登録したイベント名に対応付けて、生成した優先度管理テーブルへのポインタをイベント管理テーブル122aに設定する。その後、処理がステップS131に進められる。
[ステップS128]プラグインマネージャ121は、処理対象の設定項目の内容が、プラグイン全体の削除指定か否かを判断する。プラグイン全体の削除指定であれば、処理がステップS129に進められる。プラグイン内の一部のメソッドの削除指定であれば、処理がステップS130に進められる。
[ステップS129]プラグインマネージャ121は、削除指定されているプラグイン内の全メソッドの情報を、プラグイン管理情報122から削除する。その後、処理がステップS131に進められる。
[ステップS130]プラグインマネージャ121は、削除指定されているプラグイン内の指定されたメソッドの情報を、プラグイン管理情報122から削除する。
[ステップS131]プラグインマネージャ121は、すべての設定項目についてステップS124〜S130の処理が完了した場合、プラグイン登録処理を終了する。
このようにして、プログラム本体111を修正することなく、一部の機能(メソッド)の追加・変更・削除が可能となる。追加・変更・削除の結果は、プラグイン管理情報122に示されている。そして、プラグインマネージャ121は、何らかのイベントが発生すると、プラグイン管理情報122を参照して実行するメソッドを判断し、該当メソッドを実行する。
図10は、メソッド実行処理の概要を示す図である。プラグインマネージャ121は、非プラグインのメソッドまたはプラグインのメソッドの実行中にイベントの発生を検知すると、プラグイン管理情報122を参照し、発生したイベントに対応付けられたメソッドを特定する。なおイベントを発生させたメソッドは、呼び出されるメソッドの実行に利用する情報を、イベントの引数として渡すことができる。
イベントに対応付けられたメソッドが複数ある場合、プラグインマネージャ121は、各メソッドの優先度の順に実行する。例えばプラグインマネージャ121は、優先度の値が小さい順に、発生したイベントに対応するメソッドを選択し、そのメソッドを実行する。同じ優先度のメソッドが複数ある場合、プラグインマネージャ121は、該当するメソッドの数分のスレッドを生成し、生成したスレッドを用いて同じ優先度のメソッドを並列に実行する。プラグインマネージャ121は、優先度が上位のメソッドの実行が完了後、次に優先度が高いメソッドを実行する。
このように、優先度の順番にメソッドが実行されるため、メソッドの優先度を適切に設定することで、1つのイベントが発生したときに実行する複数のメソッドの実行順を、容易に管理できる。
次に、イベント発生時のメソッドの実行処理手順について具体的に説明する。
図11は、メソッド実行処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS201]プラグインマネージャ121は、実行中のプログラム内に設定されたイベントの呼び出し命令が実行されイベントが発生すると、発生したイベントが、プラグイン管理情報122に登録済みのイベントか否かを判断する。例えばプラグインマネージャ121は、プラグイン管理情報122内のイベント管理テーブル122aに、発生したイベントのイベント名が登録されていれば、登録済みであると判断する。登録済みの場合、処理がステップS202に進められる。登録されていなければ、メソッド実行処理が終了する。
[ステップS202]プラグインマネージャ121は、プラグイン管理情報122から、発生したイベントのイベント名に対応付けて登録された優先度管理テーブルを取得する。
[ステップS203]プラグインマネージャ121は、取得した優先度管理テーブルに登録されている優先度それぞれを処理対象として、ステップS204〜ステップS210の処理を実行する。
[ステップS204]プラグインマネージャ121は、処理対象の優先度で登録されたメソッドのメソッド名のすべてを、ステップS202で取得した優先度管理テーブルから取得する。
[ステップS205]プラグインマネージャ121は、取得したメソッド名が1つか否かを判断する。取得したメソッド名が1つであれば、処理がステップS206に進められる。取得したメソッド名が2つ以上であれば、処理がステップS207に進められる。
[ステップS206]プラグインマネージャ121は、取得したメソッド名に対応するメソッドを実行する。その後、処理がステップS211に進められる。
[ステップS207]プラグインマネージャ121は、取得したメソッド名それぞれについて、ステップS208の処理を実行する。
[ステップS208]プラグインマネージャ121は、取得したメソッド名それぞれに対応するメソッドを、別スレッドで実行する。
[ステップS209]プラグインマネージャ121は、取得したすべてのメソッド名に対応するメソッドの実行が開始されると、処理をステップS210に進める。
[ステップS210]プラグインマネージャ121は、メソッドを実行するすべてのスレッドの処理が完了するまで待機する。すべてのスレッドの処理が完了すると、処理がステップS211に進められる。
[ステップS211]プラグインマネージャ121は、発生したイベントに登録されたすべての優先度に対してステップS204〜S210の処理が完了すると、メソッド実行処理を終了する。
このようにして、イベントの発生を契機として、プラグインとして提供されているメソッドが実行される。
<第2の実施の形態の効果>
第2の実施の形態によれば、プラグインの開発者は、プラグイン内のメソッドの実行契機となるイベント名をイベント自己登録情報に設定しておくだけで、所望のタイミングで追加のメソッドをコンピュータ100に実行させることができる。すなわち、プログラムを修正せずに、コンピュータ100で実行できる機能を追加・変更・削除でき、プログラム本体111に対するプラグインの組み込みが非常に容易となっている。また、モジュールを機能ごとに分割することにより、1つの顧客でカスタマイズした内容を他の顧客に転用することも容易である。他の顧客に転用した場合でも、プログラム本体やモジュールの修正が不要であるため、期間短縮・費用削減・品質向上につながる。
しかも、1つのイベントに複数のメソッドが対応付けられている場合は、優先度順に実行される。このような優先度制御を利用すれば、追加するメソッドの実行順を容易に管理することができる。すなわち、ある既存メソッドの実行が完了した後に、別の追加メソッドを実行させる場合、開発者は、追加メソッドの実行契機のイベントを、既存メソッドの実行契機と同じに設定する。このとき開発者は、追加メソッドの優先度は、既存メソッドの優先度より低く設定する。これにより、既存メソッドの実行完了後に追加メソッドを実行させることができる。
なお、プラグインのメソッドとイベントとの対応関係は、設定ファイル112を用いて、プラグインモジュール外で指定することも可能である。設定ファイル112を用いれば、既存のメソッドの実行を抑止することも容易である。
さらに、追加されたプラグインの実行により発生するイベントを発行契機として他のプラグインを実行させることも可能であり、プラグインの実行契機の柔軟性が非常に高い。例えばイベント呼び出しが定義された場所であれば、どこにでも機能を追加可能である。またプラグイン内で定義された既存機能を無効化し、新たなプラグイン(機能)を登録することで、機能の変更が可能である。さらに、プラグイン内で定義された既存機能を無効化することで、機能を削除可能である。しかも、プラグインの実行契機となるイベントの発生元は、プログラム本体111に限定されず、プラグインの実行により発生したメソッドであってもよい。
以上が第2の実施の形態についての説明である。
〔その他の実施の形態〕
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 実行プログラム
2,3 ファイル
2a,3a 自己登録情報
2b,2c,3b,3c 追加プログラム
10 情報処理装置
11 記憶部
12 演算部
12a 管理情報

Claims (5)

  1. 所定の実行契機イベントの発生に応じて実行する処理の手順が記述された追加プログラムと、前記実行契機イベントを示すイベント識別情報と、前記処理を示す処理識別情報とを記憶する記憶部と、
    前記実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラムを実行するとともに、イベントと該イベントの発生に応じて実行する処理との対応関係管理用の管理情報に、前記イベント識別情報と前記処理識別情報とを登録し、前記実行契機イベントの発生に応じて、前記管理情報を参照し、前記実行契機イベントを示す前記イベント識別情報に対応付けられた前記処理識別情報に対応する前記処理を、前記追加プログラムに基づいて実行する演算部と、
    を有する情報処理装置。
  2. 前記記憶部は、前記実行契機イベントが発生したときに実行する第1処理の手順が記述された第1追加プログラム、および前記実行契機イベントを示す前記イベント識別情報と前記第1処理を示す第1処理識別情報と前記1処理の優先度との組を含む第1ファイルを記憶し、かつ、前記実行契機イベントが発生したときに実行する第2処理の手順が記述された第2追加プログラム、および前記実行契機イベントを示す前記イベント識別情報と前記第2処理を示す第2処理識別情報と前記第2処理の優先度との組を含む第2ファイルを記憶し、
    前記演算部は、
    前記実行プログラムの実行が開始されると、前記管理情報に、前記第1ファイルに含まれる前記イベント識別情報と前記第1処理識別情報と前記1処理の優先度との組、および前記第2ファイルに含まれる前記イベント識別情報と前記第2処理識別情報と前記2処理の優先度との組を登録し、
    前記イベント呼び出し命令の実行により前記実行契機イベントが発生すると、前記管理情報を参照し、前記実行契機イベントを示す前記イベント識別情報に対応付けられた前記第1処理識別情報と前記第2処理識別情報とのそれぞれで示される前記第1処理と前記第2処理とを、前記第1追加プログラムと前記第2追加プログラムとに基づいて、優先度が高い順に実行する、
    請求項1記載の情報処理装置。
  3. 前記記憶部は、第3ファイル、第4ファイル、および設定ファイルを記憶し、
    前記第3ファイルは、前記実行契機イベントが発生したときに実行する第3処理の手順が記述された第3追加プログラム、および前記イベント識別情報と前記第3処理を示す第3処理識別情報との組を含み、
    前記第4ファイルは、前記実行契機イベントが発生したときに実行する第4処理の手順が記述された第4追加プログラム、および前記イベント識別情報と前記第4処理を示す第4処理識別情報との組を含み、
    前記設定ファイルは、前記第3処理識別情報または前記第4処理識別情報の削除指示が設定されており、
    前記演算部は、
    前記実行プログラムの実行が開始されると、前記管理情報に、前記第3ファイルに含まれる前記イベント識別情報と前記第3処理識別情報との組、および前記第4ファイルに含まれる前記イベント識別情報と前記第4処理識別情報との組を登録し、
    前記設定ファイルに従って、前記第3ファイルに含まれる前記イベント識別情報と前記第3処理識別情報との組、または前記第4ファイルに含まれる前記イベント識別情報と前記第4処理識別情報との組を、前記管理情報から削除する、
    請求項1または2記載の情報処理装置。
  4. コンピュータが、
    前記実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラムを実行するとともに、所定の実行契機イベントの発生に応じて実行する処理の手順が記述された追加プログラムと、前記実行契機イベントを示すイベント識別情報と、前記処理を示す処理識別情報とを記憶する記憶部を参照し、イベントと該イベントの発生に応じて実行する処理との対応関係管理用の管理情報に、前記イベント識別情報と前記処理識別情報とを登録し、
    前記実行契機イベントの発生に応じて、前記管理情報を参照し、前記実行契機イベントを示す前記イベント識別情報に対応付けられた前記処理識別情報に対応する前記処理を、前記追加プログラムに基づいて実行する、
    処理実行管理方法。
  5. コンピュータに、
    前記実行契機イベントを発生させるイベント呼び出し命令を含む実行プログラムを実行するとともに、所定の実行契機イベントの発生に応じて実行する処理の手順が記述された追加プログラムと、前記実行契機イベントを示すイベント識別情報と、前記処理を示す処理識別情報とを記憶する記憶部を参照し、イベントと該イベントの発生に応じて実行する処理との対応関係管理用の管理情報に、前記イベント識別情報と前記処理識別情報とを登録し、
    前記実行契機イベントの発生に応じて、前記管理情報を参照し、前記実行契機イベントを示す前記イベント識別情報に対応付けられた前記処理識別情報に対応する前記処理を、前記追加プログラムに基づいて実行する、
    処理を実行させる処理実行管理プログラム。
JP2016029761A 2016-02-19 2016-02-19 情報処理装置、処理実行管理方法、および処理実行管理プログラム Pending JP2017146892A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016029761A JP2017146892A (ja) 2016-02-19 2016-02-19 情報処理装置、処理実行管理方法、および処理実行管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016029761A JP2017146892A (ja) 2016-02-19 2016-02-19 情報処理装置、処理実行管理方法、および処理実行管理プログラム

Publications (1)

Publication Number Publication Date
JP2017146892A true JP2017146892A (ja) 2017-08-24

Family

ID=59683231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016029761A Pending JP2017146892A (ja) 2016-02-19 2016-02-19 情報処理装置、処理実行管理方法、および処理実行管理プログラム

Country Status (1)

Country Link
JP (1) JP2017146892A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7381895B2 (ja) 2020-04-15 2023-11-16 富士通株式会社 イベントストリーム処理システム、イベントムストリーム処理方法及びイベントストリーム処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174244A (ja) * 2003-12-15 2005-06-30 Canon Inc ネットワークデバイス管理装置およびネットワークデバイス管理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2009037353A (ja) * 2007-07-31 2009-02-19 Ricoh Co Ltd 情報処理端末装置及びプログラム
JP2011048716A (ja) * 2009-08-28 2011-03-10 Ricoh Co Ltd 画像処理システム、管理装置、画像処理装置、管理方法、プログラムおよび記録媒体
JP2012198674A (ja) * 2011-03-18 2012-10-18 Ricoh Co Ltd プリンタドライバ、情報処理装置、及び記録媒体
JP2015014896A (ja) * 2013-07-04 2015-01-22 住友電気工業株式会社 情報処理装置、コンピュータプログラム及び情報処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174244A (ja) * 2003-12-15 2005-06-30 Canon Inc ネットワークデバイス管理装置およびネットワークデバイス管理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2009037353A (ja) * 2007-07-31 2009-02-19 Ricoh Co Ltd 情報処理端末装置及びプログラム
JP2011048716A (ja) * 2009-08-28 2011-03-10 Ricoh Co Ltd 画像処理システム、管理装置、画像処理装置、管理方法、プログラムおよび記録媒体
JP2012198674A (ja) * 2011-03-18 2012-10-18 Ricoh Co Ltd プリンタドライバ、情報処理装置、及び記録媒体
JP2015014896A (ja) * 2013-07-04 2015-01-22 住友電気工業株式会社 情報処理装置、コンピュータプログラム及び情報処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7381895B2 (ja) 2020-04-15 2023-11-16 富士通株式会社 イベントストリーム処理システム、イベントムストリーム処理方法及びイベントストリーム処理プログラム

Similar Documents

Publication Publication Date Title
EP2950203B1 (en) Application scenario identification method, power consumption management method and apparatus and terminal device
US20200273034A1 (en) Payment process configuration and execution method, apparatus and device
US20090193363A1 (en) Representing Multiple Computing Resources Within A Predefined Region Of A Graphical User Interface For Displaying A Single Icon
JP5652480B2 (ja) データベース更新通知方法
JP5998764B2 (ja) 情報処理装置、ログ出力方法およびログ出力プログラム
US20140310688A1 (en) Using stack data and source code to rank program changes
JP2020119348A (ja) 解析プログラム、解析方法および解析装置
US8296742B2 (en) Automatic native generation
US20170344520A1 (en) Information processing apparatus, information processing method, and storage medium
US20080082535A1 (en) Method and system for automatically generating a communication interface
JP2017146892A (ja) 情報処理装置、処理実行管理方法、および処理実行管理プログラム
CN112199391A (zh) 一种数据加锁检测方法、设备及计算机可读存储介质
US20140115385A1 (en) Solvable exceptions
US11809881B2 (en) Target process injection prior to execution of marker libraries
JP5720531B2 (ja) ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法
US11868814B2 (en) Information processing apparatus
US8977814B1 (en) Information lifecycle management for binding content
JP6688433B2 (ja) 計算機システム
US8321844B2 (en) Providing registration of a communication
JP2013105349A (ja) 動的リンクライブラリの更新、実行方法
JP2010191580A (ja) ファイル管理方法、システム、及び、プログラム
US20220197776A1 (en) Information processing apparatus, information processing method, and storage medium
JP5190899B2 (ja) 情報処理装置、設定ファイル生成方法、および設定ファイル生成プログラム
JP6369333B2 (ja) ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置
US9703532B1 (en) Dynamically updating class instances based on class definition changes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200310