(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換部と、
前記変換部によって生成されるデータを前記機器に送信する第１の送信部と、
前記第１の送信部によって送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信部と、
前記第１の受信部によって受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信部と、
を有することを特徴とする情報処理装置。
【請求項２】
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換部と、
前記変換部によって生成されるデータを前記機器に送信する第１の送信部と、
前記第１の送信部によって送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信部と、
前記第１の受信部によって受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令の前記機器への送信要求を、他の情報処理装置に送信する第２の送信部と、
を有することを特徴とする情報処理装置。
【請求項３】
前記第２の形式のデータに基づいて前記画面を描画する描画部を有し、
前記変換部は、前記描画部が、前記機器の表示部における表示領域の範囲内に収まるように前記画面を描画した結果を変換して、前記第１の形式のデータを生成する、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
複数の機器にネットワークを介して接続し、
前記第１の形式のデータを要求する機器の識別情報を受信する第２の受信部を有し、
前記描画部は、各機器の識別情報に対応付けて当該機器の表示部の表示領域の範囲を示す情報において、前記第１の形式のデータを要求する機器の識別情報に対応付けられている範囲に収まるように、前記第２の形式のデータに基づいて前記画面を描画する、
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記描画部は、各機器の識別情報に対応付けて当該機器の表示部が受け付け可能な操作を示す情報を参照して、特定の操作を受け付けるための表示要素を前記画面に追加する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第２の形式はＨＴＭＬであり、
前記第２の送信部は、前記第２の形式のデータにおいてスクリプトによって定義されている処理の実行命令を、前記機器に送信する、
ことを特徴とする請求項１乃至５いずれか一項記載の情報処理装置。
【請求項７】
前記処理の実行命令は、スキャンの実行命令又は印刷の実行命令である、
ことを特徴とする請求項１乃至６いずれか一項記載の情報処理装置。
【請求項８】
請求項１乃至７いずれか一項記載の情報処理装置にネットワークを介して接続される機器。
【請求項９】
機器と、前記機器にネットワークを介して接続される情報処理装置とを含む情報処理システムであって、
前記情報処理装置は、
前記機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換部と、
前記変換部によって生成されるデータを前記機器に送信する第１の送信部と、
前記第１の送信部によって送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信部と、
前記第１の受信部によって受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信部と、
を有することを特徴とする情報処理システム。
【請求項１０】
機器と、前記機器にネットワークを介して接続される情報処理装置とを含む情報処理システムであって、
前記情報処理装置は、
前記機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換部と、
前記変換部によって生成されるデータを前記機器に送信する第１の送信部と、
前記第１の送信部によって送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信部と、
前記第１の受信部によって受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令の前記機器への送信要求を、他の情報処理装置に送信する第２の送信部と、
を有することを特徴とする情報処理システム。
【請求項１１】
コンピュータが、
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信手順と、
を実行することを特徴とする情報処理方法。
【請求項１２】
コンピュータが、
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令の前記機器への送信要求を、他の情報処理装置に送信する第２の送信手順と、
を実行することを特徴とする情報処理方法。
【請求項１３】
前記コンピュータが、前記第２の形式のデータに基づいて前記画面を描画する描画手順を実行し、
前記変換手順は、前記描画手順において、前記機器の表示部における表示領域の範囲内に収まるように前記画面を描画された結果を変換して、前記第１の形式のデータを生成する、
ことを特徴とする請求項１１又は１２記載の情報処理方法。
【請求項１４】
前記コンピュータは、複数の機器にネットワークを介して接続し、
前記コンピュータが、前記第１の形式のデータを要求する機器の識別情報を受信する第２の受信手順を実行し、
前記描画手順は、各機器の識別情報に対応付けて当該機器の表示部の表示領域の範囲を示す情報において、前記第１の形式のデータを要求する機器の識別情報に対応付けられている範囲に収まるように、前記第２の形式のデータに基づいて前記画面を描画する、
ことを特徴とする請求項１３記載の情報処理方法。
【請求項１５】
前記描画手順は、各機器の識別情報に対応付けて当該機器の表示部が受け付け可能な操作を示す情報を参照して、特定の操作を受け付けるための表示要素を前記画面に追加する、
ことを特徴とする請求項１４記載の情報処理方法。
【請求項１６】
前記第２の形式はＨＴＭＬであり、
前記第２の送信手順は、前記第２の形式のデータにおいてスクリプトによって定義されている処理の実行命令を、前記機器に送信する、
ことを特徴とする請求項１１乃至１５いずれか一項記載の情報処理方法。
【請求項１７】
機器と、前記機器にネットワークを介して接続される情報処理装置とを含む情報処理システムが実行する情報処理方法であって、
前記情報処理装置が、
前記機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信手順と、
を実行することを特徴とする情報処理方法。
【請求項１８】
機器と、前記機器にネットワークを介して接続される情報処理装置とを含む情報処理システムが実行する情報処理方法であって、
前記情報処理装置が、
前記機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令の前記機器への送信要求を、他の情報処理装置に送信する第２の送信手順と、
を実行することを特徴とする情報処理方法。
【請求項１９】
コンピュータに、
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信手順と、
を実行することを特徴とするプログラム。
【請求項２０】
コンピュータに、
ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換手順と、
前記変換手順において生成されるデータを前記機器に送信する第１の送信手順と、
前記第１の送信手順において送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信手順と、
前記第１の受信手順において受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令の前記機器への送信要求を、他の情報処理装置に送信する第２の送信手順と、
を実行させることを特徴とするプログラム。
【請求項２１】
前記コンピュータに、前記第２の形式のデータに基づいて前記画面を描画する描画手順を実行させ、
前記変換手順は、前記描画手順において、前記機器の表示部における表示領域の範囲内に収まるように前記画面を描画された結果を変換して、前記第１の形式のデータを生成する、
ことを特徴とする請求項１９又は２０記載のプログラム。
【請求項２２】
前記コンピュータは、複数の機器にネットワークを介して接続し、
前記コンピュータに、前記第１の形式のデータを要求する機器の識別情報を受信する第２の受信手順を実行させ、
前記描画手順は、各機器の識別情報に対応付けて当該機器の表示部の表示領域の範囲を示す情報において、前記第１の形式のデータを要求する機器の識別情報に対応付けられている範囲に収まるように、前記第２の形式のデータに基づいて前記画面を描画する、
ことを特徴とする請求項２１記載のプログラム。
【請求項２３】
前記描画手順は、各機器の識別情報に対応付けて当該機器の表示部が受け付け可能な操作を示す情報を参照して、特定の操作を受け付けるための表示要素を前記画面に追加する、
ことを特徴とする請求項２２記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機器、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
アプリケーションプラットフォームを有し、機器を制御するためのアプリケーションプログラムを実装可能な機器が有る。斯かるアプリケーションプラットフォームは、技術革新、市場からの要求、あるいは新たな機種の開発等に応じて、大幅に変更されることが有る。例えば、Ｃ言語やＪａｖａ（登録商標）言語等のプログラミング言語によるＡＰＩ（Application Program Interface）を備えたアプリケーションプラットフォームから、ブラウザベースのアプリケーションプラットフォームへの移行が図られている。ブラウザベースのアプリケーションプラットフォームとは、基本的に、Ｗｅｂブラウザをアプリケーションの動作環境とするアプリケーションプラットフォームである。ブラウザベースのアプリケーションプラットフォームでは、ＨＴＭＬ（HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、及びＪａｖａＳｃｒｉｐｔ（登録商標）等を用いて開発されたアプリケーションプログラム（以下、「Ｗｅｂアプリ」という。）が動作する。
【０００３】
アプリケーションプラットフォームの移行が行われる場合、市場においては、複数種類のアプリケーションプラットフォームが混在することがあり得る。このような状況において、機器のメーカに対しては、全てのアプリケーションプラットフォームに対するサポートが求められることがある。その場合、例えば、或るアプリケーションプログラムについて、各アプリケーションプラットフォームにおいて同様に動作することが要求される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数種類のアプリケーションプラットフォームに関して、同一のアプリケーションプログラムの開発及び保守を行うのは、効率的ではない。換言すれば、最新のアプリケーションプラットフォームがブラウザベースのアプリケーションプラットフォームであれば、全てのアプリケーションプログラムを、Ｗｅｂアプリによって提供できれば効率的である。
【０００５】
しかし、最新の機種に搭載されているＷｅｂブラウザに対応するＷｅｂアプリに対して、旧機種において互換性を確保するのは、必ずしも容易ではない。そもそも、当該Ｗｅｂブラウザの搭載不可能な機種や、当該Ｗｅｂブラウザを動作するためにはファームウェア等の入れ替えが必要とされる機種も存在する。
【０００６】
なお、このような課題は、Ｗｅｂアプリ以外の形式のデータに関して共通のものであると考えられる。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、機器間におけるデータ形式に関する非互換を解消可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、情報処理装置は、ネットワークを介して接続される機器が処理可能な第１の形式とは異なる第２の形式のデータを変換して、前記第１の形式のデータを生成する変換部と、前記変換部によって生成されるデータを前記機器に送信する第１の送信部と、前記第１の送信部によって送信されたデータに基づいて、前記機器の表示部において表示される画面に対する操作を示す情報を、前記機器から受信する第１の受信部と、前記第１の受信部によって受信される情報が示す操作に関して、前記第２の形式のデータにおいて定義されている処理の実行命令を、前記機器に送信する第２の送信部と、を有する。
【発明の効果】
【０００９】
機器間におけるデータ形式に関する非互換を解消可能とすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における外部ブラウザ装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における各装置の機能構成例を説明するための図である。
【図５】バックエンド部におけるＷｅｂアプリのコンテンツデータの仮想的な描画手順を説明するための図である。
【図６】バックエンド部及びフロントエンド部の機能構成例を示す図である。
【図７】クラウドプルプリントの概要を説明するための図である。
【図８】クラウドプルプリントについてＷｅｂアプリに対する互換性の有無に関わらず実行される処理手順の一例を説明するための図である。
【図９】ドキュメント情報記憶部の構成例を示す図である。
【図１０】Ｗｅｂアプリに対して互換性を有する画像形成装置がクラウドプルプリントのＷｅｂアプリに関して実行する処理手順の一例を説明するための図である。
【図１１】ドキュメント一覧画面の静的な部分の一例を示す図である。
【図１２】ドキュメント一覧画面の静的な部分に対応するＤＯＭツリーの例を示す図である。
【図１３】ドキュメント一覧データの一例を示す図である。
【図１４】ドキュメント一覧データに基づいて更新されたドキュメント一覧画面のＤＯＭツリーの例を示す図である。
【図１５】ドキュメント一覧が描画されたドキュメント一覧画面の一例を示す図である。
【図１６】ドキュメントが選択された状態を示す図である。
【図１７】Ｗｅｂアプリに対して互換性を有さない画像形成装置がクラウドプルプリントのＷｅｂアプリに関して実行する処理手順の一例を説明するための図である。
【図１８】バックエンド情報記憶部の構成例を示す図である。
【図１９】ブックマーク記憶部の構成例を示す図である。
【図２０】パネル情報記憶部の構成例を示す図である。
【図２１】操作仕様記憶部の構成例を示す図である。
【図２２】接続情報記憶部の構成例を示す図である。
【図２３】スクロール操作を受け付けるための表示要素が追加されたドキュメント一覧画面の例を示す図である。
【図２４】クラウドスキャンに関して実行される処理手順の第１の例を説明するための図である。
【図２５】クラウドスキャンに関して実行される処理手順の第２の例を説明するための図である。
【図２６】クラウドスキャンに関して実行される処理手順の第３の例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。図１において、ユーザ環境Ｅ１とサーバ装置５０とは、インターネット等のネットワークＮ１を介して通信可能に接続されている。
【００１２】
ユーザ環境Ｅ１は、企業等の組織におけるシステム環境である。ユーザ環境Ｅ１において、画像形成装置１０ａ及び画像形成装置１０ｂ等（以下、それぞれを区別しない場合、単に「画像形成装置１０」という。）と、外部ブラウザ装置２０と、ＰＣ３０とは、ユーザ環境Ｅ１内のイントラネット等のネットワークＮ２を介して通信可能に接続されている。
【００１３】
画像形成装置１０は、複合機である。但し、画像形成装置１０は、ここで説明する複合機以外のプリンタなどの出力機器であってもよい。
【００１４】
本実施の形態において、画像形成装置１０ａ及び画像形成装置１０ｂは、相互に異なるアプリケーションプラットフォームを有する。画像形成装置１０ａは、アプリケーションプラットフォームとして、Ｗｅｂブラウザを備えた画像形成装置１０である。画像形成装置１０ｂは、Ｃ言語又はＪａｖａ（登録商標）言語等のＡＰＩ（Application Program Interface）を備えたアプリケーションプラットフォームを有する画像形成装置１０である。なお、画像形成装置１０ｂは、旧版のＷｅｂブラウザを有していてもよい。旧版のＷｅｂブラウザとは、画像形成装置１０ａのＷｅｂブラウザ上で動作するアプリケーションプログラム（以下、「Ｗｅｂアプリ」という。）に対して互換性を有さないＷｅｂブラウザである。したがって、画像形成装置１０ａのＷｅｂブラウザ用に開発されたＷｅｂアプリは、画像形成装置１０ｂにおいて直接的に動作することはできない。なお、Ｗｅｂアプリとは、ＨＴＴＰ（HyperText Transfer Protocol）、ＣＳＳ（Cascading Style Sheets）、及びスクリプト等によって構成されるアプリケーションプログラムをいう。スクリプトとは、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）である。なお、画像形成装置１０ａが備えるＷｅｂブラウザは、画像形成装置１０ａの制御用に定義されたメソッド（以下、「拡張メソッド」という。）も解釈可能である。換言すれば、拡張メソッドを利用して画像形成装置１０ａを制御するＷｅｂアプリの実装が可能である。拡張メソッドの一例として、印刷の実行命令やスキャンの実行命令に対応するメソッドが挙げられる。
【００１５】
外部ブラウザ装置２０は、画像形成装置１０ｂについて、画像形成装置１０ａとの互換性を確保するための機能が実装されたＰＣ（Personal Computer）等のコンピュータである。すなわち、外部ブラウザ装置２０は、画像形成装置１０ａ用のＷｅｂアプリを、画像形成装置１０ｂにおいて利用可能とするための機能を有する。なお、外部ブラウザ装置２０は、ユーザ環境Ｅ１の外側に有ってもよい。例えば、外部ブラウザ装置２０は、ネットワークＮ１に接続されていてもよい。
【００１６】
ＰＣ３０は、ユーザ環境Ｅ１におけるユーザが利用するＰＣ（Personal Computer）である。
【００１７】
サーバ装置５０は、画像形成装置１０に対して各種のサービスを提供する１以上のコンピュータである。例えば、サーバ装置５０は、画像形成装置１０ａに対応したＷｅｂアプリの配信や、当該Ｗｅｂアプリと連携した処理等を実行する。なお、サーバ装置５０は、ユーザ環境Ｅ１の内側にあってもよい。例えば、サーバ装置５０は、ネットワークＮ２に接続されていてもよい。
【００１８】
図２は、本発明の実施の形態における外部ブラウザ装置のハードウェア構成例を示す図である。図２の外部ブラウザ装置２０は、それぞれバスBで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５とを有する。
【００１９】
外部ブラウザ装置２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体２０１によって提供される。プログラムを記憶した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２０】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従って外部ブラウザ装置２０に係る機能を実行する。インタフェース装置２０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２１】
なお、外部ブラウザ装置２０は、図２に示されるようなハードウェアを有する複数のコンピュータによって構成されてもよい。すなわち、後述において外部ブラウザ装置２０が実行する処理は、複数のコンピュータに分散されて実行されてもよい。
【００２２】
図３は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図３において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、ＳＤカードスロット１７、及びＩＣカードリーダ１８等のハードウェアを有する。
【００２３】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００２４】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。ＩＣカードリーダ１８は、ユーザごとに配布されているＩＣカードから、カードＩＤを読み取る。カードＩＤは、カードごとの識別情報である。本実施の形態において、カードＩＤは、ユーザごとの識別情報として利用される。
【００２５】
図４は、本発明の実施の形態における各装置の機能構成例を説明するための図である。図４において、サーバ装置５０は、認証部５１、ドキュメント管理部５２、及びＷｅｂアプリ管理部５３等を有する。これら各部は、サーバ装置５０にインストールされた１以上のプログラムが、サーバ装置５０のＣＰＵに実行させる処理により実現される。サーバ装置５０は、また、ドキュメント情報記憶部５４を記憶する。ドキュメント情報記憶部５４は、例えば、サーバ装置５０の補助記憶装置、又はサーバ装置５０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２６】
認証部５１は、サーバ装置５０が提供するサービスを利用するユーザの認証を行う。ドキュメント管理部５２は、ドキュメント情報記憶部５４に書誌情報が記憶されているドキュメントの管理を行う。本実施の形態において、「ドキュメント」とは、電子化された文書、画像等の存在に対する抽象的な概念をいう。Ｗｅｂアプリ管理部５３は、Ｗｅｂアプリのコンテンツの提供等を行う。
【００２７】
画像形成装置１０ａは、ブラウザ部１２２ａ及び機器サービス部１２１ａ等を有する。ブラウザ部１２２ａ及び機器サービス部１２１ａは、画像形成装置１０ａにインストールされた１以上のプログラムが、画像形成装置１０ａのＣＰＵ１１１に実行させる処理により実現される。機器サービス部１２１ａは、画像形成装置１０ａに関する各種の機能を実現する。例えば、機器サービス部１２１ａは、画像形成装置１０ａのハードウェアの制御に関するインタフェース（ＡＰＩ）を、ブラウザ部１２２ａに提供する。ブラウザ部１２２ａは、Ｗｅｂブラウザとして機能する。例えば、ブラウザ部１２２ａは、Ｗｅｂアプリのコンテンツデータ（ＨＴＭＬ、ＣＳＳ、及びスクリプト等）をダウンロードし、当該コンテンツデータの定義内容に応じた処理を実行する。
【００２８】
外部ブラウザ装置２０は、バックエンド部２１を有する。バックエンド部２１は、画像形成装置１０ａのブラウザ部１２２ａと互換性を有するＷｅｂブラウザを含む。すなわち、バックエンド部２１は、画像形成装置１０ａ用のＷｅｂアプリのコンテンツデータの定義内容を解釈することができる。バックエンド部２１は、Ｗｅｂアプリのコンテンツデータの定義内容を解析し、当該コンテンツデータを仮想的に描画する。バックエンド部２１は、仮想的な描画結果を画像形成装置１０ｂが処理可能（解釈可能）な形式に変換し、変換結果を画像形成装置１０ｂに提供する。
【００２９】
画像形成装置１０ｂは、フロントエンド部１２３ｂ及び機器サービス部１２１ｂ等を有する。機器サービス部１２１ｂは、画像形成装置１０ｂにインストールされた１以上のプログラムが、画像形成装置１０ｂのＣＰＵ１１１に実行させる処理により実現される。機器サービス部１２１ｂは、画像形成装置１０ｂに関する各種の機能を実現する。例えば、機器サービス部１２１ｂは、画像形成装置１０ｂのハードウェアの制御に関するインタフェース（ＡＰＩ）を、フロントエンド部１２３ｂに提供する。なお、機器サービス部１２１ａと機器サービス部１２１ｂとのそれぞれのインタフェースや実装内容等は、相互に異なっていてもよい。
【００３０】
フロントエンド部１２３ｂは、バックエンド部２１ｂから提供される情報（変換結果）に基づいて、操作パネル１５への画面の表示等を行う。フロントエンド部１２３ｂは、また、当該画面に対する操作を示す情報を、バックエンド部２１に通知する。バックエンド部２１は、当該情報に基づいて、Ｗｅｂアプリのコンテンツデータの仮想的な描画結果について更新等を行う。バックエンド部２１は、更新結果をフロントエンド部１２３ｂに通知する。その結果、画像形成装置１０ｂ上において、画面の表示内容が更新される。このように、本実施の形態では、バックエンド部２１及びフロントエンド部１２３ｂによって、画像形成装置１０ｂにおけるＷｅｂアプリに対する非互換が解消される。
【００３１】
続いて、バックエンド部２１におけるＷｅｂアプリのコンテンツデータの仮想的な描画手順について説明する。図５は、バックエンド部におけるＷｅｂアプリのコンテンツデータの仮想的な描画手順を説明するための図である。
【００３２】
図５において、（１）は、ブラウザ部１２２ａによる、Ｗｅｂアプリのコンテンツデータの描画手順を示す。当該描画手順は、コンテンツデータの取得、ＤＯＭ（Document Object Model ）ツリーの生成、レイアウト、及びペインティング等から構成される。
【００３３】
コンテンツデータの取得は、ＨＴＴＰ（HyperText Transfer Protocol）通信によって、サーバ装置５０からＷｅｂアプリのコンテンツデータ（ＨＴＭＬ、ＣＳＳ、及びスクリプト等）を取得（ダウンロード）する処理である。
【００３４】
ＤＯＭツリーの生成は、取得されたコンテンツデータのうちのＨＴＭＬデータのタグを解析して、ＤＯＭツリーを生成する処理である。また、ＤＯＭツリーの生成では、ＣＳＳデータが解析されて、画面の表示に必要な装飾に関する情報が生成される。
【００３５】
レイアウトは、ＤＯＭツリーを構成する各ＤＯＭ要素の位置を決定する処理である。
【００３６】
ペインティングは、ＤＯＭツリーに基づいて、画面の描画（表示）を実行する処理である。
【００３７】
なお、初期描画の完了後、以下の（Ａ）〜（Ｃ）のようなイベントを契機として、ＤＯＭツリーが更新されて、描画内容が更新される。
（Ａ）スクリプトによるＤＯＭ要素のスタイルの更新
（Ｂ）スクリプトによるＤＯＭ要素の追加又は削除
（Ｃ）ユーザ操作
図５において、（２）は、バックエンド部２１による、Ｗｅｂアプリのコンテンツデータの仮想的な描画手順を示す。当該描画手順には、（１）と同様に、コンテンツデータの取得、ＤＯＭツリーの生成、及びレイアウトが含まれるが、ペインティングは含まれない。すなわち、実際に画面の表示は実行されない（但し、画面の表示が行われてもよい）。一方、（２）では、レイアウト変換が実行される。
【００３８】
レイアウト変換では、ＤＯＭツリーについて、フロントエンド部１２３ｂが解釈可能な形式のデータであって、Ｗｅｂアプリの画面を表示可能なデータ（以下、「画面レイアウトデータ」という。）への変換が行われる。バックエンド部２１は、レイアウト変換によって生成される画面レイアウトデータを、フロントエンド部１２３ｂに提供する。このように、バックエンド部２１では、ブラウザ部１２２ａによって実行される描画手順の大半が実行される。
【００３９】
フロントエンド部１２３ｂは、バックエンド部２１から提供される画面レイアウトデータに基づいて、Ｗｅｂアプリの画面を表示する。フロントエンド部１２３ｂは、また、画面に対する操作を示す情報（以下、「操作情報」という。）を、バックエンド部２１に通知する。バックエンド部２１は、当該操作情報に基づいて、ＤＯＭツリーの更新を行う。したがって、画面レイアウトデータは、フロントエンド部１２３ｂが、Ｗｅｂアプリの画面を表示可能であり、かつ、当該画面に対する操作に応じ、操作された表示要素に対応するＤＯＭ要素の識別情報等を含む操作情報を、バックエンド部２１に通知可能な情報であれば、その形式は所定のものに限定されない。また、画面レイアウトデータには、スクリプトによって定義されている情報、すなわち、画面の操作に対して実行すべき処理を示す情報は含まれなくてもよい。なお、画面レイアウトデータは、画像形成装置１０の機種ごとに異なっていてもよい。
【００４０】
図５に示すような描画手順を実現するために、バックエンド部２１及びフロントエンド部１２３ｂは、図６に示されるような機能構成を有する。
【００４１】
図６は、バックエンド部及びフロントエンド部の機能構成例を示す図である。図６において、バックエンド部２１は、接続管理部２１１、ブラウザ部２１２、ブラウザ制御部２１３、レイアウト変換部２１４、操作情報受信部２１５、及び機器サービス仲介部２１６等を含む。これら各部は、外部ブラウザ装置２０にインストールされた１以上のプログラムが、ＣＰＵ２０４に実行させる処理により実現される。バックエンド部２１は、また、接続情報記憶部２２１、ブックマーク記憶部２２２、パネル情報記憶部２２３、及び操作仕様記憶部２２４等を利用する。これら各記憶部は、補助記憶装置２０２又は外部ブラウザ装置２０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００４２】
接続管理部２１１は、フロントエンド部１２３ｂとブラウザ部２１２との接続関係を管理する。すなわち、ブラウザ部２１２のプロセスは、フロントエンド部１２３ｂごとに起動される。ブラウザ部２１２による描画内容は、フロントエンド部１２３ｂごとに異なるからである。フロントエンド部１２３ｂとブラウザ部２１２との接続関係を示す情報は、接続情報記憶部２２１に記憶される。
【００４３】
ブラウザ部２１２は、画像形成装置１０ａのブラウザ部１２２ａと同じ種類のＷｅｂブラウザとして機能する。すなわち、ブラウザ部２１２は、ブラウザ部１２２ａが解釈可能なコンテンツデータを解釈可能であり、図５の（２）に示した描画手順において、コンテンツデータの取得からレイアウトまでを実行する。描画手順において、ブラウザ部２１２は、画像形成装置１０ｂの操作パネル１５に対応した画面を生成する。例えば、ブラウザ部２１２は、画像形成装置１０ｂの操作パネル１５の表示領域の範囲内に収まるように、画面の描画を行う。なお、ブラウザ部２１２が取得するＷｅｂアプリのコンテンツデータのＵＲＬは、ブックマーク記憶部２２２に記憶されている。また、画像形成装置１０ｂの操作パネル１５に関する情報は、パネル情報記憶部２２３及び操作仕様記憶部２２４等に記憶されている。
【００４４】
ブラウザ制御部２１３は、ブラウザ部２１２によって生成されるＤＯＭツリーをレイアウト変換部２１４へ出力したり、操作情報受信部２１５によって受信される操作情報が示すイベントを、ブラウザ部２１２に入力したりする。
【００４５】
レイアウト変換部２１４は、図５の（２）に示した描画手順におけるレイアウト変換を実行する。レイアウト変換部２１４は、変換によって生成される画面レイアウトデータを、フロントエンド部１２３ｂに送信する。
【００４６】
操作情報受信部２１５は、フロントエンド部１２３ｂにおいて画面レイアウトデータに基づいて表示された画面に対する操作を示す情報を受信し、操作情報を、ブラウザ部２１２が解釈可能なイベント情報に変換する。
【００４７】
機器サービス仲介部２１６は、機器サービス部１２１ａのエミュレータとして機能する。機器サービス仲介部２１６が、機器サービス部１２１ａのエミュレータとして機能することで、ブラウザ部２１２は、ブラウザ部１２２ａが利用する、機器サービス部１２１ａによって提供されるインタフェースと同じインタフェースを介して、画像形成装置１０ｂに対する処理命令を機器サービス仲介部２１６に対して入力することができる。機器サービス仲介部２１６は、例えば、スクリプトの定義に基づいてブラウザ部２１２から出力される画像形成装置１０に対する処理の実行命令を受け付け、当該処理の実行命令を、フロントエンド部１２３ｂの機器サービス公開部１３４に送信する。
【００４８】
一方、フロントエンド部１２３ｂは、利用要求部１３１、レイアウト受信部１３２、操作情報送信部１３３、及び機器サービス公開部１３４等を有する。これら各部は、画像形成装置１０ｂにインストールされた１以上のプログラムが、画像形成装置１０ｂのＣＰＵ１１１に実行させる処理により実現される。フロントエンド部１２３ｂは、また、バックエンド情報記憶部１３５を利用する。バックエンド情報記憶部１３５は、例えば、画像形成装置１０ｂのＨＤＤ１１４等を用いて実現可能である。
【００４９】
利用要求部１３１は、バックエンド部２１の利用要求をバックエンド部２１に対して送信する。利用要求の送信先のバックエンド部２１の識別情報は、バックエンド情報記憶部１３５に記憶されている。レイアウト受信部１３２は、バックエンド部２１のレイアウト変換部２１４から送信される画面レイアウトデータを受信し、当該画面レイアウトデータに基づく画面を操作パネル１５に表示する。操作情報送信部１３３は、レイアウト受信部１３２によって表示された画面に対する操作を示す操作情報を、バックエンド部２１に送信する。操作情報には、操作対象とされた表示要素の識別情報や操作の種別を示す情報等が含まれる。機器サービス公開部１３４は、機器サービス部１２１ｂの機能を、ネットワークを介して呼び出し可能とするためのインタフェース（ＡＰＩ）を公開する。
【００５０】
以下、画像形成装置１０及び外部ブラウザ装置２０が実行する処理手順について説明する。本実施の形態では、Ｗｅｂアプリの具体例として、「クラウドプルプリント」と呼ばれるサービスを提供するためのＷｅｂアプリが用いられる。なお、「クラウドプルプリント」という呼称は、便宜的なものであり、当該呼称によって、サービスの内容を限定する趣旨ではない。
【００５１】
図７は、クラウドプルプリントの概要を説明するための図である。ユーザは、例えば、ＰＣ３０からサーバ装置５０にログインして、ＰＣ３０に保存されているドキュメントの実データを含むファイル（以下、「データファイル」という。）を、サーバ装置５０にアップロードする（Ｓ１）。続いて、ユーザは、いずれかの画像形成装置１０に移動し（Ｓ２）、画像形成装置１０にログインする（Ｓ３）。ログインに応じ、又はログイン後にユーザによってクラウドプルプリントサービスの利用が指示されると、画像形成装置１０は、サーバ装置５０にアプロードされているドキュメントの一覧を取得（ダウンロード）し、当該一覧を操作パネル１５に表示する。当該一覧の中から印刷対象とするドキュメントがユーザによって選択されると、画像形成装置１０は、当該ドキュメントのデータファイルを、サーバ装置５０から取得（ダウンロード）し（Ｓ５）、印刷を実行する（Ｓ６）。
【００５２】
上記のようなクラウドプルプリントによれば、例えば、ユーザは、自らが所属する企業における社内ＬＡＮを経由せずに、ＰＣ又は携帯端末等に保存されているドキュメントを、職場に設置されている画像形成装置１０に印刷させることができる。例えば、ユーザは、自宅や外出先から、印刷対象とするドキュメントをアップロードすることができる。
【００５３】
なお、ドキュメントをアップロードするユーザと、ドキュメントの印刷を画像形成装置１０に実行させるユーザとは、同一人物でなくてもよい。例えば、ユーザＡによってアップロードされたドキュメントに対して、ユーザＢがアクセス権限を有していれば、ユーザＢによって印刷が指示されてもよい。
【００５４】
図８は、クラウドプルプリントについてＷｅｂアプリに対する互換性の有無に関わらず実行される処理手順の一例を説明するための図である。すなわち、図８には、クラウドプルプリントに関して、出力先が画像形成装置１０ａ及び画像形成装置１０ｂのいずれであるかに関わらず、共通に実行される処理手順が示されている。なお、図８では、ユーザＡが、ＰＣ３０を利用してドキュメントをアップロードし、ユーザＡが、当該ドキュメントの印刷を指示する例について説明する。但し、ドキュメントの印刷指示は、ユーザＡ以外によって行われてもよい。また、ユーザＡが操作する画像形成装置１０を、以下、「対象機器」という。
【００５５】
初期状態として、ＰＣ３０には、サーバ装置５０に対するログイン画面が表示されている。ログイン画面は、例えば、サーバ装置５０からダウンロードされるＷｅｂページに基づいて表示されてもよい。なお、図８において、ＰＣ３０が実行する処理は、例えば、ＰＣ３０のＷｅｂブラウザが、ＰＣ３０に実行させてもよい。
【００５６】
ステップＳ１０１において、ユーザＡが、ＰＣ３０に表示されているログイン画面に対し、ユーザＩＤ及びパスワードを入力すると、ＰＣ３０は、当該ユーザＩＤ及びパスワードを含むログイン要求を、サーバ装置５０に送信する。サーバ装置５０の認証部５１は、当該ログイン要求に含まれているユーザＩＤ及びパスワードに関して認証処理を実行する（Ｓ１０２）。
【００５７】
認証に失敗した場合、以降の処理は中止される。認証に成功した場合、認証部５１は、ログインの成功を示すチケット（ｃｏｏｋｉｅ）を生成し、当該チケットと、アップロード画面を表示させるＷｅｂページとを、ＰＣ３０に返信する。なお、サーバ装置５０において、チケットは、認証されたユーザのユーザＩＤに関連付けられて記憶される。また、以降におけるＰＣ３０からの要求には、チケットが含まれる。したがって、サーバ装置５０は、各ＰＣ３０からの要求に係るユーザＩＤを、当該要求に含まれるチケットに基づいて特定することができる。
【００５８】
アップロード画面は、アップロード対象のドキュメントや、当該ドキュメントの宛先等を選択させるための画面である。ドキュメントの宛先とは、当該ドキュメントに対するアクセスが許容されるユーザ又はグループをいう。グループは、例えば、部署等、複数のユーザの集合に対する概念である。
【００５９】
当該Ｗｅｂページを受信したＰＣ３０は、アップロード画面を表示する。ユーザＡによって、アップロード画面を介して、アップロード対象のドキュメントやドキュメントの宛先等が選択されると、ＰＣ３０は、当該ドキュメントのデータファイル等を、サーバ装置５０に送信（アップロード）する（Ｓ１０３）。サーバ装置５０のドキュメント管理部５２は、当該データファイルを受信すると、当該データファイルを、例えば、補助記憶装置２０２に記憶し、当該データファイルに係るドキュメントの書誌情報を、ドキュメント情報記憶部５４に記憶する（Ｓ１０４）。
【００６０】
図９は、ドキュメント情報記憶部の構成例を示す図である。図９において、ドキュメント情報記憶部５４は、アップロードされたドキュメントごとに、ドキュメントＩＤ、文書種類、ＵＲＩ、ページ数、サイズ、日時、作成者、形式、及び宛先等を含む書誌情報を記憶する。
【００６１】
ドキュメントＩＤは、ドキュメントごとの識別情報である。文書種類は、報告書や伝票等、ユーザの業務の観点において各ドキュメントを分類した場合のドキュメントの種類である。ＵＲＩは、サーバ装置５０における、ドキュメントのデータファイルの記憶場所を示す情報であり、末尾はファイル名である。サイズは、当該データファイルのデータサイズである。日時は、ドキュメントがアップロードされた日時、すなわち、ドキュメントがドキュメント管理部５２によって受信された日時である。ドキュメントがアップロードされた時期を示す情報であれば、日時以外の情報が、日時の代わりに用いられてもよい。作成者は、ドキュメントをアップロードしたユーザのユーザＩＤである。すなわち、ドキュメントのアップロード要求に係るログインユーザのユーザＩＤである。形式は、当該データファイルのデータ形式である。宛先は、当該ドキュメントの宛先である。換言すれば、宛先は、当該ドキュメントについてアクセス権限を有するユーザ又は部署等である。宛先が部署である場合、当該部署に属するユーザにアクセス権限が与えられる。
【００６２】
なお、ドキュメントＩＤは、ドキュメント管理部５２によって自動的に割り当てられる。ＵＲＩ、サイズ、日時、作成者、及び形式は、ドキュメント管理部５２によって自動的に判定される。文書種類及び宛先は、アップロード要求に含まれている。例えば、文書種類及び宛先は、アップロード画面において、ユーザＡによって指定される。
【００６３】
その後、ユーザＡが、対象機器のＩＣカードリーダ１８にＩＣカードを翳すと（Ｓ１１１）、対象機器は、省エネ状態から復帰する（Ｓ１１２）続いて、対象機器の機器サービス部１２１は、当該ＩＣカードからのカードＩＤの読み取りを制御する（Ｓ１１３）。続いて、対象機器の機器サービス部１２１は、当該カードＩＤを含むログイン要求を、サーバ装置５０に送信する（Ｓ１１４）。サーバ装置５０の認証部５１は、当該ログイン要求に含まれているカードＩＤに関して認証処理を実行する（Ｓ１１５）。具体的には、当該カードＩＤに対応付けてユーザＩＤを含むレコードが予め記憶されていれば、認証は成功であると判定される。認証に失敗した場合、以降の処理は中止される。認証に成功した場合、サーバ装置５０は、認証の成功を示すと共に、カードＩＤに対応するユーザＩＤを含む応答を、対象機器に返信する。対象機器の機器サービス部１２１は、当該応答に含まれているユーザＩＤを、ログインユーザのユーザＩＤとして、例えば、ＲＡＭ１１２に記憶する。
【００６４】
続いて、対象機器の機器サービス部１２１は、認証されたユーザＡに関する優先設定アプリ情報の取得処理を実行する（Ｓ１１６）。優先設定アプリとは、画像形成装置１０の起動後に最初に操作対象とされる（最初に表示対象となる）アプリケーションをいい、ユーザＩＤごとに設定されている。優先設定アプリ情報とは、優先設定アプリを示す情報である。続いて、機器サービス部１２１は、ログインユーザのユーザＩＤに対して設定されている優先設定アプリ情報に基づいて、優先設定アプリを起動する（Ｓ１１７）。
【００６５】
以降の処理手順は、Ｗｅｂアプリに対して互換性を有する画像形成装置１０ａが対象機器である場合と、Ｗｅｂアプリに対して互換性を有さない画像形成装置１０ｂが対象機器である場合とによって異なる。したがって、それぞれについて個別に説明する。
【００６６】
図１０は、Ｗｅｂアプリに対して互換性を有する画像形成装置がクラウドプルプリントのＷｅｂアプリに関して実行する処理手順の一例を説明するための図である。
【００６７】
対象機器が、画像形成装置１０ａである場合、優先設定アプリ情報は、クラウドプルプリントに対応するＷｅｂアプリのＵＲＬである。そこで、機器サービス部１２１ａは、図８のステップＳ１１７において、当該ＵＲＬを指定して、ブラウザ部１２２ａを起動する。
【００６８】
ブラウザ部１２２ａは、起動すると、当該ＵＲＬに係るＷｅｂアプリのコンテンツデータの取得要求を、サーバ装置５０に送信する（Ｓ１２１）。サーバ装置５０は、当該取得要求に応じ、クラウドプルプリントのＷｅｂアプリのコンテンツデータを返信する（Ｓ１２２）。例えば、当該Ｗｅｂアプリを構成するＨＴＭＬ、ＣＳＳ、及びスクリプト等が返信される。
【００６９】
続いて、ブラウザ部１２２ａは、返信されたコンテンツデータに含まれているＨＴＭＬ及びＣＳＳに基づいて、ドキュメント一覧画面のうちの静的な部分について描画処理を実行する（Ｓ１２３）。ドキュメント一覧画面は、サーバ装置５０にアップロードされているドキュメントの一覧が表示される画面である。
【００７０】
図１１は、ドキュメント一覧画面の静的な部分の一例を示す図である。図１１において、ドキュメント一覧画面５１０は、ドキュメント一覧表示領域５１１及び印刷ボタン５１２等を含む。ドキュメント一覧表示領域５１１は、ドキュメントの一覧が表示される領域である。但し、図１１には、ドキュメントの一覧は含まれていない。ドキュメントの一覧は、サーバ装置５０にアップロードされているドキュメントに応じて異なる、動的な部分だからである。すなわち、ドキュメントの一覧は、Ｗｅｂアプリの静的なコンテンツデータとして、予め定義することができない部分だからである。印刷ボタン５１２は、ドキュメント一覧表示領域５１１において選択されたドキュメントの印刷指示を受け付けるためのボタンである。なお、図１１の状態では、ドキュメントの一覧が表示されていないため（すなわち、ドキュメントの印刷指示を受け付けることができない状態であるため）、印刷ボタン５１２は、グレーアウトされて操作不能な状態となっている。すなわち、図中において、印刷ボタン５１２が破線によって示されているのは、印刷ボタン５１２が例えばグレーアウトされていることを示す。
【００７１】
なお、ドキュメント一覧画面５１０は、例えば、図１２に示されるようなＤＯＭツリーに基づいて生成される。換言すれば、ブラウザ部１２２ａは、Ｗｅｂアプリのコンテンツデータに基づいて、図１２に示されるようなＤＯＭツリーを生成し、当該ＤＯＭツリーに基づいてドキュメント一覧画面５１０を描画する。
【００７２】
図１２は、ドキュメント一覧画面の静的な部分に対応するＤＯＭツリーの例を示す図である。ＤＯＭツリーを構成する各ノードは、ＤＯＭ要素を示す。図１２において、ｂｏｄｙノードは、ＨＴＭＬ文書の本文に対応するＤＯＭ要素である。Ｈ１ノード及びＨ２ノードは、見出しに対応するＤＯＭ要素である。Ｈ１ノードは、「印刷アプリ」という見出しに対応し、Ｈ２ノードは、「文書一覧」という見出しに対応する。なお、見出しのレベルは、レベルはｈ１〜ｈ６まであり、ｈ１が一番大きな見出しとなる。Ｂｕｔｔｏｎノードは、印刷ボタン５１２に対応するＤＯＭ要素である。Ｂｕｔｔｏｎノードには、操作の可否を示す属性であるｄｉｓａｂｌｅｄの値が、ｔｒｕｅとされている。
ここで、Ｈ１ノード、Ｈ２ノード、及びＢｕｔｔｏｎノード等のそれぞれには、「Ｏｆｆｓｅｔ」で始まる属性が付加されている。「Ｏｆｆｓｅｔ」で始まる属性は、各ＤＯＭ要素に対応する表示要素の配置位置を示すレイアウト情報であり、図５におけるレイアウトにおいて付加される。
【００７３】
続いて、ブラウザ部１２２ａは、クラウドプルプリントのＷｅｂアプリのコンテンツデータを構成するスクリプトに基づいて、ユーザＡに係るドキュメントの一覧の取得要求を、サーバ装置５０に送信する（Ｓ１２４）。すなわち、当該スクリプトには、Ｗｅｂアプリの表示時において、ログインユーザに係るドキュメントの一覧を取得すべきことを示す定義が含まれている。なお、当該取得要求には、ログインユーザのユーザＩＤが含まれる。サーバ装置５０のドキュメント管理部５２は、当該取得要求に応じ、サーバ装置５０に記憶されているドキュメントの中から、例えば、当該取得要求に含まれているユーザＩＤを宛先とするドキュメントの書誌情報の一覧（以下、「ドキュメント一覧」という。）をドキュメント情報記憶部５４から取得し、当該一覧を示すデータ（以下、「ドキュメント一覧データ」という。）を返信する（Ｓ１２５）。
【００７４】
図１３は、ドキュメント一覧データの一例を示す図である。図１３では、ドキュメント一覧が、ＪＳＯＮ（JavaScript（登録商標） Object Notation）形式で記述された例が示されている。
【００７５】
図１３において、ドキュメント一覧データは、ドキュメントごとに、ｆｉｌｅ、ｐａｇｅ、及びＤｏｃＩＤの値を含む。ｆｉｌｅは、ドキュメントのファイル名を示す。ｐａｇｅは、ドキュメントのページ数を示す。ＤｏｃＩＤは、ドキュメントの識別情報であるドキュメントＩＤを示す。
【００７６】
続いて、ブラウザ部１２２ａは、クラウドプルプリントのＷｅｂアプリを構成するスクリプトと、取得されたドキュメント一覧データとに基づいて、ドキュメント一覧画面５１０に係るＤＯＭツリーを更新し、更新された部分について描画処理を行う（Ｓ１２６）。その結果、図１２に示したＤＯＭツリーは、図１４に示されるように更新される。
【００７７】
図１４は、ドキュメント一覧データに基づいて更新されたドキュメント一覧画面のＤＯＭツリーの例を示す図である。
【００７８】
図１４では、ｕｌノード以下のノードが追加されている。ｕｌノードは、Ｕｎｏｒｄｅｒｅｄ  Ｌｉｓｔ（順序の無いリスト）を意味する。ここで、順序の無いリストは、ドキュメント一覧である。ｕｌノードの子ノードであるｌｉノードは、Ｌｉｓｔ  Ｉｔｅｍ（リスト項目）を意味する。ここでは、ドキュメント一覧に含まれる各ドキュメントが、各リスト項目に対応する。各ｌｉノードは、ＣｈｅｃｋＢｏｘノード及びＬａｂｅｌノードを子ノードとして有する。ＣｈｅｃｋＢｏｘノードは、Ｉｎｐｕｔ．Ｃｈｅｋｂｏｘを意味し、リスト項目の選択又は非選択を示すＣｈｅｃｋｅｄ属性を有する。リスト項目が選択された場合、当該リスト項目に対応するＣｈｅｃｋＢｏｘノードのＣｈｅｃｋｅｄ属性の値はｔｒｕｅとなる。リスト項目の選択が解除された場合、当該リスト項目に対応するＣｈｅｃｋＢｏｘノードのＣｈｅｃｋｅｄ属性の値はｆａｌｓｅとなる。ＣｈｅｃｋＢｏｘノードのＩＤ属性の値は、チェックボックスを識別するための識別情報であり、ＤＯＭツリーが生成される際に任意の値が割り当てられる。ＣｈｅｃｋＢｏｘノードのＶａｌｕｅ属性の値には、リスト項目に対応するドキュメントのドキュメントＩＤが設定される。Ｌａｂｅｌ要素は、リスト項目に表示される文字列を有する。ここでは、ファイル名とページ数とを含む文字列が表示対象とされている。
【００７９】
ＤＯＭツリーが図１４に示されるように更新されて描画処理が実行されることにより、ドキュメント一覧画面５１０は、図１５に示されるように更新される。
【００８０】
図１５は、ドキュメント一覧が描画されたドキュメント一覧画面の一例を示す図である。図１５に示されるように、ドキュメント一覧画面５１０のドキュメント一覧表示領域５１１には、ドキュメント一覧が表示される。
【００８１】
続いて、ユーザＡによって、ドキュメント一覧表示領域５１１に含まれているリスト項目の中から、印刷対象とするドキュメントに対応するリスト項目が１以上選択されると、ブラウザ部１２２ａは、ＤＯＭツリーにおいて、選択されたリスト項目に対応するＣｈｅｃｋＢｏｘノードのＣｈｅｃｋｅｄ属性の値をｔｒｕｅにし、Ｂｕｔｔｏｎノードのｄｉｓａｂｌｅｄ属性の値をｆａｌｓｅにする（Ｓ１２７）。その結果、当該リスト項目及び印刷ボタン５１２の表示状態が変更される。
【００８２】
図１６は、ドキュメントが選択された状態を示す図である。図１６では、１番目のリスト項目（すなわち、ファイル名が「Ｈｅｌｌｏ．ｊｐｇ」であるドキュメント）が選択された例が示されている。また、図１６では、印刷ボタン５１２が操作可能な状態に変更されている。
【００８３】
続いて、ユーザＡによって、印刷ボタン５１２が押下されると（Ｓ１２９）、ブラウザ部１２２ａは、クラウドプルプリントのＷｅｂアプリを構成するスクリプトに基づいて、選択されたドキュメントに係るデータファイルの取得要求を、サーバ装置５０に送信する（Ｓ１３０）。当該取得要求にはＣｈｅｃｋｅｄ属性の値がｔｒｕｅであるＣｈｅｃｋＢｏｘノードのＶａｌｕｅ属性の値（すなわち、ドキュメントＩＤ）が含まれる。
【００８４】
サーバ装置５０のドキュメント管理部５２は、当該取得要求に含まれているドキュメントＩＤに係るデータファイルを、例えば、補助記憶装置２０２から取得し、取得されたデータファイルを、対象機器に返信する（Ｓ１３１）。ドキュメントＩＤに係るデータファイルは、当該ドキュメントＩＤに対応付けられてドキュメント情報記憶部５４に記憶されているＵＲＩに基づいて特定可能である。なお、データファイルに格納されているデータの形式が、対象機器において印刷できない形式である場合、当該データについて、対象機器が印刷可能な形式への変換処理が実行された後に、データファイルの返信が実行されてもよい。
【００８５】
なお、対象機器に返信されるデータファイルは、ファイル形式に限定されなくてもよい。すなわち、「ファイル」という文言は、便宜上用いたものであり、ドキュメントのデータ形式がファイル形式に限定されることを意図するものではない。
【００８６】
対象機器において、当該データファイルが受信されると、ブラウザ部１２２ａは、クラウドプルプリントのＷｅｂアプリを構成するスクリプトにおいて定義されている印刷の実行命令に基づいて、機器サービス部１２１ａに対して当該データファイルの印刷を要求する（Ｓ１３２）。機器サービス部１２１ａは、当該要求に応じ、当該データファイルに関して印刷ジョブを実行する（Ｓ１３３）。その結果、ドキュメント一覧画面５１０においてユーザＡによって選択されたドキュメントが印刷される。
【００８７】
次に、図８における対象機器が、Ｗｅｂアプリに対して互換性を有さない画像形成装置１０ｂである場合の処理手順について説明する。
【００８８】
図１７は、Ｗｅｂアプリに対して互換性を有さない画像形成装置がクラウドプルプリントのＷｅｂアプリに関して実行する処理手順の一例を説明するための図である。
【００８９】
対象機器が、画像形成装置１０ｂである場合、優先設定アプリ情報は、フロントエンド部１２３ｂを示す情報である。そこで、機器サービス部１２１ｂは、図８のステップＳ１１７において、当フロントエンド部１２３ｂを起動する。続いて、フロントエンド部１２３ｂの利用要求部１３１は、ブラウザの利用要求をバックエンド部２１に送信する（Ｓ２０１）。ブラウザの利用要求の送信先は、画像形成装置１０ｂのバックエンド情報記憶部１３５を参照して特定される。
【００９０】
図１８は、バックエンド情報記憶部の構成例を示す図である。図１８に示されるように、バックエンド情報記憶部１３５には、接続先の候補となるバックエンド部２１ごとに、優先順位、所在区分、及びＵＲＬ等が記憶されている。優先順位は、各候補の優先順位である。優先順位が後の候補は、優先順位が先の候補への接続に失敗した場合に接続先とされる。所在区分は、各バックエンド部２１の所在場所が、イントラネット内かインターネット上であるのかを示す情報である。ＵＲＬは、各バックエンド部２１に対するＵＲＬである。
【００９１】
なお、ステップＳ２０１におけるバックエンド部２１への利用要求には、ログインユーザのユーザＩＤと、画像形成装置１０ｂの機体の識別情報（以下、「機体番号」という。）とが含まれる。また、フロントエンド部１２３ｂが機種ごとに異なったり、複数のバージョンのフロントエンド部１２３ｂが存在したりする場合には、フロントエンド部１２３ｂの種別を示す識別情報が、当該利用要求に含まれてもよい。
【００９２】
ブラウザの利用要求の宛先とされたバックエンド部２１の接続管理部２１１は、当該利用要求を受信すると、ブラウザ部２１２を利用するための準備処理を実行する（Ｓ２０２）。準備処理では、ブックマーク記憶部２２２を参照して、取得（ダウンロード）すべきＷｅｂアプリが特定される。
【００９３】
図１９は、ブックマーク記憶部の構成例を示す図である。図１９に示されるように、ブックマーク記憶部２２２には、各ユーザの識別情報であるユーザＩＤに対応付けて、当該ユーザが利用可能なＷｅｂアプリのアプリ名と、ＵＲＬと、各Ｗｅｂアプリが優先設定アプリであるか否かを示す情報とが記憶されている。
【００９４】
ステップＳ２０２の準備処理では、ブックマーク記憶部２２２を参照して、ブラウザの利用要求に含まれているユーザＩＤに対応する優先設定アプリのＵＲＬが特定される。図１９に示されるブックマーク記憶部２２２には、ユーザＡの優先設定アプリのアプリ名が、「クラウドプルプリント」であることが記憶されている。「クラウドプルプリント」は、クラウドプルプリントに対するアプリ名である。したがって、クラウドブルプリントに対応するＵＲＬが特定される。
【００９５】
なお、ＷｅｂアプリのＵＲＬは、ブラウザの利用要求に含まれて、対象機器から送信されてもよい。
【００９６】
また、ステップＳ２０２の準備処理では、パネル情報記憶部２２３及び操作仕様記憶部２２４が参照されて、対象機器の操作パネル１５の表示性能や操作性等が特定される。
【００９７】
図２０は、パネル情報記憶部の構成例を示す図である。図２０に示されるように、パネル情報記憶部２２３には、画像形成装置１０の機体ごとに、機体番号、機体名、パネルサイズ、色表現、ピクセル操作、静止画、動画、フォントサイズ、及び操作方法等の項目の値が記憶されている。
【００９８】
機体番号は、画像形成装置１０の機体ごとの識別番号である。機体名は、機体ごとに付与される名前である。パネルサイズは、操作パネル１５における液晶パネル（表示領域）の範囲を示すサイズである。色表現は、液晶パネルにおいて表現可能な色の数である。ピクセル操作は、図形（ベクトルデータ）の描画の可否を示す情報である。静止画は、静止画の画像データの表示の可否を示す情報である。動画は、動画データの表示の可否を示す情報である。フォントサイズは、表示可能なフォントのサイズを示す情報である。操作方法は、液晶パネルに対する操作方法を示す情報である。
【００９９】
また、図２１は、操作仕様記憶部の構成例を示す図である。図２１に示されるように、操作仕様記憶部２２４には、画像形成装置１０の機体ごとに、タッチイベント、スクロール、スワイプ、フリック、ズーム等の項目の値が記憶されている。
【０１００】
タッチイベントは、検知可能なタッチのイベントを示す。スクロール、スワイプ、フリック、及びズームは、それぞれの操作の可否を示す。すなわち、操作仕様記憶部２２４に記憶されている情報は、機体ごとに、当該機体の操作パネル１５が受け付け可能な操作を示す情報の一例である。
【０１０１】
なお、対象機器に関してパネル情報記憶部２２３又は操作仕様記憶部２２４に記憶されている情報についても、例えば、ブラウザの利用要求に含まれて、対象機器から送信されてもよい。
【０１０２】
ステップＳ２０２の準備処理では、パネル情報記憶部２２３を参照して、対象機器に係るパネルサイズに対応したウィンドウサイズで、ブラウザ部２１２（Ｗｅｂブラウザ）のプロセスが起動される。起動されたブラウザ部２１２には、対象機器に対応するフォントサイズが設定される。また、動画の表示が不可能な場合、動画を非表示とするように、ブラウザ部２１２に対して設定が行われる。更に、ブックマーク記憶部２２２を参照して特定されたＷｅｂアプリのＵＲＬが、ブラウザ部２１２に対して設定される。
【０１０３】
この状態において、接続管理部２１１は、フロントエンド部１２３ｂとバックエンド部２１との接続関係を管理するための情報を、接続情報記憶部２２１に記憶する。
【０１０４】
図２２は、接続情報記憶部の構成例を示す図である。図２２に示されるように、接続情報記憶部２２１には、ブラウザ部２１２の起動単位（プロセス）ごとに、ユーザＩＤ、機体番号、ブラウザＩＤ、及びＷｅｂアプリ等が記憶される。ユーザＩＤは、当該起動単位を利用するユーザのユーザＩＤである。機体番号は、当該起動単位に対応するフロントエンド部１２３ｂを有する画像形成装置１０の機体番号である。ブラウザＩＤは、当該起動単位の識別情報である。例えば、プロセスＩＤがブラウザＩＤとして用いられてもよい。Ｗｅｂアプリは、当該起動単位において描画対象とされているＷｅｂアプリのＵＲＬである。
【０１０５】
続いて、ブラウザ部２１２は、設定されたＵＲＬに係るＷｅｂアプリのコンテンツデータの取得要求を、サーバ装置５０に送信する（Ｓ２０３）。サーバ装置５０のＷｅｂアプリ管理部５３は、当該取得要求に応じ、クラウドプルプリントのＷｅｂアプリのコンテンツデータを返信する（Ｓ２０４）。例えば、当該Ｗｅｂアプリを構成するＨＴＭＬ、ＣＳＳ、及びスクリプト等が返信される。
【０１０６】
続いて、ブラウザ部２１２は、返信されたコンテンツデータに含まれているＨＴＭＬ及びＣＳＳに基づいて、ドキュメント一覧画面のうちの静的な部分について描画処理を実行し、描画処理の完了を、ブラウザ制御部２１３に通知する（Ｓ２０５）。なお、当該描画処理では、図５において説明したように、ペインティングは実行されない。したがって、図１２に示したＤＯＭツリーが生成される。また、ブラウザ部２１２は、自らのウィンドウサイズに収まるようにＷｅｂアプリの画面の描画処理を実行する。ここで、当該ウィンドウサイズは、対象機器の操作パネル１５の液晶パネルのサイズに対応している。したがって、当該画面のＤＯＭツリーにおける各ＤＯＭ要素（各表示要素）の配置位置は、当該画面が当該液晶パネルに収まる状態において決定された値となる。
【０１０７】
描画処理の完了の通知を受けたブラウザ制御部２１３が、ブラウザ部２１２からＤＯＭツリー（図１２）を取得して、当該ＤＯＭツリーをレイアウト変換部２１４に入力すると、レイアウト変換部２１４は、当該ＤＯＭツリーを、対象機器に対応した画面レイアウトデータに変換する（Ｓ２０６）。図５においても説明したように、当該画面レイアウトデータの形式は所定のものに限定されない。レイアウト変換部２１４は、変換によって生成された画面レイアウトデータを、対象機器のフロントエンド部１２３ｂに送信する。
【０１０８】
対象機器のフロントエンド部１２３ｂのレイアウト受信部１３２は、当該画面レイアウトデータを受信すると、当該画面レイアウトデータに基づいて、初期状態のドキュメント一覧画面５１０を表示する（Ｓ２０７）。初期状態とは、図１１に示した状態をいう。
【０１０９】
また、ブラウザ部２１２は、ステップＳ２０５に続いて、クラウドプルプリントのＷｅｂアプリのコンテンツデータを構成するスクリプトに基づいて、ユーザＡに係るドキュメントの一覧の取得要求を、サーバ装置５０に送信する（Ｓ２０８）。当該取得要求には、ブラウザの利用要求に含まれていたユーザＩＤが含まれる。サーバ装置５０のドキュメント管理部５２は、当該取得要求に応じ、図１０のステップＳ１２５と同様に、ドキュメント一覧データを返信する（Ｓ２０９）。当該ドキュメント一覧データの内容は、例えば、図１３に示した通りである。
【０１１０】
続いて、ブラウザ部２１２は、クラウドプルプリントのＷｅｂアプリを構成するスクリプトと、取得されたドキュメント一覧データとに基づいて、ドキュメント一覧画面５１０に係るＤＯＭツリーを更新し、更新された部分について描画処理を行う（Ｓ２１０）。その結果、図１２に示したＤＯＭツリーは、図１４に示されるように更新される。ブラウザ部２１２は、描画処理の完了を、ブラウザ制御部２１３に通知する。
【０１１１】
なお、ドキュメント一覧に含まれるドキュメントの数によっては、全てのドキュメントが、ドキュメント一覧表示領域５１１に収まらない可能性が有る。この場合、対象機器が、タッチスクリーン上で指を滑らすような操作（スワイプ／フリックなどのタッチ操作）によって、表示対象とするドキュメントをスクロール可能でない場合、スクロール操作を受け付けるための表示要素がドキュメント一覧画面５１０に追加されてもよい。
【０１１２】
図２３は、スクロール操作を受け付けるための表示要素が追加されたドキュメント一覧画面の例を示す図である。図２３に示されるドキュメント一覧画面５１０は、前へボタン５１３及び次へボタン５１４等を更に含む。これらのボタンは、表示対象とするドキュメントを前後に移動させるためのボタンである。これらのボタンを追加する場合、ブラウザ部２１２は、これらのボタンに対応するＤＯＭ要素をＤＯＭツリーに追加すればよい。なお、対象機器が、スワイプ等の操作を受け付け可能であるか否かは、操作仕様記憶部２２４（図２１）を参照して判定されてもよい。
【０１１３】
続いて、ブラウザ制御部２１３が、ブラウザ部２１２からＤＯＭツリー（図１４）を取得して、当該ＤＯＭツリーをレイアウト変換部２１４に入力すると、レイアウト変換部２１４は、当該ＤＯＭツリーを画面レイアウトデータに変換する（Ｓ２１１）。なお、フロントエンド部１２３ｂが、更新部分のみの画面レイアウトデータの受け付けが可能であれば、ＤＯＭツリーのうちの更新部分のみが変換対象とされてもよい。レイアウト変換部２１４は、変換によって生成された画面レイアウトデータを、対象機器のフロントエンド部１２３ｂに送信する。
【０１１４】
対象機器のフロントエンド部１２３ｂのレイアウト受信部１３２は、当該画面レイアウトデータを受信すると、当該画面レイアウトデータに基づいて、ドキュメント一覧画面５１０を更新する（Ｓ２１２）。すなわち、ドキュメント一覧画面５１０の表示状態が、図１５に示したように更新される。
【０１１５】
続いて、ユーザＡによって、ドキュメント一覧表示領域５１１に含まれているリスト項目の中から、印刷対象とするドキュメントに対応するリスト項目が選択されると（Ｓ２１３）、対象機器のフロントエンド部１２３ｂの操作情報送信部１３３は、当該リスト項目に対応する識別情報と、当該リスト項目が選択されたことを示す情報とを含む操作情報を、バックエンド部２１に送信する（Ｓ２１４）。例えば、図１６に示されるように、ファイル名が「Ｈｅｌｌｏ．ｊｐｇ」であるドキュメントに係るリスト項目が選択されると、当該リスト項目に対応付けられているドキュメントＩＤである「Ｄｏｃ１８５５」が、バックエンド部２１に送信される。このように、フロントエンド部１２３ｂに提供される画面レイアウトデータには、操作対象とされる表示要素ごとに、当該表示要素の識別情報が含まれている必要が有る。例えば、リスト項目の場合であれば、当該リスト項目に対するＶａｌｕｅ属性の値が画面レイアウトデータに含まれている必要が有る。
【０１１６】
バックエンド部２１の操作情報受信部２１５は、当該操作情報を受信すると、当該操作情報に対応する、ブラウザ部２１２が解釈可能な形式のイベント情報を生成する。ブラウザ制御部２１３は、当該イベント情報をブラウザ部２１２に入力する（Ｓ２１５）。その結果、「Ｈｅｌｌｏ．ｊｐｇ」であるドキュメントに係るリスト項目が選択された際に、画像形成装置１０ａのブラウザ部１２２ａが検知するイベントと同様のイベントが、ブラウザ部２１２によって検知される。ブラウザ部２１２は、当該イベントの検知に応じ、ＤＯＭツリーにおいて、当該イベントにおいて選択対象とされているリスト項目に対応するＣｈｅｃｋＢｏｘノードのＣｈｅｃｋｅｄ属性の値をｔｒｕｅにする（Ｓ２１６）。なお、当該ＣｈｅｃｋＢｏｘノードの値の更新に対応する画面レイアウトデータは、フロントエンド部１２３ｂに送信される。フロントエンド部１２３ｂのレイアウト受信部１３２は、当該画面レイアウトデータに基づいて、選択されたリスト項目の表示状態を、図１６に示されるように変更する。
【０１１７】
続いて、ユーザによって、印刷ボタン５１２が押下されると（Ｓ２１７）、対象機器のフロントエンド部１２３ｂの操作情報送信部１３３は、印刷ボタン５１２が押下されたことを示す操作情報を、バックエンド部２１に送信する（Ｓ２１８）。バックエンド部２１の操作情報受信部２１５は、当該操作情報を受信すると、当該操作情報に対応する、ブラウザ部２１２が解釈可能な形式のイベント情報を生成する。ブラウザ制御部２１３は、当該イベント情報を、ブラウザ部２１２に入力する（Ｓ２１９）。その結果、印刷ボタン５１２が押下された際に、画像形成装置１０ａのブラウザ部１２２ａが検知するイベントと同様のイベントが、ブラウザ部２１２によって検知される。ブラウザ部２１２は、当該イベントに応じ、クラウドプルプリントのＷｅｂアプリを構成するスクリプトに基づいて、選択されたドキュメントに係るデータファイルの取得要求を、サーバ装置５０に送信する（Ｓ２２０）。当該取得要求にはＣｈｅｃｋｅｄ属性の値がｔｒｕｅであるＣｈｅｃｋＢｏｘノードのＶａｌｕｅ属性の値（すなわち、ドキュメントＩＤ）が含まれる。
【０１１８】
サーバ装置５０のドキュメント管理部５２は、当該取得要求に含まれているドキュメントＩＤに係るデータファイルを、例えば、補助記憶装置２０２から取得し、取得されたデータファイルを、ブラウザ部２１２に返信する（Ｓ２２１）。なお、対象機器に返信されるデータファイルは、ファイル形式に限定されなくてもよい。
【０１１９】
ブラウザ部２１２は、当該データファイルが受信されると、クラウドプルプリントのＷｅｂアプリを構成するスクリプトにおいて定義されている印刷の実行命令に基づいて、バックエンド部２１の機器サービス仲介部２１６に対して、当該データファイルの印刷を要求する（Ｓ２２２）なお、ブラウザ部２１２にとって、機器サービス仲介部２１６は、ブラウザ部１２２ａにとっての機器サービス部１２１ａと同様に見える。すなわち、機器サービス仲介部２１６は、機器サービス部１２１ａをエミュレートして、機器サービス部１２１ａと同様のインタフェースを、ブラウザ部２１２に対して提供する。したがって、ブラウザ部２１２は、画像形成装置１０ａ上において動作している場合と同様の処理によって、印刷要求を行うことができる。
【０１２０】
続いて、機器サービス仲介部２１６は、対象機器のフロントエンド部１２３ｂの機器サービス公開部１３４に対して、当該データファイルの印刷要求を送信する（Ｓ２２３）。対象機器のフロントエンド部１２３ｂの機器サービス公開部１３４は、当該印刷要求を受信すると、当該データファイルの印刷を、機器サービス部１２１ｂに要求する（Ｓ２２４）。機器サービス部１２１ｂは、当該要求に応じ、当該データファイルに関して印刷ジョブを実行する（Ｓ２２５）。その結果、ドキュメント一覧画面５１０においてユーザＡによって選択されたドキュメントが印刷される。
【０１２１】
上述したように、本実施の形態によれば、外部ブラウザ装置２０によって、Ｗｅｂアプリの定義内容が解析されて、当該Ｗｅｂアプリの画面を表示するためのデータが、画像形成装置１０ｂに解釈可能な形式で生成される。したがって、画像形成装置１０ｂにおけるＷｅｂアプリに対する非互換を解消可能とすることができる。すなわち、ユーザが、画像形成装置１０ｂを操作する場合であっても、Ｗｅｂアプリを利用可能とすることができる。
【０１２２】
なお、上記では、クラウドプルプリントに対するＷｅｂアプリについて説明したが、本実施の形態が適用可能な範囲は、特定のサービスに対するＷｅｂアプリに限定されない。例えば、画像形成装置１０に対してスキャンを指示すると、原稿から読み取られた画像データ（以下、「スキャン画像」という。）が、自動的にサーバ装置５０等にアップロードされるサービス（以下、「クラウドスキャン」という。）に対応するＷｅｂアプリに関して、本実施の形態が適用されてもよい。
【０１２３】
図２４は、クラウドスキャンに関して実行される処理手順の第１の例を説明するための図である。
【０１２４】
ステップＳ３０１において、フロントエンド部１２３ｂの利用要求部１３１は、ブラウザの利用要求をバックエンド部２１に送信する。バックエンド部２１の接続管理部２１１は、当該利用要求に応じ、準備処理を実行する。ここでは、クラウドスキャンに関するＷｅｂアプリが、取得対象とされる。そこで、ブラウザ部２１２は、当該Ｗｅｂアプリに対応するＵＲＬ宛に、Ｗｅｂアプリのコンテンツデータの取得要求を送信する（Ｓ３０２）。サーバ装置５０から当該コンテンツデータが返信されると（Ｓ３０３）、ブラウザ部２１２は、図５の（２）において説明したような描画処理を実行する。その結果、当該Ｗｅｂアプリに関するＤＯＭツリーが生成される。当該ＤＯＭツリーは、レイアウト変換部２１４によって画面レイアウトデータに変換されて、フロントエンド部１２３ｂに送信される（Ｓ３０４）。フロントエンド部１２３ｂのレイアウト受信部１３２は、当該画面レイアウトデータを受信すると、当該画面レイアウトデータに基づいて、クラウドスキャンのＷｅｂアプリに対応する画面を操作パネル１５に表示する。当該画面には、例えば、スキャンの実行指示を受け付けるためのボタン（以下、「スキャン開始ボタン」という。）が配置されている。
【０１２５】
画像形成装置１０ｂに原稿がセットされて、スキャン開始ボタンが押下されると、フロントエンド部１２３ｂの操作情報送信部１３３は、スキャン開始ボタンの押下を示す操作情報を、バックエンド部２１に送信する（Ｓ３１１）。続いて、当該操作情報に対応するイベントが、バックエンド部２１のブラウザ部２１２に入力される。ブラウザ部２１２は、クラウドスキャンのＷｅｂアプリを構成するスクリプトにおいて定義されているスキャンの実行命令に基づいて、スキャンの実行を機器サービス仲介部２１６に要求する。機器サービス仲介部２１６は、当該要求に応じ、スキャンの実行要求をフロントエンド部１２３ｂに送信する（Ｓ３１２）。なお、フロントエンド部１２３ｂとバックエンド部２１との間の通信が、ＨＴＴＰ（HyperText Transfer Protocol）によって行われる場合、ステップＳ３１１の操作情報が、ＨＴＴＰリクエストであり、ステップＳ３１２におけるスキャンの実行要求が、当該ＨＴＴＰリクエストに対するＨＴＴＰレスポンスであってもよい。この点は、クラウドプルプリントに関しても同様である。
【０１２６】
フロントエンド部１２３ｂの機器サービス公開部１３４は、スキャンの実行要求に応じ、機器サービス部１２１ｂに対してスキャンの実行を要求する（Ｓ３１３）。当該要求は、例えば、関数呼び出し等によって行われる。機器サービス部１２１ｂは、画像形成装置１０ｂを制御して、原稿のスキャンを画像形成装置１０ｂに実行させる。機器サービス部１２１ｂは、原稿からスキャンされたスキャン画像を機器サービス公開部１３４に出力する。機器サービス公開部１３４は、当該スキャン画像を、バックエンド部２１の機器サービス仲介部２１６に送信する（Ｓ３１５）。機器サービス仲介部２１６は、当該スキャン画像を、サーバ装置５０の所定のフォルダに送信する（Ｓ３１６）。
【０１２７】
なお、図２４において、破線で囲まれている処理手順は、図２５又は図２６に示されるように置き換えられてもよい。
【０１２８】
図２５は、クラウドスキャンに関して実行される処理手順の第２の例を説明するための図である。図２５中、図２４と同一ステップには同一ステップ番号を付し、その説明は省略する。
【０１２９】
図２５では、ステップＳ３１１における操作情報に応じてバックエンド部２１によって実行される処理が図２４と異なる。具体的には、ブラウザ部２１２は、当該操作情報に対応するイベントの入力に応じ、クラウドスキャンのＷｅｂアプリを構成するスクリプトにおいて定義されているスキャンの実行命令に基づいて、機器サービス仲介部２１６にスキャンの実行を要求する。機器サービス仲介部２１６は、当該要求に応じ、スキャンの実行要求を、画像形成装置１０ｂの機器サービス部１２１に送信する（Ｓ３２１）。
【０１３０】
すなわち、図２５は、機器サービス部１２１のＡＰＩが、例えば、ＷｅｂＡＰＩとして、ネットワークを介して呼び出し可能とされている場合に有効な例である。ＷｅｂＡＰＩとは、ＵＲＬによって、各メソッドが区別されるＡＰＩをいう。
【０１３１】
機器サービス部１２１ｂは、スキャンの実行要求を受信すると、画像形成装置１０ｂを制御して、原稿のスキャンを画像形成装置１０ｂに実行させる。機器サービス部１２１ｂは、原稿からスキャンされたスキャン画像を、バックエンド部２１の機器サービス仲介部２１６に送信（返信）する（Ｓ３２２）。機器サービス仲介部２１６は、当該スキャン画像を、サーバ装置５０の所定のフォルダに送信する（Ｓ３１６）。
【０１３２】
また、図２６は、クラウドスキャンに関して実行される処理手順の第３の例を説明するための図である。図２６中、図２４と同一ステップには同一ステップ番号を付し、その説明は省略する。
【０１３３】
図２５では、ステップＳ３１１における操作情報に応じてバックエンド部２１によって実行される処理が図２４と異なる。具体的には、ブラウザ部２１２は、当該操作情報に対応するイベントの入力に応じ、Ｗｅｂアプリを構成するＨＴＭＬの定義に基づいて、スキャンの実行要求を示すＨＴＴＰリクエストを、サーバ装置５０に送信する（Ｓ３３１）。すなわち、第３の例では、Ｗｅｂアプリを構成するＨＴＭＬの定義が、第１の例及び第２の例と異なる。当該ＨＴＭＬでは、スキャン開始ボタンの押下に対する処理として、サーバ装置５０に対するスキャンの実行要求を示すＨＴＴＰリクエストの送信が定義されている。このような定義は、スクリプトを用いなくても可能である。したがって、第３の例では、Ｗｅｂアプリを構成するコンテンツデータに、スクリプトは含まれなくてもよい。但し、ステップＳ３３１におけるＨＴＴＰリクエストは、スクリプトの定義に基づいて実行されてもよい。なお、ステップＳ３３１におけるＨＴＴＰリクエストは、画像形成装置１０ｂへの処理の実行命令の送信要求に相当する。
【０１３４】
サーバ装置５０は、当該ＨＴＴＰリクエストに応じ、スキャンの実行要求を、画像形成装置１０ｂの機器サービス部１２１に送信する（Ｓ３３２）。すなわち、第３の例も、第２の例（図２５）と同様に、機器サービス部１２１のＡＰＩが、例えば、ＷｅｂＡＰＩとして、ネットワークを介して呼び出し可能とされている場合に有効な例である。ステップＳ３３２において呼び出される機器サービス部１２１のメソッドは、ステップＳ３２１において呼び出されるメソッドと同じでもよい。
【０１３５】
機器サービス部１２１ｂは、スキャンの実行要求を受信すると、画像形成装置１０ｂを制御して、原稿のスキャンを画像形成装置１０ｂに実行させる。機器サービス部１２１ｂは、原稿からスキャンされたスキャン画像を、サーバ装置５０に送信（返信）する（Ｓ３３３）。サーバ装置５０は、当該スキャン画像を所定のフォルダに保存する。
【０１３６】
このように、クラウドスキャンに関しても、バックエンド部２１及びフロントエンド部１２３ｂは、有効に機能する。なお、クラウドプルプリントに関して図１７において説明した処理手順は、図２４〜図２６のうち、図２４に対応する処理手順である。すなわち、図１７では、ステップＳ２２３において、機器サービス仲介部２１６は、印刷要求を、フロントエンド部１２３ｂの機器サービス公開部１３４に対して送信している。当該印刷要求は、ステップＳ２１８において送信される操作情報がＨＴＴＰリクエストであれば、当該ＨＴＴＰリクエストに対するＨＴＴＰレスポンスであってもよい。
【０１３７】
但し、クラウドプルプリントについて、図２５又は図２６と同様の処理手順が実現されてもよい。クラウドプルプリントについて、図２５と同様の処理手順を実現する場合、機器サービス仲介部２１６は、ドキュメントのデータファイルを含む印刷要求を、機器サービス部１２１ｂに送信すればよい。また、クラウドプルプリントについて、図２６と同様の処理手順を実現する場合、ブラウザ部２１２は、印刷要求を示し、ドキュメントのデータファイルを含むＨＴＴＰリクエストを、サーバ装置５０に送信すればよい。サーバ装置５０は、当該ＨＴＴＰリクエストに応じ、当該データファイルを含む印刷要求を、機器サービス部１２１ｂに送信すればよい。但し、この場合、クラウドプルプリントに係るＷｅｂアプリを構成するＨＴＭＬの定義内容が変更される必要が有る。
【０１３８】
なお、サーバ装置５０と外部ブラウザ装置２０とは、同じコンピュータによって構成されてもよい。この場合、当該コンピュータは、Ｗｅｂアプリのコンテンツデータの取得要求元に応じて、当該コンテンツデータをそのまま返信するか、外部ブラウザ装置２０の機能を利用して画面レイアウトデータに変換するかを判定してもよい。例えば、画像形成装置１０の機体ごと又は機種ごとに、Ｗｅｂアプリのコンテンツデータをそのまま返信可能か、画面レイアウトデータに変換する必要が有るかを示す情報が、当該コンピュータが参照可能な記憶装置等に記憶されていてもよい。又は、コンテンツデータを解釈可能か否かを示す情報が、画像形成装置１０からのコンテンツデータの取得要求に含まれていてもよい。
【０１３９】
なお、本実施の形態は、画像形成装置１０以外の機器に関して適用されてもよい。例えば、プロジェクタ、電子黒板、デジタルカメラ、又はテレビ会議システム等に関するＷｅｂアプリについて、本実施の形態が適用されてもよい。
【０１４０】
また、Ｗｅｂアプリ以外のデータに関して、本実施の形態が適用されてもよい。例えば、第１の機器と第２の機器との間で解釈可能なデータ（例えば、表示データ）が異なる場合、いずれか一方の機器（例えば、第２の機器）に対して、外部ブラウザ装置２０に相当する装置が接続されるようにしてもよい。当該装置は、第１の機器が解釈可能なデータを、第２の機器に解釈可能なように変換して、変換結果を第２の機器に提供してもよい。
【０１４１】
なお、本実施の形態において、外部ブラウザ装置２０は、情報処理装置の一例である。画像形成装置１０ｂは、機器の一例である。レイアウト変換部２１４は、変換部及び第１の送信部の一例である。操作情報受信部２１５は、第１の受信部の一例である。機器サービス仲介部２１６は、請求項１の第２の送信部の一例である。ブラウザ部２１２は、描画部及び請求項２の第２の送信部の一例である。接続管理部２１１は、第２の受信部の一例である。第１の形式は、画面レイアウトデータの形式である。第２の形式は、Ｗｅｂアプリのコンテンツデータの形式である。操作パネル１５は、機器の表示部の一例である。
【０１４２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１４３】
１０ａ        画像形成装置
１０ｂ        画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
１８          ＩＣカードリーダ
２０          外部ブラウザ装置
２１          バックエンド部
３０          ＰＣ
５０          サーバ装置
５１          認証部
５２          ドキュメント管理部
５３          Ｗｅｂアプリ管理部
５４          ドキュメント情報記憶部
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１２１ａ      機器サービス部
１２１ｂ      機器サービス部
１２２ａ      ブラウザ部
１２３ｂ      フロントエンド部
１３１        利用要求部
１３２        レイアウト受信部
１３３        操作情報送信部
１３４        機器サービス公開部
１３５        バックエンド情報記憶部
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
２１１        接続管理部
２１２        ブラウザ部
２１３        ブラウザ制御部
２１４        レイアウト変換部
２１５        操作情報受信部
２１６        機器サービス仲介部
２２１        接続情報記憶部
２２２        ブックマーク記憶部
２２３        パネル情報記憶部
２２４        操作仕様記憶部
Ｂ            バス
【先行技術文献】
【特許文献】
【０１４４】
【特許文献１】特開２００５−２４９９４号公報
【特許文献２】特開２００６−２０３８６９号公報
【特許文献３】特開２００６−３５２８４５号公報
【特許文献４】特開２００３−２８３７１８号公報
【図１】
0006459770.tif 000002
【図２】
0006459770.tif 000003
【図３】
0006459770.tif 000004
【図４】
0006459770.tif 000005
【図５】
0006459770.tif 000006
【図６】
0006459770.tif 000007
【図７】
0006459770.tif 000008
【図８】
0006459770.tif 000009
【図９】
0006459770.tif 000010
【図１０】
0006459770.tif 000011
【図１１】
0006459770.tif 000012
【図１２】
0006459770.tif 000013
【図１３】
0006459770.tif 000014
【図１４】
0006459770.tif 000015
【図１５】
0006459770.tif 000016
【図１６】
0006459770.tif 000017
【図１７】
0006459770.tif 000018
【図１８】
0006459770.tif 000019
【図１９】
0006459770.tif 000020
【図２０】
0006459770.tif 000021
【図２１】
0006459770.tif 000022
【図２２】
0006459770.tif 000023
【図２３】
0006459770.tif 000024
【図２４】
0006459770.tif 000025
【図２５】
0006459770.tif 000026
【図２６】
0006459770.tif 000027