(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-11
(45)【発行日】2023-09-20
(54)【発明の名称】アプリケーションプログラム及びソフトウェアエージェント
(51)【国際特許分類】
G06F 8/71 20180101AFI20230912BHJP
G06F 16/14 20190101ALI20230912BHJP
【FI】
G06F8/71
G06F16/14 200
(21)【出願番号】P 2019129864
(22)【出願日】2019-07-12
【審査請求日】2022-06-21
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【氏名又は名称】尾形 文雄
(74)【代理人】
【識別番号】100166981
【氏名又は名称】砂田 岳彦
(72)【発明者】
【氏名】大津 圭
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2017-091108(JP,A)
【文献】特開2017-004114(JP,A)
【文献】特開2000-305816(JP,A)
【文献】米国特許出願公開第2004/0167912(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/71
G06F 9/46
G06F 11/07
G06F 16/14
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
自身の個別の機能に関する情報及び自身若しくは当該機能の実行に伴い動的に変化する情報の両方又は一方を含むファイルを生成する機能と、
前記コンピュータに常駐するソフトウェアエージェント
が稼働している場合、前記ファイルが格納される場所を
当該ソフトウェアエージェントに対して通知する機能と
、
前記コンピュータに常駐するソフトウェアエージェントが稼働していない場合、前記ファイルが格納される場所の当該ソフトウェアエージェントに対する通知を延期する機能と、
を
実現させる
ためのアプリケーションプログラム。
【請求項2】
前記場所は、自身が起動された後に前記ソフトウェアエージェントに通知される、請求項1に記載のアプリケーションプログラム。
【請求項3】
前記ファイルは、自身のアンインストール時に削除される、請求項1に記載のアプリケーションプログラム。
【請求項4】
前記ファイルに記録される情報は、自身のアップデート又はバージョンアップ時に変更される、請求項1に記載のアプリケーションプログラム。
【請求項5】
コンピュータに、
アプリケーションプログラムの個別の機能に関する情報及び当該アプリケーションプログラム若しくは当該機能の実行に伴い動的に変化する情報の両方又は一方を含むファイルが格納されている場所の通知を、収集の対象とする当該アプリケーションプログラムのそれぞれから
受動的に受け付ける機能と、
通知を受けた場所から前記ファイルを読み出す機能と、
読み出した前記ファイルの内容を指定された送信先に送信する機能と
を実行させるソフトウェアエージェント。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションプログラム及びソフトウェアエージェントに関する。
【背景技術】
【0002】
管理対象とするユーザの端末装置にインストールされたソフトウェアエージェントを通じ、端末装置のハードウェア情報、ソフトウェア情報、ユーザ情報をサーバ側のデータベースに登録する仕組みが提案されている。ただし、収集される情報は、基本ソフトウェアで管理が可能な静的な情報である。例えばソフトウェア情報の場合、基本ソフトウェアやそのバージョン情報、インストールされているソフトウェアやそのバージョン情報が収集の対象とされる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在使用されているソフトウェアエージェントが収集する情報は、前述したように、インストールされているアプリケーションプログラムを単位とし、アプリケーションプログラム毎に用意されている個別の機能やアプリケーションプログラム若しくは各機能の実行に伴い動的に変化する情報を個別に収集する機能は備えられていない。これらの情報を収集するには、収集する情報としてソフトウェアエージェントに事前に登録する必要がある。しかし、収集する情報の格納場所はアプリケーションプログラム毎に異なる。このため、管理対象とする端末装置にインストールされているアプリケーションプログラムに応じてソフトウェアエージェントを用意する必要が発生する。しかし、ソフトウェアエージェントを修正する作業負担が大きい。
【0005】
本発明は、管理対象とする端末装置にインストールされているアプリケーションプログラム専用のソフトウェアエージェントを用意しなくても、アプリケーションプログラム毎に指定される情報の収集を可能にすることを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、コンピュータに、自身の個別の機能に関する情報及び自身若しくは当該機能の実行に伴い動的に変化する情報の両方又は一方を含むファイルを生成する機能と、前記コンピュータに常駐するソフトウェアエージェントが稼働している場合、前記ファイルが格納される場所を当該ソフトウェアエージェントに対して通知する機能と、前記コンピュータに常駐するソフトウェアエージェントが稼働していない場合、前記ファイルが格納される場所の当該ソフトウェアエージェントに対する通知を延期する機能と、を実現させるためのアプリケーションプログラムである。
請求項2に記載の発明は、前記場所は、自身が起動された後に前記ソフトウェアエージェントに通知される、請求項1に記載のアプリケーションプログラムである。
請求項3に記載の発明は、前記ファイルは、自身のアンインストール時に削除される、請求項1に記載のアプリケーションプログラムである。
請求項4に記載の発明は、前記ファイルに記録される情報は、自身のアップデート又はバージョンアップ時に変更される、請求項1に記載のアプリケーションプログラムである。
請求項5に記載の発明は、コンピュータに、アプリケーションプログラムの個別の機能に関する情報及び当該アプリケーションプログラム若しくは当該機能の実行に伴い動的に変化する情報の両方又は一方を含むファイルが格納されている場所の通知を、収集の対象とする当該アプリケーションプログラムのそれぞれから受動的に受け付ける機能と、通知を受けた場所から前記ファイルを読み出す機能と、読み出した前記ファイルの内容を指定された送信先に送信する機能とを実行させるソフトウェアエージェントである。
【発明の効果】
【0007】
請求項1記載の発明によれば、管理の対象とするクライアント端末にインストールされているアプリケーションプログラム専用のソフトウェアエージェントを用意しなくても、アプリケーションプログラム毎に指定される情報の収集を可能にできる。
請求項2記載の発明によれば、アプリケーションプログラムのインストール後も起動されるまでは、ソフトウェアエージェントによる収集の対象から除外できる。
請求項3記載の発明によれば、アプリケーションプログラムがアンインストールされた後はファイル自体が存在しなくなるので、ソフトウェアエージェントによる収集の対象から除外できる。
請求項4記載の発明によれば、ソフトウェアエージェントに変更を加えなくても、アプリケーションプログラムに新たに加えられた機能の情報を収集の対象に追加できる。
請求項5記載の発明によれば、管理の対象とするクライアント端末にインストールされているアプリケーションプログラム専用のソフトウェアエージェントを用意しなくても、アプリケーションプログラム毎に指定される情報の収集を可能にできる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態で使用する情報処理システムの全体構成の例を概略的に示す図である。
【
図2】実施の形態で使用する情報処理システムの機能構成を説明する図である。
【
図3】情報収集フレームワークを組み込んだアプリケーションの配置例を説明する図である。
【
図5】格納先情報DBの構造例を説明する図である。
【
図6】新しいアプリケーションをクライアント端末にインストールする場合の処理動作例を説明する図である。
【
図7】アプリケーションの起動後にクライアント端末で実行される処理動作例を説明する図である。
【
図8】アプリケーションがクライアント端末からアンインストールされる場合の処理動作例を説明する図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して、本発明の実施の形態を説明する。
図1は、実施の形態で使用する情報処理システム1の全体構成の例を概略的に示す図である。
図1に示す情報処理システム1は、ネットワーク10に接続された複数台のクライアント端末20と1台の収集情報管理サーバ30とで構成されている。ここでのネットワークは、LAN(=Local Area Network)でもインターネットでもよい。
【0010】
本実施の形態における収集情報管理サーバ30は、クライアント端末20にインストールされているアプリケーションプログラム(以下「アプリケーション」という)毎に指定されている情報を、クライアント端末20から自動的に収集して管理する装置の一例である。収集の対象とされる情報の内容や種類は、アプリケーションによって異なる。本実施の形態では、バージョンアップ前後のアプリケーションだけでなく、アップデート前後のアプリケーションも異なるアプリケーションとして扱う。
例えば収集情報管理サーバ30は、情報収集の対象である各アプリケーションに含まれる個々の機能が有効か無効かを示す情報、アプリケーションとしての利用時間や実行回数、機能別の利用時間や機能別の実行回数、特定の機能に付随して消費された消耗品の数や量等を管理する。なお、収集情報管理サーバ30が情報を収集して管理するのは、管理の対象に定めたクライアント端末20にインストールされている対象のアプリケーションに限られる。
【0011】
本実施の形態における収集情報管理サーバ30は、サーバ全体の動きを制御するシステム制御部と、基本ソフトウェアやファームウェアを記憶する記憶装置、ネットワーク10との通信に使用される通信インターフェースを有している。このうち、システム制御部は、CPU(=Central Processing Unit)と、BIOS(=Basic Input Output System)等が記憶されたROM(=Read Only Memory)と、ワークエリアとして用いられるRAM(=Random Access Memory)等を有している。なお、記憶装置には、ハードディスク装置や書き換え可能な不揮発性の半導体メモリが使用される。
【0012】
本実施の形態におけるクライアント端末20は、いわゆるコンピュータやサーバに限らず、アプリケーションが実行されるネットワーク機器を含む。ここでのネットワーク機器には、印刷機能に加え、スキャナ機能やファクシミリ機能を備える画像形成装置、スマートフォンやタブレット端末等の情報端末、健康機器や医療機器、空調機、テレビ、冷蔵庫等のIoT(=Internet of Things)家電も含まれる。もっとも、後述する機能構成が可能であれば、例示した機器に限らない。
【0013】
本実施の形態におけるクライアント端末20も、端末全体の動きを制御するシステム制御部と、基本ソフトウェアやファームウェアを記憶する記憶装置、ネットワーク10との通信に使用される通信インターフェースを有している。このうち、システム制御部は、CPUと、BIOS等が記憶されたROMと、ワークエリアとして用いられるRAM等を有している。なお、記憶装置には、ハードディスク装置や書き換え可能な不揮発性の半導体メモリが使用される。
【0014】
図2は、実施の形態で使用する情報処理システム1の機能構成を説明する図である。
図2に示す機能構成は、クライアント端末20や収集情報管理サーバ30のCPUによるプログラムの実行を通じて実現される。また、
図2においては、クライアント端末20や収集情報管理サーバ30に設けられている記憶装置に記憶される特定のデータをDB(=Data Base)として表している。
【0015】
クライアント端末20には、複数のアプリケーション201がインストールされている。本実施の形態で使用するアプリケーション201は、いずれも収集情報管理サーバ30による管理の対象とする。
本実施の形態におけるアプリケーション201は、アプリケーション201のベンダーが収集の対象として指定した情報を収集するための情報収集フレームワーク210を含んでいる。
本実施の形態の場合、情報収集フレームワーク210は、情報更新API(=Application Programming Interface)211と格納先情報通知部212を含んでいる。
【0016】
情報収集フレームワーク210は、アプリケーション201毎に用意され、収集する情報はアプリケーション201毎に定められる。なお、収集の対象とする情報は、例えばアプリケーション201のベンダーが指定する。
収集の対象とする情報は、情報更新API211に記述されている。情報更新API211の記述に従って収集された情報は、固有情報ファイル213としてインストール時に用意した格納先に記録される。
ここでの固有情報ファイル213は、アプリケーション201毎に用意される。固有情報ファイル213は、例えばアップデートやバージョンアップのタイミングで更新される。情報更新API211の更新により、収集の対象とする情報の追加や削除が可能になる。
【0017】
本実施の形態における情報更新API211には、固有情報ファイル213の情報を更新するタイミングも規定されている。このタイミングは、アプリケーション201のアップデートやバージョンアップ時に限らず、任意のタイミンイングの指定が可能である。
格納先情報通知部212は、固有情報ファイル213が格納されている場所を、クライアント端末20に常駐するソフトウェアエージェント(以下「エージェント」という)202に通知する。格納先情報通知部212を設けたことにより、収集の対象とする情報が変化しても、エージェント202の書き換えが不要になる。
【0018】
図3は、情報収集フレームワーク210を組み込んだアプリケーション201の配置例を説明する図である。
図3の場合、エージェント202は、ローカルディスクのCドライブにインストールされている。このため、アプリケーション201も、エージェント202と同じドライブにインストールされている。
図3の場合、アプリケーション201は「SampleApp.exe」であり、「Program Files」の下位に生成された「Sample App」ディレクトリにインストールされている。同ディレクトリには、情報収集フレームワーク210のDLL(Dynamic Link Library)と固有情報ファイル213もインストールされている。
図3の場合、固有情報ファイル213の格納先は、「C:¥Program Files¥SampleApp¥UniqueInfo.dat」で表される。従って、前述した格納先情報通知部212(
図2参照)は、この位置をエージェント202に通知する。
【0019】
図4は、固有情報ファイル213の具体例を示す図である。
本実施の形態の場合、固有情報ファイル213は、キーと値によるデータ形式で記述される。固有情報ファイル213に求められる条件は、エージェント202(
図2参照)が扱うファイル形式と一致することだけである。すなわち、固有情報ファイル213をJSON(=JavaScript(登録商標) Object Notation)やXML(=Extensible Markup Language)等によるファイル形式で記述することは不要である。このため、エージェント202は、固有情報の内容や形式を意識することなく、各アプリケーション201から収集された情報を扱える。
図4に示す固有情報ファイル213には、情報を収集する対象であるアプリケーション201(
図2参照)の名称、バージョン、ライセンスコード等の静的な情報に加え、アプリケーション201を構成する個別の機能に関する情報、アプリケーション自体や各機能の実行に伴い動的に変化する情報も含まれている。
【0020】
例えば機能Aは現在オン状態であり、その利用開始日時は「2015-10-10T13:50:40」であること、機能Bも現在オン状態であり、その利用開始日時は「2015-11-14T11:41:22」であること、機能Cは現在オフ状態であることが分かる。
また
図4の例では、アプリケーション201の最終更新日時が「2015/10/10T13:50:40」であること、文書の登録数が「13254」であることも分かる。
なお、固有情報ファイル213には、アプリケーション201の総使用時間、各機能の総利用時間、アプリケーション201や各機能を使用した人数等を含めることも可能である。
前述したように、固有情報ファイル213に記録する情報の内容は、アプリケーション201のベンダーが自由に設定することが可能である。しかも、情報更新API211の更新により、固有情報ファイル213に記憶される情報の内容も変更される。この収集する情報の変更に際し、エージェント202の修正等は不要である。
【0021】
図2の説明に戻る。
エージェント202は、クライアント端末20に常駐し、事前に設定したタイミングで各アプリケーション201から情報を収集し、収集された情報を収集情報管理サーバ30に送信する。本実施の形態の場合、各アプリケーション201から情報を収集するタイミングと収集情報管理サーバ30に収集した情報を送信するタイミングは同じである。換言すると、収集情報管理サーバ30に収集した情報を送信するタイミングに、各アプリケーション201から情報が収集される。
本実施の形態におけるエージェント202は、アプリケーション201のベンダーには依存しないプログラムである。また、エージェント202は、アプリケーション201の違いだけでなく、バージョンの違いとも無関係に利用が可能である。換言すると、本実施の形態におけるエージェント202は、何らの修正なしに、任意のアプリケーション201から任意の情報を収集することが可能である。
【0022】
本実施の形態におけるエージェント202は、格納先情報管理部220と、固有情報ファイル読込部221と、情報送信部222と、収集設定管理部223とを有している。
格納先情報管理部220は、各アプリケーション201から通知される固有情報ファイル213の格納先情報を格納先情報DB220Aに登録して管理する機能を実行する。また、格納先情報管理部220は、固有情報ファイル読込部221からの要求に基づき、要求の対象である格納先の情報を固有情報ファイル読込部221に与える機能も実行する。
図5は、格納先情報DB220Aの構造例を説明する図である。
図5に示す格納先情報DB220Aは、各アプリケーションに固有の情報を格納する固有情報ファイル213(
図2参照)を登録日時と格納先により管理する。
図5の場合、「AppA」、「AppB」、「SampleApp」の3つのアプリケーション201について格納先が登録されている。
【0023】
図2の説明に戻る。
固有情報ファイル読込部221は、個々のアプリケーション201について通知されている格納先から固有情報ファイル213を取得し、取得された固有情報ファイル213の中から記録されている情報を読み込んで情報送信部222に与える機能を提供する。なお、取得の対象とする固有情報ファイル213は、情報送信部222から指示される。
情報送信部222は、予め定めたスケジュールに従って収集された情報を収集情報管理サーバ30に送信する機能を実行する。
【0024】
収集設定管理部223は、設定情報DB223Aを使用し、アプリケーション201から収集された情報を収集情報管理サーバ30に送信するタイミング(以下「送信タイミング」という)や収集された情報の送信先を管理する。
本実施の形態の場合、設定情報DB223Aには、送信タイミングと送信先に関する情報が記録されている。このため、収集した情報の送信タイミングや送信先は、アプリケーション201毎に管理する必要がない。すなわち、本実施の形態の場合には、収集した情報の送信タイミングや送信先をエージェント202に指定するだけで、任意のアプリケーション201の情報の送信の管理が可能になる。
【0025】
収集情報管理サーバ30は、対象に定めたクライアント端末20の情報をネットワーク10経由で収集して管理し、検索や情報の参照等のサービスを提供する。
本実施の形態における収集情報管理サーバ30は、情報受信部301と、収集情報参照部302と、収集された情報を記録する収集情報DB303とを有している。
なお、情報受信部301は、クライアント端末20に常駐するエージェント202から受信した情報を収集情報DB303に記録する機能を実行する。
また、収集情報参照部302は、不図示の作業者端末からの指定に応じた情報を収集情報DB303から取得して提供するサービスを実行する。
【0026】
以下では、情報処理システム1で実行される処理動作の例を説明する。
図6は、新しいアプリケーション201をクライアント端末20にインストールする場合の処理動作例を説明する図である。なお、図中に示す記号のSはステップを意味する。
ユーザが、情報収集フレームワーク210を適用したアプリケーション201のインストールを指示すると、クライアント端末20によるアプリケーション201のインストールが実行される(ステップ1)。
本実施の形態の場合、アプリケーション201の情報を収集する情報収集フレームワーク210は、アプリケーション201に組み込まれている。従って、インストールが完了しても、アプリケーション201が起動されない間は、情報の収集は実行されないし、後述するように固有情報ファイル213の格納場所もエージェント202に通知されない。
【0027】
ユーザが、インストールしたアプリケーション201の起動を指示すると、クライアント端末20は、指示されたアプリケーション201を起動する(ステップ2)。
アプリケーション201が起動すると、格納先情報通知部212が、エージェント202が稼動しているか確認する(ステップ3)。
エージェント202が稼動している場合、格納先情報通知部212は、固有情報ファイル213の格納場所を格納先情報管理部220に通知する(ステップ4)。格納先情報管理部220は、エージェント202の機能部である。
次に、格納先情報管理部220は、通知された格納場所を格納先情報DB220Aに登録する(ステップ5)。
なお、エージェント202が稼動していない場合、クライアント端末20ではステップ4とステップ5がスキップされる。この場合、固有情報ファイル213の格納場所の通知等は、次回の起動時に延期される。
【0028】
図7は、アプリケーション201の起動後にクライアント端末20で実行される処理動作例を説明する図である。
なお、
図7に示す処理は、起動中のアプリケーション201について個別に実行される。
クライアント端末20では、エージェント202の情報送信部222が、設定されているスケジュールに従って処理を開始する(ステップ11)。
処理を開始した情報送信部222は、格納先情報管理部220から格納先一覧を取得する(ステップ12)。
【0029】
次に、情報送信部222は、格納先情報があるか否かを判定する(ステップ13)。
格納先情報が無い場合、情報送信部222は、ステップ13で否定結果を得る。この場合、収集情報管理サーバ30に送信すべき情報が存在しないので、情報送信部222は、この時点で処理を終了する。
一方、格納先情報が有る場合、情報送信部222は、ステップ13で肯定結果を得る。この場合、情報送信部222は、固有情報ファイル読込部221に情報の取得を依頼する(ステップ14)。
依頼を受けた固有情報ファイル読込部221は、固有情報ファイル213から情報を読み込んで情報送信部222に返送する(ステップ15)。
返信を受け付けた情報送信部222は、受信した情報を情報受信部301に送信する(ステップ16)。すなわち、エージェント202が収集した情報が収集情報管理サーバ30に通知される。
情報受信部301は、受信した情報を収集情報DB303に登録する(ステップ17)。
以上の動作が、任意のアプリケーションの起動中に繰り返し実行される。
【0030】
図8は、アプリケーション201がクライアント端末20からアンインストールされる場合の処理動作例を説明する図である。
図8に示すように、クライアント端末20は、アプリケーション201のアンインストールの実行か否かを確認している(ステップ21)。
ステップ21で肯定結果が得られた場合、クライアント端末20は、対応する固有情報ファイル213を削除する(ステップ22)。固有情報ファイル213が削除されると、エージェント202は、格納先情報管理部220で管理する格納先から情報を読み出すことができなくなる。つまり、アプリケーション201のアンインストール後は、該当するアプリケーション201の情報をエージェント202は収集できなくなる。当然、アプリケーション201の情報が収集情報管理サーバ30に送信されることもない。しかも、この動作には、エージェント202の変更が不要である。
なお、ステップ21で否定結果が得られた場合には、クライアント端末20は、ステップ22をスキップし、今回の動作を終了する。
【0031】
<他の実施の形態>
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は前述した実施の形態に記載の範囲に限定されない。前述した実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【符号の説明】
【0032】
1…情報処理システム、20…クライアント端末、30…収集情報管理サーバ、201…アプリケーション、202…エージェント、210…情報収集フレームワーク、211…情報更新API、212…格納先情報通知部、213…固有情報ファイル、220…格納先情報管理部、221…固有情報ファイル読込部、222…情報送信部、223…収集設定管理部、301…情報受信部、302…収集情報参照部、303…収集情報DB