JP2018055569A - 情報処理装置及びその制御方法、及びプログラム - Google Patents

情報処理装置及びその制御方法、及びプログラム Download PDF

Info

Publication number
JP2018055569A
JP2018055569A JP2016193551A JP2016193551A JP2018055569A JP 2018055569 A JP2018055569 A JP 2018055569A JP 2016193551 A JP2016193551 A JP 2016193551A JP 2016193551 A JP2016193551 A JP 2016193551A JP 2018055569 A JP2018055569 A JP 2018055569A
Authority
JP
Japan
Prior art keywords
application
web
mfp
processing apparatus
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016193551A
Other languages
English (en)
Inventor
聡希 渡内
Masaki Watauchi
聡希 渡内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016193551A priority Critical patent/JP2018055569A/ja
Publication of JP2018055569A publication Critical patent/JP2018055569A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Facsimiles In General (AREA)

Abstract

【課題】 複合機が提供するWebサービスを無制限に利用されるのを防ぐために、Webサービスの利用を複合機毎に許可(ライセンス)を与えたWebアプリケーションに制限することを目的とする。
【解決手段】 Webブラウザを有する情報処理装置で、情報処理装置で機能を実現するローカルアプリケーションと、Webブラウザを呼び出すことでWebサーバが有するWebアプリの機能を実現するWeb接続用アプリケーションを追加し、ローカルアプリケーションのライセンス情報とWeb接続用アプリケーションのライセンス情報を保持する。Web接続用アプリケーションが保持しているURLとWebブラウザでアクセスしているURLとを用いて、Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定する。
【選択図】 図13

Description

本発明は、Webブラウザを有する情報処理装置及びその制御方法、及びプログラムに関する。
近年、スキャン機能やプリント機能を備えた複合機(MFP:Multi Function Peripheral)には、アプリケーションを複合機内にインストールすることで複合機の機能を拡張できるシステムが普及している。また、複合機毎にアプリケーションのライセンスを管理する仕組みが知られている(例えば特許文献1参照)。
一方、ネットワークで接続されたWebサーバから提供されるWebアプリケーションの操作画面を、複合機が備えるWebブラウザにより表示して、ユーザがその操作画面を操作することが知られている。Webアプリケーションは、複合機が提供するWebサービスを利用することで、複合機の情報を取得したり、複合機の機能を呼び出したりする。
特開2006−40217号公報
複合機が提供するWebサービスを無制限に利用されるのを防ぐために、Webサービスの利用を複合機毎に許可(ライセンス)を与えたWebアプリケーションからのみに制限できるようにしたい。しかし、従来技術には、Webアプリケーションを複合機毎にライセンス管理する仕組みがなかった。Webアプリケーションを複合機毎にライセンス管理しようとした場合、Webアプリケーションは複合機にインストールされるアプリケーションではないため、既存のライセンス管理の仕組みをそのまま使用することはできないという課題があった。さらに、既存の仕組みとは別にWebアプリケーション専用の仕組みを用意する場合、ひとつの複合機に対して、複数の異なるライセンス管理の仕組みを用意することになり、販売者や管理者にとって利便性が低下するという課題があった。
本発明は、複合機が提供するWebサービスを無制限に利用されるのを防ぐために、Webサービスの利用を複合機毎に許可(ライセンス)を与えたWebアプリケーションに制限することを目的とする。
本発明は、Webブラウザを有する情報処理装置であって、前記情報処理装置で機能を実現するローカルアプリケーションと、前記Webブラウザを呼び出すことでWebサーバが有するWebアプリの機能を実現するWeb接続用アプリケーションを追加する追加手段と、前記ローカルアプリケーションのライセンス情報と前記Web接続用アプリケーションのライセンス情報を保持する保持手段と、前記Web接続用アプリケーションが保持しているURLと前記WebブラウザでアクセスしているURLとを用いて、前記Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定する判定手段を有することを特徴とする。
本発明によれば、Webサービスの利用を複合機毎に許可を与えたWebアプリケーションに制限することができるという効果がある。
本発明の実施形態に係る情報処理システムの全体構成を示す図。 実施形態に係るMFPのハードウェア構成を説明するブロック図。 実施形態に係るライセンス管理サーバのハードウェア構成を示すブロック図。 実施形態に係るライセンス管理サーバのソフトウェアモジュールの構成を説明するブロック図。 (A)実施形態に係るMFPアプリ管理テーブルの一例を示す図、(B)ライセンス管理テーブルの一例を示す図。 実施形態に係るライセンス管理サーバが発行するライセンスファイルの一例を示す図。 実施形態に係るMFPのアプリケーション及びソフトウェアモジュールの構成を示す図。 実施形態に係るWeb接続用MFPアプリのソフトウェアモジュールの構成を示す図。 実施形態に係るWeb接続用MFPアプリのマニフェストファイルの一例を示す図。 実施形態に係るWebアプリサーバのソフトウェアモジュールの構成を示す図。 実施形態に係るMFPにおける処理の一例を示すフローチャート。 実施形態に係るMFPの操作部に表示されるGUIの一例を示す図。 本発明の実施形態に係る情報処理システムにおける処理の一例を示すシーケンス図。 実施形態に係るMFPにおける処理の一例を示すフローチャート。 実施形態に係るWebアプリサーバにおける処理の一例を示すフローチャート。 実施形態に係るローカルMFPアプリのソフトウェアモジュールの構成を示す図。 実施形態に係るローカルMFPアプリのマニフェストファイルの一例を示す図。 実施形態に係るライセンス情報テーブルの一例を示す図。 実施形態に係るMFPにおける処理の一例を示すフローチャート。 実施形態に係るMFPにおける処理の一例を示すフローチャート。 実施形態に係るMFPにおける処理の一例を示すフローチャート。 実施形態に係るMFPにおける処理の一例を示すフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
本実施形態では、アプリケーションを次のように定義する。ネットワークで接続されたWebサーバから提供されるタイプのアプリケーションをWebアプリケーション(以降、Webアプリ)と呼ぶ。Webアプリの操作画面は、複合機が備えるWebブラウザを用いて表示する。一方、複合機にインストールするタイプのアプリケーションをMFPアプリケーション(以降、MFPアプリ)と呼ぶ。インストールされたMFPアプリは、複合機内にデータとして格納されている。
図1は、本発明の実施形態に係る情報処理システムの全体構成を示す図である。
この情報処理システムでは、LAN100を介してMFP110とPC140とが接続されており、またこのLAN100は、インターネット150に接続されている。更にこのインターネット150には、ライセンス管理サーバ120とWebアプリサーバ(Webサーバ)130が接続されている。
MFP110は、操作部111、スキャナ部112、プリンタ部113を有する複合機(多機能処理装置)である。実施形態に係るMFP110は、内蔵するWebブラウザを利用してWebアプリの操作画面を表示及び操作するクライアント端末としても機能する。またMFP110は、Webアプリの指示に応じて、プリンタ部113を利用してWebアプリから取得した画像を印刷でき、スキャナ部112を利用して原稿を読み取って得られた画像データをWebアプリに送信できる。尚、この実施形態に係るMFPにはデバイスIDという識別子が割り当てられており、この識別子により一意に、各MFPを特定、認識できる。
ライセンス管理サーバ120は、MFPアプリのライセンスを管理するサーバである。Webアプリサーバ130は、Webアプリを実行するサーバである。PC140は、MFP110に対して各種設定を行うための端末装置として機能している。但し、上述のシステム構成はあくまでも一例であり、これらの機器の数などは、本実施形態に限定されない。
図2は、実施形態に係るMFP110のハードウェア構成を説明するブロック図である。
操作部111は、タッチパネル機能を有する表示部や各種ハードキー等を有し、制御部200からのデータに従ってユーザに対して情報を表示したり、ユーザの操作に応じた情報を制御部200に入力したりする。スキャナ部112は、原稿上の画像を読み取って、その画像の画像データを作成して制御部200に供給する。プリンタ部113は、制御部200から受け取った画像データに基づいて用紙上に画像を印刷する。
制御部200は、操作部111、スキャナ部112、プリンタ部113と電気的に接続されており、またLAN100にもネットワークインターフェース(I/F)206を介して接続されている。これによりLAN100を介した、TCP/IP等の通信プロトコルによる通信が可能となっている。制御部200において、CPU201、ROM202、RAM203、HDD204、操作部I/F205、ネットワークI/F206、スキャナI/F207、画像処理部208及びプリンタI/F209がシステムバス211を介して接続されている。CPU201は、ROM202のブートプログラムを実行してHDD204に記憶されたOSや制御プログラムをRAM203に展開し、そのプログラムに基づいてこのMFP110を統括的に制御する。この制御には、後述のフローチャートを実現するためのプログラムの実行も含む。ROM202には、このMFP110のブートプログラムや各種データが格納されている。RAM203は、CPU201が動作するためのワークメモリを提供し、また画像データを一時記憶するための画像メモリも提供している。HDD204はハードディスクドライブであり、OSや各種プログラムや画像データを格納している。操作部I/F205は、システムバス211と操作部111とを接続するためのインターフェース部である。ネットワークI/F206は、LAN100及びシステムバス211に接続し、ネットワークを介して情報の入出力を行う。スキャナI/F207は、スキャナ部112と制御部200との間のインターフェースを制御する。画像処理部208は、スキャナ部112から入力した画像データ、及びプリンタ部113に出力する画像データに対して、回転、色変換、画像圧縮/伸張処理などの画像処理を行う。プリンタI/F209は、画像処理部208で処理された画像データを受け取り、この画像データに付随している属性データに従ってプリンタ部113による印刷を制御する。尚、実施形態では、操作部111を用いたUI表示が可能なMFPの例で説明するが、このMFP110に代えて、例えば汎用コンピュータ等のような情報処理装置を採用してもよい。
図3は、実施形態に係るライセンス管理サーバ120のハードウェア構成を示すブロック図である。
ライセンス管理サーバ120は、CPU301、RAM302、ROM303、ハードディスクドライブ(HDD)304、ネットワークI/F305を有し、これらはシステムバス306を介して互いに通信可能に接続されている。ROM303はブートプログラムを格納しており、CPU301は電源オン時に、このブートプログラムを読み出してHDD304にインストールされているOSや制御プログラム等をRAM302に展開する。そしてCPU301が、RAM302に展開したプログラムを実行することにより、このライセンス管理サーバ120の機能が実現される。またCPU301は、ネットワークI/F305を介して接続されているネットワーク上の他の装置との通信を行う。尚、Webアプリサーバ130とPC140のハードウェア構成も、図3で示したライセンス管理サーバ120のハードウェア構成と同様であるため、その説明を省略する。
図4は、実施形態に係るライセンス管理サーバ120のソフトウェアモジュールの構成を説明するブロック図である。これらモジュールを実現するプログラムはライセンス管理サーバ120のHDD304に格納されており、それをRAM302に展開してCPU301が実行することにより、これらモジュールの機能が達成される。
本実施形態に係るライセンス管理サーバ120は、MFPアプリの暗号化、個々のMFPにMFPアプリをインストールするためのライセンスの発行、個々のライセンスを管理するライセンスアクセス番号の発行の3つの処理を行う。
通信部401は、ネットワークを介して外部装置と通信して処理要求の受け付けを行い、その処理要求に応じて、MFPアプリ管理部402とライセンス管理部404に要求を振り分ける。MFPアプリ管理部402は、暗号化前のMFPアプリを受け取って、そのMFPアプリを暗号化する。MFPアプリ管理部402は、インターネット150に接続された端末(不図示)を通じて、アプリケーション開発ベンダーからMFPアプリを受け取る。そして、そのMFPアプリを一意に識別するためのID(以降、MFPアプリID)と、そのMFPアプリの暗号共通鍵を生成してMFPアプリ管理テーブル403に登録する。MFPアプリIDは、個々のMFPアプリを識別するための識別情報である。MFPアプリの暗号共通鍵は、そのMFPアプリを暗号化するための暗号鍵である。そして、その暗号共通鍵を用いてMFPアプリを暗号化し、その暗号化したMFPアプリと、MFPアプリIDとを要求元に送信する。MFPアプリ管理テーブル403は、MFPアプリ管理部402が生成したMFPアプリIDとMFPアプリの暗号共通鍵を関連付けて保存するデータベースである。
図5(A)は、実施形態に係るMFPアプリ管理テーブル403の一例を示す図である。
列501は、MFPアプリID、列502は、MFPアプリの暗号共通鍵を示している。
ライセンス管理部404は、各MFPにMFPアプリをインストールするためのライセンスの発行、ライセンスの発行を行うためのライセンスアクセス番号を管理する。アプリケーションを販売する販売者から、販売対象のMFPアプリに対応するライセンスアクセス番号の発行要求を受け取ると、ライセンス管理部404は、そのMFPアプリに対応したライセンスアクセス番号を発行する。そして、そのライセンスアクセス番号をライセンス管理テーブル406に登録する。ここでライセンスアクセス番号は、一意にそのMFPアプリの一つのライセンスを管理するための番号であり、アプリケーションの販売者は、前述の暗号化されたMFPアプリと、このライセンスアクセス番号とを併せて販売する。またライセンス管理部404は、MFPアプリの購入者から、ライセンスアクセス番号とデバイスIDを受け取ると、その購入者(ユーザ)に対してライセンスを発行する。このライセンスの発行は、MFPアプリ管理テーブル403とライセンス管理テーブル406とを参照して、ライセンスアクセス番号に対応したライセンスファイルを作成する処理である。
ここではまず、ライセンスアクセス番号からMFPアプリIDを取得し、MFPアプリIDに紐づくMFPアプリの暗号共通鍵を取得する。そしてライセンスIDを発行し、ライセンス管理テーブル406にデバイスIDとライセンスIDとを記録するとともに、これら情報を1つのファイルとしてライセンスファイルを作成する。こうして作成されたライセンスファイルは、ライセンス管理部404が内部に保持するライセンスファイルの暗号鍵405で暗号化して要求元に送信する。ライセンスファイルの暗号鍵405は、公開鍵暗号化方式における公開鍵である。尚、これに対応する秘密鍵は後述するMFP110のソフトウェアに含まれている。ライセンス管理テーブル406は、ライセンスに関係する情報を保存するデータベースである。
図5(B)は、実施形態に係るライセンス管理テーブル406の一例を模式的に示す図である。
列511はMFPアプリID、列512はライセンスアクセス番号、列513はライセンスの有効期限を日数で示している。この日数は、MFPアプリをMFPにインストールした日時から数えて何日間有効であるかを示している。列514はデバイスID(MFPアプリをインストールしたMFPのID)、列515はライセンスIDを示している。行516は、ライセンスアクセス番号を発行しているが、ライセンスが未発行のMFPアプリの例であり、ここではデバイスIDとライセンスIDは空である。行517はライセンスを発行済みのMFPアプリの例を示し、デバイスID(DEV001)とライセンスID(LIC001)が登録されている。また行518もライセンスを発行済みのMFPアプリの例を示し、有効期限は60日、デバイスID(DEV002)とライセンスID(LIC002)が登録されている。
このようにライセンス管理テーブル406には、MFPアプリのIDとMFP110のデバイスIDとが対応付けて登録されている。このため、このライセンス管理テーブル406を参照することにより、どのMFPに、どのMFPアプリのライセンスが発行されているかが分かる。
図6は、実施形態に係るライセンス管理サーバ120が発行するライセンスファイルの一例を示す図である。
ここでは、図5(B)のライセンス管理テーブル406の行518に対応するライセンスファイルの一例を示している。ここでは図5(B)から、ラインセンスID(LIC002)、MFPアプリID(APP712),デバイスID(DEV002)、有効期限(60日)が得られる。また図5(A)のアプリケーション管理テーブル403から、アプリケーション(APP712)の暗号共通鍵(WasiIDcQR6dYj...)が得られている。このようにライセンスファイルは、ライセンス管理部404が、MFPアプリ管理テーブル403とライセンス管理テーブル406から取得した情報に基づいて作成されている。
このようにしてMFPアプリの購入者は、その購入したMFPアプリのライセンスアクセス番号を基に、暗号化されたライセンスファイルを取得することができる。
図7は、実施形態に係るMFP110のソフトウェアモジュールの構成を示す図である。これらソフトウェアモジュールは、MFP110のHDD204に格納され、実行時にはRAM203に展開されてCPU201により実行される。
インストール処理部701は、MFPアプリのインストールを制御する。インストール処理部701は、ネットワークI/F206を介してPC140に接続され、PC140からの指示によりMFPアプリのインストールを実行する。またインストール処理部701は、暗号化されたライセンスファイルを復号化するためのライセンスファイル復号鍵702を含んでいる。このライセンスファイル復号鍵702は、前述のライセンスファイル暗号鍵405に対応している。MFPアプリ管理部703は、MFP110にインストールされているMFPアプリを管理する。ライセンス情報テーブル720は、インストールされたMFPアプリおよびライセンスファイルに関係する情報を保存するデータベースである。
図18は、実施形態に係るライセンス情報テーブル720の一例を模式的に示す図である。
このライセンス情報テーブル720は、MFPアプリID1801、ライセンスの有効期限1802、ライセンスID1803、ライセンスID履歴1804を保持している。ライセンスID履歴1804は、過去にインストールしたライセンスIDの履歴であり、ライセンスの再利用を防止するために保持している。
行1811は、MFPアプリIDが「APP711」であるMFPアプリに対して、有効期限が無期限のライセンスがライセンスID「LIC010」で発行されていることを示している。行1812は、MFPアプリIDが「APP712」であるMFPアプリに対して、有効期限が2016年12月10日のライセンスがライセンスID「LIC002」で発行されていることを示している。また、過去にライセンスID「LIC003」のライセンスが過去にインストールされたことを示している。行1813は、MFPアプリIDが「APP713」であるMFPアプリに対して、有効期限が無期限のライセンスがライセンスID「LIC011」で発行されていることを示している。
メニューアプリ704は、MFP110にインストールされているMFPアプリを選択して実行させるためのGUIを表示する。Webブラウザ705は、Webアプリサーバ130と通信を行う。Webブラウザ705は、Webアプリサーバ130にHTTPプロトコルを用いて要求を送信し、その要求に応答して返送されるHTMLデータをレンダリングして操作部111に表示したり、応答されたJavaScript(登録商標)を解釈して実行したりする。
次に、MFPアプリの購入者によるMFPアプリのインストールについて説明する。
ユーザはPC140を用いて、インストール処理部701に対して、暗号化されたアプリケーションと、暗号化されたライセンスファイルを送信することにより、インストール処理部701は、そのMFPアプリのインストール処理を行う。このときまずライセンスファイル復号鍵702を用いて、ライセンスファイルを復号する。そして、その復号したライセンスファイルに含まれるMFPアプリの暗号共通鍵を用いて、暗号化されたMFPアプリを復号する。こうして復号されたMFPアプリは、アプリケーション管理部703に渡されてHDD204に保存される。この時、復号されたライセンスファイルに記載されているデバイスIDと、MFP110に予め設定されているデバイスIDとを比較し、正しいライセンスファイルかどうかを判定する。またライセンスファイルに記載されている有効期限と現在の日時とから、そのMFPアプリが無効となる日時を計算し、有効期限日としてMFPアプリ管理部703で管理する。
図7では、実施形態の一例としてAPP711、APP712、APP713の3本のMFPアプリがインストールされているものとする。なお、本実施形態ではMFPアプリとして、Web接続用MFPアプリとローカルMFPアプリという2種類のMFPアプリを定義する。また、単にMFPアプリと記述した場合は、Web接続用MFPアプリとローカルMFPアプリを総称したものとする。APP711とAPP712はWeb接続用MFPアプリ(Web接続用アプリケーション)で、APP713はローカルMFPアプリ(ローカルアプリケーション)である。
Web接続用MFPアプリは、Webサーバに配置されたWebアプリが提供する機能をMFP110から実行するためのアプリである。Web接続用MFPアプリは、Webブラウザ705を用いてWebアプリに接続して、Webアプリが提供する機能をMFP110から実行する。Web接続用MFPアプリの詳細は図8で後述する。
一方、ローカルMFPアプリは、MFP110のスキャナ部112、プリンタ部113、画像処理部208などを利用した機能をソフトウェアモジュールとしてMFP110に提供するアプリである。ローカルMFPアプリは、自身が持つソフトウェアモジュールを呼び出すことで、自身が提供する機能をMFP110で実行する。ローカルMFPアプリの詳細は図16で後述する。
なお、MFPにインストールされているMFPアプリの種類、本数はMFPごとに異なる。
図16は実施形態に係るローカルMFPアプリのソフトウェアモジュールの構成を示す図である。ローカルMFPアプリは、提供する機能によりソフトウェアモジュールの構成が異なる。図16では一例として、スキャナ部112で読み取った原稿を、ネットワークI/F206を通して外部に送信する機能を提供するローカルMFPアプリのソフトウェアモジュール構成を示す。
図16に提示したこれらソフトウェアモジュールは、MFP110のHDD204に格納され、実行時にはRAM203に展開されてCPU201により実行される。
マニフェストファイル1601は、MFPアプリの基本情報を記述したファイルである。図17に実施形態に係るマニフェストファイルの一例を示す。マニフェストファイルにはMFPアプリID1601、アプリケーション名1602が定義されている。MFPアプリID1601は、MFPアプリ管理テーブル403で管理されているものと同じIDである。アプリケーション名1602は、MFPアプリの名称を表す。
メニューアプリ連携部1611は、メニューアプリ704と連携するモジュールで、メニューアプリ704にローカルMFPアプリを呼び出すためのGUIボタンを登録する。スキャナ処理部1612は、スキャナ部112を用いて原稿を読み取るためのモジュールである。送信処理部1613は、スキャナ処理部1612が読み取った原稿をネットワークI/F206を通して外部へ送信するためのモジュールである。画面処理部1614は、ローカルMFPアプリAPP713の操作画面を操作部111に表示するためのモジュールである。
ローカルMFPアプリは、アプリごとに実現する機能が異なるため、アプリケーション開発ベンダーがアプリごとに機能を実現するためのソフトウェアモジュールをプログラミングする必要がある。
作成したローカルMFPアプリはライセンス管理サーバ120に送信することにより、マニフェストファイル1601以外のソフトウェアモジュールが暗号化され、1つのファイルとしてまとめられる。アプリケーション開発ベンダーは、このアプリケーションの暗号化機能を利用することにより、このアプリケーションの中身を第3者が解析するのを防止できる。
図8は実施形態に係るWeb接続用MFPアプリのソフトウェアモジュールの構成を示す図である。Web接続用MFPアプリは、Webアプリごとに必要となる設定情報をマニフェストファイル801や電子署名用鍵815に保持する。つまり、ひとつのWebアプリに対して、ひとつのWeb接続用MFPアプリが必要となる。MFP110には、使用するWebアプリに応じたWeb接続用MFPアプリをインストールする。複数のWebアプリを使用する場合、複数のWeb接続用MFPアプリをMFP110にインストールする。その場合、複数のWeb接続用MFPアプリは、ひとつのWebブラウザ705を共有して使用することになる。
図8に提示したこれらソフトウェアモジュールは、MFP110のHDD204に格納され、実行時にはRAM203に展開されてCPU201により実行される。
マニフェストファイル801は、MFPアプリの基本情報とWebアプリへ接続するための情報を記述したファイルである。
図9に実施形態に係るマニフェストファイルの一例を示す。マニフェストファイルにはMFPアプリID901、アプリケーション名902、WebアプリケーションURL903、コンテキストルートURL904、SSB設定905、デバイス情報リスト906が定義されている。
MFPアプリID901とアプリケーション名902は、図17で提示したローカルMFPアプリのマニフェストファイル1601と同様の定義である。WebアプリケーションURL903、コンテキストルートURL904、SSB設定905、デバイス情報リスト906は、Web接続用MFPアプリ固有の情報である。
トップページURL903は、WebアプリのトップページのURLを表す。コンテキストルートURL904は、Webアプリの最上位パスを表す。SSB(Site Specific Browser)設定905は、このMFPアプリがWebアプリに接続する際に、Webブラウザに設定する設定値を表す。SSB設定はWebブラウザのUIに関する設定と通信に関する設定から成る。WebブラウザのUIに関する設定の例として、ツールバーの非表示やURL入力の制限、お気に入り追加の制限などがある。通信に関する設定の例として、Cookieの処理方法、HTTPS/HTTP混在ページの表示制限、キャッシュの使用可否などがある。Webアプリに接続するMFPアプリ毎に、SSB設定を行うことによって、Webアプリ毎に専用のWebブラウザ設定を行うことができる。SSB設定を使用しない場合、マニフェストファイルにSSB設定905を定義しないことも許される。デバイス情報リスト906は、Webアプリのトップページを呼び出す際に通知するデバイス情報の一覧を表す。デバイス情報とは、MFP110に関する情報のことで、例えば、MFP110の個体や機種を特定する情報、MFP110で有効なオプション機能、MFP110で使用可能な機能、ログインしているユーザ名、ソフトウェアのバージョンなどである。デバイス情報の取得が不要な場合、マニフェストファイルにデバイス情報リスト906を定義しないことも許される。
メニューアプリ連携部811は、メニューアプリ704と連携するモジュールで、メニューアプリ704にWeb接続用MFPアプリを呼び出すためのGUIボタンを登録する。Webブラウザ連携部812は、Webブラウザ705を操作するためのモジュールで、Webブラウザ705へWebアプリのURLを渡したり、Webブラウザ705を操作部111の前面に表示したりする。デバイス情報取得部813は、デバイス情報を取得する。署名処理部814は、Webアプリへ接続する際に付加する電子署名を生成する。電子署名は、電子署名用鍵815を使って生成する。電子署名は、Web接続用MFPアプリからの呼び出しであることをWebアプリがチェックするために使用する。Webアプリが、このチェックを省略することは自由であり、その場合、電子署名は不要であるため、Web接続用MFPアプリは電子署名用鍵815を含まない構成となる。Webサービス処理部816は、Webアプリケーションが利用するWebサービスを公開し、Webアプリケーションからのリクエストに応じた処理を行う。本実施例では、一例としてデバイス情報を取得するためのWebサービスが公開されているものとする。Webサービス処理部816が公開するWebサービスは、Web接続用MFPアプリに対応するWebアプリからしか利用できない。Web接続用MFPアプリに対応するWebアプリかどうかは、Webサービスの要求元がトップページURL903またはコンテキストルートURL904と一致するかどうかで判断する。
なお、個々のWeb接続用MFPアプリで異なるのは、マニフェストファイル801の記述と電子署名用鍵815のみであり、他のソフトウェアモジュールは全てのWeb接続用MFPアプリで同一である。つまり、ソフトウェアモジュールを流用すれば、Webアプリに関する情報を定義するだけで、Web接続用MFPアプリを作成することができる。例えば、Webアプリに関する情報を入力すると、Web接続用MFPアプリを出力するようなツールを用意することで、簡単にWeb接続用MFPアプリを作成することができる。
作成したWeb接続用MFPアプリはライセンス管理サーバ120に送信することにより、マニフェストファイル801以外のソフトウェアモジュール、ファイルが暗号化され、1つのファイルとしてまとめられる。アプリケーション開発ベンダーは、このアプリケーションの暗号化機能を利用することにより、このアプリケーションの中身を第3者が解析するのを防止できる。また内部に含んでいる電子署名用鍵815が取り出されるのを防止できる。
図10は、本実施形態に係るWebアプリサーバ130のソフトウェアモジュールの構成を示す図である。これらソフトウェアモジュールは、Webアプリサーバ130のHDD304に格納されており、実行時にRAM302に展開されCPU301により実行されることにより、これらソフトウェアモジュールの機能が達成される。
通信部1001は、ネットワークを介して外部装置と通信して要求の受け付けや応答を行う。Webアプリ処理部1002は、HTTPプロトコルによるMFP110からの要求に応じて、MFP110のWebブラウザ705により表示されるHTMLコンテンツを生成したり、MFP110を操作するためのコンテンツを生成したりする。署名検証部1003は、図8で示したWeb接続用MFPアプリに含まれる電子署名用鍵815に対応する電子署名用鍵1004を含んでおり、この鍵で電子署名した署名情報の検証を行う。電子署名を検証することで、Web接続用MFPアプリがインストールされたMFP110からの要求であるかどうかを判断することができる。本実施例では一例として電子署名技術にHMAC(Hash−based Message Authentication Code)を用いるものとする。つまり、電子署名用鍵815と電子署名用鍵1004は同一の秘密鍵(共通鍵)である。なお、電子署名は他の技術を用いてもよい。例えば、電子署名技術としてデジタル署名を用いた場合、デジタル署名は公開鍵暗号方式であるため、Web接続用MFPアプリの電子署名用鍵815は秘密鍵で、Webアプリサーバ130の電子署名用鍵1004はその秘密鍵に対応する公開鍵となる。
図11は、MFP110が行うMFPアプリのインストール処理を説明するためのフローチャートである。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図11のフローチャートの各ステップが実行される。
事前準備として、MFPアプリ購入者は、前述したように、暗号化されたMFPアプリとライセンスアクセス番号をMFPアプリの販売者から受け取り、ライセンス管理サーバ120からライセンスファイルを受け取っているものとする。
先ずインストール処理部701は、MFPアプリ購入者が操作するPC140からインストールの指示として暗号化されたMFPアプリと、暗号化されたライセンスファイルを受け取る(ステップS1101)。インストール処理部701は、ライセンスファイル復号鍵702を用いて、受け取ったライセンスファイルを復号する。そして、その復号したライセンスファイルに含まれるMFPアプリの暗号共通鍵を用いて、暗号化されたMFPアプリを復号する(ステップS1102)。ここでMFPアプリがWeb接続用MFPアプリだった場合は、メニューアプリ連携部811、Webブラウザ連携部812、デバイス情報取得部813、署名処理部814の各モジュールと、電子署名用鍵815のファイルが復号される。また、MFPアプリがローカルMFPアプリだった場合は、メニューアプリ連携部1611、スキャナ処理部1612、送信処理部1613の各モジュールが復号される。
インストール処理部701は、ライセンスファイルとMFPアプリが両方とも復号できたかどうかをチェックする(ステップS1103)。インストール処理部701は、両方とも復号できた場合はステップS1104へ処理を進める。インストール処理部701は、どちらか一方または両方とも復号できなかった場合はエラーを通知(ステップS1110)して処理を終了する。
ステップS1104で、インストール処理部701は、復号したライセンスファイルに記載されているデバイスIDと、MFP110に予め設定されているデバイスIDとを比較し、そのMFP110に適合した正しいライセンスファイルかどうかを判定する。インストール処理部701は、ライセンスファイルが正しいと判定すると、ステップS1105に処理を進める。インストール処理部701は、正しいライセンスファイルでないと判定すると、エラーを通知(ステップS1110)して処理を終了する。
ステップS1105で、インストール処理部701は、ライセンス情報をライセンス情報テーブル720に格納する。ライセンス情報とは、MFPアプリID、ライセンスID,ライセンスの有効期限である。ここで、インストール処理部701は、ライセンスファイルに記録されている有効期限と現在の日時から、MFPアプリが無効となる日時を計算してライセンスの有効期限として登録する。ライセンスファイルに記録されている有効期限が無期限の場合は、そのまま無期限として登録する。
次にインストール処理部701は、復号したMFPアプリとライセンスファイルをHDD204に保存する。続けてインストール処理部701は、HDD204に保存したMFPアプリをRAM203に読み出し、起動する(ステップS1107)。起動したMFPアプリは、メニューアプリにMFPアプリを呼び出すためのGUIボタンを登録する(ステップS1108)。このとき、起動したMFPアプリがWeb接続用MFPアプリの場合は、メニューアプリ連携部811がステップS1107の処理を行う。一方、起動したMFPアプリがローカルMFPアプリの場合は、メニューアプリ連携部1611がステップS1107の処理を行う。また、操作部111に表示する画面を持たず、メニューアプリにGUIボタンを登録する必要がないローカルMFPアプリの場合は、ステップS1108の処理をスキップする。
図12は、実施形態に係るMFP110にMFPアプリAPP711、APP712、APP713をインストールした状態で、MFP110のメニューアプリ704を呼び出したときに操作部111に表示されるGUIの一例を示す図である。GUIボタン1201、1202、1203は、MFP110に最初から備わっているアプリケーションを呼び出すためのGUIボタンである。
GUIボタン1204は、Web接続用MFPアプリAPP711を呼び出すためのGUIボタンである。GUIボタン1205は、Web接続用MFPアプリAPP712を呼び出すためのGUIボタンである。GUIボタン1206は、ローカルMFPアプリAPP713を呼び出すためのGUIボタンである。図12に示したようにメニューアプリ704はMFPアプリの種類を区別せずにGUIボタンを表示する。
GUIボタンは、ライセンスが有効な期間のみ選択可能である。例えば、APP712を60日間有効なライセンスでインストールした場合、インストールしてから60日目まではGUIボタン1205は有効であるが、61日目からはGUIボタン1206は無効となる。GUIボタン1206が無効になると、それに対応するMFPアプリAPP712の呼び出しができなくなるため、Webアプリへの接続もできない。
図19は、メニューアプリ704が呼び出し指示を受けたときに行う処理を説明するためのフローチャートである。メニューアプリ704は、GUIボタンに対応するMFPアプリのライセンスを確認し、ライセンスが有効なMFPアプリのボタンのみを選択可能にする。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図19のフローチャートの各ステップが実行される。
メニューアプリ704は呼び出しの指示を受け付ける(ステップS1901)と、自身に登録されているGUIボタンの一覧をリストアップする(ステップS1902)。次に、メニューアプリ704は、リストアップしたGUIボタンの有効性を検証するためにステップS1903からステップS1908の処理をGUIボタンごとに繰り返す。
メニューアプリ704は、GUIボタンが最初から備わっているアプリケーションに対応するGUIボタンかどうかを判別する(ステップS1904)。最初から備わっているアプリケーションに対応するGUIボタンであればステップS1906へ処理を進め、後からインストールされたMFPアプリに対応するGUIボタンであればステップS1905へ処理を進める。ステップS1905で、メニューアプリ704はGUIボタンに対応するMFPアプリのライセンス有効期限を、ライセンス情報テーブル720を用いて判別する。ライセンスが有効期限内であればステップS1906へ処理を進め、ライセンスが有効期限切れであればステップS1907へ処理を進める。ステップS1906で、メニューアプリはGUIボタンを有効にする。一方、ステップS1907で、メニューアプリはGUIボタンを無効にする。GUIボタンを無効にする例としては、GUIボタン自体を非表示にしたり、GUIボタンは表示するが押下できない状態にしたりする。もしくは、GUIボタンを押下した後にライセンスの有効期限切れであることのメッセージを表示するようにしてもよい。メニューアプリ704は、すべてのGUIボタンの処理が終われば、ステップS1909へ処理を進める。
最後に、メニューアプリ704は、図12で示したメニューアプリの画面を操作部111に表示して処理を終了する(ステップS1909)。
図20は、ローカルMFPアプリが図12に示した画面から呼び出し指示を受けた際の処理を説明するためのフローチャートである。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図20のフローチャートの各ステップが実行される。ここでは、図16で示したローカルMFPアプリAPP713が呼び出しをうけた場合を例に説明を行う。
ローカルMFPアプリのメニューアプリ連携部1611は、ユーザによるGUIボタン押下を受け取ったメニューアプリ704からの呼び出し指示を受け取る(ステップS2001)。次に画面処理部1614は、ローカルMFPアプリAPP713の初期画面であるスキャン設定画面を操作部111に表示して処理を終了する(ステップS2002)。
図13は、MFP110からWebアプリを利用する際の一連の処理の流れを示したシーケンス図である。ここでは例としてメニューアプリ704に表示したGUIボタン1205がユーザによって選択された場合の処理を説明する。
最初にMFP110のメニューアプリ704はユーザによるGUIボタン1205の押下を受け付けると、GUIボタン1205に対応したMFPアプリAPP712を呼び出す(ステップS1301)。呼び出されたMFPアプリAPP712はMFPアプリAPP712のマニフェストファイルに定義された情報に基づいてWebアプリのトップページを呼び出すために必要な情報を作成する(ステップS1302)。Webアプリのトップページを呼び出すために必要な情報には、デバイス情報リスト906で定義したデバイス情報や電子署名用鍵815を用いて作成した電子署名などが含まれる。続いてMFPアプリAPP712は、マニフェストファイルに定義されたSSB設定705を適用した状態のWebブラウザ705を用いて、ステップS1302で作成した情報に基づきWebアプリのトップページを呼び出す(ステップS1303)。
呼び出しを受けて、Webアプリサーバ130は、呼び出しに対する検証を行う(ステップS1304)。呼び出しに対する検証として、例えば、電子署名の正当性をチェックすることで、Web接続用MFPアプリAPP712がインストールされたMFP110からの呼び出しであることを確認する。検証の結果を踏まえて、Webアプリサーバ130は、呼び出しに対する応答をMFP110(Webブラウザ705)に対して行う(ステップS1305)。検証の結果がOKであれば、Webアプリサーバ130は次の操作に必要な画面を構成するためのHTMLコンテンツを応答する。
Webブラウザ705は受け取ったHTMLをレンダリングし、操作部111に画面を表示する(ステップS1306)。次にWebブラウザ705は、ユーザの画面操作指示を受け取る(ステップS1307)と、それに対応するリクエストをHTTPプロトコルでWebアプリサーバ130へ送信する(ステップS1308)。
リクエストを受け取ったWebアプリサーバ130は、リクエストに対する処理を行い(ステップS1309)、処理結果にもとに次の画面を構成するためのHTMLコンテンツをMFP110(Webブラウザ705)へ応答する(ステップS1310)。このとき、Webアプリサーバ130は、デバイス情報を取得するためのスクリプトおよび取得した後の処理を行うスクリプトをHTMLコンテンツの一部として含めることができる。例えば、MFPで110で有効なオプション機能をデバイス情報として取得して、そのオプション機能に対応する設定項目の表示を書き換えるためのスクリプトをHTMLコンテンツとして応答することができる。
Webブラウザ705は、受け取ったHTMLコンテンツの中にデバイス情報取得を行うスクリプトがあれば(ステップS1311)、そのスクリプトを実行してデバイス情報を取得する(ステップS1312)。さらに、Webブラウザ705は、ステップS1310で受け取ったHTMLコンテンツに含まれるスクリプトに従い、デバイス情報を用いてHTMLコンテンツを書き換える(ステップS1313)。Webブラウザ705はHTMLコンテンツの記述に従いレンダリングを行い、操作部111に画面を表示する。以降、ステップS1307からステップS1314を繰り返すことで、Webアプリの処理および画面遷移を実現する。
図13ではステップS1312で取得したデバイス情報をWebブラウザ705上で利用する例を示したが、取得したデバイス情報を非同期通信などを用いてWebアプリサーバ130へ伝えるようにしてもよい。その場合、Webアプリサーバ130がステップS1310で応答するHTMLコンテンツに前述した処理を行うためのスクリプトを含めるようにすればよい。
図14は、Web接続用MFPアプリがWebアプリのトップページを呼び出す際の処理を説明するためのフローチャートである。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図14のフローチャートの各ステップが実行される。
図14のフローチャートは、図13のステップS1301からステップS1303の処理を詳細に説明したものである。図13のステップS1301は、図14ではステップS1401に相当する。図13のステップS1302は、図14ではステップS1402からステップS1411に相当する。図13のステップS1303は、図14ではステップS1412に相当する。
Web接続用MFPアプリのメニューアプリ連携部811は、ユーザによるGUIボタン押下を受け取ったメニューアプリ704からの呼び出し指示を受け取る(ステップS1401)。次にWebブラウザ連携部812は、マニフェストファイル801からWebアプリの情報であるトップページURL903、SSB設定905、デバイス情報リスト906を取得する(ステップS1402)。なお、Web接続用MFPアプリによっては、マニフェストファイル801にSSB設定905、デバイス情報リスト906が定義されていない場合がある。その場合は、定義されている情報のみを取得する。
デバイス情報取得部813は、ステップS1402でデバイス情報リスト906を取得していれば、そのデバイス情報リスト906に列挙されているデバイス情報を取得する(ステップS1403、S1404)。図9に提示したマニフェストファイル801に従うと、デバイス情報取得部813は、user_id、device_id、device_model、encrypt_pdf、print_service_verに該当するデバイス情報を取得する。user_idは、MFP110にログインしているユーザのIDを表す。device_idは、MFP110のデバイスIDを表す。device_modelは、MFP110の機種を表す。encrypt_pdfは、暗号化PDFオプションの装着状況を表す。print_service_verは、WebアプリからMFP110に印刷を依頼するためのWebServiceモジュールのソフトウェアバージョンを表す。図9のデバイス情報リスト906は一例であり、取得可能なデバイス情報は、これらに制限されるものではない。
次に、署名処理部814は、Web接続用MFPアプリに電子署名用鍵815が含まれている場合、電子署名を作成する(ステップS1405、S1406)。署名処理部814は、署名用文字列をメッセージ、電子署名用鍵815を秘密鍵としてハッシュ関数を用いてメッセージダイジェスト(HMAC値)を算出し、電子署名とする。署名用文字列は、トップページURL903と、MFP110のシステム時刻(以降、タイムスタンプ)と、ステップS1404で取得した取得したデバイス情報があればその情報を文字列として連結したものである。
続いて、Webブラウザ連携部812は、Webアプリのトップページを呼び出すためのURLを組み立てる(ステップS1407)。Webブラウザ連携部812は、ステップS1404で取得したデバイス情報があれば、その情報をトップページURL903にクエリ文字列として付加する。さらに、Webブラウザ連携部812は、ステップS1406で取得したタイムスタンプおよび電子署名があれば、それらの情報もトップページURL903にクエリ文字列として付加する。
Webブラウザ連携部812は、SSB設定905を取得しているか否かを判別し(ステップS1408)、SSB設定を取得していなければ、Webブラウザ705のSSB設定を解除し、Webブラウザの各種設定を初期状態に戻す(ステップS1420)。一方、Webブラウザ連携部812は、ステップS1402でSSB設定を取得していればそのSSB設定をWebブラウザ705へ適用する(ステップS1409)。図9に提示したSSB設定905に従うと、Webブラウザ連携部812は、cookie、address_bar、cache、warn_not_exist_rootcertに該当するSSB設定をWebブラウザ705へ適用する。cookie=onは、Cookie機能を有効にすることを表す。address_bar=offは、WebブラウザのUIからURLを入力するためのアドレスバーを非表示にすることを表す。cache=offは、キャッシュを使用しないことを表す。warn_not_exist_rootcert=onは、暗号化通信時にルート証明書が存在しない場合の警告表示を有効にすることを表す。図9のSSB設定905は一例であり、指定可能なSSB設定は、これらに制限されるものではない。
次にWebブラウザ連携部812は、ステップS1407で組み立てたURLを接続先としてWebブラウザ705に設定する(ステップS1410)。Webブラウザ連携部812は、操作部111の表示をメニューアプリ704からWebブラウザ705のGUIウィンドウに切り変える(ステップS1411)。操作部111に表示されたWebブラウザ705は、Webアプリのトップページを呼び出すため、ステップS1410で設定されたURLへアクセスする(ステップS1412)。
以上の処理を実行することによって、メニューアプリ704で指示されたGUIボタンに対応するWeb接続用MFPアプリが、Webアプリのトップページを呼び出すことができる。
図15は、Webアプリサーバ130がMFP110からHTTPによるリクエストを受けた場合に実行する処理を説明するためのフローチャートである。Webアプリサーバ130のHDD304に記憶されているプログラムを、CPU301がRAM303に読み出し、解析、実行することで、図15のフローチャートの各ステップが実行される。
図15のフローチャートは、図13のステップS1303からS1305およびステップS1308からS1310の処理を詳細に説明したものである。図13のステップS1303は、図15ではステップS1501からステップS1502に相当する。図13のステップS1304は、図15ではステップS1503からステップS1508に相当する。図13のステップS1305は、図15ではステップS1509に相当する。図13のステップS1308は、図15ではステップS1501からステップS1502に相当する。図13のステップS1309は、図15ではステップS1520に相当する。図13のステップS1310は、図15ではステップS1509に相当する。
まず通信部1001は、MFP110からHTTPによるリクエストを受け付ける(ステップS1501)。次にWebアプリ処理部1002は、受け付けたリクエストがトップページの呼び出しか否かを判別し、トップページの呼び出しならステップS1503へ処理を進め、それ以外ならステップS1520へ処理を進める(ステップS1502)。
ステップS1520で、Webアプリ処理部1002はステップS1501で受け取ったリクエストに応じた処理を行う。例えば、スキャン設定画面ページを呼び出すためのリクエストであれば、スキャン設定画面を構成するHTMLを生成する。このとき、Webアプリ処理部1002はデバイス情報が必要なページの呼び出しであれば(ステップS1521)、デバイス情報を取得および取得したデバイス情報を利用するためのスクリプトをHTMLに含める(ステップS1522)。そして、通信部1001はWebアプリ処理部1002が生成したHTMLをMFP110へ応答して処理を終了する(ステップS1509)。
一方、ステップS1503で、Webアプリ処理部1002はステップS1501で受け取ったリクエストに含まれるクエリ文字列を解析して、各項目を取りだす。本実施例では、ここで電子署名、タイムスタンプ、デバイス情報の各項目を取得したものとして、以降の説明を行う。
次に署名検証部1003は、ステップS1503で取りだした電子署名の検証を行う(ステップS1504)。具体的には、署名検証部1003は、署名用文字列をメッセージ、電子署名用鍵1004を秘密鍵としてハッシュ関数を用いてメッセージダイジェストを算出し、その値がステップS1503で取りだした電子署名と一致していれば、有効な署名であるとみなす。署名用文字列は、ステップS1501で受け取ったリクエストURLと、ステップS1503で取りだしたタイムスタンプとデバイス情報を文字列として連結したものである。つまり、MFP110が図14のステップS1406で電子署名を作成するために行った処理と同じ処理を、Webアプリサーバ130で行い、その結果が一致するか否かで電子署名の有効性を確認している。MFP110が持つ電子署名用鍵815と、Webアプリサーバ130が持つ電子署名用鍵1004が同じ場合、結果は一致する。結果が一致していれば、Web接続用MFPアプリがインストールされたMFP110からのリクエストであるとみなすことができる。
Webアプリ処理部1002は電子署名が無効であれば、リクエスト元にエラーを応答して処理を終了する(ステップS1530)。一方、Webアプリ処理部1002は電子署名が有効であれば、電子署名の検証結果をセッションと紐づけて保存する(ステップS1506)。電子署名の検証結果をセッションと紐づけて保存することで、以降のリクエストに対する処理において、Web接続用MFPアプリがインストールされたMFP110からの通信であると確認することが可能になる。なお、Webアプリによっては、電子署名ではなく別の情報を用いてリクエスト元をチェックするようにしてもよい。その場合、ステップS1504からS1506はスキップして、代わりとなる情報をチェックする。例えば、リクエスト元のIPアドレスやWebブラウザのユーザエージェントをチェックするようにしてもいいし、ステップS1503で取りだしたデバイス情報をチェックするようにしてもよい。
ステップS1507で、Webアプリ処理部1002は、ステップS1503で取りだしたデバイス情報のチェックを行う。MFP110のデバイス情報を必要としないWebアプリであれば、このステップは不要である。MFP110のデバイス情報が必要なWebアプリであれば、Webアプリ処理部1002は、デバイス情報をチェックし、問題があればリクエスト元にエラーを応答して処理を終了する(ステップS1530)。一方、Webアプリ処理部1002は、デバイス情報に問題がなければ次のステップS1508へ処理を進める。デバイス情報のチェックの例として、「ユーザIDの確認」や「有効なオプション機能の確認」、「ソフトウェアバージョンの確認」などがあげられる。
ステップS1508で、Webアプリ処理部1002は、トップページを表示するためのHTMLコンテンツを生成する。最後に通信部1001は、ステップS1508で生成したHTMLコンテンツを、MFP110へ応答して処理を終了する(ステップS1509)。
図21は、Webブラウザ705がWebアプリサーバ130からHTMLコンテンツを受け取った際の処理を説明するためのフローチャートである。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図21のフローチャートの各ステップが実行される。
図21のフローチャートは、図13のステップS1310からステップS1314の処理を詳細に説明したものである。図13のステップS1310は、図21ではステップS2101からステップS2102に相当する。図13のステップS1311は、図21ではステップS2103に相当する。図13のステップS1312は、図14ではステップS2104からステップS2105に相当する。図13のステップS1313は、図14ではステップS2106に相当する。図13のステップS1314は、図14ではステップS2107に相当する。
Webブラウザ705は、Webアプリサーバ130からHTMLコンテンツを受け取る(ステップS2101)と、そのHTMLを解析する(ステップS2102)。続いてステップS2103で、Webブラウザ705は、受け取ったHTMLコンテンツの中にデバイス情報取得を行うスクリプトがあればステップS2104へ処理を進め、そうでなければステップS2107へ処理を進める。
ステップS2104で、Webブラウザ705はスクリプトに従い、Webサービス処理部816が提供するWebサービスへデバイス情報取得のための要求を送信する。要求を受け取ったWebサービス処理部816は要求されたデバイス情報を取得する(ステップS2105)。Webサービス処理部816がステップS2105で行う処理の詳細は図22のフローチャートで後述する。ステップS2106で、Webブラウザ705はWebサービスから要求の結果として、デバイス情報を受信する。さらに、Webブラウザ705は、ステップS2101で受け取ったHTMLコンテンツに含まれるスクリプトに従い、デバイス情報を用いた処理を行う(ステップS2107)。例えば、MFPで110で有効なオプション機能をデバイス情報として取得して、そのオプション機能に対応する設定項目の表示を書き換えたり、取得したデバイス情報を非同期通信を用いてWebアプリサーバ130へ送信したりする。最後にWebブラウザ705はHTMLコンテンツの記述に従いレンダリングを行い、操作部111に画面を表示して処理を終了する(ステップS2108)。
図22は、Webサービス処理部816が公開しているデバイス情報取得のためのWebサービスに要求があった際の処理を説明するためのフローチャートである。MFP110のHDD204に記憶されているプログラムを、CPU201がRAM203に読み出し、解析、実行することで、図22のフローチャートの各ステップが実行される。図22のフローチャートは、図21のステップS2105の処理を詳細に説明したものである。
最初にWebサービス処理部816はデバイス情報取得要求を受け取る(ステップS2201)。この要求には、どのようなデバイス情報を取得するかという情報が含まれている。要求を受け取ったWebサービス処理部816は、Webブラウザ705からWebブラウザ705で現在表示しているURL(以降、接続先URL)を取得する(ステップS2202)。
次にWebサービス処理部816は、取得した接続先URLとトップページURL903が一致するかを確認する(ステップS2203)。ここで、URLは完全一致ではなく、部分一致、例えば、予め決められたパスまでの比較でもよい。具体例としては、ドメインと最上位パスが一致すれば、一致しているとみなしてもよい。Webサービス処理部816は、URLが一致していれば、許可されたWebアプリからの要求とみなしてステップS2205へ処理を進める。一方、URLが一致していなければコンテキストルートURL904と比較するため、ステップS2204へ処理を進める。ステップS2204で、Webサービス処理部816は、接続先URLとコンテキストルートURL904が一致するかを確認する。ステップS2203と同様、URLは完全一致ではなく、予め決められたパスまでの比較でもよい。Webサービス処理部816は、URLが一致していれば、許可されたWebアプリからの要求とみなしてステップS2205へ処理を進める。一方、URLが一致していなければステップS2210へ処理を進め、要求元へエラーを通知して処理を終了する。
ステップS2205で、Webサービス処理部816は、ステップS2201で要求されたデバイス情報を取得する。最後に、Webサービス処理部816は、取得したデバイス情報を要求元へ通知して処理を終了する(ステップS2206)。
以上において説明した手順により、Webアプリのライセンス管理を、情報処理装置にインストールされるMFPアプリと同様に実現することが可能となる。それに加え、情報処理装置が提供するWebサービスの利用をライセンスを与えたWebアプリからのみに制限することが可能となる。
複数のローカルMFPアプリをMFP110で使用するためには、それぞれのローカルMFPアプリをMFP110にインストールする必要がある。同様に、複数のWebアプリをMFP110で使用するためには、それぞれのWebアプリに対応したWeb接続用MFPアプリをMFP110にインストールする必要がある。MFPアプリをMFP110にインストールするためには、インストールするMFPアプリ毎にライセンスが必要である。ローカルMFPアプリとWeb接続用MFPアプリは、どちらもMFPアプリであるため、同様のライセンス管理を実現することが可能となる。また、Webアプリのライセンス管理をサーバ側で行ったり、MFPにWebアプリ専用のライセンス管理の仕組みを用意したりする場合に比べ、MFPアプリのラインセスという統一した形でライセンス管理を行うことができ、販売者や管理者の利便性が向上する。

Claims (12)

  1. Webブラウザを有する情報処理装置であって、
    前記情報処理装置で機能を実現するローカルアプリケーションと、前記Webブラウザを呼び出すことでWebサーバが有するWebアプリの機能を実現するWeb接続用アプリケーションを追加する追加手段と、
    前記ローカルアプリケーションのライセンス情報と前記Web接続用アプリケーションのライセンス情報を保持する保持手段と、
    前記Web接続用アプリケーションが保持しているURLと前記WebブラウザでアクセスしているURLとを用いて、前記Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定する判定手段を有することを特徴とする情報処理装置。
  2. 前記追加手段は、前記Webアプリ毎に、前記Webアプリに対応するWeb接続用アプリケーションを追加することを特徴とする請求項1に記載の情報処理装置。
  3. 前記判定手段は、前記Web接続用アプリケーションが保持しているURLと前記WebブラウザでアクセスしているURLの部分一致を用いて、前記Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記判定手段の結果に基づいて、前記情報処理装置に関する情報を送信する手段を有することを特徴とする請求項1乃至3何れか1項に記載の情報処理装置。
  5. 前記情報処理装置に関する情報は、前記情報処理装置で使用可能な機能に関する情報であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置に関する情報は、前記情報処理装置に含まれるモジュールに関する情報であることを特徴とする請求項4に記載の情報処理装置。
  7. 前記情報処理装置に関する情報は、前記情報処理装置にログインしているユーザに関する情報であることを特徴とする請求項4に記載の情報処理装置。
  8. Webブラウザを有する情報処理装置の制御方法であって、
    前記情報処理装置で機能を実現するローカルアプリケーションと、前記Webブラウザを呼び出すことでWebサーバが有するWebアプリの機能を実現するWeb接続用アプリケーションを追加する追加工程と、
    前記ローカルアプリケーションのライセンス情報と前記Web接続用アプリケーションのライセンス情報を保持する保持工程と、
    前記Web接続用アプリケーションが保持しているURLと前記WebブラウザでアクセスしているURLとを用いて、前記Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定する判定工程を有することを特徴とする情報処理装置の制御方法。
  9. 前記追加工程は、前記Webアプリ毎に、前記Webアプリに対応するWeb接続用アプリケーションを追加することを特徴とする請求項8に記載の情報処理装置の制御方法。
  10. 前記判定工程は、前記Web接続用アプリケーションが保持しているURLと前記WebブラウザでアクセスしているURLの部分一致を用いて、前記Web接続用アプリケーションによって呼び出されるWebアプリからの要求であるかを判定することを特徴とする請求項8又は9に記載の情報処理装置の制御方法。
  11. 前記判定手段の結果に基づいて、前記情報処理装置に関する情報を送信する工程を有することを特徴とする請求項8乃至10何れか1項に記載の情報処理装置の制御方法。
  12. 請求項1乃至7の何れか1項に記載の情報処理装置としてコンピュータを機能させるための該コンピュータで読み取り可能なプログラム。
JP2016193551A 2016-09-30 2016-09-30 情報処理装置及びその制御方法、及びプログラム Pending JP2018055569A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016193551A JP2018055569A (ja) 2016-09-30 2016-09-30 情報処理装置及びその制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016193551A JP2018055569A (ja) 2016-09-30 2016-09-30 情報処理装置及びその制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2018055569A true JP2018055569A (ja) 2018-04-05

Family

ID=61836797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016193551A Pending JP2018055569A (ja) 2016-09-30 2016-09-30 情報処理装置及びその制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2018055569A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021149484A (ja) * 2020-03-18 2021-09-27 大 益滿 プログラム及びライセンスキー処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021149484A (ja) * 2020-03-18 2021-09-27 大 益滿 プログラム及びライセンスキー処理システム

Similar Documents

Publication Publication Date Title
JP6872867B2 (ja) 情報処理装置及びアプリケーション管理方法
JP6758999B2 (ja) 情報処理システム、情報処理装置及びその制御方法、及びプログラム
JP6463023B2 (ja) 情報処理装置とその制御方法、及びプログラム
US10305961B2 (en) Information processing apparatus, information processing apparatus control method, and storage medium storing program
US10185523B2 (en) Information processing system, information processing apparatus and control method therefor, and program for preventing inconsistency of a setting
JP6303979B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP6000828B2 (ja) 情報処理装置、印刷サーバーシステム、その制御方法、およびプログラム。
JP2013218445A (ja) 管理装置、システム、管理装置の制御方法、プログラム。
JP7146422B2 (ja) 情報処理装置及びクッキー情報管理方法
KR20130047493A (ko) 화상형성장치, 라이선스 서버, 단말장치, 어플리케이션 설치 방법 및 어플리케이션 파일 제공 방법
JP2018055569A (ja) 情報処理装置及びその制御方法、及びプログラム
JP6969185B2 (ja) クライアント端末、情報処理方法およびプログラム
US9930022B2 (en) Information processing system, information processing apparatus, method of controlling the same, and storage medium
JP2020091544A (ja) 情報処理装置及びその制御方法、及びプログラム
JP6728826B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP6772009B2 (ja) 情報処理装置および情報処理装置における制御方法、およびプログラムと画像処理装置
JP6667605B2 (ja) 情報処理装置とその制御方法、及びプログラム
JP5745013B2 (ja) 画像処理システム、画像処理装置、画像処理システムにおける制御方法、画像処理装置の制御方法、及びプログラム
JP6950781B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2013020636A (ja) 印刷データ作成方法
JP2019191823A (ja) 情報処理装置および情報処理システム、構成変更する方法、及びプログラム