説明

情報処理装置および複合機

【課題】機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用可能にする。
【解決手段】制御API10は、秘密データを制御API10のみがアクセス可能な秘密データ記憶領域13b,14b,15bに記憶させ、秘密データを記憶させた記憶先情報とウェブアプリケーションから伝達された保存先情報とを対応付けて秘密データ記憶領域16内のファイル情報記憶部17に記憶させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブアプリケーションを実行するウェブサーバ部を備えた情報処理装置に関するものである。
【背景技術】
【0002】
従来、コピー機能、スキャン機能、印刷機能、およびFAX送受信機能などの複数の機能を併せ持つ複合機の機能を、通信ネットワークを介して接続された他の装置において動作するアプリケーションプログラムから制御する複合機制御システムが知られている。この種の複合機制御システムでは、複合機をネットワーク上で動作するアプリケーションプログラムと連携させることにより、複合機単体では実現できない機能を提供することが可能になっている。
【0003】
例えば、特許文献1,2には、複合機の操作画面をブラウザとして機能させることにより、アプリケーションプログラムから操作画面情報や制御情報を取得することが記載されている。これら各特許文献の技術では、アプリケーションプログラムは、ネットワーク上のPC(パーソナルコンピュータ)やサーバ装置、あるいは複合機内部のウェブアプリケーション実行環境(ウェブサーバ)上でウェブアプリケーションとして動作する。
【0004】
なお、情報端末にインストールされたアプリケーションのデータを適切に管理するための技術としては、例えば特許文献3に記載の方法がある。特許文献3の技術では、アプリケーションの保存領域とアプリケーションに対応するユーザデータの保存領域とを一体的に管理することにより、アプリケーション削除時にユーザデータも含めて削除するか、ユーザデータを残してアプリケーションのみを削除するかを選択できるようになっている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−174400号公報
【特許文献2】特開2011−124652号公報
【特許文献3】特開2005−157657号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、複数のウェブアプリケーションを実行可能な情報処理装置において、各ウェブアプリケーションがウェブアプリケーション毎に保護されていない環境で動作する場合、ウェブサーバで実行されるウェブアプリケーションによって他のウェブアプリケーションが保存されているファイルシステムのデータが不正に搾取されたり、書き換えられたりする危険性がある。例えば、アプリケーションA,Bが共通の記憶領域を用いて動作する場合、アプリケーションAがアプリケーションBのデータにアクセスし、通信可能に接続された外部装置に不正に送信することにより、アプリケーションBに関する機密情報が漏洩してしまう虞がある。
【0007】
このため、セキュリティ上、上記のような脅威を防ぐために、各ウェブアプリケーションはウェブアプリケーション毎に保護された記憶領域を用いて動作させることが一般的である。すなわち、ウェブアプリケーションAは、当該ウェブアプリケーションAだけがアクセス可能な記憶領域を用いた処理は自由に行えるが、他のウェブアプリケーション(例えばウェブアプリケーションB,Cなど)のデータ記憶領域にはアクセスできないように制限される。このようなセキュリティモデルは一般にサンドボックスセキュリティモデルと呼ばれている。
【0008】
しかしながら、上記のように各ウェブアプリケーションをウェブアプリケーション毎に保護された記憶領域を用いて動作させるだけでは、機密情報の漏洩を適切に防止できない場合がある。例えば、情報処理装置にウェブアプリケーションAをインストールした後、ウェブアプリケーションAの設定情報やユーザ情報などの機密情報をウェブアプリケーションAだけがアクセスできるデータ記憶領域に保存すれば、他のウェブアプリケーションから上記データ記憶領域に記憶しているデータにアクセスされる虞を低減することはできる。
【0009】
しかしながら、ウェブアプリケーションAはウェブアプリケーションなので、このウェブアプリケーションの支配下にあるデータ記憶領域(以下、公開データ記憶領域という)に機密データを保存してしまうと、外部装置などからHTTP(Hyper Text Transfer Protocol:ハイパーテキスト転送プロトコル)リクエストなどを用いて不正にアクセスされる危険性がある。なお、仮に、ファイヤーウォール等を設けることにより複合機に対する外部からのHTTPアクセスを禁止する漏洩防止対策を行ったとしても、複合機にインストールされている他のウェブアプリケーションを介して情報が読み取られたり、改変あるいは削除されたりする危険性が依然残る。
【0010】
そこで、上記特許文献3のようにユーザデータの記憶領域をアプリケーションの記憶領域とは異なる領域に設定し、さらに、ウェブアプリケーションからユーザデータの記憶領域へのアクセスを制限することが考えられる(この構成は本願出願人が考案した構成であって公知の構成ではない)。
【0011】
しかしながら、ウェブアプリケーションの画面データにユーザデータを反映させて操作画面に表示するためには、ユーザデータをウェブアプリケーションの記憶領域(特許文献3におけるアプリケーション領域)に格納しておく必要がある。
【0012】
このため、ウェブアプリケーションで用いるユーザデータ等の機密情報(秘密データ)については、当該ウェブアプリケーション以外のウェブアプリケーションや外部装置からのアクセスを遮断する一方、当該ウェブアプリケーションからは容易にアクセス可能に記憶させる必要がある。
【0013】
本発明は、上記の問題点に鑑みて成されたものであり、その目的は、ウェブアプリケーション実行環境を備えた情報処理装置において、機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用できるようにすることにある。
【課題を解決するための手段】
【0014】
本発明の情報処理装置は、上記の課題を解決するために、ウェブアプリケーションを実行するウェブサーバ部を備えた情報処理装置であって、上記ウェブアプリケーションによって用いられるデータを記憶するデータ記憶部と、上記データ記憶部に記憶させるデータの管理を行うデータ管理部とを備え、上記ウェブアプリケーションは、当該ウェブアプリケーション以外に対して非公開とするデータである秘密データを上記データ記憶部に記憶させる場合に、当該秘密データのデータ名と、当該秘密データの当該ウェブアプリケーションにおける管理上の保存先情報とを上記データ管理部に伝達し、上記データ管理部は、上記秘密データを、上記保存先情報に対応する記憶領域とは異なる記憶領域であって上記データ記憶部における当該データ管理部のみがアクセス可能な記憶領域である秘密データ記憶領域に記憶させるとともに、上記秘密データを実際に記憶させた記憶先を示す記憶先情報と上記ウェブアプリケーションから伝達された上記保存先情報とを対応付けた対応情報を秘密データ記憶領域に記憶させることを特徴とする情報処理装置。
【0015】
上記の構成によれば、秘密データはデータ管理部のみがアクセス可能な秘密データ記憶領域に保存されるので、上記情報処理装置における当該秘密データを記憶させたアプリケーション以外のアプリケーション、あるいは上記情報処理装置に対して通信可能に接続される外部装置から秘密データへのアクセスを遮断することができる。また、正規のウェブアプリケーションは、データ管理部に対してアクセスしたい秘密データのデータ名および当該ウェブアプリケーションにおける管理上の保存先情報を通知することにより、データ管理部を介して秘密データにアクセスすることができる。したがって、ウェブアプリケーション実行環境を備えた情報処理装置において、機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用することができる。
【0016】
また、上記ウェブアプリケーションは、上記データ記憶部にデータを記憶させる場合に、当該データのデータ名、当該データの該ウェブアプリケーションにおける管理上の保存先情報、および当該データが秘密データであるか否かを示す情報を上記データ管理部に伝達し、上記データ管理部は、上記ウェブアプリケーションから伝達されたデータが秘密データである場合、当該秘密データおよび上記対応情報を秘密データ記憶領域に記憶させ、上記ウェブアプリケーションから伝達されたデータが秘密データではない場合、当該データを上記データ記憶部における上記ウェブアプリケーションからアクセス可能な記憶領域に記憶させる構成としてもよい。あるいは、上記ウェブアプリケーションは、上記データ記憶部に秘密データではないデータを記憶させる場合に、当該データを上記データ記憶部における当該ウェブアプリケーションから直接アクセス可能な記憶領域に記憶させる構成としてもよい。
【0017】
上記の各構成によれば、秘密データについては秘密データ記憶領域に記憶させることにより機密情報の漏洩を防止することができる。また、秘密データ以外のデータについてはウェブアプリケーションからアクセス可能な記憶領域に記憶させることにより、当該データの利便性を高めることができる。
【0018】
上記情報処理装置は、上記情報処理装置は、当該情報処理装置に登録されているウェブアプリケーションの削除処理を行う削除アプリケーションを備えており、上記削除アプリケーションは、登録されているウェブアプリケーションの削除を行う場合、上記データ管理部に対して、削除対象のウェブアプリケーションの識別情報を通知し、上記データ管理部は、上記削除アプリケーションから通知された識別情報に対応するウェブアプリケーションが上記秘密データ記憶領域に直接または上記データ管理部を介して記憶させた各データを上記秘密データ記憶領域から削除する構成としてもよい。
【0019】
上記の構成によれば、ウェブアプリケーションの削除を行う場合に、当該ウェブアプリケーションに対応する秘密データについても削除することができる。
【0020】
また、上記ウェブアプリケーションは、当該ウェブアプリケーションを実行しているユーザのユーザ識別情報を上記データ管理部に通知し、上記データ管理部は、上記ウェブアプリケーションから当該ウェブアプリケーションに対応する秘密データへのアクセス要求が行われた場合に、当該ウェブアプリケーションを実行しているユーザのユーザ識別情報と予め記憶している当該アプリケーションに対応する秘密データへのアクセスを許可するユーザの識別情報である許可ユーザ情報とを照合し、上記ユーザ識別情報と上記許可ユーザ情報とが一致しない場合には上記秘密データへのアクセスを拒否する構成としてもよい。
【0021】
上記の構成によれば、秘密データに対するアクセスの可否をユーザ毎に判断することができる。
【0022】
本発明の複合機は、複数の装置機能を有する複合機であって、上記したいずれかの情報処理装置を備えており、上記ウェブアプリケーションは、当該複合機の装置機能を制御するためのアプリケーションであることを特徴としている。
【0023】
上記の構成によれば、ウェブアプリケーション実行環境を備えた複合機において、機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用することができる。
【発明の効果】
【0024】
本発明の情報処理装置によれば、ウェブアプリケーション実行環境を備えた情報処理装置において、機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態にかかる複合機(情報処理装置)の構成を示す説明図である。
【図2】図1に示した複合機においてウェブアプリケーションが記憶部にデータを記憶させる場合の処理の流れを示すフローチャートである。
【図3】図1に示した複合機においてウェブアプリケーションが記憶部にデータを記憶させる場合の処理の具体例を示すフローチャートであり、認証情報を記憶させる場合の処理の例を示している。
【図4】図3に示した処理において複合機の表示部に表示される操作画面の一例を示す説明図である。
【図5】(a)は図1に示した複合機に記憶される各ウェブアプリケーションの公開データ記憶領域の構成を示す説明図であり、(b)は各ウェブアプリケーションの公開データ記憶領域および秘密データ記憶領域の構成を示す説明図である。
【図6】図1に示した複合機においてウェブアプリケーションが記憶部に記憶しているデータを読み出す場合の処理の流れを示すフローチャートである。
【図7】図1に示した複合機において当該複合機にインストールされているウェブアプリケーションを削除する場合の処理の流れを示すフローチャートである。
【図8】図1に示した複合機においてウェブアプリケーションが記憶部にデータを記憶させる場合の処理の他の例を示すフローチャートである。
【図9】図1に示した複合機においてウェブアプリケーションが記憶部に記憶しているデータを読み出す場合の処理の他の例を示すフローチャートである。
【図10】比較例にかかるデータ記憶領域の構成例を示す説明図であり、各ウェブアプリケーションの秘密データを公開データ記憶領域に記憶させる場合の例を示している。
【図11】図1に示した複合機においてウェブアプリケーションが記憶部に記憶しているデータを読み出す場合の処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【0026】
本発明の一実施形態について説明する。
【0027】
(1−1.複合機1の構成)
図1は、本実施形態に係る複合機1の構成を示す説明図である。この図に示すように、複合機1は、画像読取部2、画像形成部3、操作部4、ウェブブラウザ部7、機器制御部8、通信部9、制御API(アプリケーションインターフェース)10、ウェブサーバ部11、および記憶部12を備えている。また、操作部4は、入力部5および表示部6を備えている。また、記憶部12には、ウェブサーバ部11において実行される1または複数のウェブアプリケーション(図1の例ではアプリケーションA〜C)が格納されている。
【0028】
操作部4は、ユーザに対して情報を通知するとともに、ユーザからの入力を受け付けるユーザインターフェイスである。具体的には、操作部4は、例えば液晶ディスプレイなどからなる表示部6と、各種の入力キーを含む入力部5とを備えている。なお、操作部4は、表示部6と入力部5とが一体として構成されたタッチパネルであってもよい。
【0029】
画像読取部2は、スキャナと、原稿をスキャナの位置まで搬送する原稿搬送部とを備えており(いずれも図示せず)、原稿に印刷された文字や画像などを読み取ってこの原稿の画像データを取得するものである。なお、画像読取部2の構成は特に限定されるものではなく、従来から公知の種々の画像読取装置を用いることができる。
【0030】
画像形成部3は、用紙などの記録材に対して、入力された画像データに応じた画像(文字、写真、グラフィックなど)を印刷するものである。本実施形態では、画像形成部3として、感光体ドラム、帯電装置、露光装置、現像装置、転写装置、定着装置、および用紙トレイなどを備えた電子写真方式の画像形成装置を備えている。ただし、画像形成部3の構成はこれに限るものではなく、他の画像形成方式(例えばインクジェット方式など)の画像形成装置を用いてもよい。
【0031】
通信部9は、通信ネットワークを介して接続された外部装置(例えばパーソナルコンピュータ、サーバ装置、情報処理端末など)との間での通信を行うための通信インターフェイスである。また、通信部9は、自装置(複合機1)内部のウェブサーバ部11にアクセスする機能も有しており、アクセス先が自装置のIPアドレスに示されている場合には自装置内の当該アクセス先にアクセスする。なお、自装置のIPアドレスを指定する場合、ループバックアドレスを指定する。ループバックアドレスとは、ネットワークカード(例えば、通信部の機能を担うハードウェア)などのループバックインターフェイスに割り当てられた仮想的なIPアドレスであり、自装置を示すIPアドレスのことである。ループバックアドレスは、汎用されているウェブブラウザで使用されている公知のアドレスである。ループバックを使用すると、いかなるパケットデータも複合機外部に送信されることはないため、アドレスの名前解決のためにDNS(Domaim Name System)サーバにアクセスする時間や、情報処理装置との通信にかかる時間などを短縮することができ、情報処理装置からHTML(Hypertext Markup Language)データを取得する場合よりも高速に操作画面を表示することができる。本実施形態では、通信部9は、ウェブサーバ部11で動作するアプリケーションA〜CとHTTPを用いて通信する。
【0032】
ウェブブラウザ部7は、汎用されているウェブブラウザのソフトウェアに従った動作を行うものであり、ウェブサーバ部11で実行されるウェブアプリケーションに応じた操作画面(ウェブページ)を閲覧する機能、および入力部5を介してユーザが入力したデータをウェブサーバ部11に送信する機能を有している。また、ウェブブラウザ部7は、通信部9を介して通信可能に接続された外部装置のウェブサーバで実行されるウェブアプリケーションに応じたウェブページを閲覧する機能、および入力部5を介してユーザが入力したデータを外部装置のウェブサーバに送信する機能も有している。
【0033】
ウェブサーバ部11は、汎用されているウェブサーバのソフトウェアに従った動作を行うものである。ここで、ウェブサーバとは、インターネット上の情報システムであるWWW(World Wide Web)を構成するサーバ装置の機能を提供するソフトウェアである。ウェブサーバ部11は、ウェブブラウザ部7からの要求(HTTPリクエスト)を受信し、当該要求に応じたウェブアプリケーションを実行させ、ウェブブラウザ部7に対して応答(HTTPレスポンス)を行う。
【0034】
制御API(データ管理部)10は、ウェブサーバ部11上で動作するウェブアプリケーションの指示に従った処理を実行するものである。具体的には、制御API10は、複合機1の各種機能(例えば、コピー機能、スキャン機能、FAX送信機能等)を制御する必要がある場合、当該機能を制御するための制御コマンドを機器制御部8に送る。
すなわち、複合機1は、画像読取部2による画像読取機能、画像形成部3による画像形成機能、および通信部9による通信機能を含む複数の装置機能を有しており、制御API(データ管理部)10がウェブサーバ部11上で動作するウェブアプリケーションからの指示に応じてこれら各装置機能を制御することにより、上記各種機能(例えば、コピー機能、スキャン機能、FAX送信機能等)を実行させるようになっている。また、制御API10は、記憶部12に対するデータの書き込み、読み出し、削除等の処理を行うデータ管理API(データ管理部)としての機能も有している。
【0035】
機器制御部8は、複合機1の各種機能を制御するものである。すなわち、機器制御部8は、画像読取部2、画像形成部3、通信部9、操作部4等の各部の動作を制御する。例えば、機器制御部8は、画像読取部2の動作を制御してスキャン画像のデータを取得させる。また、機器制御部8は、画像形成部3の動作を制御して、入力された画像データに応じた画像を記録材上に形成(出力)させる。また、機器制御部8は、通信部9を制御して、入力された画像データを指定された外部のリソースに格納する処理や、入力された画像データを電子メールに添付して指定されたアドレスに送信する処理などを行わせる。
【0036】
なお、機器制御部8は、固有操作モードと連携操作モードとを有している。機器制御部8は、通常時(例えば複合機1の電源投入直後など)には、複合機1内に記憶している基本操作画面データに応じた基本操作画面を表示部6に表示させる。そして、この基本操作画面に対するユーザからのモード選択指示に応じて固有操作モードまたは連携操作モードを選択する。あるいは、固有操作モードに属するアプリケーションおよび連携操作モードに属するアプリケーションのうちのいずれかのアプリケーションを選択する。
【0037】
固有モードでは、機器制御部8は、予め複合機1内で記憶している複合機1に固有のアプリケーション(ネイティブアプリケーション)を実行することにより、当該アプリケーションに応じた操作画面を表示部6に表示させ、当該操作画面に対して入力された指示を入力部5から受け取り、当該指示に従って上記のような制御を行う。
【0038】
また、固有操作モード時には、機器制御部8は、現在の複合機1の構成や状態に合わせて、複合機1のパーツ単位の画像情報を適宜組み合わせ、表示部6の操作画面上に表示するなどの制御も行う。なお、固有操作モードは、従来の複合機で行われている一般的なモードであり、機器制御部8は複合機のメイン制御部(図示せず)上で動作するOS上で動作しており、ネイティブアプリケーションを実行することにより、コピー機能、FAX機能、プリンタ機能などを実行する。
【0039】
連携操作モードでは、機器制御部8は、ウェブサーバ部11上で動作するウェブアプリケーションと連携して各部の動作を制御する。具体的には、ウェブサーバ部11は、複合機1のメイン制御部(図示せず)上で動作しており、このウェブサーバのプログラム上にウェブアプリケーション(アプリケーションA〜C)の実行環境が用意されている。
【0040】
連携操作モードの実行指示が入力された場合、機器制御部8は、ウェブブラウザ部7を起動させて予め設定されたURL(Uniform Resource Locator)(本実施形態ではウェブサーバ部11に対して初期操作画面の送信を要求するURL)にアクセスさせ、当該URLに記述された情報に従った処理を実行させる。そして、連携操作モードでは、機器制御部8は、制御API10から制御コマンドを受け付け、当該制御コマンドに従った制御を行う。
【0041】
アプリケーションA〜Cは、ウェブサーバ部11上で動作するウェブアプリケーションである。表示部6の操作画面においてアプリケーションA〜Cのいずれかの起動ボタンが選択されると、ウェブブラウザ部7は、ウェブサーバ部11にループバックアドレスを用いてアクセスし、当該アプリケーションの公開データ記憶領域(アプリケーション公開データ記憶領域13a,14a,15b)に記憶されている操作画面を示すHTML(Hypertext Markup Language)データを受け取り、当該HTMLデータで示される操作画面を表示部6に表示させる。そして、複合機1は、操作画面に対して入力された指示に従って、当該指示に応じた各種機能を実行する。
【0042】
記憶部(データ記憶部)12は、アプリケーションA用データ記憶領域13、アプリケーションB用データ記憶領域14、アプリケーションC用データ記憶領域15、および秘密データ記憶領域16を備えている。
【0043】
アプリケーションA用データ記憶領域13にはウェブアプリケーションAおよびウェブアプリケーションAで用いられるデータが格納され、アプリケーションB用データ記憶領域14にはウェブアプリケーションBおよびウェブアプリケーションBで用いられるデータが格納され、アプリケーションC用データ記憶領域15にはウェブアプリケーションCおよびウェブアプリケーションCで用いられるデータが格納される。
【0044】
また、アプリケーションA用データ記憶領域13、アプリケーションB用データ記憶領域14、およびアプリケーションC用データ記憶領域15には、それぞれ公開データ記憶領域13a,14a,15aと、秘密データ記憶領域13b,14b,15bとが設けられている。
【0045】
公開データ記憶領域13a,14a,15aには、アプリケーションA〜C、およびアプリケーションA〜Cで用いられるデータのうち、秘密性が要求されないデータ(外部に公開してもかまわないデータ)が格納される。公開データ記憶領域13a,14a,15aに格納されるデータ(ファイル)は、ウェブサーバ部11上のアプリケーション実行環境に汎用的に用意されたファイルアクセスシステムによりアクセス可能になっている。秘密性が要求されないデータの例としては、例えばアクセスログなどが挙げられる。アクセスログとは、アプリケーションの利用回数や頻度を管理者が管理するためのものであり、例えば誰かがアプリケーションを起動するたびに起動時刻が保存されるようなデータである。これらの秘密性が要求されないデータは、ウェブサーバ部11で用いられているファイルアクセスシステムを利用してアクセス可能に保存される。このように、秘密性が要求されないデータについては通常のファイルアクセスシステムを用いてアクセス可能な記憶領域に格納することにより、後述する秘密データ記憶領域の記憶容量のサイズが増大することを抑制できる。
【0046】
秘密データ記憶領域13b,14b,15bには、アプリケーションA〜Cで用いられるデータのうち、秘密性が要求されるデータが格納される。秘密データ記憶領域13b,14b,15bに格納されるデータ(ファイル)については、ウェブサーバ部11上のアプリケーション実行環境に汎用的に用意されたファイルアクセスシステムからは直接アクセスすることはできず、制御API10を介してのみアクセスできるようになっている。
【0047】
秘密データ記憶領域16には、ファイル情報記憶部17が設けられている。このファイル情報記憶部17は、秘密データ記憶領域13b,14b,15bに保存したファイルのパス(記憶先情報)と、ウェブサーバ部11のファイルシステムにおける当該ファイルの管理上の保存先パス(保存先情報)との対応関係を記憶する。具体的には制御API10は、ウェブサーバ部11で動作するアプリケーションから秘密データの保存を要求された場合、ウェブサーバ部11から指定された保存先パス(保存先情報)を秘密データ記憶領域に対応するパス(記憶先情報)に変更するとともに、ウェブサーバ部11から指定された保存先パス(保存先情報)と実際に当該秘密データを記憶させた秘密データ記憶領域内の記憶先を示すパス(記憶先情報)とを対応付けてファイル情報記憶部17に記憶させる。
【0048】
(1−2.複合機1の動作)
(1−2−1.データ保存処理)
次に、ウェブサーバ部11で動作するアプリケーション(ウェブアプリケーション)が記憶部12にデータを保存させる場合の処理について説明する。図2は、ウェブサーバ部11で動作するアプリケーションが利用するデータを記憶部12に記憶させる場合の処理の流れを示すフローチャートである。
【0049】
まず、アプリケーション(ウェブサーバ部11)は、記憶部12に対するデータ保存処理が発生したか否かを判断する(S1)。
【0050】
データ保存処理が発生した場合、アプリケーションは、保存するデータが秘密データであるか否か、すなわち記憶部12に対して外部から任意にアクセス可能に保存するか、制御API10を介してアクセスする場合にのみアクセス可能にするかを決定する(S2)。具体的には、アプリケーションには秘密データにするデータの項目、種類、属性等が予め設定されており、アプリケーションはその設定内容に応じて秘密データにするか否かを決定する。秘密データに指定するデータの例としては、例えば、ユーザ認証情報(ログインID、パスワード、ライセンスキーなど)、ユーザの個人情報(名前、住所、電話番号、メールアドレスなど)、ユーザから秘密データに指定された情報、アプリケーションの設定情報などが挙げられる。
【0051】
その後、アプリケーションは、保存対象のデータである保存データ、当該保存データの保存先を指定する保存先パス、当該保存データが秘密データであるか否かを示す秘密要否情報を制御API10に送信する(S3)。上記の秘密要否情報の構成は特に限定されるものではなく、制御API10が秘密データであるか否かを当該秘密要否情報に基づいて判断できるものであればよい。例えば、秘密データであるか否かに応じて制御API10に通知する関数名を変えたり、関数に設定するパラメータを変えたりするようにしてもよい。具体的には、例えば、ウェブサーバ部11で動作するアプリケーションAが制御API10を用いて記憶部12の秘密データ記憶領域にデータ(Key.txt)を保存させる場合、このアプリケーションは、関数“file()”を利用する。file=file(wwwroot/App−A/key.txt)を実行すると、ウェブサーバ部11上のアプリケーション実行環境は制御API(データ管理API)10を呼び出す。これにより、制御API10は、秘密データ記憶領域にデータ(key.txt)を保存する。
【0052】
その後、アプリケーションは、当該アプリケーションを終了させるか否かを判断し(S4)、終了させない場合にはS1の処理に戻る。
【0053】
制御API(データ管理API、データ管理部)10は、アプリケーション(ウェブサーバ部11)から保存データ、保存先パス、および秘密要否情報を受信すると(S11)、受信した秘密要否情報に基づいて当該保存データが秘密データであるか否かを判断する(S12)。
【0054】
秘密データではないと判断した場合、制御API10は、アプリケーション(ウェブサーバ部11)から受信した保存データを受信した保存先パスに対応する記憶領域に保存させ(S13)、処理を終了する。
【0055】
一方、秘密データであると判断した場合、制御API10は、アプリケーション(ウェブサーバ部11)から受信した保存先パスを秘密データ保存用の保存先パス(秘密データ記憶領域に対応する保存先パス)に変更し、アプリケーションから受信した保存データを変更後の保存先パスに保存する(S14)。すなわち、制御API10は、秘密データであると判断した場合、アプリケーション(ウェブサーバ部11)から受信した保存データを秘密データ記憶領域に記憶させる。
【0056】
また、制御API10は、S14で保存データを保存した秘密データ記憶領域内の保存先パス(記憶先情報)と、S11でアプリケーションから受信した保存先パス(保存先情報)とを対応付けた対応情報を記憶部12のファイル情報記憶部17に記憶させ(S15)、処理を終了する。
【0057】
なお、本実施形態では、秘密データ記憶領域および公開データ記憶領域の両方について、アプリケーション毎にフォルダを作成し、各アプリケーションのデータを当該アプリケーションのフォルダ内に保存させるようになっている。したがって、実際に保存データを保存した秘密データ記憶領域内の保存先パス(記憶先情報)、およびアプリケーションが制御API10に通知した保存先パス(保存先情報)の両方に、アプリケーションを特定するための情報(アプリケーション名等)が含まれる。このため、ファイル情報記憶部17に記憶させた上記対応情報には、各秘密データを記憶させたアプリケーションを特定するための情報も含まれている。
【0058】
(1−2−2.データ保存処理の具体例)
次に、ウェブサーバ部11で動作するアプリケーションで用いられるデータを記憶部12に保存させる処理の具体例について説明する。ここでは、ウェブサーバ部11で動作するアプリケーションを起動するためにユーザがライセンスキー(認証キー)を入力する必要がある場合であって、適切なライセンスキーが入力された場合に当該ライセンスキーを秘密データとして記憶部12の秘密データ記憶領域に記憶させる場合の処理について説明する。図3はこの場合の処理の流れを示すフローチャートである。
【0059】
ウェブブラウザ部7は、入力部5を介してユーザからアプリケーション(ウェブサーバ部11で動作するアプリケーション)の起動要求が行われたか否かを判断する(S21)。
【0060】
そして、アプリケーションの起動要求が行われたと判断した場合、ウェブサーバ部11に対して当該アプリケーションの初期画面データ送信要求を送信する(S22)。具体的には、アプリケーションの選択を行う画面データにおいて、各アプリケーションには当該アプリケーションの初期画面の送信要求を送信する送信先が対応付けられており、ウェブブラウザ部7はユーザが選択したアプリケーションに対応する送信先にHTTPリクエストを送信して初期画面の取得要求を行う。
【0061】
ウェブサーバ部11は、ウェブブラウザ部7からアプリケーションの初期画面データ送信要求を受信すると(S31)、当該アプリケーションの初期画面データを記憶部12における当該アプリケーションに対応する公開データ記憶領域から読み出し、読み出した初期画面データをウェブブラウザ部7に返信する(S32)。なお、公開データ記憶領域からのデータ読み出し方法については後述する。
【0062】
ウェブブラウザ部7は、ウェブサーバ部11から初期画面データを受信すると(S23)、受信した初期画面データに応じた初期画面を表示部6に表示させる(S24)。図4は、表示部6に表示されるアプリケーションの初期画面の一例を示す説明図である。この図に示す例では、アプリケーションの利用可否を判定するためのライセンスキーの入力画面が初期画面として表示されるようになっている。ユーザは、入力部5を操作して操作画面上でラインセンスキーを入力してOKボタンを押すことにより、ライセンスキーの入力を行う。
【0063】
ウェブブラウザ部7は、入力部5を介してユーザからのライセンスキーの入力を受け付けると(S25)、入力されたライセンスキーを示すキー情報をウェブサーバ部11(ウェブサーバ部11上で動作するアプリケーション)に送信する(S26)。
【0064】
ウェブサーバ部11上で動作するアプリケーションは、ウェブブラウザ部7からキー情報を受信すると(S33)、受信したキー情報と予め当該アプリケーションに対応する秘密データ記憶領域に記憶している照合キー情報とを比較することにより、当該アプリケーションの利用を許可するか否かを判断する(S34)。
【0065】
なお、照合キー情報については、記憶部12内の秘密データ記憶領域に記憶させておく構成に限らず、例えば複合機1に対して通信可能に接続される外部装置に記憶させておき、ウェブサーバ部11上で動作するアプリケーションがこの外部装置から照合キーを取得するようにしてもよい。また、ウェブサーバ部11上で動作するアプリケーションがウェブブラウザ部7から受信したキー情報を外部装置(認証サーバ)に送信し、この外部装置が当該キー情報と予め記憶している照合キー情報とを比較することで認証処理を行い、認証処理結果を当該アプリケーションに返信するようにしてもよい。
【0066】
S34においてアプリケーションの利用が不可であると判断した場合(受信したキー情報が照合キー情報と一致しない場合)、アプリケーションは、S32に戻って初期画面データをウェブブラウザ部7に送信して初期画面を再表示させ、ライセンスキーの再入力を促す。この際、前回入力されたライセンスキーが不適切であった旨を初期画面に含めて表示させるようにしてもよい。
【0067】
一方、S34においてアプリケーションの利用が可であると判断した場合(受信したキー情報と照合キー情報とが一致した場合)、アプリケーションは、当該キー情報(保存データ)と、当該キー情報の保存先を当該アプリケーションが管理するための保存先パスと、当該キー情報の秘密要否情報(ここでは秘密データであることを示す情報)とを制御API10に送信する(S35)。
【0068】
また、アプリケーションは、ウェブブラウザ部7にアプリケーション画面の表示要求を送信する(S36)。すなわち、アプリケーションは、ウェブブラウザ部7に対して、HTTPリダイレクトにてアプリケーション画面を表示するよう要求する。HTTPリダイレクトとはHTTPステータスコード302などを設定し、画面データを応答する代わりに別のページ画面を指定するURL情報を応答し、別の画面を表示させるための要求である。HTTPリダイレクトは公知の技術であり、HTTPのプロトコルにおいて汎用的に用いられている技術である。
【0069】
ウェブブラウザ部7はアプリケーション画面の表示要求(HTTPリダイレクト要求)を受信すると(S27)、ウェブサーバ部11に対して指定された画面データの送信要求を送信する(S28)。ウェブサーバ部11は、画面データの送信要求を受信すると(S37)、要求された画面データをウェブブラウザ部7に送信する(S38)。これにより、ウェブブラウザ部7はウェブサーバ部11からアプリケーション画面の画面データを受信し、表示部6に表示させる(S29)。
【0070】
一方、制御API10は、S35においてアプリケーションから送信されたキー情報、当該キー情報の保存先パス、および当該キー情報の秘密要否情報を受信すると(S40)、上述したS12〜S15と同様の処理を行う。これにより、制御API10は、アプリケーションから受信した保存先パス(保存先情報)を当該アプリケーションに対応する秘密データ記憶領域の保存先パス(記憶先情報)に変更してアプリケーションから受信したキー情報を保存し(S41)、キー情報を保存した保存先パス(記憶先情報)とアプリケーションから受信した保存先パス(保存先情報)とを対応付けてファイル情報記憶部17に記憶させる(S42)。このように、ユーザが入力して正しいと判定されたライセンスキーのキー情報を秘密データ記憶領域に記憶させておくことにより、例えばライセンスキーが複数有る(複数ライセンス)場合に、どのライセンスキーが使用済みで、どのライセンスキーが未使用かをチェックすることができる。
【0071】
図5(a)は、記憶部12のファイル構成の例を示す説明図である。この図に示すように、記憶部12にはルートフォルダ(wwwroot)が設けられている。ルートフォルダ(wwwroot)は、ウェブサーバ部11のファイルシステム上のルートフォルダであり、ウェブサーバ部11で動作する各アプリケーションはこのルートフォルダの階層構造内に配置されている。図5(a)の例では、アプリケーションA,B,・・・に対応する各アプリケーションフォルダ(App−A,App−B,・・・)がルートフォルダ(wwwroot)内に設けられている。なお、ルートフォルダ(wwwroot)は、図1における公開データ記憶領域に対応しており、アプリケーションフォルダApp−A,App−B,・・・は公開データ記憶領域13a,14a,・・・に対応している。
【0072】
また、各アプリケーションフォルダには、当該アプリケーションフォルダに対応するアプリケーションの初期画面データ(App-A Default.html, App-B Default.html)、アプリケーション画面データ(TopPage.html)、画像データ(image.jpg, image2.bmp)などが格納されている。
【0073】
これにより、ウェブブラウザ部7は、例えば、URL<http://localhost/App-A/App-A Default.html>へのHTTPリクエストを発行することにより、アプリケーションフォルダApp−AにあるApp-A Default.htmlにアクセスし、画面情報などを取得することができる。
【0074】
図5(b)は、上述したS41の処理においてキー情報を記憶部12に保存させた場合の、記憶部12のファイル構成の例を示す説明図である。この図に示すように、秘密データを記憶させる場合、制御API10は、記憶部12におけるルートフォルダ(wwwroot)の外部に、制御API10のみがアクセス可能な非公開フォルダ(Security)を作成し、この非公開フォルダ内に秘密データを保存する。
【0075】
具体的には、非公開フォルダ(Security)内に各アプリケーションのアプリケーションフォルダ(App−A,App−B,・・・)を作成し、各アプリケーションに関する秘密データを非公開フォルダ(Security)内における当該アプリケーションのアプリケーションフォルダに格納する。図5(b)に示す例では、アプリケーションAに関するライセンスキーのキー情報(Key.txt)が非公開フォルダ(Security)内のアプリケーションフォルダApp−Aに格納されている。なお、非公開フォルダ(Security)は図1における秘密データ記憶領域に対応しており、非公開フォルダ(Security)内のアプリケーションフォルダ(App−A,App−B,・・・)は秘密データ記憶領域13b,14b,・・・に対応している。
【0076】
(1−2−3.データ読出処理(アクセス処理))
次に、ウェブサーバ部11で動作するアプリケーションで用いるデータを記憶部12から読み出す場合の処理について図6のフローチャートを参照しながら説明する。
【0077】
まず、アプリケーション(ウェブサーバ部11)は、記憶部12からのデータの読み出しを要する処理が発生したか否かを判断する(S51)。
【0078】
そして、データの読み出しを要する処理が発生した場合、アプリケーションは、データ読出要求、および読み出すデータの当該アプリケーションにおける管理上の保存パス(保存先情報)を制御API10に送信する(S52)。
【0079】
制御API10は、アプリケーションからデータ読出要求および保存パスを受信すると(S61)、ファイル情報記憶部17に記憶させている対応情報に基づいて、当該保存パスが秘密データに対応する保存パスであるか否かを判断する(S62)。なお、アプリケーションがS52においてデータ読出要求および保存パスを送信する際、読み出すデータが秘密データであるか否かを示す情報を含めて送信し、制御API10が当該情報に基づいて秘密データであるか否かを判断するようにしてもよい。
【0080】
S62において秘密データではないと判断した場合、制御API10は、公開データ記憶領域における、アプリケーションから受信した保存パス(保存先情報)に対応する記憶領域から該当するデータを読み出し(S63)、読み出したデータをアプリケーションに応答する(S68)。
【0081】
一方、S62において秘密データであると判断した場合、制御API10は、データ読出要求を送信してきたアプリケーションが、読み出し対象の秘密データに対応するアプリケーションと一致するか否かを判断する(S64)。
【0082】
具体的には、ウェブサーバ部11で実行中のアプリケーションはシステム領域に登録されているので、制御API10はシステム領域に登録されている情報に基づいて実行中のアプリケーションを検出する。例えば、アプリケーションAが実行中である場合、app−A(フルパス:wwwroot/App−A)が検出され、アプリケーションBが実行中である場合、app−B(フルパス:wwwroot/App−B)が検出される。そして、制御API10は、実行中のアプリケーションのフルパスと、読み出し対象のファイルを示す関数“file()”の引数wwwroot/App−A/key.txtのファイル名key.txtを除いた部分wwwroot/App−Aとの比較を行い、両者が一致しているか否かを判断する。
【0083】
S64においてデータ読出要求を送信してきたアプリケーションと読み出し対象の秘密データに対応するアプリケーションとが一致しないと判断した場合、制御API10は、当該秘密データへのアクセスを拒否する旨の通知(アクセス拒否通知)をアプリケーションに応答する(S65)。
【0084】
例えば、ファイル(wwwroot/App−A/key.txt)に対してwwwroot/App−Bからデータ読出要求(アクセス要求)があった場合、システム領域に登録されているアプリケーション名(実行中のアプリケーション名)はapp−B(フルパス:wwwroot/App−B)であり、アクセス要求が行われたファイルの引数(引数wwwroot/App−A/key.txtのファイル名key.txtを除いた部分wwwroot/App−A)と一致しないので、制御API10は、当該ファイルの読み出し(当該ファイルへのアクセス)を拒否する。
【0085】
一方、S64においてデータ読出要求を送信してきたアプリケーションと読み出し対象の秘密データに対応するアプリケーションとが一致すると判断した場合、制御API10は、ファイル情報記憶部17に記憶されている対応情報の中から、アプリケーションから受信した保存パス(保存先情報)に対応付けて記憶されている秘密データの実際の保存先を示す保存パス(記憶先情報)を読み出す(S66)。そして、制御API10は、ファイル情報記憶部17から読み出した上記保存パスに対応するデータを秘密データ記憶領域から読み出し(S67)、データ読出要求を送信してきたアプリケーションに応答する(S68)。
【0086】
アプリケーションは、制御API10からの応答データを受信すると(S53)、受信した応答データに応じた処理を行う(S54)。例えば、アクセス拒否通知を受信した場合にはその旨を表示部6に表示させる。また、データ読出要求を行ったデータを受信した場合には、当該データに応じた画像を表示部6に表示させたり、当該データを用いた処理を行ったりする。
【0087】
その後、アプリケーションは、当該アプリケーションを終了するか否かを判断し(S55)、終了しない場合にはS51の処理に戻る。
【0088】
なお、図6に示した処理では、秘密データに対するアクセスの可否を、データ読出要求を送信してきたアプリケーションが読み出し対象の秘密データに対応するアプリケーションと一致するか否かに応じて判断しているが、これに加えて、データ読出要求を行ったユーザが適切なユーザであるか否かを秘密データに対するアクセスの可否の判断基準としてもよい。図11はこの場合のウェブサーバ部11で動作するアプリケーションで用いるデータを記憶部12から読み出す処理の一例を示すフローチャートである。なお、説明の便宜上、図11に示した処理のうち、図6と同じ処理については図6と同じ符号を付し、その説明を省略する。
【0089】
図11の処理では、S51においてデータの読み出しを要する処理が発生したと判断した場合、アプリケーションは、データ読出要求、および読み出すデータの当該アプリケーションにおける管理上の保存パス(保存先情報)に加えて、当該アプリケーションを実行しているユーザのユーザID(ユーザ識別情報)を制御API10に送信する(S52b)。そして、制御API10は、アプリケーションからデータ読出要求、保存パス、およびユーザIDを受信する(S61b)。
【0090】
また、制御API10は、S64においてデータ読出要求を送信してきたアプリケーションと読み出し対象の秘密データに対応するアプリケーションとが一致すると判断した場合、S61bで受信したユーザIDが適切であるか否かを判断する(S64b)。例えば、秘密データ記憶領域16にアプリケーション毎に当該アプリケーションの秘密情報にアクセス可能なユーザのユーザID(許可ユーザ情報)を示したテーブルを記憶させておき、制御API10は、当該テーブルとS61bで受信したユーザIDとを照合することでユーザIDが適切であるか否かを判断する。
【0091】
そして、制御API10は、ユーザIDが適切でないと判断した場合にはS65の処理を行い、ユーザIDが適切であると判断した場合にはS66の処理に進む。
【0092】
(1−2−4.データ削除処理)
次に、複合機1に登録されているアプリケーションを削除する削除処理について説明する。図7は、アプリケーションの削除処理の流れを示すフローチャートである。
【0093】
機器制御部8は、ユーザが操作部4を介して入力したアプリケーションの削除指示を受け付けると(S71)、制御API10にユーザから削除指示されたアプリケーションの削除要求(削除コマンドおよび削除対象のアプリケーション名)を送信する(S72)。具体的には、機器制御部8は、アプリケーションの削除を行うためのネイティブアプリケーション(複合機1に固有のプログラム;削除アプリケーション)を備えており、このネイティブアプリケーションを実行し、制御API10にアプリケーションの削除要求を送信する。
【0094】
制御API10は、機器制御部8からアプリケーションの削除要求を受信すると(S81)、公開データ記憶領域から当該アプリケーションのデータを削除する(S82)。例えば、アプリケーションAを削除する場合、アプリケーションA用データ記憶領域13の公開データ記憶領域13a、すなわち、ファイルパス:wwwroot/App−Aに記憶しているデータを削除する。
【0095】
また、制御API10は、当該アプリケーションの秘密データが秘密データ記憶領域に記憶されているか否かを判断する(S83)。具体的には、制御API10は、上述したように、ウェブサーバ部11のファイルシステムで扱われる保存先パス(保存先情報)と、実際に秘密データが記憶されている保存先パス(記憶先情報)とを対応付けた対応情報をファイル情報記憶部17に記憶させている。制御API10は、この対応情報を参照し、削除対象のアプリケーションに対応する秘密データが秘密データ記憶領域に記憶されているか否かを判断する。
【0096】
なお、ファイル情報記憶部17に制御部API10がアクセスした秘密データ記憶領域内のディレクトリの履歴情報を保存しておき、機器制御部8で動作する上記のネイティブアプリケーションあるいは制御部API10が、この履歴情報に基づいて削除対象のアプリケーションに対応するディレクトリを抽出することにより、当該アプリケーションの秘密データが秘密データ記憶領域に記憶されているか否かを判断するようにしてもよい。
【0097】
そして、秘密データが記憶されていないと判断した場合には、制御API10は、そのまま処理を終了する。
【0098】
一方、秘密データが記憶されていると判断した場合、制御API10は、秘密データ記憶領域に記憶されている当該アプリケーションのデータを削除するとともに(S84)、ファイル情報記憶部17に記憶している対応情報のうち秘密データ記憶領域から削除した秘密データに対応する対応情報を削除し(S85)、削除処理を終了する。例えば、アプリケーションAを削除する場合、アプリケーションA用データ記憶領域13の秘密データ記憶領域13b、すなわち、ファイルパス:Security/App−Aに記憶しているデータを削除する。これにより、アプリケーションが任意に作成したファイルを記憶している場合であっても、当該ファイルを確実に削除し、削除したアプリケーションのファイルが残存することを防止できる。
【0099】
なお、図7の例では、アプリケーションの削除指示が行われた場合に、公開データ記憶領域に記憶されている当該アプリケーションのデータ、および秘密データ記憶領域に記憶されている当該アプリケーションのデータの全てを削除する場合について説明した。しかしながら、これに限らず、例えば、削除前のアプリケーションが作成したデータの一部または全部を削除せずに残すようにしてもよい。
【0100】
例えば、アプリケーションの更新を行う場合、当該アプリケーションに対応する秘密データあるいはその一部(例えばアプリケーション自身の設定情報やユーザ情報など)については削除せずに残しておき、アプリケーションの更新後にも継続して利用できるようにしてもよい。これにより、設定情報やユーザ情報の再入力が不要になるので、ユーザの利便性を向上させることができる。
【0101】
また、アプリケーションの削除を行う場合、当該アプリケーションに対応する秘密データあるいはその一部(例えばアプリケーション自身の設定情報やユーザ情報など)についてはアプリケーションの削除処理の時点では削除せずに残しておき、アプリケーションの削除処理を行ってから所定期間が経過しても削除したアプリケーション(あるいは当該アプリケーションのバージョンアップ版)の再インストールが行われなかった場合に削除するようにしてもよい。この場合、機器制御部8で動作する上記のネイティブプログラム(削除プログラム)は、制御API10にアプリケーションの削除指示を行ってから所定期間が経過したときに、制御API10に対して削除したアプリケーションに対応する残存ファイルの削除要求を行う。例えば、上記のネイティブプログラムは、削除指示を行った日時を記憶しており、複合機1の電源が投入される毎に、削除指示を行った日時から所定期間以上経過したかを判断する。そして、所定期間以上経過したと判断した場合に、制御API10に残存ファイルの削除要求を行う。これにより、アプリケーションの削除後、アプリケーションの再インストールが行われる場合に、設定情報やユーザ情報の再入力を不要としてユーザの利便性を向上させるとともに、不要なファイルが複合機1内に残存し続けることを防止できる。
【0102】
また、S72においてアプリケーション削除要求を送信する際、機器制御部8が制御APIに通常削除を行うか完全削除(削除対象の情報が記憶されている記憶領域にランダムデータを上書きすることにより、削除対象の情報を復元不可能に削除する処理)を行うかを示す削除方法情報を通知し、制御部API10が、S84およびS85の削除処理を行う際、当該削除方法情報に応じた方法で削除処理を行うようにしてもよい。例えば、アプリケーション毎に通常削除を行うか完全削除を行うかを指定したテーブルを予め記憶しておき、機器制御部8が当該テーブルに基づいて通常削除を行うか完全削除を行うかを決定するようにしてもよい。あるいは、通常削除を行うか完全削除を行うかをユーザの選択指示に応じて決定するようにしてもよい。
【0103】
(1−2−5.データ保存処理の変形例)
上述した図2の例では、ウェブサーバ部11で動作するアプリケーションは、秘密データであるか否かにかかわらず、制御API10を介して記憶部12にデータを保存するようにしているが、これに限るものではない。例えば、秘密データについては制御API10を介して記憶部12に記憶させる一方、秘密データではないデータについてはウェブサーバ部11で動作するアプリケーションが記憶部12に直接保存させるようにしてもよい。図8は、この場合の処理の流れを示すフローチャートである。
【0104】
まず、アプリケーション(ウェブサーバ部11)は、記憶部12に対するデータ保存処理が発生したか否かを判断する(S91)。
【0105】
そして、データ保存処理が発生した場合、アプリケーションは、保存するデータが秘密データであるか否か、すなわち記憶部12に対して外部から任意にアクセス可能に保存するか、制御API10を介してアクセスする場合にのみアクセス可能にするかを判断する(S92)。
【0106】
そして、秘密データではないと判断した場合、アプリケーションは、記憶部12の公開データ記憶領域における所望の保存先パス(当該アプリケーションのファイルシステムで管理している保存先パス(保存先情報))に対応する記憶領域にデータを保存し(S93)、S95の処理に進む。
【0107】
一方、秘密データであると判断した場合、アプリケーションは、保存データ、および当該保存データの保存先を指定する保存パスを制御API10に送信し(S94)、S95の処理に進む。
【0108】
S95において、アプリケーションは、当該アプリケーションを終了させるか否かを判断し、終了させない場合にはS91の処理に戻る。
【0109】
制御API(データ管理部)10は、アプリケーション(ウェブサーバ部11)から保存データおよび保存パス(保存先情報)を受信すると(S101)、受信した保存パスを秘密データ保存用の保存パス(記憶先情報)に変更し、アプリケーションから受信した保存データを変更後の保存パス(記憶先情報)に応じた記憶領域に保存する(S102)。すなわち、制御API10は、アプリケーション(ウェブサーバ部11)から受信した保存データを秘密データ記憶領域に記憶させる。
【0110】
また、制御API10は、S102で保存データを実際に記憶させた保存先パス(記憶先情報)と、S101でアプリケーションから受信した保存パス(保存先情報)とを対応付けた対応情報を記憶部12のファイル情報記憶部17に記憶させ(S103)、処理を終了する。
【0111】
(1−2−6.データ読出処理(アクセス処理)の変形例)
上述した図6の例では、ウェブサーバ部11で動作するアプリケーションは、記憶部12に記憶されているデータを読み出す際、秘密データであるか否かにかかわらず、制御API10を介して記憶部12からデータを読み出していたが、これに限るものではない。例えば、秘密データについては制御API10を介して記憶部12(秘密データ記憶領域)から読み出し、秘密データではないデータについてはウェブサーバ部11で動作するアプリケーションが記憶部12(公開データ記憶領域)から直接読み出すようにしてもよい。図9は、この場合の処理の流れを示すフローチャートである。
【0112】
まず、アプリケーション(ウェブサーバ部11)は、記憶部12からデータを読み出す処理が発生したか否かを判断する(S111)。
【0113】
そして、データの読み出し処理が発生した場合、アプリケーションは、読み出し対象のデータが秘密データであるか否かを判断する(S112)。
【0114】
秘密データではないと判断した場合、アプリケーションは、記憶部12の公開データ記憶領域にアクセスして該当するデータを読み出し(S113)、S117の処理に移行する。
【0115】
一方、秘密データであると判断した場合、アプリケーションは、データ読出要求、および読み出すデータの保存パス(保存先情報)を制御API10に送信する(S114)。
【0116】
制御API10は、アプリケーションからデータ読出要求および保存パス(保存先情報)を受信すると(S121)、データ読出要求を送信してきたアプリケーションが、読み出し対象の秘密データに対応するアプリケーションと一致するか否かを判断する(S122)。判断方法は上述した図6の場合と同様である。
【0117】
S122においてデータ読出要求を送信してきたアプリケーションと読み出し対象の秘密データに対応するアプリケーションとが一致しないと判断した場合、制御API10は、当該秘密データへのアクセスを拒否する旨の通知(アクセス拒否通知)をアプリケーションに応答する(S123)。
【0118】
一方、S122においてデータ読出要求を送信してきたアプリケーションと読み出し対象の秘密データに対応するアプリケーションとが一致すると判断した場合、制御API10は、アプリケーションから受信した保存先パス(保存先情報)に対応付けてファイル情報記憶部17に記憶されている秘密データの保存先パス(記憶先情報)を読み出す(S124)。そして、制御API10は、ファイル情報記憶部17から読み出した上記保存パスに対応するデータを秘密データ記憶領域から読み出し(S125)、データ読出要求を送信してきたアプリケーションに応答する(S126)。
【0119】
アプリケーションは、制御API10からの応答データを受信すると(S114)、受信した応答データに応じた処理を行う(S115)。例えば、アクセス拒否通知を受信した場合にはその旨を表示部6に表示させる。また、データ読出要求を行ったデータを受信した場合には、当該データに応じた画像を表示部6に表示させたり、当該データを用いた処理を行ったりする。
【0120】
その後、アプリケーションは、当該アプリケーションを終了するか否かを判断し(S117)、終了しない場合にはS51の処理に戻る。
【0121】
(1−3.複合機1の利点)
以上のように、本実施形態にかかる複合機1は、ウェブアプリケーションA〜Cを実行するウェブサーバ部11を備えた複合機(情報処理装置)1であって、ウェブアプリケーションA〜Cによって用いられるデータを記憶する記憶部(データ記憶部)12と、記憶部12に記憶させるデータの管理を行う制御API(データ管理部)10とを備え、ウェブアプリケーションA〜Cは、当該ウェブアプリケーション以外に非公開とするデータである秘密データを記憶部12に記憶させる場合に、当該秘密データのデータ名と、当該秘密データの当該ウェブアプリケーションにおける管理上の保存先パス(保存先情報)とを制御API10に伝達し、制御API10は、上記秘密データを記憶部12における当該制御API10のみがアクセス可能な記憶領域である秘密データ記憶領域13b,14b,15bに記憶させるとともに、上記秘密データを実際に記憶させた記憶先を示す保存先パス(記憶先情報)と上記ウェブアプリケーションから伝達された保存先パス(保存先情報)とを対応付けた対応情報を秘密データ記憶領域16に設けたファイル情報記憶部17に記憶させる。
【0122】
より具体的に説明すると、例えば、ウェブアプリケーションA、B,・・・が図5(a)に示したようなフォルダ構造を有している構成において、ウェブアプリケーションAが秘密データとしてキー情報(Key.txt)を記憶させる場合、従来の構成では、図10に示すように公開データ記憶領域内のルートフォルダ(wwwroot)内におけるアプリケーションAに対応するアプリケーションフォルダApp−Aに記憶させていた。この場合、複合機1のウェブサーバ部11で動作する他のアプリケーション、あるいは複合機1に対して通信可能に接続された外部装置からHTTPリクエストにより当該秘密データにアクセスできる状態になり、セキュリティ上問題があった。もちろん、ウェブアプリケーションAが秘密データとしてキー情報(key.txt)を保存していることは、当該キー情報を保存したウェブアプリケーションAのみが知りえる情報である。しかしながら、例えば、ユーザがURLをタイプミスした場合や、ウェブアプリケーションAの設計情報が漏えいした場合など、偶然もしくは故意によってキー情報が漏えいしてしまう危険性が否定できなかった。
【0123】
これに対して、本実施形態では、図5(b)に示したように、制御API10が、記憶部12におけるルートフォルダ(wwwroot)の階層構造の外部に制御API10のみがアクセス可能な非公開フォルダ(Security)を作成し、この非公開フォルダの階層構造内に設けたアプリケーションフォルダApp−Aに秘密データ(key.txt)を保存する。
【0124】
これにより、秘密データはウェブアプリケーションから直接アクセスすることのできない秘密データ記憶領域に保存されるので、複合機1における当該秘密データを記憶させたアプリケーション以外のアプリケーション、あるいは複合機1に対して通信可能に接続される他の装置から秘密データへのアクセスを遮断することができる。また、正規のウェブアプリケーションは、制御API10に対してアクセスしたい秘密データのデータ名および当該ウェブアプリケーションにおける管理上の保存先パス(保存先情報)を制御API10に通知することにより、制御API10を介して秘密データにアクセスすることができる。したがって、ウェブアプリケーション実行環境を備えた情報処理装置において、機密情報の漏洩を防止するとともに、正規のウェブアプリケーションが機密情報を容易に利用することができる。
【0125】
また、本実施形態では、制御API10は、秘密データを秘密データ記憶領域に記憶させる際、ウェブアプリケーションから通知された保存先パス(保存先情報)に示されたファイルパス(例えばwwwroot/App−A/key.txt)の一部を内部的に変更することにより、秘密データ記憶領域に対する実際の保存先パス(記憶先情報;例えばSecurity/App−A/key.txt)に変換して当該秘密データを秘密データ記憶領域に記憶させる。換言すれば、制御API10は、秘密データ記憶領域内にウェブアプリケーション毎のフォルダを作成し、秘密データを秘密データ記憶領域における当該秘密データに対応するウェブアプリケーションのフォルダに格納する。
【0126】
これにより、外部装置からHTTPでアクセスできるのは公開データ記憶領域内のフォルダ(ウェブ公開フォルダ)だけであり、秘密データ記憶領域内のフォルダにはアクセスできないので、秘密データが外部装置から搾取されることを防止できる。また、秘密データについても、秘密データ以外のデータと同様、サンドボックスセキュリティモデルを維持したまま記憶させることができるので、他のウェブアプリケーションからアクセスされたり、システムファイルが改変されたりすることをより確実に防止できる。また、正規のウェブアプリケーションでは、従来のファイルシステムを用いて秘密データおよび秘密データ以外の両方を管理することができる。
【0127】
なお、制御API10は、秘密データを秘密データ記領域に記憶させる場合に、当該秘密データに対応するウェブアプリケーションのフォルダを秘密データ記憶領域に作成し、上記秘密データを当該フォルダ内に記憶させる構成としてもよい。
【0128】
上記の構成によれば、秘密データを、サンドボックスセキュリティモデルを維持したまま秘密データ記憶領域に記憶させることができるので、他のウェブアプリケーションや外部装置からアクセスされることをより適切に防止することができる。また、各秘密データを、各秘密データに対応する正規のウェブアプリケーション毎に管理できるので、秘密データへのアクセスを要求してきたウェブアプリケーションが当該秘密データに対応する正規のウェブアプリケーションであるか否かを容易に判定することができる。
【0129】
また、ウェブアプリケーションは、秘密データ記憶領域に記憶されている秘密データにアクセスする場合に、当該秘密データのデータ名と、当該秘密データの保存先情報とを含むアクセス要求を制御API10に伝達し、制御API10は、上記アクセス要求を受け付けた場合に、当該アクセス要求に含まれる保存先情報に対応する記憶先情報を秘密データ記憶領域から読み出し、読み出した記憶先情報に基づいて上記秘密データにアクセスする。
【0130】
上記の構成によれば、ウェブアプリケーションは、秘密データと秘密データ以外のデータとを共通のファイルシステムを用いて管理することができる。また、ウェブアプリケーションがデータ管理部に対して当該ウェブアプリケーションのファイルシステムで管理している保存先情報を通知するだけでデータ管理部を介して当該保存先情報に対応する秘密データにアクセスできるので、秘密データに対して容易にアクセスできる。
【0131】
また、制御API10は、秘密データを秘密データ記憶領域に記憶させる際、秘密データを実際に記憶させる記憶先を示す記憶先情報とウェブアプリケーションから伝達された保存先情報とを対応付けた対応情報と当該秘密データに対応するウェブアプリケーションの識別情報とを対応付けて秘密データ記憶領域に記憶させ、当該秘密データに対するアクセス要求を受け付けた場合に、アクセス要求を行ったウェブアプリケーションがアクセス対象の秘密データに対応するアプリケーションであるか否かを上記識別情報に基づいて判断し、アクセス要求を行ったウェブアプリケーションがアクセス対象の秘密データに対応するアプリケーションではない場合に上記秘密データに対するアクセスを拒否する構成としてもよい。
【0132】
上記の構成によれば、秘密データに対応するアクセス要求を行ったウェブアプリケーションが当該秘密データに対応する正規のウェブアプリケーションであるかを容易に判定し、正規のウェブアプリケーション以外のウェブアプリケーションかのアクセス要求を拒否することができる。
【0133】
また、制御API10は、ウェブアプリケーションの削除を行う場合、当該ウェブアプリケーションによって用いられるデータのうち秘密データではないデータについては当該ウェブアプリケーションの削除時に削除し、秘密データについては当該ウェブアプリケーションの削除を行ってから所定期間経過しても当該ウェブアプリケーションの再インストールが行われなかった場合に削除する構成としてもよい。
【0134】
上記の構成によれば、ウェブアプリケーションの削除処理を行った後、所定期間が経過するまでは当該ウェブアプリケーションに対応する秘密データを記憶しておくので、所定期間以内に当該ウェブアプリケーションの再インストールを行う場合に当該ウェブアプリケーションに対応する秘密データを有効利用することができる。
【0135】
また、本実施形態では、本発明を、ウェブアプリケーションを実行するウェブサーバを備えた複合機に適用する場合について説明したが、本発明の適用対象はこれに限るものではない。すなわち、本発明は、ウェブアプリケーションを実行するウェブサーバの機能を備えた情報処理装置であれば適用でき、例えば、パーソナルコンピュータ、サーバ装置、携帯情報端末、スキャナ(画像読取装置)、プリンタ(画像形成装置)、複写機(画像形成装置)、画像編集装置(画像処理装置)、画像再生装置、録画装置などに適用することができる。
【0136】
また、上記実施形態において、複合機1に備えられる各部(各ブロック)、特に、ウェブブラウザ部7、機器制御部8、ウェブサーバ部11、および制御API10を、CPU等のプロセッサを用いてソフトウェアによって実現してもよい。この場合、複合機1は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである複合機1の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、複合機1に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
【0137】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0138】
また、複合機1を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークの構成は特に限定されるものではなく、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体についても特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【0139】
また、複合機1の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよい。また、複合機1の各ブロックは、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
【0140】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【0141】
本発明は、ウェブアプリケーションを実行するウェブサーバ部を備えた情報処理装置に適用できる。
【符号の説明】
【0142】
1 複合機(情報処理装置)
2 画像読取部
3 画像形成部
4 操作部
5 入力部
6 表示部
7 ウェブブラウザ部
8 機器制御部
9 通信部
10 制御API(データ管理部)
11 ウェブサーバ部
12 記憶部(データ記憶部)
13 アプリケーションA用データ記憶領域
13a,14a,15a 公開データ記憶領域
13b,14b,15b 秘密データ記憶領域
14 アプリケーションB用データ記憶領域
15 アプリケーションC用データ記憶領域
16 秘密データ記憶領域
17 ファイル情報記憶部


【特許請求の範囲】
【請求項1】
ウェブアプリケーションを実行するウェブサーバ部を備えた情報処理装置であって、
上記ウェブアプリケーションによって用いられるデータを記憶するデータ記憶部と、
上記データ記憶部に記憶させるデータの管理を行うデータ管理部とを備え、
上記ウェブアプリケーションは、当該ウェブアプリケーション以外に対して非公開とするデータである秘密データを上記データ記憶部に記憶させる場合に、当該秘密データのデータ名と、当該秘密データの当該ウェブアプリケーションにおける管理上の保存先情報とを上記データ管理部に伝達し、
上記データ管理部は、上記秘密データを、上記保存先情報に対応する記憶領域とは異なる記憶領域であって上記データ記憶部における当該データ管理部のみがアクセス可能な記憶領域である秘密データ記憶領域に記憶させるとともに、上記秘密データを実際に記憶させた記憶先を示す記憶先情報と上記ウェブアプリケーションから伝達された上記保存先情報とを対応付けた対応情報を秘密データ記憶領域に記憶させることを特徴とする情報処理装置。
【請求項2】
上記ウェブアプリケーションは、上記データ記憶部にデータを記憶させる場合に、当該データのデータ名、当該データの該ウェブアプリケーションにおける管理上の保存先情報、および当該データが秘密データであるか否かを示す情報を上記データ管理部に伝達し、
上記データ管理部は、
上記ウェブアプリケーションから伝達されたデータが秘密データである場合、当該秘密データおよび上記対応情報を秘密データ記憶領域に記憶させ、
上記ウェブアプリケーションから伝達されたデータが秘密データではない場合、当該データを上記データ記憶部における上記ウェブアプリケーションからアクセス可能な記憶領域に記憶させることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
上記ウェブアプリケーションは、
上記データ記憶部に秘密データではないデータを記憶させる場合に、当該データを上記データ記憶部における当該ウェブアプリケーションから直接アクセス可能な記憶領域に記憶させることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
上記情報処理装置は、当該情報処理装置に登録されているウェブアプリケーションの削除処理を行う削除アプリケーションを備えており、
上記削除アプリケーションは、登録されているウェブアプリケーションの削除を行う場合、上記データ管理部に対して、削除対象のウェブアプリケーションの識別情報を通知し、
上記データ管理部は、上記削除アプリケーションから通知された識別情報に対応するウェブアプリケーションが上記秘密データ記憶領域に直接または上記データ管理部を介して記憶させた各データを上記秘密データ記憶領域から削除することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
上記ウェブアプリケーションは、当該ウェブアプリケーションを実行しているユーザのユーザ識別情報を上記データ管理部に通知し、
上記データ管理部は、上記ウェブアプリケーションから当該ウェブアプリケーションに対応する秘密データへのアクセス要求が行われた場合に、当該ウェブアプリケーションを実行しているユーザのユーザ識別情報と予め記憶している当該アプリケーションに対応する秘密データへのアクセスを許可するユーザの識別情報である許可ユーザ情報とを照合し、上記ユーザ識別情報と上記許可ユーザ情報とが一致しない場合には上記秘密データへのアクセスを拒否することを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
複数の装置機能を有する複合機であって、
請求項1から5のいずれか1項に記載の情報処理装置を備えており、
上記ウェブアプリケーションは、当該複合機の装置機能を制御するためのアプリケーションであることを特徴とする複合機。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−109594(P2013−109594A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−254408(P2011−254408)
【出願日】平成23年11月21日(2011.11.21)
【出願人】(000005049)シャープ株式会社 (33,933)