(第1の実施形態)
以下に添付図面を参照して、情報処理システム、情報処理方法、情報処理装置および情報処理プログラムの実施形態を詳細に説明する。図1は、第1の実施形態に適用可能な情報処理システムの一例の構成を示す。図1の例では、情報処理システムは、ネットワーク40を介して接続された画像形成装置10とサーバ20とを含む。また、ネットワーク40は、インターネット50と接続され、例えば画像形成装置10は、インターネット50上のWebサーバ60a、60bと通信を行うことができる。
ネットワーク40は、例えばLAN(Local Area Network)であって、会社や事業所などの特定の単位内で閉じたネットワークである。画像形成装置10は、プリンタ機能、スキャナ機能、コピー機能といった複数の機能を1台の筐体で実現した複合機(MFP(Multi Function Printer))である。プリンタ機能は、画像データに基づき記録媒体に画像を形成する機能である。スキャナ機能は、原稿画像を読み取り画像データを出力する機能である。また、コピー機能は、スキャナ機能により原稿を読み取り出力された画像データに基づき、プリンタ機能により記録媒体に画像を形成する機能である。
画像形成装置10は、例えば、パーソナルコンピュータ(PC)30からネットワーク40を介して供給された印刷ジョブに従いプリンタ機能により印刷を実行することができる。また、画像形成装置10は、スキャナ機能により原稿を読み取り取得された画像データをネットワーク40を介してPC30に送信することができる。
画像形成装置10は、本体部11および操作部12を含む。本体部11は、画像形成装置10の各機能(プリンタ機能、スキャナ機能など)を実行するための各エンジンや、各エンジンを制御するためのコントローラを含む。操作部12は、ユーザ操作を受け付けるユーザインタフェースを含み、ユーザ操作などに応じて本体部11に対して各機能の実行を指示する。すなわち、画像形成装置10において、操作部12は、ユーザ操作などによる入力を受け付ける入力装置であって、本体部11は、操作部12からの実行指示に応じて、プリンタ機能、スキャナ機能などにより情報を出力する出力装置であるといえる。画像形成装置10において、これら本体部11および操作部12は、それぞれ独立した装置として構成され、画像形成装置10の内部的な通信ネットワークを介して接続される。
なお、画像形成装置10は、複合機に限られず、プリンタ機能やスキャナ機能を単独で提供するプリンタ装置やスキャナ装置であってもよい。
第1の実施形態に係る操作部12は、ユーザインタフェースや、本体部11に対する実行指示を出す機能を実現するためのアプリケーションプログラムを、外部から取得することができる。図1の例では、操作部12は、例えばインターネット50上のコンテンツにアクセス可能なブラウザプログラム(以下、ブラウザ)が搭載される。ブラウザは、インターネット50に接続されるWebサーバ60a、60bにアクセスし、当該Webサーバ60a、60bから送信されたコンテンツ(Webコンテンツと呼ぶ)を取得して、取得したWebコンテンツに基づく表示を行う。そして、ブラウザは、取得したWebコンテンツによる表示に基づくユーザ入力に応じて、Webコンテンツに含まれる命令を実行することができる。また、ブラウザは、この命令の実行に伴い、必要に応じてWebサーバ60a、60b上のプログラムを動作させることができる。
以下、ブラウザがWebサーバ60a、60bから取得したWebコンテンツに含まれる命令と、ブラウザから送信された当該命令の実行に応じてWebサーバ60a、60b上で実行可能なプログラムとを含めて、Webアプリと呼ぶ。操作部12は、Webサーバ60a、60bから取得したWebコンテンツに基づきWebアプリを実行させることで、本体部11に対する実行指示を出すことができる。
サーバ20は、操作部12がWebサーバ60a、60bから取得したWebコンテンツに基づくWebアプリの実行を許可するか否かを判定するための許可条件情報を記憶する。第1の実施形態では、画像形成装置10において、本体部11は、操作部12が取得したWebコンテンツに基づくWebアプリによる実行指示が実行可能か否かを、サーバ20に記憶される許可条件情報に基づき判定する。
図2は、第1の実施形態に係る、画像形成装置10の本体部11のハードウェア構成の例を示す。図2において、本体部11は、CPU(Central Processing Unit)1100と、ROM(Read Only Memory)1101と、RAM(Random Access Memory)1102と、NVRAM(不揮発性RAM)1103と、ストレージ1104と、データI/F1105と、内部通信I/F1106と、機能部I/F1107とを含み、これら各部がバス1110により互いに通信可能に接続される。
ストレージ1104は、ハードディスクドライブや、フラッシュメモリといった不揮発性メモリであって、CPU1100を動作させるためのプログラムや、各種のデータが記憶される。ROM1101は、例えば本体部11を起動させるために用いるプログラムおよびデータが予め記憶される。また、NVRAM1103は、本体部11に対して設定された設定値などが記憶される。CPU1100は、ストレージ1104およびROM1101に記憶されるプログラムと、ストレージ1104およびNVRAM1103に記憶される各データとに従い、RAM1102をワークメモリとして用いて、この本体部11の全体の動作を制御する。
データI/F1105は、外部機器に対するインタフェースであって、例えばUSB(Universal Serial Bus)を適用できる。内部通信I/F1106は、画像形成装置10において内部的に操作部12と通信を行うためのインタフェースであって、例えばUSB over IP(Internet Protocol)を適用できる。USB over IPは、USB機器をLANで接続するための通信方式であって、IPをプロトコルとして用いて通信を行う。
機能部I/F1107は、画像形成装置10の各機能を実現するための各エンジンに対するインタフェースである。図2の例では、機能部I/F1107は、スキャナ機能、プリンタ機能およびFAX機能をそれぞれ実現するためのスキャナエンジン1120、プリンタエンジン1121およびFAXユニット1122が接続され、例えば、これら各部とCPU1100との間のデータの調停処理や、制御情報の送受信などを行う。
図3は、第1の実施形態に係る、画像形成装置10の操作部12のハードウェア構成の例を示す。図3に示されるように、操作部12は、一般的なコンピュータと同等の構成を有する。すなわち、操作部12は、CPU1200と、ROM1201と、RAM1202と、NVRAM1203と、グラフィクスI/F1204と、ストレージ1206と、データI/F1207と、通信I/F1208と、内部通信I/F1209と、入力デバイス1210とを含み、これら各部がバス1220により互いに通信可能に接続される。また、操作部12において、グラフィクスI/F1204に対して表示デバイス1205が接続される。
ストレージ1206は、フラッシュメモリといった不揮発性メモリであって、CPU1200を動作させるためのプログラムや、各種のデータが記憶される。ストレージ1206としてハードディスクドライブを用いてもよい。ROM1201は、例えば操作部12を起動させるために用いるプログラムおよびデータが予め記憶され、NVRAM1203は、操作部12に対して設定された設定値などが記憶される。CPU1200は、ストレージ1206およびROM1201に記憶されるプログラムと、ストレージ1206およびNVRAM1203に記憶される各データとに従い、RAM1202をワークメモリとして用いて、この操作部12の全体の動作を制御する。
データI/F1207は、外部機器に対するインタフェースであって、例えばUSBを適用できる。通信I/F1208は、ネットワーク40を介した通信を制御する。内部通信I/F1209は、画像形成装置10において内部的に本体部11と通信を行うためのインタフェースであって、上述した本体部11の内部通信I/F1106に対応して例えばUSB over IPが適用される。
グラフィクスI/F1204は、CPU1200によりプログラムに従い生成された表示制御情報を表示信号に変換して表示デバイス1205に供給する。表示デバイス1205は、例えばLCD(Liquid Crystal Display)と、LCDを駆動する駆動回路とを含み、グラフィクスI/F1204から供給された表示信号に従った画面を表示する。入力デバイス1210は、例えば表示デバイス1205と一体的に形成されたタッチパネルであって、ユーザ操作により指定された位置に応じた信号を出力する。入力デバイス1210は、これに限らず、例えばキーボードと、マウスなどのポインティングデバイスとを含んだ構成でもよい。
図4は、第1の実施形態に適用可能なサーバ20のハードウェア構成の例を示す。図2に示されるように、サーバ20は、一般的なコンピュータと同等の構成を適用することができる。図4において、サーバ20は、CPU2000と、ROM2001と、RAM2002と、ストレージ2003と、データI/F2004と、通信I/F2005とを含み、これら各部がバス2010により互いに通信可能に接続される。
ストレージ2003は、ハードディスクドライブや、フラッシュメモリといった不揮発性メモリであって、CPU2000を動作させるためのプログラムや、各種のデータが記憶される。ROM2001は、例えばサーバ20を起動させるために用いるプログラムおよびデータが予め記憶される。CPU2000は、ストレージ2003およびROM2001に記憶されるプログラムおよび各データに従い、RAM2002をワークメモリとして用いて、このサーバ20の全体の動作を制御する。
なお、ストレージ2003は、画像形成装置10の操作部12が取得したWebコンテンツに基づくWebアプリの実行を許可するか否かを判定するための、上述した許可条件情報を、さらに記憶する。
データI/F2004は、外部機器に対するインタフェースであって、例えばUSBを適用することができる。通信I/F2005は、インターネット50を介した通信を制御する。
図5は、第1の実施形態に係る本体部11のCPU1100上で動作するプログラムの一例のアーキテクチャを示す。図5において、本体部11は、OS(Operating System)1130と、サービス部1131と、画像形成装置10の各機能を実現するためのコピー機能部1132a、スキャナ機能部1132b、プリンタ機能部1132cおよびFAX機能部1132dと、プログラム群1133と、組込みアプリケーションプログラム(組込みアプリ)1134とを含み、各部は、OS1130を最下層として、図5のように階層構造をなす。
OS1130は、本体部11上で動作する各プログラムのタスク管理、資源管理、本体部11のハードウェア制御などを行い、本体部11の全体の動作を制御する。サービス部1131は、コピー機能部1132a、スキャナ機能部1132b、プリンタ機能部1132cおよびFAX機能部1132d、ならびに、プログラム群1133および組込みアプリ1134がOS1130の機能を利用する際のインタフェースとして機能する。
コピー機能部1132a、スキャナ機能部1132b、プリンタ機能部1132cおよびFAX機能部1132dは、それぞれ、コピー機能、スキャナ機能、プリンタ機能およびFAX機能を利用するための基本的なプログラムを含む。コピー機能部1132a、スキャナ機能部1132b、プリンタ機能部1132cおよびFAX機能部1132dは、例えば、組込みアプリ1134からの指示や、操作部12からの実行指示に応じて、サービス部1131を介して、OS1130に、スキャナエンジン1120、プリンタエンジン1121およびFAXユニット1122の制御を依頼する。
組込みアプリ1134は、例えば本体部11(画像形成装置10)の製造元から予め提供されるアプリケーションプログラムであって、コピー機能、スキャナ機能、プリンタ機能およびFAX機能に対する応用的なプログラムを含む。また、組込みアプリ1134は、第1の実施形態に係る本体部11における情報処理プログラムを含む。プログラム群1133は、組込みアプリ1134が利用する、API(Application Programming Interface)などの複数のプログラムの集合である。組込みアプリ1134は、サービス部1131を介して、OS1130に対して操作部12との通信や、スキャナエンジン1120、プリンタエンジン1121およびFAXユニット1122の制御を依頼することができる。
図6は、第1の実施形態に係る操作部12のCPU1200上で動作するプログラムの一例のアーキテクチャを示す。図6において、操作部12は、OS1230と、ライブラリ1231と、アプリケーションフレームワーク1232と、組込みアプリ1233と、ブラウザ1234とを含み、各部は、OS1230を最下層として、図6のように階層構造をなす。
なお、Webコンテンツ1235は、ブラウザ1234によりインターネット50を介して例えばWebサーバ60aから取得され、RAM1202などに記憶されて、一時的に操作部12に搭載される。
OS1230は、操作部12上で動作する各プログラムのタスク管理、資源管理、操作部12のハードウェア制御などを行い、操作部12の全体の動作を制御する。ライブラリ1231は、より上層の、アプリケーションフレームワーク1232、組込みアプリ1233およびブラウザ1234などに、各種の関数などを提供する。アプリケーションフレームワーク1232は、操作部12において用いられる汎用的な機能や基本的な制御構造を提供するプログラム群である。例えば、内部通信I/F1209による通信制御機能や、グラフィクスI/F1204による表示制御機能、入力デバイス1210における入力制御機能などが、アプリケーションフレームワーク1232により提供される。
組込みアプリ1233は、上述した本体部11における組込みアプリ1134と同様に、操作部12(画像形成装置10)の製造元から予め提供されるアプリケーションプログラムであって、本体部11の機能を利用するためのプログラムを含む。組込みアプリ1233は、本体部11に対して、コピー機能、スキャナ機能、プリンタ機能、FAX機能などの各機能の実行指示を出すことができる。実行指示は、本体部11において、プログラム群1133に含まれる所定のプログラムにより受け付けられて、例えば、コピー機能部1132a、スキャナ機能部1132b、プリンタ機能部1132cまたはFAX機能部1132dに渡される。
ブラウザ1234は、指定されたURL(Uniform Resource Locator)に従い、インターネット50にアクセスし、HTML(HyperText Markup Language)に従い記述されたHTMLデータを当該URLから取得する。ブラウザ1234は、取得したHTMLデータの記述に従い、Webページを画面に表示するための表示制御情報を生成する。また、ブラウザ1234は、表示されたWebページに応じてなされた入力を受け付ける。
さらに、ブラウザ1234は、WebコンテンツであるHTMLデータに組み込まれた命令を解釈して実行することができる。命令は、一般的には、スクリプトとしてHTMLデータに組み込まれる。ブラウザ1234上で実行可能なスクリプトの代表的なものにJavaScript(登録商標)がある。以下では、ブラウザ1234上で実行されるスクリプトがJavaScript(登録商標)であるとして説明する。
ブラウザ1234は、組込みアプリ1233と同様にして、Webコンテンツ1235に組み込まれたスクリプトに基づき、本体部11に対して、コピー機能、スキャナ機能、プリンタ機能、FAX機能などの各機能の実行指示を出すことができる。Webコンテンツ1235は、例えば画像形成装置10の製造者や、当該製造者以外のベンダにより供給され、組み込まれたスクリプト(命令)に従い、本体部11におけるコピー機能、スキャナ機能、プリンタ機能、FAX機能などの基本的な機能に対して拡張された機能を提供できる。
(第1の実施形態に係る処理)
図7は、第1の実施形態に係る、Webアプリを用いる際の処理の流れを概略的に示す。画像形成装置10において、操作部12は、Webアプリによる画面表示を要求するユーザ操作を受け付ける(ステップS10)。ここでは、ユーザ操作は、Webサーバ60aから取得したWebコンテンツ1235による画面表示を要求するものであるとする。
操作部12は、受け付けたユーザ操作によりブラウザ1234に指定されたURLに従いネットワーク40およびインターネット50を介してWebサーバ60aにアクセスし(ステップS11)、Webサーバ60aからWebコンテンツ1235を取得する(ステップS12)。操作部12において、ブラウザ1234は、取得したWebコンテンツ1235を読み込み、例えば操作部12のRAM1202に記憶させる。
ブラウザ1234は、取得したWebコンテンツ1235を解釈して画面表示を行う。また、ブラウザ1234は、当該Webコンテンツ1235から、本体部11に対する実行指示と、当該実行指示の本体部11における実行を許可するか否かを判定するための条件である許可条件情報とを抽出する。ブラウザ1234は、Webコンテンツ1235による表示画面に基づくユーザ操作を受け付けると(ステップS13)、ユーザ操作に応じた実行指示を本体部11に送信する(ステップS14)。このとき、操作部12は、実行指示に、取得した許可条件情報を付加して本体部11に送信する。
本体部11は、操作部12から送信された実行指示を受信すると、実行指示に付加された許可条件情報を取得する。本体部11は、ネットワーク40を介してサーバ20にアクセスし(ステップS15)、サーバ20に記憶される許可条件情報を取得する(ステップS16)。本体部11は、サーバ20から取得した許可条件情報と、操作部12から受信した実行指示に付加された許可条件情報とを比較する。本体部11は、比較結果に基づき、操作部12から受信した実行指示の実行を許可するか否かを判定する。
第1の実施形態では、これにより、例えば実行指示から取得された許可条件情報がサーバ20に記憶される許可条件情報と異なる場合に、本体部11における実行指示による処理を実行させないようにできる。
例えば、ブラウザ1234からWebサーバ60aにアクセスする際に、悪意ある第三者の介入により不正なWebサーバ(Webサーバ60bとする)に誘導され、ユーザの意図しないWebコンテンツ1235が取得されてしまうことが起こり得る。第1の実施形態によれば、このような場合でも、意図しないWebコンテンツ1235による実行指示を無効とさせることが可能となる。
(第1の実施形態に係る処理の詳細)
図8〜図10を用いて、第1の実施形態に係る操作部12、本体部11およびサーバ20の機能について説明する。図8は、第1の実施形態に係る操作部12の機能を説明するための一例の機能ブロック図である。図8において、操作部12は、入力受付部120と、表示制御部121と、解析部122と、取得部123と、送信部124とを含む。
これら入力受付部120、表示制御部121、解析部122、取得部123および送信部124は、CPU1200上で動作するプログラムにより実現される。これに限らず、入力受付部120、表示制御部121、解析部122、取得部123および送信部124は、これら各部のうち一部または全部を互いに協働して動作するハードウェアにより構成することも可能である。
入力受付部120は、操作部12に対するユーザ操作による入力を受け付ける。例えば、入力受付部120は、ブラウザ1234の画面に応じたユーザ操作による入力を受け付けることができる。表示制御部121は、グラフィクスI/F1204に供給するための表示制御信号を生成し、表示デバイス1205に対する画面表示を制御する。解析部122は、ブラウザ1234に読み込まれたスクリプトを解析する。取得部123は、ブラウザ1234に読み込まれるHTMLデータの取得元を示す取得元情報を取得する。送信部124は、実行指示などの情報を本体部11に送信する処理を行う。
入力受付部120、表示制御部121、取得部123および送信部124は、例えば、ブラウザ1234と、アプリケーションフレームワーク1232とが協働して動作することで実現される。また、解析部122は、ブラウザ1234の機能の一部である。
入力受付部120、表示制御部121、解析部122、取得部123および送信部124を実現するためのプログラムは、操作部12のストレージ1206やROM1201に予め組み込んで提供される。これに限らず、当該プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。さらに、当該プログラムを、インストール可能な形式また実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。
当該プログラムは、上述した各部(入力受付部120、表示制御部121、解析部122、取得部123および送信部124)を含むモジュール構成となっている。実際のハードウェアとしては、操作部12においてCPU1200が、ストレージ1206やROM1201から当該プログラムを読み出して実行することにより、上述した各部がRAM1202などの主記憶装置上にロードされ、入力受付部120、表示制御部121、解析部122、取得部123および送信部124が主記憶装置上に生成されるようになっている。
図9は、第1の実施形態に係る本体部11の機能を説明するための一例の機能ブロック図である。図9において、本体部11は、受信部110と、解析部111と、許可条件取得部112と、出力部113と、判定部114とを含む。これら受信部110、解析部111、許可条件取得部112、出力部113および判定部114は、CPU1100上で動作するプログラムにより実現される。これに限らず、受信部110、解析部111、許可条件取得部112、出力部113および判定部114は、これら各部のうち一部または全部を互いに協働して動作するハードウェアにより構成することも可能である。
受信部110は、操作部12から送信された実行指示などの情報を受信する処理を行う。解析部111は、受信部110で受信された実行指示を解析する。また、許可条件取得部112は、サーバ20に記憶される許可条件情報を取得する。出力部113は、解析部111による実行指示の解析結果に従い、スキャナエンジン1120、プリンタエンジン1121およびFAXユニット1122による出力処理を実行させる。判定部114は、サーバ20から取得した許可条件情報と、解析部111による実行指示の解析結果とに基づき、出力部113の実行指示に従った出力処理の実行を許可するか否かを判定する。
受信部110、解析部111、許可条件取得部112、出力部113および判定部114を実現するためのプログラムは、本体部11のストレージ1104やROM1101に予め組み込んで提供される。これに限らず、当該プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。さらに、当該プログラムを、インストール可能な形式また実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。
当該プログラムは、上述した各部(受信部110、解析部111、許可条件取得部112、出力部113および判定部114)を含むモジュール構成となっている。実際のハードウェアとしては、本体部11においてCPU1100が、ストレージ1104やROM1101から当該プログラムを読み出して実行することにより、上述した各部がRAM1102などの主記憶装置上にロードされ、受信部110、出力部111、許可条件取得部112および判定部113が主記憶装置上に生成されるようになっている。
図10は、第1の実施形態に係るサーバ20の機能を説明するための一例の機能ブロック図である。図10において、サーバ20は、許可条件記憶部200を含む。許可条件記憶部200は、サーバ20のCPU2000上で動作するプログラムにより実現される。許可条件記憶部200は、例えばストレージ2003に対する許可条件情報リストの記憶と、ストレージ2003に記憶された許可条件情報リストの読み出しとを制御する。
図11は、第1の実施形態に係る、Webアプリを用いる際の処理の流れをより具体的に示す一例のシーケンス図である。なお、図11において、上述した図1と対応する部分には同一の符号を付して、詳細な説明を省略する。図11のシーケンスによる処理の開始時点では、操作部12は、Webコンテンツ1235が取得されていないものとする。
画像形成装置10において、操作部12は、Webコンテンツ1235による画面表示を要求するユーザ操作を受け付ける(ステップS100)。例えば、ユーザは、操作部12に対する所定の操作によりブラウザ1234を起動させ、ブラウザ1234に対してWebコンテンツ1235の取得元のURL、例えばWebサーバ60aのURLを入力する。操作部12は、ブラウザ1234により、この要求に応じて、Webサーバ60aに対して画面表示のためのHTMLデータを要求する(ステップS101)。
Webサーバ60aは、この要求に応じて、Webアプリを実行するためのスクリプトが埋め込まれたHTMLデータを操作部12に対して送信する。操作部12は、Webサーバ60aから送信されたHTMLデータを取得する(ステップS102)。
操作部12は、ブラウザ1234により、Webサーバ60aから取得したHTMLデータを解釈して画面の表示を行う(ステップS103)。操作部12は、表示された画面に応じたユーザ操作を待機する。操作部12に対してなされた、本体部11に対する所定の処理の実行を指示するユーザ操作が入力受付部120により受け付けられる(ステップS110)。
操作部12は、入力受付部120により当該ユーザの操作が受け付けられると、ブラウザ1234により、Webサーバ60aから取得したHTMLデータに埋め込まれたスクリプトを解析し、スクリプトから実行指示を抽出する(ステップS111)。また、操作部12は、取得部123により、ステップS100でブラウザ1234に入力されたURLを取得し、取得したURLを、Webコンテンツ1235の取得元を示す取得元情報として実行指示に付加する。
図12は、第1の実施形態に係る実行指示の例を示す。図12において、実行指示は、リクエストボディ、宛先アドレス情報、送信元アドレス情報、認証情報、Webサーバドメイン名、アプリケーションIDおよびジョブ設定情報の各情報を含む。
リクエストボディは、フォーマットおよびサイズの各情報を含み、この実行指示のデータフォーマットと、データサイズとを示す。宛先アドレス情報は、この実行指示が出力結果を送信する指示である場合に、送信先のアドレス情報(URL、メールアドレスなど)を示す。送信元アドレス情報は、同様に、この実行指示が出力結果を送信する指示である場合に、送信元すなわち画像形成装置10のアドレス情報(IPアドレス、ホスト名など)を示す。認証情報は、ステップS100またはステップS110のユーザ操作を行う際にユーザ認証が必要な場合に入力された認証情報(ユーザID、パスワードなど)を示す。
Webサーバドメイン名は、この実行指示が抽出されたスクリプトを含むWebコンテンツ1235(HTMLデータ)の取得元のWebサーバ(この例ではWebサーバ60a)のドメイン名を示す。すなわち、項目「Webサーバドメイン名」は、当該Webコンテンツ1235の取得元を示す取得元情報である。
図13は、URLの構造の例を示す。図13に例示されるように、URLは、それぞれスラッシュ「/」およびコロン「:」を区切り記号として区切られた、プロトコル表示と、ドメイン名と、ディレクトリ名と、ファイル名とを含んで構成される。ディレクトリ名は、スラッシュで区切って階層構造とすることができる。図13の例では、ドメイン名は、「example.com」となっている。ドメイン名の直前に、ピリオド「.」で区切ってサブドメイン名を含む場合がある。ドメイン名は、ピリオドで区切られた階層構造をなしており、右からトップレベルドメイン、セカンドレベルドメイン、サードレベルドメイン、…と、区分が細かくなる。
図12の説明に戻り、アプリケーションIDは、例えば、実行指示が抽出されたスクリプトを含むWebコンテンツ1235のIDを示す。
ジョブ設定情報は、この例では実行モード、サイズおよびスキャナ部の各情報を含み、当該実行指示の対象の機能と、当該機能に対する設定情報を示す。実行モードは、当該実行指示により指示される実行モードを示し、この実行モードの内容により、本体部11においてコピー機能、スキャナ機能、プリンタ機能およびFAX機能のうち何れの実行が指示されるかを判別できる。図12の例では、実行モードに「Scan To Send」あるいは「Scan To Email」が設定され、スキャナ機能の実行が指示されることが分かる。サイズは、例えば、設定された機能に用いられるデータのサイズを示す。スキャナ部は、設定された機能がスキャナ機能を含む場合、スキャンをADF(Auto Document Feeder)と圧版とのうち何れを用いて行うかが示される。
操作部12は、スクリプトから抽出され取得元情報が付加された実行指示を、本体部11に送信する(ステップS112)。本体部11は、実行指示を受信部110により受信し、受信した実行指示を、解析部111により解析する(ステップS113)。解析部111は、実行指示を解析した結果に基づき、実行指示に含まれる項目「Webサーバドメイン名」の情報すなわちWebコンテンツ1235の取得元情報を取得し、判定部114に渡す。また、解析部111は、解析した実行指示を出力部113に渡す。
本体部11は、許可条件取得部112により、サーバ20に対して許可条件情報を要求する(ステップS114)。サーバ20は、許可条件記憶部200により、記憶される許可条件情報リストを読み出して本体部11に送信する。サーバ20から送信された許可条件情報リストは、本体部11に受信されて許可条件取得部112に取得される(ステップS115)。
サーバ20は、ステップS114による本体部11からの許可条件情報の要求に対して、許可条件情報リストに含まれる各許可条件情報の組織ID、機器ID、許可ドメイン名および許可API種別のうち、少なくとも各許可ドメイン名を、ステップS115において本体部11に送信する。
図14は、第1の実施形態に係る、サーバ20に記憶される許可条件情報リストの例を示す。図14の例では、許可条件情報リストに含まれる各許可条件情報は、組織IDと、機器IDと、許可ドメイン名と、許可API種別とを含む。組織IDは、スクリプトの実行を許可するWebコンテンツ1235のベンダを識別する識別情報である。機器IDは、スクリプトの実行を許可する機器を識別する識別情報である。許可ドメイン名は、実行を許可するスクリプトを含むWebコンテンツ1235の取得元情報であって、Webコンテンツ1235の取得元の例えばWebサーバ60aのドメイン名である。許可API種別は、本体部11において実行を許可するAPI種別である。
図15は、第1の実施形態に係る、サーバ20の許可条件情報リストに許可条件情報を登録するための許可条件情報入力画面の例を示す。図15において、許可条件情報入力画面300は、許可条件情報の入力を促すメッセージ301と、入力領域302および303と、ボタン304とを含む。入力領域302は、許可ドメイン名を入力するための領域である。入力領域303は、API種別を入力するための領域である。ボタン304は、サーバ20に対して、入力領域302および303に入力された情報の登録を指示するためのボタンである。
なお、図15の例では、許可条件情報入力画面300は、図14に示した許可条件情報に含まれる各情報のうち、許可ドメイン名とAPI種別とを入力するようになっている。これに限らず、許可条件情報入力画面300は、組織IDと機器IDとを入力する入力領域をさらに設けてもよい。また、許可条件情報に含まれる各情報のうち、許可ドメイン名は、入力が必須の情報であるため、ボタン304は、入力領域302が空欄の場合は操作不可とすることもできる。
許可条件情報入力画面300は、例えば、ネットワーク40に接続されるPC30において表示させることができる。この場合、PC30は、許可条件情報入力画面300に入力された許可条件情報を、ネットワーク40を介してサーバ20に送信する。サーバ20は、PC30から送信された許可条件情報を受信し、受信した許可条件情報を、許可条件記憶部200により、例えばストレージ2003に記憶される許可条件情報リストに追加して記憶させ、許可条件情報の登録を行う。これに限らず、ユーザ入力を受け付ける入力手段と、情報を表示する表示手段とをサーバ20に設け、サーバ20において許可条件情報入力画面300を表示させて許可条件情報の入力および登録を行ってもよい。
図11の説明に戻り、本体部11は、判定部114により、ステップS113において解析部111より渡された取得元情報と、ステップS115でサーバ20から取得した許可条件情報リストに含まれる各取得元情報とを比較して、ステップS112において操作部12から送信された実行指示に従った処理の実行を許可するか否かを判定する(ステップS116)。
本体部11は、判定部114により、サーバ20から取得した各取得元情報の何れかと、解析部111から渡された取得元情報とが一致する場合に、実行指示に従った処理の実行を許可すると判定する(ステップS116、「OK」)。判定部114は、処理実行の許可を出力部113に通知する。本体部11は、出力部113により、この許可の通知に応じて、ステップS113で解析部111から渡された実行指示に従い処理を実行する(ステップS117)。このとき、本体部11は、必要に応じてWebサーバ60a上のプログラムを実行させることができる、本体部11は、実行指示の実行結果を操作部12に送信する(ステップS118)。
一方、本体部11は、ステップS116で、判定部114により、解析部111から渡された取得元情報と一致する情報がサーバ20から取得した各取得元情報に含まれないと判定した場合、実行指示に従った実行を許可しないと判定する(ステップS116、「NG」)。この場合、判定部114は、例えば、操作部12に対してエラー通知を送信する(ステップS119)。
操作部12は、本体部11からのエラー通知を受信すると、ブラウザ1234により、エラー通知に応じた画面を表示させる。図16は、第1の実施形態に係るエラー通知画面の例を示す。図16の例では、エラー通知画面310は、表示領域311に、エラー内容を識別するためのエラーコードと、エラーコードに応じたエラーメッセージとが表示されている。ボタン312を操作することで、エラー通知画面310を消去することができる。
このように、第1の実施形態では、例えば実行指示から取得された取得元情報が、サーバ20に記憶される各取得元情報に含まれない場合に、本体部11における実行指示による処理を実行させないようにできる。そのため、ネットワークを介して取得したWebコンテンツ1235が信頼できるものであるか否かを容易に判定でき、Webコンテンツ1235に基づくWebアプリの画像形成装置10への導入が容易となる。
なお、上述では、サーバ20は、許可条件情報リストに、実行指示による処理の実行を許可する許可条件情報を登録しているが、これはこの例に限定されない。例えば、サーバ20は、許可条件情報リストに、実行指示による処理の実行を許可しない許可条件情報を登録してもよい。また、サーバ20は、ステップS114による許可条件情報の要求に対して、許可ドメイン名に加えて、組織ID、機器IDおよびAPI種別のうち1以上の情報を送信してもよい。この場合、本体部11において、判定部114は、取得した各情報の論理積を用いて判定を行うことが考えられる。
(第1の実施形態の変形例)
次に、第1の実施形態の変形例について説明する。上述した第1の実施形態では、許可条件情報リストを、画像形成装置10とネットワーク40を介して接続されるサーバ20が記憶していた。これに対して、第1の実施形態の変形例では、許可条件情報リストを、画像形成装置10の本体部11が記憶する。
図17は、第1の実施形態の変形例に係る本体部11aの機能を説明するための一例の機能ブロック図である。図17において、本体部11aは、図9を用いて説明した第1の実施形態に係る本体部11に対して、許可条件情報リストの記憶を制御する許可条件記憶部115が追加されている。なお、本体部11aのハードウェア構成は、図2を用いて説明した第1の実施形態に係る本体部11の構成をそのまま適用できるので、ここでの説明を省略する。
許可条件記憶部115は、例えばストレージ1104に対する許可条件情報リストの記憶と、ストレージ1104に記憶された許可条件情報リストの読み出しとを制御する。許可条件記憶部115は、上述した許可条件記憶部200の場合と同様に、PC30から送信された許可条件情報を、ストレージ1104に記憶される許可条件情報リストに追加して記憶させ、許可条件情報の登録を行う。これに限らず、本体部11aにユーザ入力を受け付ける入力手段と、情報を表示する表示手段とを設け、本体部11aにおいて上述した許可条件情報入力画面300を表示させて許可条件情報の入力および登録を行ってもよい。
また、図17において、許可条件取得部112aは、本体部11a内の許可条件記憶部115により、許可条件情報リストを取得する。
なお、第1の実施形態の変形例では、操作部12は、図8を用いて説明した構成をそのまま適用できるので、ここでの説明を省略する。また、第1の実施形態の変形例では、図1を用いて説明した情報処理システムからサーバ20を省略したシステムを適用できる。
図18は、第1の実施形態の変形例に係る、Webコンテンツ1235を用いる際の処理の流れをより具体的に示す一例のシーケンス図である。なお、図18において、上述した図1と対応する部分には同一の符号を付して、詳細な説明を省略する。また、図18において、上述した図11のシーケンス図と対応する処理には同一の符号を付して、詳細な説明を省略する。
ステップS100〜ステップS112の処理は、上述した図11のステップS100〜ステップS112の処理と同等であるので、ここでの説明を省略する。なお、ここでは、図11の説明における本体部11を本体部11aと読み替えるものとする。
ステップS112により操作部12から取得元情報が付加された実行指示が送信されると、本体部11aは、この実行指示を受信部110により受信し、受信した実行指示を、解析部111により解析する(ステップS113)。解析部111は、実行指示を解析した結果に基づき、実行指示に含まれるWebコンテンツ1235の取得元情報を取得し、判定部114に渡す。また、解析部111は、解析した実行指示を出力部113に渡す。
本体部11aは、許可条件取得部112aにより、許可条件記憶部115に対して許可条件情報リストを要求し、この要求に応じて許可条件記憶部115により読み出された許可条件情報リストを取得する(ステップS130)。許可条件取得部112aは、取得した許可条件情報リストを判定部114に渡す。このとき、許可条件取得部112aは、許可条件情報リストに含まれる各許可条件情報の組織ID、機器ID、許可ドメイン名および許可API種別のうち、少なくとも各許可ドメイン名を取得する。
本体部11は、判定部114により、ステップS113において解析部111より渡された取得元情報と、ステップS130で許可条件記憶部115から取得した許可条件情報リストに含まれる各取得元情報とを比較して、ステップS112において操作部12から送信された実行指示に従った処理の実行を許可するか否かを判定する(ステップS116)。
以降の処理は、上述した図11のステップS116からの処理と同等なので、ここでの説明を省略する。
このように、第1の実施形態の変形例でも、例えば実行指示から取得された取得元情報が許可条件記憶部115に記憶される各取得元情報に含まれない場合に、本体部11における実行指示による処理を実行させないようにできる。そのため、ネットワークを介して取得したWebコンテンツ1235が信頼できるものであるか否かを容易に判定でき、Webコンテンツ1235に基づくWebアプリの画像形成装置10への導入が容易となる。
(第2の実施形態)
次に、第2の実施形態について説明する。上述した第1の実施形態では、許可条件情報リストを画像形成装置10の本体部11が取得していた。これに対して、第2の実施形態は、許可条件情報リストを画像形成装置10の操作部12側で取得する例である。
図19は、第2の実施形態に係る操作部12bの機能を説明するための一例の機能ブロック図である。なお、図19において、上述した図8と対応する部分には同一の符号を付して、詳細な説明を省略する。また、操作部12bのハードウェア構成は、図3を用いて説明した第1の実施形態に係る操作部12の構成をそのまま適用できるので、ここでの説明を省略する。
図19において、操作部12bは、図8を用いて説明した第1の実施形態に係る操作部12に対して、許可条件取得部125および判定部126が追加されている。この許可条件取得部125および判定部126の機能は、上述した許可条件取得部112および判定部114の機能と同等であるので、ここでの説明を省略する。
図20は、第2の実施形態に係る本体部11bの機能を説明するための機能ブロック図である。なお、図20において、上述した図9と対応する部分には同一の符号を付して、詳細な説明を省略する。図20において、本体部11bは、図9を用いて説明した第1の実施形態に係る本体部11に対して、許可条件取得部112および判定部114が省略されている。
なお、第2の実施形態では、図10を用いて説明した第1の実施形態に係るサーバ20をそのまま用いる。
(第2の実施形態に係る処理)
図21は、第2の実施形態に係る、Webアプリを用いる際の処理の流れを概略的に示す。なお、図21において、上述の図7と共通の部分および処理には同一の符号を付して、詳細な説明を省略する。
画像形成装置10bにおいて、操作部12bは、Webコンテンツ1235による画面表示を要求するユーザ操作を受け付ける(ステップS10)。操作部12bは、受け付けたユーザ操作によりブラウザ1234に指定されたURLに従いネットワーク40およびインターネット50を介してWebサーバ60aにアクセスし(ステップS11)、Webサーバ60aからWebコンテンツ1235を取得する(ステップS12)。
操作部12bは、ブラウザ1234により、取得したWebコンテンツ1235を解釈して画面表示を行うと共に、当該Webコンテンツ1235から、本体部11bに対する実行指示と、当該実行指示の本体部11bにおける実行を許可するか否かを判定するための条件である許可条件情報とを抽出する。操作部12bは、Webコンテンツ1235による表示画面に基づくユーザ操作を受け付けると(ステップS13)、ネットワーク40を介してサーバ20にアクセスし(ステップS20)、サーバ20に記憶される許可条件情報を取得する(ステップS21)。
操作部12bは、サーバ20から取得した許可条件情報と、Webコンテンツ1235から抽出した許可条件情報とを比較する。操作部12bは、比較結果に基づき、Webコンテンツ1235から抽出した実行指示の本体部11bにおける実行を許可するか否かを判定する。操作部12bは、判定の結果、実行が許可された場合に、実行指示を本体部11bに送信する(ステップS22)。本体部11bは、操作部12bから送信された実行指示を受信し、受信した実行指示に従った処理を実行する。
図22は、第2の実施形態に係る、Webアプリを用いる際の処理の流れをより具体的に示す一例のシーケンス図である。なお、図22において、上述した図21と対応する部分には同一の符号を付して、詳細な説明を省略する。また、図22において、上述した図11のシーケンス図と対応する処理には同一の符号を付して、詳細な説明を省略する。
ステップS100〜ステップS111の処理は、上述した図11のステップS100〜ステップS111の処理と同等であるので、ここでの説明を省略する。なお、ここでは、図11の説明における本体部11および操作部12を、それぞれ本体部11bおよび操作部12bと読み替えるものとする。
操作部12bは、ステップS111でスクリプト解析および取得元情報の取得を行った後、許可条件取得部125により、サーバ20に対して許可条件情報を要求する(ステップS140)。サーバ20は、許可条件記憶部200により、記憶される許可条件情報リストを読み出して操作部12bに送信する。このとき、サーバ20は、上述と同様にして、許可条件情報リストに含まれる各許可条件情報の組織ID、機器ID、許可ドメイン名および許可API種別のうち、少なくとも各許可ドメイン名を操作部12bに送信する。サーバ20から送信された許可条件情報リストは、操作部12bに受信されて許可条件取得部125に取得される(ステップS142)。
操作部12bは、判定部126により、ステップS111において取得部123により取得された取得元情報と、ステップS142でサーバ20から取得した許可条件情報リストに含まれる各取得元情報とを比較して、ステップS111において解析部111で解析された実行指示を本体部11bに送信するか否かを判定する(ステップS143)。
操作部12bは、判定部126により、サーバ20から取得した各取得元情報の何れかと、解析部111で解析された取得元情報とが一致する場合に、実行指示を本体部11bに送信すると判定する(ステップS143、「OK」)。操作部12bは、この判定結果に従い、実行指示を本体部11bに送信する(ステップS144)。本体部11bは、操作部12bから送信された実行指示を受信し、受信した実行指示を解析部146により解析する(ステップS145)。本体部12bは、出力部113により、解析部111で解析された実行指示に従い処理を実行し(ステップS146)、実行結果を操作部12bに送信する(ステップS147)。
一方、操作部12bは、ステップS143で、判定部126により、解析部111から渡された取得元情報と一致する情報がサーバ20から取得した各取得元情報に含まれないと判定した場合、実行指示を本体部11bに送信しないと判定する(ステップS143、「NG」)。この場合、操作部12bは、表示制御部121により、例えば、図16で説明したようなエラー通知画面310を表示させる(ステップS148)。
このように、第2の実施形態でも、例えば実行指示から取得された取得元情報がサーバ20に記憶される各取得元情報に含まれない場合に、本体部11bにおける実行指示による処理を実行させないようにできる。そのため、ネットワークを介して取得したWebコンテンツ1235が信頼できるものであるか否かを容易に判定でき、Webコンテンツ1235に基づくWebアプリの画像形成装置10bへの導入が容易となる。
(第2の実施形態の変形例)
次に、第2の実施形態の変形例について説明する。上述した第2の実施形態では、許可条件情報リストを、画像形成装置10bとネットワーク40を介して接続されるサーバ20が記憶していた。これに対して、第2の実施形態の変形例では、許可条件情報リストを、画像形成装置10bの操作部12bが記憶する。
図23は、第2の実施形態の変形例に係る操作部12cの機能を説明するための一例の機能ブロック図である。なお、図23において、上述した図19と対応する部分には同一の符号を付して、詳細な説明を省略する。また、操作部12cのハードウェア構成は、図3を用いて説明した第1の実施形態に係る操作部12の構成をそのまま適用できるので、ここでの説明を省略する。
図23において、操作部12cは、図19を用いて説明した第2の実施形態に係る操作部12bに対して、許可条件情報リストの記憶を制御する許可条件記憶部127が追加されている。
許可条件記憶部127は、例えばストレージ1206に対する許可条件情報リストの記憶と、ストレージ1206に記憶された許可条件情報リストの読み出しとを制御する。許可条件記憶部127は、上述と同様に、PC30から送信された許可条件情報を、ストレージ1206に記憶される許可条件情報リストに追加して記憶させ、許可条件情報の登録を行う。これに限らず、許可条件記憶部127は、表示制御部121により上述した許可条件情報入力画面300を表示させて、入力受付部120により許可条件情報の入力を受け付け、入力された許可条件情報の登録を行ってもよい。
また、図23において、許可条件取得部125cは、操作部12c内の許可条件記憶部127により、許可条件情報リストを取得する。
なお、第2の実施形態の変形例では、図8を用いて説明した本体部11bの構成をそのまま適用できるので、ここでの説明を省略する。また、第2の実施形態の変形例では、図1を用いて説明した情報処理システムからサーバ20を省略したシステムを適用できる。
図24は、第2の実施形態の変形例に係る、Webアプリを用いる際の処理の流れを示す一例のシーケンス図である。なお、図24において、上述した図21および図23と対応する部分には同一の符号を付して、詳細な説明を省略する。また、図24において、上述した図11および図22のシーケンス図と対応する処理には同一の符号を付して、詳細な説明を省略する。
ステップS100〜ステップS111の処理は、上述した図11のステップS100〜ステップS111の処理と同等であるので、ここでの説明を省略する。なお、ここでは、図11の説明における本体部11および操作部12を、それぞれ本体部11bおよび操作部12cと読み替えるものとする。
操作部12cは、ステップS111でスクリプト解析および取得元情報の取得を行った後、許可条件取得部125cにより、許可条件記憶部127に対して許可条件情報リストを要求し、この要求に応じて許可条件記憶部127により読み出された許可条件情報リストを取得する(ステップS150)。許可条件取得部125cは、取得した許可条件情報リストを判定部126に渡す。このとき、許可条件取得部125cは、許可条件情報リストに含まれる各許可条件情報の組織ID、機器ID、許可ドメイン名および許可API種別のうち、少なくとも各許可ドメイン名を取得する。
操作部12cは、判定部126により、ステップS111において取得部123により取得された取得元情報と、ステップS150で許可条件記憶部127により取得した許可条件情報リストに含まれる各取得元情報とを比較して、ステップS111において解析部111で解析された実行指示を本体部11bに送信するか否かを判定する(ステップS143)。
以降の処理は、上述した図22のシーケンス図におけるステップS143からの処理と同様なので、ここでの説明を省略する。
このように、第2の実施形態でも、例えば実行指示から取得された取得元情報がサーバ20に記憶される各取得元情報に含まれない場合に、本体部11bにおける実行指示による処理を実行させないようにできる。そのため、ネットワークを介して取得したWebコンテンツ1235が信頼できるものであるか否かを容易に判定でき、Webコンテンツ1235に基づくWebアプリの画像形成装置10bへの導入が容易となる。
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。