次に、本発明の実施の形態について、詳細に説明する。なお、以降では、本発明に係る情報処理装置を、MFP等の画像処理装置に適用した場合の実施形態について説明する。ただし、本発明に係る情報処理装置の適用先は、これに限定されるものではなく、画像処理装置以外に適用してもよい。
[第1の実施形態]
<システム構成>
図1は、第1の実施形態に係る画像処理システムの一例の構成図である。図1の画像処理システム1は、1台以上の画像処理装置10と、1台以上のPC(パーソナルコンピュータ)20とが例えばLAN(Local Area Network)等のネットワークN1に有線や無線で接続されている。
画像処理装置10は、情報処理装置の一例である。画像処理装置10は、PC20や他の画像処理装置10等の機器からの要求に応じて、コピー、ファックス、プリンタ、スキャナ等の画像処理に係るサービスを提供するMFPである。ただし、画像処理装置10はMFPに限定されるものではなく、他の機器に対して各種サービスを提供することができる装置であればよい。
また、画像処理装置10は、PC20や他の画像処理装置10等の機器が上記サービスを利用するためのAPIを有する。画像処理装置10は、上記サービスが利用する機能を追加・削除することができるとともに、サービスを提供するためのアプリケーションをインストール又はアンインストールすることにより、サービスを追加・削除することができる。
例えば、画像処理装置10は、コピーサービスを提供するコピーアプリケーションの
インストール又はアンインストールにより、コピーサービスの追加又は削除を行うことができる。また、例えば、コピーサービスが利用する機能(例えば両面コピー機能、2in1コピー機能等)の追加又は削除を行うことができる。
PC20は、機器の一例である。PC20は、PC(パーソナルコンピュータ)に限られない。PC20は、例えば、タブレット端末、スマートフォンや携帯電話、PDA等の携帯情報端末、電子ホワイトボード等の表示装置、プロジェクタ等の投影装置、画像処理装置10と連携したサービスを提供するためのクラウドサーバ等でもよい。PC20は、画像処理装置10が有するAPIを利用することで、画像処理に係るサービスの提供を要求することができる。
なお、本実施形態に係る画像処理装置10は、図1の画像処理システムのように、当該画像処理装置10以外の機器からサービスの要求を受ける画像処理装置10に限らない。例えば、画像処理装置10が、互いに独立したOS(Operating System)を搭載した画像処理装置本体と操作部とが有線や無線で接続された構成となっており、画像処理装置本体が操作部からサービスの提供要求を受けるものであってもよい。つまり、画像処理装置本体が、ネットワークを介して接続された機器である操作部からサービスの提供要求を受けるものである場合、この画像処理装置本体を本実施形態における「画像処理装置10」として捉えることもできる。
<ハードウェア構成>
《画像処理装置》
画像処理装置10は、例えば図2に示すようなハードウェア構成により実現される。図2は、第1の実施形態に係る画像処理装置の一例のハードウェア構成図である。
図2に示すように、画像処理装置10は操作部100と本体部110とを有する。
操作部100は、LCD(Liquid Crystal Display)デバイスやタッチパネル、ハードキー等を備えるユーザインタフェースであり、画像処理装置10に対して、ユーザが各種操作を行う。
本体部110は、コントローラ120と、ファックス制御ユニット140と、エンジン群150とを有する。さらに、ファックス制御ユニット140は、G3規格対応ユニット141と、G4規格対応ユニット142とを有する。また、エンジン群150は、プロッタエンジン151と、スキャナエンジン152と、その他のハードウェアリソース153とを有する。
コントローラ120は、CPU121と、ASIC122と、HDD(Hard Disk Drive)123と、システムメモリ(MEM−P)124と、ローカルメモリ(MEM−C)125と、ノースブリッジ(以下、NBと表す)126とを有する。また、シリアルバス127と、NIC(Network Interface Card)128と、USBデバイス129とを有する。さらに、IEEE802.11bデバイス130と、IEEE1394デバイス131と、USBホスト132と、メモリカードI/F133とを有する。
また、シリアルバス127、NIC128、USBデバイス129、IEEE802.11bデバイス130、IEEE1394デバイス131、USBホスト132、及びメモリカードI/F133は、NB126にPCIバスを介して接続されている。
なお、コントローラ120において、ASIC122には、ローカルメモリ125、HDD123等が接続されている。また、CPU121とASIC122とは、CPUチップセットのNB126を介して接続されている。さらに、ファックス制御ユニット140及びエンジン群150は、ASIC122にPCIバスを介して接続されている。
CPU121は、画像処理装置10の全体を制御するものである。CPU121は、各種サービスを起動して実行する。
NB126は各要素を接続するためのブリッジである。具体的には、CPU121、システムメモリ124、ASIC122、シリアルバス127、NIC128、USBデバイス129を接続する。さらに、IEEE802.11bデバイス130、IEEE1394デバイス131、USBホスト132、及びメモリカードI/F133を接続する。
システムメモリ124は、画像処理装置10の描画用メモリ等として用いるメモリ(記憶装置)である。また、ローカルメモリ125は、コピー用画像バッファ、符号バッファ等として用いるメモリ(記憶装置)である。
ASIC122は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)である。また、HDD123は、各種情報を蓄積するためのストレージ(記憶装置)である。なお、HDD123に蓄積される情報には、例えば、ファクシミリ送信のための宛先データや電子メールの宛先データ(すなわち、アドレス帳データ)等が含まれる。また、ファクシミリ送信や電子メール送信等の送信履歴を記憶するための履歴データや、プリントジョブのデータである蓄積画像データや蓄積文書データが含まれる。その他、例えば、課金データやユーザ認証を行うためのユーザ認証情報、各種プログラム、フォントデータ、フォームデータ等が含まれる。
シリアルバス127、NIC128、USBデバイス129、IEEE802.11bデバイス130、IEEE1394デバイス131、USBホスト132、メモリカードI/F133は、各々が対応する規格の可搬型記憶装置と接続するインタフェースである。例えば、図2に示すように、USBホスト132には、USBメモリ161を接続することができ、メモリカードI/F133には、メモリカード162を接続することができる。
《PC》
PC20は、例えば図3に示すようなハードウェア構成により実現される。図3は、第1の実施形態に係るPCの一例のハードウェア構成図である。
図3に示したPC20は、入力装置201と、表示装置202と、外部I/F203と、RAM(Random Access Memory)204と、ROM(Read Only Memory)205と、CPU206と、通信I/F207と、HDD208とを備える。また、これらの各装置はそれぞれがバスBで相互に接続されている。
入力装置201は、キーボードやマウス、タッチパネル等を含み、PC20に各操作信号を入力するのに用いられる。表示装置202は、LCDやCRT(Cathode Ray Tube)等を含み、PC20による処理結果を表示する。
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。記録媒体203aには、例えば、画像処理装置10から提供されるサービスを用いた各種処理(例えばコピー処理)の対象となる各種データ等を格納することができる。PC20は外部I/F203を介して、記録媒体203aの読み取り及び/又は書き込みを行うことができる。記録媒体203aにはUSBメモリ、SDメモリカード(SD Memory card)、DVD(Digital Versatile Disk)、CD(Compact Disk)、フレキシブルディスク等の記録媒体を用いることができる。
RAM204は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
ROM205は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM205には、PC20の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。
CPU206は、ROM205やHDD208等の記憶装置からプログラムやデータをRAM204上に読み出し、処理を実行することで、PC20全体の制御や機能を実現する演算装置である。
通信I/F装置207は、ネットワークに接続するインタフェースである。これにより、PC20は通信I/F装置207を介して画像処理装置10等とデータ通信を行うことができる。
HDD208は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えば、PC20全体を制御する基本ソフトウェアであるOSや、OS上において各種機能を提供するアプリケーションソフトウェア等がある。HDD208は格納しているプログラムやデータを所定のファイルシステム及び/又はDB(Data Base)等により管理している。
本実施形態に係る画像処理装置10及びPC20は、例えば上記のハードウェア構成を有することにより、後述するような各種処理を実現することができる。
<機能構成>
次に、第1の実施形態に係る画像処理装置10の機能構成について説明する。図4は、第1の実施形態に係る画像処理装置の一例の機能構成図である。図4に示すように、画像処理装置10は、大別すると、ソフトウェア群401と、フレームワーク420とに分けられる。
ソフトウェア群401は、アプリケーション層402とサービスモジュール層403とを有する。
アプリケーション層402は、コピー、ファックス、プリンタ、及びスキャナ等の画像処理に係るサービスとして、それぞれ固有の処理を行うプログラムを有する。ここで、図4に示すアプリケーション層402には、例えば、コピー用のアプリケーションであるコピーアプリケーション431、ファックス用のアプリケーションであるファックスアプリケーション432、プリンタ用のアプリケーションであるプリンタアプリケーション433、スキャナ用のアプリケーションであるスキャナアプリケーション434等が含まれる。
サービスモジュール層403は、アプリケーション層402の各アプリケーションからの処理要求を解釈して共通の機能や制御を行うモジュールを有する。また、サービスモジュール層403は、アプリケーション層402の各アプリケーションからの処理要求を解釈して、例えばエンジン群150等のハードウェア資源の獲得要求を発生し、獲得したハードウェア資源の管理等を行うモジュールを有する。これらのサービスモジュール層403の各モジュールは、予め定義された関数等によりアプリケーション層402からの処理要求を受信する内部API440を介して、アプリケーション層402の各アプリケーションから利用することができる。
ここで、図4に示すサービスモジュール層403には、例えば、システム制御サービス451、ファックス制御サービス452、エンジン制御サービス453、メモリ制御サービス454、ネットワーク制御サービス455、ログ制御サービス456、電源制御サービス457、認証制御サービス458、アドレス帳管理サービス459等が含まれる。
ここで、ソフトウェア群401は、OS460上において実行される。OS460は、アプリケーション層402及びサービスモジュール層403のソフトウェア群401のそれぞれのソフトウェアをプロセスとして並列実行する。
なお、ソフトウェア群401が有する各種サービスは、それぞれ1以上の機能を有している。この機能のことをリソースとも称する。例えばコピーアプリケーション431は、片面コピーを行うためのリソース、両面コピーを行うためのリソース、2in1コピーを行うためのリソース等を有している。また、例えばアドレス帳管理サービス459は、アドレス帳のアドレスを全件取得するためのリソース、アドレス帳のアドレスを1件取得するためのリソース、アドレス帳の状態を取得するためのリソース等を有している。このように、ソフトウェア群401が有する各種サービスは、リソースとも称される1以上の機能をそれぞれ有している。
PC20や他の画像処理装置10は、ソフトウェア群401によって実現される各種サービスを、PC20や他の画像処理装置10からの処理要求を受信するWebAPI410を介して利用することができる。
フレームワーク420は、WebAPI410が受信したPC20や他の画像処理装置10からの処理要求を解釈し、ソフトウェア群401の各種サービスに対して処理要求を行う。フレームワーク420は、要求管理部421、API制御部422、API管理部423、結果応答部424、API情報変更部425を有する。
WebAPI410は、例えば外部の機器(PC20や他の画像処理装置10等)が画像処理装置10が提供する各種サービスを利用するためのAPIの集まりである。画像処理装置10は、WebAPI410に含まれるAPI毎に、外部の機器からの要求を受け付ける。
要求管理部421は、例えばCPU121等により実現され、WebAPI410から処理要求を受信し、API制御部422に処理を依頼する。また、要求管理部421は、結果応答部424から処理結果を受信し、WebAPI410に処理結果を送信する。
API制御部422は、例えばCPU121等により実現され、API管理部423からリソース情報を取得し、ソフトウェア群401の各種サービスに処理を要求する。ここで、リソース情報とは、ソフトウェア群401の各アプリケーションや各モジュールが、要求された機能を実行するために利用するリソース(機能)に関する情報である。リソース情報の詳細については後述する。
API管理部423は、例えばCPU121等により実現され、リソース情報の登録要求があった場合、リソース情報を画像処理装置10のフレームワーク420の例えばHDD123の所定の記憶領域に記憶する。また、API管理部423は、リソース情報の取得要求があった場合、リソース情報を画像処理装置10のフレームワーク420の所定の記憶領域から取得する。
結果応答部424は、例えばCPU121等により実現され、ソフトウェア群401の各アプリケーションや各モジュールが実行した機能の処理結果を作成し、要求管理部421に送信する。
API情報変更部425は、例えばCPU121等により実現され、フレームワーク420の所定の記憶領域に記憶されているリソース情報を変更する。
<処理の概要>
次に、第1の実施形態に係る画像処理装置の処理の概要について説明する。図5は、第1の実施形態に係る画像処理装置の処理の概要の一例を説明するための図である。
図5(a)は、例えばPC20や他の画像処理装置10等からサービスの提供要求あった場合の画像処理装置10の処理の概要の一例を説明するための図である。
まず、画像処理装置10のWebAPI410は、例えばPC20や他の画像処理装置10等から、サービスと、このサービスが利用するリソース(機能)とを指定したHTTP(HyperText Transfer Protocol)リクエストを受信する。サービスは、ソフトウェア群401の各アプリケーションや各モジュールのことであり、例えばファックスアプリケーション432やアドレス帳管理サービス459である。リソースは、ソフトウェア群401の各アプリケーションや各モジュールが実行する機能のことであり、例えばアドレス帳管理サービス459においてアドレス帳のアドレスを全件取得する機能である。ユーザが例えばファックス操作においてファックスの送信先の候補となるアドレスの一覧を取得したい場合、サービスとしてアドレス帳管理サービス459、リソースとしてアドレス帳一覧を取得する機能(アドレス帳の取得(全件))を指定することでアドレス帳のアドレス一覧を取得することができる。
次に、要求管理部421は、WebAPI410から呼び出されるとHTTPリクエストを受け取り、API制御部422に処理要求を行う。そして、API制御部422は、API管理部423を介してリソース情報を取得し、HTTPリクエストにより呼び出されたAPI(WebAPI410)を特定する。なお、APIの特定には、リソース情報に含まれるURLで判断する。リソース情報の詳細については後述する。
API制御部422は、該当のサービスに対して、リソースを指定(図5(a)の例では、サービス1に対してリソースAを指定)して操作要求を行う。そして、サービス1は、リソースAに対応する処理を実行し、処理結果の応答要求を結果応答部424に行う。
そして、結果応答部424は、HTTPレスポンスを作成し、要求管理部421に送信要求を行う。要求管理部421は、結果応答部424からHTTPレスポンスを受け取ると、WebAPI410を介してHTTPリクエストの送信元のPC20等にHTTPレスポンスを送信する。
次に、図5(b)は、画像処理装置10にサービスやリソースの登録をする場合の画像処理装置10の処理の概要の一例を説明するための図である。図5(b)では、画像処理装置10に対してリソースCを有するサービス2を新たに登録する場合について説明する。
ユーザは、例えばネットワークN1等を介して、リソースCを有するサービス2を画像処理装置10にインストールする。すると、API管理部423は、リソースCのリソース情報をフレームワーク420の所定の記憶領域に登録する。リソース情報を登録することで、このリソース情報に含まれるURLをPC20や他の画像処理装置10等から利用可能なAPIとして提供することができる。これにより、画像処理装置10に新たにサービスやリソースが追加された場合、追加されたリソースに関するリソース情報をAPI管理部423を介して所定の記憶領域に登録することで、外部から利用可能なAPIを提供することができる。
次に、図5(c)は、フレームワーク420の所定の記憶領域に記憶されているリソース情報の変更を行う場合の画像処理装置10の処理の概要の一例を説明するための図である。
API情報変更部425は、例えば画像処理装置10の所定の記憶装置の残容量が、所定の基準値未満になったことを検知すると、API管理部423に対してリソース情報の変更を要求する。すると、API管理部423は、例えばPC20等から受信可能なデータ量の上限値が、より小さい値となるようにリソース情報を変更する。これにより、例えばPC20等がAPIを介して画像処理装置10に対して送信可能なデータ量が少なくなるように変更される。後述するように、図5(b)及び図5(c)で説明したリソース情報の登録や変更は、画像処理装置10において動的に行われる。したがって、例えば、既に登録済みのリソース情報に対して変更の必要が生じた場合でも、画像処理装置10を再起動させることなく、変更を行うことができる。
次に、リソース情報の詳細について説明する。図6は、リソース情報の一例の構成図である。図6に示すように、リソース情報は、URL、メソッド、システム、アクセス、認証方式等のデータ項目を有する。
URLは、サービス部及びリソース部のデータ項目を有する。サービス部は、例えばプリンタアプリケーション433やアドレス帳管理サービス459等のサービスを特定する情報である。リソース部は、各サービスが有するリソース(機能)を特定する情報である。例えば、サービス部「printer」は、プリンタの状態を表示させる機能に関するリソース「status」と、プリントを実行する機能に関するリソース「job」の2つのリソースを有する。後述するように、サービス部(サービス名)とリソース部(リソース名)とを、例えばスラッシュ「/」で連結させてURL形式とすることで、外部(PC20や他の画像処理装置10等)から利用可能なAPIとして提供することができる。なお、リソース名は、同一のサービスにおいて一意(ユニーク)であればよい。
メソッドは、HTTPのメソッドを示しており、GET、POST、PUT、DELETE等がある。また、各メソッドは、上限及び権限等のデータ項目を有する。メソッドのデータ項目は、リソース部で指定されたリソースを利用したサービスを利用したい場合に、どのメソッドが定義されたHTTPリクエストで利用することができるかを示す項目である。このとき、HTTPリクエストのボディ部(メッセージボディ)に指定することができるデータの容量の上限(データ量の上限値)と、リソースを利用することができる権限とがそれぞれ上限及び権限のデータ項目で指定されている。
例えば、アドレス帳のアドレス情報を取得したい場合、URLとして「/addressbook/entries」、メソッドとして「GET」を指定すればよい。また、このメソッドの権限は、「管理者」が指定されているため、このリソースを利用することができるのは例えば管理者権限のユーザである。換言すれば、PC20や他の画像処理装置10等に、管理者権限のユーザとしてログインしているユーザが、アドレス帳のアドレス情報を取得するためのリソースを利用することができる。なお、GETメソッドは、Body部を指定しないため、上限のデータ項目には「0」が指定されている。
また、例えば、アドレス帳にアドレス情報を追加したい場合、URLとして「/addressbook/entries」、メソッドとして「POST」を指定すればよい。このメソッドの権限も「管理者」が指定されているため、このリソースを利用することができるのも例えば管理者権限のユーザである。さらに、上限のデータ項目には「1000」が指定されているため、POSTメソッドのHTTPリクエストのボディ部には、容量が1000バイトまでのデータを指定できることを示している。換言すれば、一度のHTTPリクエストで、データ容量が1000バイトまでのアドレス情報を追加することができることを示している。
なお、利用することができないメソッドは、上限及び権限のデータ項目に「−」(ハイフン)が指定されている。例えば、プリンタの状態を表示させる機能を利用したい場合(サービス部「printer」、リソース部「status」)には、POSTメソッドやPUTメソッド、DELETEメソッドを定義したHTTPリクエストを利用することはできない。
システム、アクセス、認証方式の各データ項目は、リソース部で指定されたリソースを利用したサービスを利用したい場合に、それぞれ、必要なシステム条件、アクセス条件、利用する認証方式を示す項目である。電力制御はリソースの利用中に電力制御を行うか否か、ロックはリソースの利用中に他のリソースの利用を制限するか否かを示す。また、リモートのデータ項目は画像処理装置10とネットワークを介したPC20などからリソースの利用が可能か否か、他方、操作部のデータ項目は画像処理装置10を操作部100を介して直接操作する場合にリソースの利用が可能か否かを示す。
認証方式は、リソースの利用に際して使用する認証方式である。例えば、リソース部で指定されるリソースを利用する際に、認証方式としてBASIC認証を使用できるか否か、Digest認証を使用できるか否かを示す。
なお、以上に示したリソース情報のデータ項目は一例であり、他のデータ項目を有していてもよい。
<処理の詳細>
次に、第1の実施形態に係る画像処理システム1の処理の詳細について説明する。
≪サービス提供処理≫
図7は、第1の実施形態に係るサービス提供処理の一例のシーケンス図である。
ステップS101において、PC20等は、サービスとリソースとを指定したリクエストを画像処理装置10に送信する。そして、画像処理装置10のWebAPI410はPC20等からのリクエストを受信する。以降では一例として、PC20は、サービスとしてアドレス帳管理サービス459、リソースとしてアドレス帳の状態を取得する機能を指定したHTTPリクエストを送信したものとする。図8(a)は、HTTPリクエストの一例の説明図である。
図8(a)のHTTPリクエストは、リクエスト部1001、ヘッダ部1002を有する。リクエスト部1001に指定された「http://192.168.1.1:8080」の部分は画像処理装置10のIPアドレス及びポート番号である。「/rws/addressbook/status」の部分は、サービス名とリソース名とから構成されるURLを含む情報である。この情報に含まれるURL(サービス名及びリソース名)により、API制御部422はAPIを特定し、該当のサービスの該当のリソースに操作を要求することができる。
なお、一般にHTTPリクエストは、リクエスト部、ヘッダ部、ボディ部から構成されている。図8(a)の例では、データの取得(アドレス帳の状態の取得)を行うためのメソッドであるGETが指定されているため、ボディ部は定義されていない。なお、例えばアドレス帳に新たにアドレスを追加する場合は、HTTPリクエストのリクエスト部にPOSTメソッドを指定し、ボディ部に追加するアドレスの情報(データ)を例えばXML(Extensible Markup Language)形式やJSON(JavaScript Object Notation)形式、バイナリ形式等で指定(記述)する。
ステップS102において、要求管理部421は、WebAPI410からHTTPリクエストを受け取り、API制御部422に処理要求を行う。
ステップS103において、API制御部422は、API管理部423にリソース情報の取得要求を行う。そして、API管理部423はリソース情報を画像処理装置10の所定の記憶領域から取得し、この取得したリソース情報をAPI制御部422に送信する。
ステップS104において、API制御部422は、API管理部423から取得したリソース情報に基づいてAPIを特定する。すなわち、HTTPリクエストに指定されているURLとリソース情報に含まれるURLとに基づきAPIを特定する。図8(a)の例では、HTTPリクエストのリクエスト部の「http://192.168.1.1:8080/rws/addressbook/status」と図6のリソース情報に含まれるサービス部とリソース部とに基づきAPI(URL)は「/addressbook/status」と特定することができる。これにより、図8(a)のHTTPリクエストは、アドレス帳管理サービス459のアドレス帳の状態の取得するためのAPIを介して要求されたものであることを特定することができる。
このようにWebAPI410のAPIを特定することで、API制御部422は、後述の処理において操作要求を行うサービス及びリソースを特定することができる。
ステップS105において、API制御部422は、HTTPリクエストを解析する。解析とは、例えばHTTPリクエストのボディ部にXML形式やJSON形式等で記述されている情報をプログラムやアプリケーション(例えば、アドレス帳管理サービス459)が扱うことができるデータ形式に変換することをいう。
ステップS106において、API制御部422は、アドレス帳管理サービス459のアドレス帳状態の取得に関するリソース(リソース名「status」)に対して操作要求を行う。
ステップS107において、アドレス帳管理サービス459は、アドレス帳の状態を取得する。アドレス帳の状態とは、例えば、アドレス帳に登録されているアドレス情報の総件数等の情報である。
ステップS108において、アドレス帳管理サービス459は、ステップS107における処理の処理結果を含む応答要求を結果応答部424に対して行う。
ステップS109において、結果応答部424は、受信した処理結果を含む応答要求からHTTPレスポンスを生成する。図8(b)は、HTTPレスポンスの一例の説明図である。
図8(b)のHTTPレスポンスのレスポンス部2001にはステータスコードが記述されている。図8(b)の例では、HTTPリクエストは成功し、要求に応じた情報が返信された旨のステータスコード(200 OK)が記述されている。ヘッダ部2002には、このHTTPレスポンスが作成された日時やボディ部2003で記述されているデータのデータ形式等が記述されている。ボディ部2003では、HTTPリクエストの要求に応じた情報が記述されている。図8(b)の例では、アドレス帳状態に関する情報などが記述されている。例えば、アドレス帳に500件のデータ(エントリ)が格納されていることを示す情報(entryNum:500)等である。
ステップS110において、結果応答部424は、生成したHTTPレスポンスの送信要求を要求管理部421に対して行う。
ステップS111において、要求管理部421は、HTTPレスポンスをWebAPI410を介して、HTTPリクエストを送信した送信元のPC20等に送信する。
以上により、画像処理装置10の外部に存在するPC20や他の画像処理装置10等は、画像処理装置10に対してサービスとリソースとを指定したリクエストを送信することにより、このリソースを利用したサービスを実行させることができる。言い換えれば、PC20や他の画像処理装置10等は、ネットワーク等を介して画像処理装置10に搭載されている機能を利用することができる。
ここで、HTTPリクエストのリクエスト部に指定されるサービス名とリソース名とから構成されるURLについて、他の例を説明する。図9は、URLの一例を説明するための図である。
例えばユーザがアドレス帳のアドレス情報を全件取得したい場合、HTTPリクエストのリクエスト部において、GETメソッドで画像処理装置10のIPアドレス(http://192.168.1.1:8080)に続けて、「/rws/addressbook/entries」と指定すればよい。
また、例えばアドレス帳のアドレス情報を1件取得したい場合、HTTPリクエストのリクエスト部において、GETメソッドで画像処理装置10のIPアドレス(http://192.168.1.1:8080)に続けて、「/rws/addressbook/entries/123」(「123」は、エントリID等のアドレス帳のアドレス情報を一意に識別する情報)と指定すればよい。なお、例えばアドレス帳にアドレス情報を追加する場合は、POSTメソッドで上記と同様に画像処理装置10のIPアドレスに続けて、「/rws/addressbook/entries/234」等と指定すればよい。これにより、エントリID「234」のアドレス情報がアドレス帳に追加される。また、同様に、PUTメソッドでアドレス情報の更新、DELETEメソッドでアドレス情報の削除等を行うことができる。なお、POSTメソッドやPUTメソッドを指定する場合、HTTPリクエストのボディ部に、追加するアドレス情報又は更新するアドレス情報を記述する。
≪リソース情報の追加/削除処理≫
次に、画像処理装置10に搭載されているサービスに対して、新たにリソースを追加した場合又はリソースを削除した場合の処理について説明する。図10は、第1の実施形態に係るリソース情報の追加/削除処理の一例のシーケンス図である。
ステップS201において、ユーザは、サービスにリソースの追加又サービスからリソースの削除を行う。リソースの追加は、リソースに関する情報を例えばネットワークを介したインストールや外部記憶媒体からのインストールなどの方法により行うことができる。すなわち、例えば、画像処理装置10に既にインストールされているアプリケーションに対してプラグイン等をインストールすることにより機能(リソース)が追加される。他方、リソースの削除は、画像処理装置10に既にインストールされているアプリケーションからプラグイン等をアンインストールすることにより行うことができる。
ステップS202において、ユーザは、リソースの追加又は削除を行ったサービスを起動する。
ステップS203において、画像処理装置10のサービスは、追加したリソースの情報の設定の追加又は削除したリソースの情報の設定の削除を行う。すなわち、サービスは追加したリソースの情報又は削除したリソースの情報を設定ファイル等に反映させる。このように、画像処理装置10は、サービスに対して新たにリソースを追加することにより、追加したリソースを用いた機能を提供することができるようになる。また、画像処理装置10は、サービスからリソースを削除することにより、削除したリソースを用いた機能を削除することができる。
ステップS204において、サービスは、API管理部423に対してリソース情報の登録又は削除要求を行う。
ステップS205において、API管理部423は、画像処理装置10の所定の記憶領域に追加したリソースのリソース情報の登録又は削除したリソースのリソース情報の削除を行う。
なお、API管理部423は、追加したリソースのリソース情報が画像処理装置10の所定の記憶領域に既に登録されている場合、リソース情報の登録を行わない。すなわち、API管理部423は、リソース情報の重複があるか否かのチェックを行い、重複したリソース情報が存在する場合、リソース情報の登録を行わない。
以上により、画像処理装置10のサービスに新たにリソースが追加された場合、追加されたリソースのリソース情報をAPI管理部423を介して画像処理装置10の所定の記憶領域に登録することができる。これにより、このリソースを利用するための外部から利用可能なAPIの追加をリソースの追加と同時に行うことができる。
また、画像処理装置10のサービスからリソースを削除する場合、削除されたリソースのリソース情報をAPI管理部423を介して画像処理装置10の所定の記憶領域から削除することができる。これにより、このリソースを利用するための外部から利用可能なAPIの削除をリソースの削除と同時に行うことができる。
≪アプリケーションのインストール処理≫
次に、画像処理装置10に新たにアプリケーションをインストールした場合の処理について説明する。画像処理装置10にアプリケーションをインストールすることにより、サービスが追加される。図11は、第1の実施形態に係るアプリケーションのインストール処理の一例のシーケンス図である。
ステップS301において、ユーザは、画像処理装置10にアプリケーション(サービス)をインストールする。なお、アプリケーションは、例えばコピーアプリケーション431等のサービスを提供するソフトウェア等である。また、インストールされるアプリケーション(サービス)は、例えば片面コピーを行うためのリソース(機能)等、1以上のリソースを有する。
ステップS302において、ユーザは、画像処理装置10にインストールされたアプリケーション(サービス)を起動する。
ステップS303において、アプリケーション(サービス)は、リソースの情報を設定する。このリソースの情報の設定により、例えばコピーアプリケーション431(サービス)において片面コピー機能(リソース)を実行することができるようになる。
ステップS304において、アプリケーション(サービス)は、API管理部423に対してリソース情報の登録要求を行う。
ステップS305において、API管理部423は、画像処理装置10の所定の記憶領域に、インストールしたアプリケーションのリソース情報を登録する。
なお、API管理部423は、インストールしたアプリケーション(サービス)のリソース情報が画像処理装置10の所定の記憶領域に登録されている場合、リソース情報の登録を行わない。すなわち、API管理部423は、リソース情報の重複があるか否かのチェックを行い、重複したリソース情報が存在する場合、リソース情報の登録を行わない。
以上により、画像処理装置10に新たにアプリケーションをインストールし、サービスが追加された場合、このサービスが利用するリソースのリソース情報をAPI管理部423を介して画像処理装置10の所定の記憶領域に登録することができる。これにより、このリソースを利用するための外部から利用可能なAPIの追加をサービスの追加と同時に行うことができる。
≪アプリケーションのアンインストール処理≫
次に、画像処理装置10からアプリケーションをアンインストールした場合の処理について説明する。画像処理装置10からアプリケーションをアンインストールすることにより、サービス及びこのサービスが利用するリソースが削除される。図12は、第1の実施形態に係るアプリケーションのアンインストール処理の一例のシーケンス図である。
ステップS401において、ユーザは、画像処理装置10からアプリケーション(サービス)をアンインストールする。
ステップS402において、アプリケーション(サービス)は、API管理部423に対してリソース情報の削除要求を行う。
ステップS403において、API管理部423は、画像処理装置10の所定の記憶領域からアンインストールしたアプリケーションのリソース情報を削除する。このとき、API管理部423は、アンインストールしたアプリケーション(サービス)が複数のリソースを有していた場合、すべてのリソースのリソース情報を削除する。
以上により、画像処理装置10からアプリケーションがアンインストールされ、サービスが削除された場合、このサービスが利用するリソースのリソース情報を、API管理部423を介して画像処理装置10の所定の記憶領域から削除することができる。これにより、このリソースを利用するための外部から利用可能なAPIの削除をサービスの削除と同時に行うことができる。
≪リソース情報の変更処理≫
次に、画像処理装置10の所定の記憶領域に記憶されているリソース情報を変更する場合の処理について説明する。図13は、第1の実施形態に係るリソース情報の変更処理の一例のシーケンス図である。
ステップS501において、API情報変更部425は、リソース情報の変更が必要であることを検知する。API情報変更部425は、例えば、以下のような場合にリソース情報の変更が必要であることを検知する。
(1)PC20等からサービス名とリソース名とを指定したリソース情報の変更要求を受け付けた場合
(2)画像処理装置10の記憶装置(例えば、システムメモリ124、ローカルメモリ125、又はHDD123等)の残容量が、予め設定された基準容量を下回った(又は上回った)場合
(3)画像処理装置10のハードウェア(例えば、システムメモリ124、ローカルメモリ125、又はHDD123等)が交換等されて記憶装置の容量(総容量)が変化した場合
なお、上記の(1)の場合、PC20等から受け付けた変更要求には、リソース情報の変更対象のデータ項目(例えば、「上限」や「権限」等)と、変更後のデータ項目値とが含まれる。このようなデータ項目とデータ項目値は、PC20等のユーザにより指定される。他方、上記の(2)及び(3)の場合、リソース情報の変更対象のデータ項目は「上限」となり、変更後のデータ項目値は例えばユーザ又はプログラム等により指定される。
ステップS502において、API情報変更部425は、API管理部423に対して、リソース情報の変更要求を行う。なお、リソース情報の変更要求には、変更対象のリソース情報のサービス名及びリソース名並びに変更対象のデータ項目及び変更後のデータ項目値等が含まれる。
ステップS503において、API管理部423は、画像処理装置10の所定の記憶領域に記憶されているリソース情報を、受信した変更要求に基づき変更する。すなわち、API管理部423は、変更要求に含まれる変更対象のリソース情報のサービス名及びリソース名並びに変更対象のデータ項目から該当のリソース情報のデータ項目を特定し、特定したデータ項目を、変更要求に含まれる変更後のデータ項目値に変更する。
例えば、変更要求に含まれるサービス名が「addressbook」、リソース名が「groups」、データ項目がPOSTの「上限」及びPUTの「上限」、変更後のデータ項目値が「1000」である場合、図14に示すように、上限値を「5000」から「1000」に変更する。
以上により、画像処理装置10の所定の記憶領域に記憶されているリソース情報を動的に変更することができる。換言すれば、画像処理装置10の再起動等を行う必要なく、リソース情報の変更を行うことができる。したがって、例えば、画像処理装置10に搭載されたメモリの残量が少なくなった場合(又は残量が増えた場合)等において、APIを介してPC20等から受信するデータ量の上限値を動的に変更(増加又は減少)することができる。
なお、上記では、画像処理装置10がAPIを介してPC20等から受信するデータ量の上限を変更する場合について説明したが、これに限られず、変更要求に応じてリソース情報の他のデータ項目を変更してもよい。例えば、データ項目「権限」を「一般ユーザ」から「管理者」に変更する、電力制御を「×」から「○」に変更する等である。
<まとめ>
以上のように、本実施形態に係る画像処理装置10は、PC20や他の画像処理装置10からの機能の実行要求に応じて、機能を実行することができる。
また、本実施形態に係る画像処理装置10はPC20や他の画像処理装置10からの機能の実行要求を受け付けるためのWebAPI410を有する。そして、PC20や他の画像処理装置10は、このWebAPI410を利用して画像処理装置10に対して機能の実行を要求することができる。
また、本実施形態に係る画像処理装置10は、アプリケーションのインストール/アンインストールによりサービスの追加/削除を行うことができる。また、本実施形態に係る画像処理装置10は、サービスが利用するリソースの追加/削除を行うことができる。そして、本実施形態に係る画像処理装置10は、上記サービスの追加/削除、リソースの追加/削除の際、追加又は削除したリソースのリソース情報を画像処理装置10の所定の記憶領域に登録又は削除することができる。
また、本実施形態に係る画像処理装置10が有するリソース情報に含まれるURLは、PC20や他の画像処理装置10から利用可能なAPIとして提供することができる。したがって、画像処理装置10の所定の記憶領域にリソース情報が登録/削除されることで、外部から利用可能なAPIが同時に登録/削除されることになる。これにより、本実施形態に係る画像処理装置10は、サービスやリソースが追加/削除された場合でも動的にAPIを追加/削除することができる。さらに、画像処理装置10の所定の木尾工領域に登録されているリソース情報を動的に変更することができる。すなわち、本実施形態に係る画像処理装置10は、サービスやリソースが追加/削除された場合や登録済みのリソース情報が変更された場合において、APIの追加、削除、変更に伴う再ビルドやオブジェクトの再作成などを行う必要がない。
[第2の実施形態]
次に、第2の実施形態に係る画像処理システム1について説明する。本実施形態においては、画像処理装置10において利用可能なAPIのリストをPC20に提供する。なお、システム構成及びハードウェア構成については、第1の実施形態と同様であるため説明を省略する。
<機能構成>
図15は、第2の実施形態に係る画像処理装置の一例の機能構成図である。第2の実施形態に係る画像処理装置10は、APIリスト作成部426を有する点が第1の実施形態に係る画像処理装置10と異なる。なお、第2の実施形態に係る画像処理装置10においてAPIリスト作成部426以外の各構成は、第1と実施形態と同様であるため、説明を省略する。
APIリスト作成部426は、PC20等が画像処理装置10において利用可能なAPIの一覧(以降、「APIリスト」という。)を作成する。また、APIリスト作成部426は、PC20等がAPIリストを要求するためのリソース情報の登録要求をAPI管理部423に対して行う。
<処理の概要>
次に、第1の実施形態に係る画像処理装置の処理の概要について説明する。図16は、第2の実施形態に係る画像処理装置の処理の概要の一例を説明するための図である。
図16(a)は、PC20がAPIリストを画像処理装置10から取得するためのリソース情報を登録する場合の画像処理装置10の処理の概要の一例を説明するための図である。
ユーザは、例えばネットワークN1等を介して、フレームワーク420にAPIリスト作成部426を追加する。すると、API管理部423は、APIリスト作成部426のリソース情報を画像処理装置10のフレームワーク420所定の記憶領域に登録する。このようにリソース情報を登録することで、このリソース情報に含まれるURLをPC20や他の画像処理装置10等から利用可能なAPIとして提供することができる。
PC20や他の画像処理装置10等は、APIリスト作成部426のリソース情報に含まれるURLをAPIとして利用することで、このPC20や他の画像処理装置10等が利用可能なAPIリストを取得することができる。
図16(b)は、例えばPC20や他の画像処理装置10等からAPIリストの取得要求があった場合の画像処理装置10の処理の概要の一例を説明するための図である。
まず、画像処理装置10のWebAPI410は、例えばPC20や他の画像処理装置10等からAPIリストの取得要求に係るHTTPリクエストを受信する。次に、要求管理部421は、WebAPI410から呼び出されるとAPIリストの取得要求に係るHTTPリクエストを受け取り、API制御部422に処理要求を行う。そして、API制御部422は、API管理部423を介してリソース情報を取得し、HTTPリクエストにより呼び出されたAPI(WebAPI410)を特定する。なお、このとき、呼び出されたAPIはAPIリストの取得要求に係るAPIである。
API制御部422は、APIリスト作成部426に対して操作要求を行う。続いて、APIリスト作成部426は、API管理部423を介して画像処理装置10に登録されているリソース情報を取得する。そして、APIリスト作成部426は、取得したリソース情報に基づきAPIリストを作成し、応答要求を結果応答部424に行う。
結果応答部424は、APIリストを含むHTTPレスポンスを作成し、要求管理部421に送信要求を行う。要求管理部421は、結果応答部424からHTTPレスポンスを受け取ると、WebAPI410を介してHTTPリクエストの送信元のPC20等にHTTPレスポンスを送信する。
これにより、ユーザは、例えばPC20等を操作して、このPC20が利用可能な画像処理装置10のAPIの一覧(APIリスト)を取得することができる。したがって、ユーザは、例えば、この取得したAPIリストから所望のAPIを選択し、画像処理装置10の機能を利用することができる。
<処理の詳細>
次に、第2の実施形態に係る画像処理システム1の処理の詳細について説明する。
≪リソース情報の追加/削除処理≫
まず、画像処理装置10に対して、この画像処理装置10において利用可能なAPIリストを取得するためのリソース情報を登録する処理について説明する。これにより、PC20等が利用可能なAPIが画像処理装置10に登録される。図17は、第2の実施形態に係るリソース情報の追加/削除処理の一例のシーケンス図である。
ステップS601において、ユーザは、例えばネットワークN1を介して、フレームワーク420にAPIリスト作成部426を追加又は削除する。これは、例えば、ネットワークN1を介して、APIリスト作成部426を追加又は削除するための所定のインストーラ等を取得し、このインストーラを実行することでAPIリスト作成部426を追加又は削除することができる。すると、APIリスト作成部426は、API管理部423に対してリソース情報の登録又は削除要求を行う。
ステップS602において、API管理部423は、画像処理装置10の所定の記憶領域に、APIリストを取得するためのリソース情報の登録又は削除を行う。
以上により、画像処理装置10のフレームワーク420の所定の記憶領域に対して、PC20等がこの画像処理装置10において利用可能なAPIリストを取得するためのリソース情報の登録又は削除を行うことができる。これにより、APIリストを取得するためのAPIが画像処理装置10のWebAPI410に登録又はWebAPI410から削除される。後述するように、PC20や他の画像処理装置10等は、ここで登録されたAPIを利用して、画像処理装置10において利用可能なAPIリストを取得することができる。
≪APIリストの表示処理≫
次に、ユーザがPC20等を操作して、このPC20が画像処理装置10において利用可能なAPIの一覧(APIリスト)を表示させるための処理について説明する。図18は、第2の実施形態に係るAPIリストの表示処理の一例のシーケンス図である。
ステップS701において、PC20等はサービスとリソースとを指定したHTTPリクエストを画像処理装置10に送信する。ここで指定されるサービス及びリソースは、APIリストを取得するためのリソース及びサービスである。例えば、PC20は、サービスとしてAPIリスト作成部426、リソースとしてAPIリストを取得する機能を示すURL「resourcelist/entries」と、メソッドにGETメソッドとを指定したHTTPリクエストを画像処理装置10に送信する。
ステップS702において、要求管理部421は、WebAPI410からHTTPリクエストを受け取り、API制御部422に処理要求を行う。
ステップS703において、API制御部422は、API管理部423にリソース情報の取得要求を行う。そして、API管理部423は、リソース情報を画像処理装置10所定の記憶領域から取得し、この取得したリソース情報をAPI制御部422に送信する。
ステップS704において、API制御部422は、API管理部423から取得したリソース情報に基づいてAPIを特定する。すなわち、HTTPリクエストに指定されているURLとリソース情報に含まれるURLとに基づいてAPIを特定する。ここでは、WebAPI410のAPIとして、APIリストを取得するためのAPI(例えば、URLとして「resourcelist/entries」で指定されるAPI)が特定される。
ステップS705において、API制御部422は、HTTPリクエストを解析する。
ステップS706において、API制御部422は、APIリスト作成部426に対して操作要求を行う。
ステップS707において、APIリスト作成部426は、API管理部423に対して画像処理装置10の所定の記憶領域に登録されているリソース情報の取得要求を行う。そして、API管理部423は、PC20等が利用可能なリソース情報を画像処理装置10の所定の記憶領域から取得し、この取得したリソース情報をAPIリスト作成部426に送信する。このステップS707の処理の詳細については後述する。
ステップS708において、APIリスト作成部426は、API管理部423から取得したリソース情報に基づいてAPIリストを作成する。ここで作成されるAPIリストは、例えば図19に示されるような情報である。図19は、APIリストの一例を説明するための図である。図19に示されるAPIリスト3000は、APIリストの取得を要求したPC20等が利用可能な画像処理装置10のサービス及びリソースのリソース情報3001とリソース情報3002とが記述されている。また、各リソース情報はAPIを利用するためのURLやこのAPIを利用する際に指定することができるメソッド等が記述されている。すなわち、APIリストには、図16で示したリソース情報の各データ項目の値が記述されている。
ステップS709において、APIリスト作成部426は、APIリストを含む応答要求を結果応答部424に対して行う。
ステップS710において、結果応答部424は、応答要求からHTTPレスポンスを生成する。なお、このとき生成されるHTTPレスポンスのボディ部には、上記のステップS708で作成されたAPIリストが所定のデータ形式で記述(指定)される。
ステップS711において、結果応答部424は、生成されたHTTPレスポンスの送信要求を要求管理部421に対して行う。
ステップS712において、要求管理部421は、HTTPレスポンスをWebAPI410を介して、HTTPリスクエストの送信元のPC20等に送信する。
ステップS713において、PC20は、HTTPレスポンスを受け取ると、このHTTPレスポンスに含まれるAPIリストに基づきAPIリストの表示画面を作成し、表示装置202等に表示させる。これにより、ユーザは、PC20等が利用することができる画像処理装置10のAPIを知ることができる。なお、ユーザは、PC20や他の画像処理装置10等に限らず、例えば、画像処理装置10の操作部100を操作して、この操作部100が利用可能な画像処理装置10のAPIリストを取得してもよい。
以上により、ユーザは、PC20等を用いて、このPC20が利用可能な画像処理装置10のAPIリストを取得することができる。ユーザは、表示されたAPIリストから所望のAPIを選択等することで、画像処理装置10が提供するAPIを利用することができる。なお、上記においては、PC20等が利用可能な画像処理装置10のAPIリストを取得したが、例えば、利用可能か否かに関わらず画像処理装置10が提供するすべてのAPIのリストを取得するようにしてもよい。
≪リソース情報の取得処理≫
次に、図18を用いて説明したAPIリストの表示処理におけるステップS707の処理(リソース情報の取得処理)の詳細について説明する。図20は、第2の実施形態に係るリソース情報の取得処理の一例のフローチャートである。
ステップS801において、API管理部423は、APIリスト作成部426からリソース情報の取得要求を受け取ると、取得済みのリソース情報の数が画像処理装置10の所定の記憶領域に登録されているリソース情報の数未満か否かを判定する。換言すれば、API管理部423は、画像処理装置10の所定の記憶領域に登録されているすべてのリソース情報を取得したか否かを判定する。すべてのリソース情報を取得していない場合、ステップS802に進み、他方、すべてのリソース情報を取得済の場合、処理を終了させる。
ステップS802において、API管理部423は、画像処理装置10の所定の記憶領域からリソース情報を1件取得する。
ステップS803において、API管理部423は、上記のステップS802で取得したリソース情報について、PC20等が利用可能なAPIであるか否かを判定する。利用可能である場合、ステップS804に進み、他方、利用することができない場合、ステップS801に戻る。
ここで、上記のステップS803で取得したリソース情報に係るAPIについて、PC20が利用可能であるか否かは、例えば、図6に示したリソース情報の権限やアクセス等のデータ項目に基づいて判定される。例えば、図6に示す権限のデータ項目が「管理者」であり、PC20にログインしているユーザが「一般ユーザ」である場合、権限のデータ項目が「管理者」であるリソース情報に係るAPIは利用することができないと判定される。また、例えば、図16に示すアクセスのデータ項目について、リモートが「×」、操作部が「○」であるリソース情報である場合、画像処理装置10とネットワークN1を介して接続されたPC20からは利用することができないと判定され、他方、画像処理装置10の操作部100からは利用することができると判定される。
ステップS804において、API管理部423は、上記のステップS803において取得したリソース情報を一時的に保持する。すなわち、ここでAPI管理部423が保持したリソース情報がAPIリスト作成部426に送信される。そして、図18のステップS708で説明したように、APIリスト作成部426は、API管理部423から送信されたリソース情報に基づきAPIリストを作成する。なお、API管理部423は、取得したリソース情報を一時的に保持せずに、APIリスト作成部426に即座に送信してもよい。
以上により、API管理部423は、画像処理装置10の所定の記憶領域に登録されているリソース情報からAPIリストの取得要求を行ったPC20等が利用することができるAPIのリソース情報を取得する。これにより、PC20等において、自身が利用することができる画像処理装置10のAPIリストを表示等させることができる。
<まとめ>
以上のように、本実施形態に係る画像処理装置10は、PC20や他の画像処理装置10、さらには画像処理装置10の操作部100からのAPIリスト取得要求に応じて、これらのPC20等が利用可能な画像処理装置10のAPIリストを返信する。したがって、PC20等は、自身が利用可能な画像処理装置10のAPIリストを表示装置202等などに表示させることができる。その後、ユーザは、例えば表示装置202等に表示されているAPIリストから自身が利用したい所望のAPIを選択することで、この選択したAPIを利用することができる。
[第3の実施形態]
次に、第3の実施形態に係る画像処理システム1について説明する。本実施形態においては、画像処理装置10において利用可能なAPIのリストをPC20に提供するに際し、API管理部423が取得したリソース情報をキャッシュとして保存する。なお、システム構成、機能構成及びハードウェア構成については、第2の実施形態と同様であるため説明を省略する。
<処理の詳細>
次に、第3の実施形態に係る画像処理システム1の処理の詳細について説明する。本実施形態は、図18におけるステップS707のリソース情報の取得処理が第2の実施形態と異なる。したがって、以降ではリソース情報の取得処理のみ説明する。図21は、第2の実施形態に係るリソース情報の取得処理の他の例のフローチャートである。なお、図21においてステップS902〜ステップS905の処理は、それぞれ図20で説明したステップS801〜ステップS804の処理と同様であるため、これらの処理についても説明を省略する。
ステップS901において、API管理部423は、リソース情報がキャッシュに存在するか否かを判定する。リソース情報がキャッシュに存在しない場合、ステップS902に進み、他方、リソース情報がキャッシュに存在する場合、ステップS906に進む。
ここで、キャッシュとは、リソース情報の取得処理において、API管理部423が取得したリソース情報を保存するために、例えば画像処理装置10のHDD123等に確保された記憶領域である。
ステップS906において、API管理部423は、キャッシュ作成後に、画像処理装置10の所定の記憶領域にリソース情報が登録、削除、又は変更されたか否かを判定する。キャッシュ作成後にリソース情報が登録、削除、又は変更された場合、ステップS902に進み、他方、キャッシュ作成後にリソース情報が登録、削除、及び変更されていない場合、ステップS907に進む。
ステップS907において、API管理部423は、キャッシュに保存されているリソース情報を取得する。
ステップS908において、API管理部423は、取得したリソース情報をキャッシュに保存する。なお、上記のステップS907においてキャッシュに保存されているリソース情報を取得した場合には、キャッシュの内容に変更はないが、本処理を行うことにより例えばキャッシュのタイムスタンプを更新させることができる。したがって、キャッシュが一定期間経過により削除されるような場合、本処理により、キャッシュの保存期間がリフレッシュされる。
このように、キャッシュにリソース情報が存在し、かつ、キャッシュ作成後にリソース情報が登録、削除、変更されていない場合は、キャッシュに保存されているリソース情報をAPIリスト作成部426に送信する。したがって、この場合、ステップS902〜905の処理を行う必要がないため、PC20等はAPIリストの取得を高速に行うことができる。
<まとめ>
以上のように、本実施形態に係る画像処理装置10は、画像処理装置10において利用可能なAPIのリストをPC20等に提供するに際し、API管理部423が取得したリソース情報をキャッシュとして保存する。また、キャッシュにリソース情報が存在し、かつ、キャッシュ作成後にリソース情報の登録、削除、変更がされていない場合は、キャッシュに保存されているリソース情報をAPIリスト作成部426に送信する。これにより、キャッシュにリソース情報が存在する場合は、PC20はAPIリストの取得を高速に行うことができる。したがって、PC20等からのAPIリストの取得要求に対するレスポンスが第2の実施形態と比較して高速になる。
なお、API管理部423は、API管理手段の一例である。WebAPI410は、インタフェース手段の一例である。API制御部422は、サービス提供手段の一例である。API情報変更部425は、変更手段の一例である。APIリスト作成部426は、取得手段及びリスト生成手段の一例である。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。