以下、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
まず、本実施の形態における用語を説明する。
「画像形成装置」は、例えばプリンター、スキャナー、コピー機およびファクシミリ機、ならびにこれら機器の機能を備えるMFPを含む。
「アプリケーション」は、画像形成装置が備える機能を実現するために実行されるウェブアプリケーションプログラムである。
「アプリケーション画面」は、画像形成装置のアプリケーションに対応付けられた画面であり、画像から構成される。「アプリケーション画面」は、例えば、画像形成装置に関連付けられたディスプレイに表示される。
「UI部品」は、画像を構成する部分画像であって、ユーザーにより操作されると操作内容を受付ける機能を備える。本実施の形態では、UI部品には、アプリケーションが関連付けされ得る。
「コンテンツ」は、画面の画像を構成するためのデータであり、本実施の形態では、アプリケーションが実行されることにより生成される。この画面の「コンテンツ」は、アプリケーションの識別子とともに、例えば、画像(静止画、動画(映像))、文字、音声、および例えばJava(登録商標)スクリプトなどのコマンドなどを含む。また、コンテンツの画像がUI部品を含む場合は、各UI部品に対応して、画像が表示された場合の当該UI部品の画面上の位置と、当該UI部品に関連付けられたアプリケーションの識別子を含む。
「階層的な表示」とは、アプリケーションがマルチに実行可能な環境において、複数のアプリケーション画面を同一ディスプレイにレイアウトするための表示態様である。「階層的な表示」では、複数のアプリケーション画面が階層構造に従い重なりあってレイアウトされる。
「画面の階層」とは、上記の階層構造を構成する各アプリケーション画面がレイアウトされる階層を示す。
「フォアグラウンド画面」は、上記の「階層的な表示」においてディスプレイの表面側に近い階層にレイアウトされるアプリケーション画面である。
「バックグラウンド画面」は、フォアグラウンド画面の背面側(フォアグラウンド画面を挟んでディスプレイの表面側とは反対側)の階層でレイアウトされるアプリケーション画面である。本実施の形態では、「バックグラウンド画面」が表示される場合、「バックグラウンド画面」は「フォアグラウンド画面」が重ねられることで一部または全部が隠されて、ディスプレイの表面には一部または全部が映しだされない画面である。
「フォアグラウンドアプリケーション」は、「フォアグラウンド画面」に対応付けられるアプリケーションプを示し、「バックグラウンドアプリケーション」は、「バックグラウンド画面」に対応付けられるアプリケーションを示す。
「初期画面」は、画像形成装置が備える各機能に対応のアプリケーションが実行されことにより提供される1または複数枚のアプリケーション画面のうち、当該機能が提供する基本機能の画面(以下では、トップ画面ともいう)を示す。「初期画面」は、例えば、機能が提供する応用機能の一覧を示すメニュー画面を含み得る。
「非初期画面」は、「初期画面」ではないアプリケーション画面であって、例えば応用機能のアプリケーション画面を示す。「非初期画面」は、ユーザー操作による応用機能に対する項目設定を受付けるための項目設定画面を含む。このような項目設定画面では、ユーザー操作により設定された項目が視覚化して表示され得る。
<A.ハードウェア構成>
(a1.システムの構成)
図1は、実施の形態にかかるシステム1の概略的な構成を示す図である。図1を参照して、システム1は、画像形成装置の一実施例であるMFP100、およびMFP100と有線または無線のネットワーク400を介してデータを遣り取りするウェブ(Web)サーバーであるサーバー300を備える。また、MFP100は、内蔵サーバー200を備える。内蔵サーバー200は、MFP100内に備えられるウェブサーバーである。サーバー300と内蔵サーバー200は、ウェブサービス(コンテンツなど)をMFP100に提供する。ネットワーク400は、LAN(Local Area Network)またはWAN(Wide Area Network)などを含む。ネットワーク400を介した通信には、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)、HTTP(Hypertext Transfer Protocol)などの各種のプロトコルを適用することができる。なお、ネットワーク400には、上記以外の機器が接続されてもよい。また、ネットワーク400に接続されるMFP100は1台に限られず、複数台であってもよい。
(a2.MFP100のハードウェア構成)
図2は、実施の形態にかかるMFP100のハードウェアの構成の一例を概略的に示す図である。図2を参照して、MFP100は、MFP100を制御するための制御部に相当するCPU(Central Processing Unit)150、プログラムおよびデータを格納するための記憶部160、情報の入出力部170、ネットワーク400を介してサーバー300と通信するためのネットワーク通信IF(InterFaceの略)156、画像データを含む各種データを記憶するハードディスクなどの記憶部173、データリーダー/ライター174、内蔵サーバー200、および内蔵サーバー200と通信するための内部通信回路175、および各種処理部を含む。
内部通信回路175は、データバスを介して、HTTPなどの通信プロトコルを用いて内蔵サーバー200と通信する。内部通信回路175は、例えばNIC(Network Interface Card)またはLANボードなどのハードウェア回路を備える。
記憶部160は、CPU150により実行されるプログラムおよびデータを記憶するためのROM(Read Only Memory)、CPU150によりプログラムを実行する際の作業領域として供されるRAM(Random Access Memory)および不揮発メモリなどを含む。記憶部160には、ウェブブラウザー105のプログラムおよび関連するデータを格納する領域を有する。記憶部160は、ウェブブラウザー105を格納する。例えば、ウェブブラウザー105を格納する領域は、不揮発メモリに備えられるが、格納領域は、不揮発メモリまたは記憶部160に限定されず、後述する記憶媒体176であってもよい。
入出力部170は、ディスプレイ171Bおよび駆動信号に基づきディスプレイ171Bを駆動する回路である表示ドライバー171Aを含む表示部171、およびユーザーがMFP100に対して情報を入力するために操作する操作部172を含む。ここでは、表示部171と操作部172は、一体的に構成されたタッチパネルとして提供されてもよい。
通信IF156は、「通信回路」の一実施例であって、例えばNIC(Network Interface Card)などの回路を含んで構成される。通信IF156は、サーバー300を含む外部装置とネットワーク400を介して通信するためのデータ通信部157を含む。データ通信部157は、データを、ネットワーク400を介してサーバー300を含む外部装置に送信するための送信部158、およびネットワーク400を介してサーバー300を含む外部装置からデータを受信する受信部159を含む。
データリーダー/ライター174は、記憶媒体176が脱着自在に装着される。データリーダー/ライター174は、装着された記憶媒体176からプログラムまたはデータを読出す回路と、記憶媒体176にデータを書込む回路を有する。
各種処理部は、画像処理部151、画像形成部152、図示しないファクシミリ回路を制御するためのファクシミリ制御部153、図示しないプリンターを制御する画像出力部154および画像読取部155を備える。
画像処理部151は、入力された画像データを処理することにより、たとえば出力される画像の拡大・縮小等の処理を実行する。画像処理部151は、たとえば画像処理用のプロセッサーおよびメモリーによって実現される。画像形成部152は、トナーカートリッジ、記録用紙を収容するための用紙トレイ、および、感光体等の、記録用紙に画像を形成するためのモーターを含むハードウェア資源、ならびに、記録用紙を搬送するためのモーターを含むハードウェア資源によって実現される。画像読取部155は、原稿を光学的に読み取って画像データを得るためのスキャナー等の、原稿の画像データを生成するように構成されたハードウェア資源によって実現される。画像処理部151、画像形成部152、ファクシミリ制御部153、画像出力部154および画像読取部155のそれぞれの機能は、MFP100においてよく知られたものであるから、ここでは詳細な説明は繰返さない。
これら各処理部は、CPU150から制御データを受付けて、制御データに基づき駆動信号(電圧信号または電流信号)を生成し、生成した駆動信号を内部回路(例えばモーター等のハードウェア)に出力する。これにより、指令に従い各処理部のハードウェアが動作する。
内蔵サーバー200は、CPU210、ROM、RAMおよびHDDなどを含む記憶部220、「通信回路」の一実施例であるネットワーク通信IF(Interfaceの略)230および内部通信回路240を含む。内部通信回路240は、内部通信回路175と同様の構成を備えるので説明は繰り返さない。ネットワーク通信IF230は、ネットワーク400を介して、サーバー300を含む外部装置と通信する。ネットワーク通信IF230は、ネットワーク通信IF156と同様の構成を備えるので、説明は繰り返さない。
なお、本実施の形態では、MFP100は、内蔵サーバー200をハードウェア機器として実装しているが、内蔵サーバー200の実装形式は、これに限定されない。例えば、記憶部160にサーバープログラムが格納されて、CPU150はサーバープログラムを記憶部160から読出して実行することにより、仮想的に内蔵サーバー200と同様の機能を提供するとしてもよい。
(a3.サーバー300のハードウェア構成)
図3は、実施の形態にかかるサーバー300のハードウェア構成の一例を概略的に示す図である。図3を参照して、サーバー300は、サーバー300を制御するためのCPU30、記憶部34、ネットワークコントローラー35およびリーダー/ライター36を含む。記憶部34は、CPU30により実行されるプログラムおよびデータを記憶するためのROM31、RAM32、各種の情報を格納するためのHDD(Hard Disk Drive)33、およびネットワーク400を介してMFP100,内蔵サーバー200と通信するネットワークコントローラー35を含む。RAM32は、各種情報を記憶する領域と、CPU30でプログラムを実行する際の作業領域とを含む。ネットワークコントローラー35は、NICなどを含む。
リーダー/ライター36は、記憶媒体37が脱着自在に装着される。リーダー/ライター36は、装着された記憶媒体37からプログラムまたはデータを読出す回路と、記憶媒体37にデータを書込む回路を有する。
図2に示された記憶媒体176および図3に示された記憶媒体37は、コンピューターその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。
<B.ウェブブラウザー105の構成>
図4は、本実施の形態にかかるウェブブラウザー105の制御構造を周辺部と関連づけて模式的に示す図である。図4を参照して、ウェブブラウザー105は、描画部106、コンテンツ解析部107、コマンド実行エンジン108、システム間IF(Interfaceの略)モジュール109およびネットワークモジュール110が実現される。
また、MFP100では、ウェブブラウザー105の周辺部において、操作受付部103、表示ドライバー171A、MFP100のOS(Operating System)/ドライバー101のもとで動作するMFPシステム102のモジュールが備えられる。OS(Operating System)/ドライバー101は、OSとCPU150に接続される入出力部170などのデバイスを操作するドライバープログラムにより実現されるモジュールを含む。MFPシステム102は、MFP100の稼働状態を検出し、検出した稼働状態をウェブブラウザー105に通知する、いわゆるMFP100の稼働状態を管理する状態管理部に相当する。MFP100の稼働状態は、上記に述べた各種処理部を用いたジョブであって、画像形成にかかるジョブの実行状態を含む。
図4のウェブブラウザー105の各部は、記憶部160または記憶媒体176に格納されたウェブブラウザー105のプログラムをCPU150が読出し実行することにより実現されてもよい。または、図4のウェブブラウザー105の各部は、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)などの回路により実現してもよく、または、これら回路とプログラムの組合わせで実現してもよい。
ウェブブラウザー105のシステム間IFモジュール109は、MFPシステム102とコンテンツ解析部107との間でデータの遣り取りを中継する。ネットワークモジュール110は、ネットワーク通信IF156を制御することにより、ネットワーク400を介したサーバー300との通信、および内部通信回路175を制御することにより内蔵サーバー200との通信を実施する。
コンテンツ解析部107は、システム間IF109を介してMFPシステム102から受信する情報およびネットワークモジュール110を介して受信するデータ(要求およびコンテンツを含む)を、解析し、解析結果に基く処理を実施する。
コンテンツ解析部107が扱うコンテンツは、典型的には、ディスプレイ171Bに画面を表示するためのコンテンツを含む。コマンド実行エンジン108は、コマンドを実行し、その実行結果をコンテンツ解析部107に出力する。
また、コンテンツ解析部107は、コンテンツの解析の結果に基き画像データを生成し、生成された画像データを描画部106に出力する。この画像データは、アプリケーション画面を構成する画像データを含む。描画部106は、画像データから例えばビットマップデータを含む表示制御データを生成し、生成された表示制御データを表示ドライバー171Aに出力する。表示ドライバー171Aは、表示制御データに基づき駆動信号を生成し、生成された駆動信号をディスプレイ171Bに出力する。これにより、コンテンツ解析部107で解析されたコンテンツに基づく画面が、ディスプレイ171Bに表示される。
描画部106は、コンテンツ解析部107からの画像データが、複数のアプリケーションのそれぞれに対応のアプリケーション画面を表示させるための画像データである場合は、ディスプレイ171Bに各アプリケーション画面を階層的に表示させるための表示制御データを生成する。画面の階層的な表示の詳細は後述する。
操作受付部103は、操作部172を介したユーザー操作の内容を受付けて、受付けた操作内容(データ)をMFPシステム102に出力する。このユーザー操作内容は、画面のUI部品に対するユーザー操作内容を含む。操作受付部103は、操作されたUI部品の画面上の位置情報を検出し、MFPシステム102に出力する。なお、操作受付部103が識別する操作内容は、操作の種類(タッチ、クリックなど)と操作位置を含み得る。MFPシステム102は、操作受付部103からUI部品の位置情報を受付けたとき、位置情報をシステム間IF109を介してコンテンツ解析部107に出力する。
<C.アプリケーション画面と階層的な表示>
図5~図7は、本実施の形態にかかるアプリケーション画面の一例を模式的に示す図である。本実施の形態では、アプリケーションとして、例えば、ユーザーのMFP100に対するログインおよびログアウトを受付けるための認証アプリケーション、画像形成装置(MFP100)が備える機能の一覧を提示し、一覧において指定された機能を受付けるためのメニューアプリケーション、印刷機能に関するサービスを提供するコピーアプリケーション、コピー機能に関するサービスを提供するコピーアプリケーションなどを例示するが、アプリケーションの種類はこれらに限定されない。
図5、図6および図7は、それぞれ、認証アプリケーションのアプリケーション画面、メニューアプリケーションのアプリケーション画面およびコピーアプリケーションのアプリケーション画面の一例を示す。図8は、本実施の形態にかかるアプリケーション画面の階層的な表示の一例を模式的に示す図である。図8では、例えば、認証アプリケーション、メニューアプリケーションおよびコピーアプリケーションがマルチに実行されている環境において、図5、図6および図7のアプリケーション画面が階層構造に従い重なりあってレイアウトされている。図8では、認証アプリケーション画面がフォアグラウンド画面を構成し、メニューアプリケーション画面およびコピーアプリケーション画面はバックグラウンド画面を構成する。図8の階層構造によれば、ディスプレイ171Bの表面を介してフォアグラウンド画面(認証アプリケーション画面)はユーザーには視覚可能なので、ユーザーはフォアグラウンド画面に対して操作(例えば、UI部品の操作)をすることでできるが、バックグラウンド画面はフォアグラウンド画面に隠されている、すなわちユーザーは視覚できないので、ユーザーはバックグラウンド画面に対して操作(例えば、UI部品の操作)することはできない。階層構造においては、ユーザー操作に従い、アプリケーション画面の階層を変更することができる。本実施の形態では、フォアグラウンド画面は、階層構造を構成するアプリケーション画面のうち最も最近にユーザー操作がなされたアプリケーション画面であるともいえる。
<D.コンテンツ解析部と関連する情報>
図9は、本実施の形態にかかるコンテンツ解析部107の構成と記憶部160に格納される情報の一例を模式的に示す図である。図9では、コンテンツ解析部107の具体的なモジュール構成と、コンテンツ解析部107による読書きされる記憶部160の中の情報の一例が相互に関連付けて示される。
(d1.記憶部160の情報の一例)
図9を参照して、記憶部160は、キュー161とキュー169を格納する領域と、画面管理情報162を格納する領域と、表示制御データ168を格納する領域とを有する。キュー161は、FIFO(First In First Out)に従い、1または複数の変更要求611を保持(格納)する。キュー161に保持される変更要求611は、アプリケーション画面のコンテンツを変更するためのコマンドを含む。キュー169は、FIFO(First In First Out)に従い、MFPシステム102から受信するMFP100の稼働状態を示す通知612を保持(格納)する。
ここでは、MFP100の稼働状態は、(i)MFP100にユーザーがログインした後にログアウトした状態、(ii)ログアウト後のMFP100にユーザーがログインした状態、(iii)ログインの後にMFP100に対するユーザーの操作がなされない時間が所定時間継続したシステムオートリセット状態、(iv)ジョブの実行状態、および(v)ジョブ実行中のMFP100のシステム状態のうちの少なくとも1つを含む。
MFPシステム102は、MFP100のこれら状態を検出して、上記の(i)または(ii)であるログイン/ログアウト状態を検出したとき、ログイン/ログアウト通知631を出力し、また、上記の(iii)のシステムオートリセット状態を検出したときシステムオートリセット通知632を出力し、また上記の(iv)のジョブの実行状態が変化(例えば、実行待ちから実行中に変化、また実行中から実行終了に変化など)したとき状態変化通知633を出力する。また、MFPシステム102は、MFP100のジョブ実行時のシステム状態を示すシステム通知634を出力する。上記の通知612は、ログイン/ログアウト通知631、システムオートリセット通知632、状態変化通知633およびシステム通知634のうちのいずれかを示し得る。
MFP100が実行するジョブは、限定されないが、例えば印刷ジョブ、コピージョブ、ファクシミリジョブなどを含む。各ジョブが実行される場合、サーバー300では各ジョブに対応のアプリケーションが実行される。MFP100は、実行されたアプリケーションにより生成されたコンテンツをサーバー300から受信し、受信したコンテンツによるアプリケーション画面をディスプレイ171Bに表示させる。ジョブの実行状態の変化を示す状態変化通知633は、ジョブに対応のアプリケーションの識別子を含む。
画面管理情報162は、ディスプレイ171Bにおいて表示される1または複数のアプリケーション画面のそれぞれに対応して、レコード167を有する。レコード167は、当該アプリケーション画面に対応のアプリケーションを識別するアプリID(Identification)163、当該アプリケーション画面の階層164、コンテンツ165およびフラグ166含む。階層164は、対応のアプリケーション画面がフォアグラウンド画面ならば「F」を示し、バックグラウンド画面ならば「Bi」(i=1、2、3、・・・)を示す。なお、iには、フォアグラウンド画面から近い順番に、すなわち階層の上位から順番に、1,2,3・・・と割当てされる。コンテンツ165は、対応のアプリケーション画面を記述したデータであり、たとえばHTMLで記述される。コンテンツ165は、コマンド実行エンジン108が実行可能なコマンド、または他のアプリケーション画面へのリンクなどを含む。フラグ166は、対応のアプリケーション画面が初期画面および非初期画面のいずれであるかを示す。フラグ166は「1」であるとき、対応のアプリケーション画面は非初期画面であることを示し、「0」であるときは対応のアプリケーション画面は初期画面であることを示す。
(d2.コンテンツ解析部107の構成)
図9を参照して、コンテンツ解析部107は、キュー161の変更要求611を管理する要求キュー管理部126、画面管理情報162のコンテンツ165を管理するコンテンツ管理部127、およびキュー169の通知612を管理する状態キュー管理部128を含む。要求キュー管理部126は、変更要求611をキュー161に格納するエンキュー、およびキュー161から変更要求611を読出すデキューを実施する。コンテンツ管理部127は、画面管理情報162のコンテンツ165を変更要求に従い変更する変更処理を実施する。また、状態キュー管理部128は、MFPシステム102からの通知612をキュー169に格納するエンキュー、およびキュー169から通知612を読出すデキューを実施する。
コンテンツ解析部107は、MFP100の稼働状態の通知612に応じてアプリケーション画面のコンテンツの変更を実施するための要求613を生成し、サーバー300に送信する。要求613は、通知612が示すMFP100の稼働状態と、画面管理情報162のアプリID163を含む。
<E.サーバー300の制御構造>
図10は、本実施の形態にかかるサーバー300が備える制御構造の一例を模式的に示す図である。図10では、当該制御構造に関連付けて、記憶部34に格納される情報の一例が模式的に示される。記憶部34には、ウェブアプリケーションの一実施例である1つ以上のアプリケーション38が格納される。アプリケーション38は、プログラムまたはプログラムとデータの組合せからなる。
制御構造は、MFP100からの要求613を、ネットワークコントローラー35を介して受付ける要求受付部301、アプリケーション38を実行する実行部304を備える要求処理部302、コンテンツ提供部303および要求送信部305を含む。コンテンツ提供部303は要求処理部302の処理結果に基くコンテンツを、ネットワークコントローラー35を介してMFP100に送信する。また、要求送信部305は要求処理部302の処理結果に基く変更要求611を、ネットワークコントローラー35を介してMFP100に送信する。要求処理部302は、要求受付部301が受付けた要求613に含まれるアプリID613で識別されるアプリケーション38を記憶部34から読出し、実行部304に当該アプリケーション38を実行させる。実行部304によりアプリケーション38が実行されてコンテンツまたは変更要求611が生成される。コンテンツ提供部303は、生成されたコンテンツをMFP100に送信し、要求送信部305は、生成された変更要求611をMFP100に送信する。変更要求611は、変更要求611を生成したアプリケーション38の識別子とコンテンツの変更処理を実施する為のコマンド(画面の全体または一部が変更されるように、対応のコンテンツの変更を指示するコマンド)を含む。変更要求611に、変更するためのコンテンツ(例えば、変更後のコンテンツ)を取得するためにサーバー300のアプリケーション38と通信処理を実施するためのコマンドが含まれてもよい。その場合、このコンテンツの変更処理は、当該通信処理を含み得る。
図10のサーバー300の制御構造の各部は、記憶部34または記憶媒体37に格納されたプログラムをCPU30が読出し実行することにより実現されてもよい。または、図10の制御構造の各部は、ASICまたはFPGAなどの回路により実現してもよく、または、これら回路とプログラムの組合わせで実現してもよい。
<F.画面管理情報162を用いたコンテンツに関する処理>
ウェブブラウザー105が実施する画面管理情報162を用いた処理を説明する。この処理は、階層変更処理、コンテンツ全体処理、コンテンツ部分処理およびキューイング処理を含む。
(f1.階層変更処理)
ユーザーが、アプリケーションを実行するために、例えばフォアグラウンド画面のUI部品を操作するなどして、バックグラウンドアプリをフォアグラウンドアプリに切替えるアプリ切替操作をしたとき、コンテンツ解析部107はアプリケーション画面の階層を変更する階層変更処理を実施する。
コンテンツ解析部107は、MFPシステム102を介して、操作受付部103からアプリ切替操作を受付けると、コンテンツ管理部127は、操作内容に基づき、画面管理情報162の階層164が「F」を示すレコード167のコンテンツ165から、ユーザーにより操作されたUI部品にリンクされたアプリケーションの識別子を抽出する。
コンテンツ管理部127は、画面管理情報162において、上記の抽出されたアプリケーションの識別子に一致するアプリID163を特定し、特定されたアプリID163を有するレコード167の階層164を「F」に書換える。また、コンテンツ管理部127は、他のレコード167の階層164を、当該階層164が示す値の順番を維持しながら、上記の「F」への書換えに伴って書換える。
このような階層変更処理の実施後に、コンテンツ解析部107は、画面管理情報162の各階層のアプリケーション画面のコンテンツ165に基き階層的な表示のための階層構造に従う画像データを生成するとともに、描画部106を起動する。起動されると描画部106は、コンテンツ解析部107からの画像データに基づき、ディスプレイ171Bに変更後の階層構造に従うアプリケーション画面を表示するための表示制御データ168を生成し、生成された表示制御データ168を表示ドライバー171Aに出力する。これにより、ディスプレイ171Bにおける階層的な表示においては、フォアグラウンド画面は、ユーザーの切替操作により指定されたバックグラウンドアプリケーションのアプリケーション画面に切替えられる。
(f2.コンテンツ全体処理)
コンテンツ全体処理は、コンテンツ解析部107は階層構造を構成するアプリケーション画面のうち、「非初期画面」を「初期画面」に切替える。
具体的には、コンテンツ解析部107は、コンテンツ全体処理の実施を指令するコマンドを含む変更要求611を受信したとき、コンテンツ全体処理を実施する。コンテンツ全体処理においては、コマンド実行エンジン108は変更要求611のコマンドを実行し、その実行結果に基き、コンテンツ管理部127は、画面管理情報162のフラグ166が「1」を示す、すなわち非初期画面であるコンテンツ165を、初期画面のコンテンツとなるように変更処理を実施する。この変更処理の後に、コンテンツ管理部127は、対応のフラグ166を「0」に書換える。これにより、画面管理情報162の各アプリケーション画面に対応のコンテンツ165を初期画面のコンテンツに書換えるコンテンツ全体処理が終了する。
コンテンツ解析部107は、コンテンツ全体処理を終了後に、画面管理情報162に基づく画像データを生成するとともに描画部106を起動する。起動されると描画部106は、コンテンツ解析部107からの画像データに基づき、階層構造を構成するアプリケーション画面の表示制御データ168を生成し、生成した表示制御データ168を表示ドライバー171Aに出力する。これにより、ディスプレイ171Bの階層構造の全ての階層のアプリケーション画面は初期画面で表示される。
(f3.コンテンツ部分処理)
コンテンツ解析部107は、「コンテンツ部分処理」では、上記に述べたコンテンツ全体処理とは異なり、アプリケーション画面の部分画像に対応するコンテンツの部分を変更する。
コンテンツ解析部107は、サーバー300から、コンテンツ部分処理の実施を指令するコマンドを含む変更要求611を受信すると、コンテンツ部分処理を実施する。コンテンツ部分処理においては、コマンド実行エンジン108は、変更要求611のコマンドを実行し、その実行結果に基き、コンテンツ管理部127は、変更要求611のアプリケーションの識別子に基づき、当該アプリケーションの識別子に一致するアプリID163に対応のコンテンツ165を検索する。コンテンツ管理部127は、検索されたコンテンツ165を、コマンド実行エンジン108の実行結果に従い一部を変更するコンテンツ部分処理を実施する。
コンテンツ管理部127は、コンテンツ部分処理を実施後の画面管理情報162に基き画像データを生成するとともに、描画部106を起動する。起動されると描画部106は、コンテンツ管理部127からの画像データに基づき、階層構造を構成するアプリケーション画面の表示制御データ168を生成し、生成した表示制御データ168を表示ドライバー171Aに出力する。これにより、ディスプレイ171Bの階層構造の変更要求611のアプリケーションの識別子で指定されたアプリケーション画面は、部分的に変更されて表示される。
(f4.キューイング処理)
要求キュー管理部126によるキュー161のキューイング処理および状態キュー管理部128のキュー169のキューイング処理を説明する。
まず、要求キュー管理部126のキューイング処理を説明する。コンテンツ解析部107は、サーバー300から変更要求611を受信したとき、変更要求611が予め定められたエンキュー条件を満たすと判断した場合は、当該変更要求611に従うコンテンツ165の変更処理を実施せずに、要求キュー管理部126に当該変更要求611をキュー161に格納(エンキュー)させる。このエンキュー条件は、例えば、変更要求611に含まれるアプリケーションの識別子で識別されるアプリケーションはバックグラウンドで実行されている(すなわち、アプリケーションに対応のアプリケーション画面はバックグラウンド画面である)との条件を示す。より具体的には、コンテンツ解析部107は、画面管理情報162において、変更要求611が有するアプリケーションの識別子に一致するアプリID163に対応の階層164が「Bi」(バックグラウンド画面)を示すと判断したとき、当該変更要求611はエンキュー条件を満たすと判断する。
また、コンテンツ解析部107は、キュー161に格納(エンキュー)されている変更要求611のうち、予め定められたデキュー条件を満たす変更要求611を、要求キュー管理部126に読出(デキュー)させる。このデキュー条件は、例えば、キュー161に格納されている変更要求611のうち、当該変更要求611が有するアプリケーションの識別子が、画面管理情報162において「F」を示す階層164に対応のアプリID163と一致することを示す。
コンテンツ解析部107のコンテンツ管理部127は、デキューされた変更要求611のコマンドに従う上記に述べたコンテンツの変更処理(「コンテンツ部分処理」または「コンテンツ全体処理」)を実施する。
次に、状態キュー管理部128のキューイング処理を説明する。コンテンツ解析部107は、MFPシステム102から通知612を受付けたとき、通知612が予め定められたエンキュー条件を満たすかを判断する。コンテンツ解析部107は、エンキュー条件を満たすと判断した場合は、状態変化通知633に基づく変更要求611の送信を実施せずに(すなわち、コンテンツ165の変更処理は実施せずに)、状態キュー管理部128に当該通知612をキュー169に格納(エンキュー)させる。このエンキュー条件は、例えば、通知612が状態変化通知633またはシステム通知634を示すとの条件を示す。状態変化通知633またはシステム通知634は、実行中のジョブに対応のアプリケーションのアプリID163を含む。
コンテンツ解析部107は、操作受付部103を介してアプリ切替操作を受付けたとき、キュー169についてデキュー条件が満たされるか否かを判断する。具体的には、コンテンツ解析部107は、キュー169の通知612のうち、そのアプリIDがフォアグラウンドアプリケーションのアプリID163と一致する通知612は、デキュー条件を満たすと判断する。コンテンツ解析部107は、状態キュー管理部128に、デキュー条件を満たすと判断された通知612をキュー169からデキュー(読出)させる。
<G.アプリケーション画面の表示例>
本実施の形態にかかるアプリケーション画面の表示例を示す。
(g1.コンテンツ全体処理による表示例)
図11と図12は、本実施の形態にかかるコンテンツ全体処理によるアプリケーション画面の変更の一例を模式的に示す図である。図11は非初期画面であるコピー用紙設定画面52-1の一例を示す。コピー用紙設定画面52-1は、コピー機能の1つの応用機能に対応のアプリケーション画面である。図11のコピー用紙設定画面52-1では、UI部品111をユーザーが操作することにより設定された項目(例えばコピー用紙のサイズ)が表示されている。図12は、初期画面であるコピー機能のトップ画面52の一例を示す。トップ画面52は、コピー機能の基本機能のアプリケーション画面の一例である。
ディスプレイ171Bに図11のコピー用紙設定画面52-1が表示されている場合に、コンテンツ全体処理(初期化処理)が実施されると、ディスプレイ171Bの画面は図11のコピー用紙設定画面52-1から図12のコピートップ画面に変更される。例えば、図11のコピー用紙設定画面52-1においてコピー用紙の設定操作の途中でユーザーが操作を中断してMFP100から離れた場合は、すなわちMFPシステム102がシステムオートリセット状態を検出してシステムオートリセット通知632を出力する。コンテンツ解析部107は、システムオートリセット通知632を受付けたときコンテンツ全体処理を実施する。これにより、コピー用紙設定画面52-1において当該ユーザーが設定した項目(例えばコピー用紙のサイズ)が、他のユーザーに公開される事態を防止することができる。
(g2.コンテンツ部分処理による表示例)
図13は、本実施の形態にかかるコンテンツ部分処理によるアプリケーション画面の表示例を模式的に示す図である。図13(A)は、例えば、コピー倍率設定のためのアプリケーション画面の一例である。図13(A)のアプリケーション画面を表示中に、サーバー300で実行中のコピー機能のアプリケーション38から変更要求611が出力されると、ウェブブラウザー105は、サーバー300から受信する変更要求611に従うコンテンツの変更処理を実施する。変更処理において、変更要求611に従いコンテンツ部分処理が実施される。コンテンツ部分処理が実施されると、図13(A)のアプリケーション画面は、破線部で示す部分画像が変更されて、図13(B)のアプリケーション画面に変化する。これにより、コピー機能のアプリケーション38の実行状態の変化に伴うコンテンツ部分(アプリケーション画面中の部分画像)の変化を提示することができる。
(g3.コンテンツ部分処理による他の表示例)
図14は、本実施の形態にかかるコンテンツ部分処理によるアプリケーション画面の他の表示例を模式的に示す図である。図14(A)は、例えば、サーバー300でコピー機能のアプリケーション38が実行される場合における、MFP100のディスプレイ171Bで表示されるアプリケーション画面の一例を示す。
例えば、コピージョブを実行中にMFPシステム102がシステム状態を検出して、検出したシステム状態を示すシステム通知634を出力した場合、コンテンツ解析部107は、システム通知634に基づく要求613をサーバー300に送信する。コンテンツ解析部107は、サーバー300からシステム通知634に基づく変更要求611を受信する。コンテンツ管理部127は、変更要求611に従うコンテンツ部分処理を実施する。これにより、図14(A)のアプリケーション画面は、破線部で示す部分画像が変更されて、図14(B)のアプリケーション画面に変化する。例えば、破線部では、コピーのジョブを実行時においてMFP100では、アニメーションデータと音声データがない(アクセスできない)というシステム状態である旨の通知が出力されている。
(g4.コンテンツ部分処理によるさらなる他の表示例)
図15は、本実施の形態にかかるコンテンツ部分処理によるアプリケーション画面の他の表示例を模式的に示す図である。図15(A)は、例えば、MFP100で印刷ジョブを実行中のアプリケーション画面の一例である。例えば、印刷ジョブの実行中にMFPシステム102がジョブの実行状態の変化を検出して状態変化通知633を出力した場合、コンテンツ解析部107は、サーバー300と通信し、状態変化通知633に基づく要求613を送信する。サーバー300では、実行中のジョブに対応のアプリケーション38が実行されて、変更要求611がMFP100に送信される。
コンテンツ管理部127は、変更要求611に従うコンテンツ部分処理を実施する。これにより、図15(A)のアプリケーション画面は、破線部で示す部分画像が変更されて、図15(B)のアプリケーション画面に変化する。例えば、破線部では、MFP100では、印刷ジョブが印刷待ちから印刷中に状態変化した旨の通知が出力されている。
(g5.階層変更処理による表示例)
図16と図17は、本実施の形態にかかる階層変更処理によるアプリケーション画面の表示例を模式的に示す図である。図16と図17では、横軸は時間の経過を示し、縦軸は階層構造における各階層のアプリケーション画面を示す。図16と図17では、例えば、アプリケーション画面により構成される階層構造は、画面管理情報162に含まれる4つのレコード167に従う4階層であるが、階層は4階層に限定されない。
図16と図17を参照して、階層変更処理によるアプリケーション画面の表示例と、「コンテンツ全体処理」によるアプリケーション画面の表示例を説明する。「コンテンツ全体処理」は、例えばMFPシステム102がログイン/ログアウト状態を検出した場合に実施される。図16と図17では、サーバー300において、アプリケーション38として、認証アプリケーション、メニューアプリケーション、コピーアプリケーションおよびスキャンアプリケーションがマルチに実行されて、MFP100のディスプレイ171Bでは、これらアプリケーションに対応の複数のアプリケーション画面が階層的に表示される。
図16では、時刻T1で認証アプリケーションが実行されて、時刻T1でメニューアプリケーションが実行されて、時刻T2でコピーアプリケーションが実行されて、そして時刻T3でコピー機能の応用機能である用紙設定アプリケーションが実行されている。したがって、図16では、上記の階層変更処理が実施されることで、フォアグラウンド画面60は、時刻T0、T1、T2およびT3の経過に伴い、認証アプリケーションのトップ画面50、メニューアプリケーションのトップ画面51、コピーアプリケーションのトップ画面52およびコピー用紙設定画面52-1の順で切替わる。また、当該階層変更処理により、バックグラウンド画面61となる各アプリケーション画面の階層も、時刻T0、T1、T2およびT3の経過に伴い変化する。
図17を参照して、その後の時刻T4では、ユーザーは、コピー用紙設定アプリケーションに対する項目の設定操作の途中で、フォアグラウンド画面60をメニューアプリケーションのトップ画面51に切替える操作を実施する。ユーザーは、メニューアプリケーションのトップ画面51を操作してスキャンアプリケーションを実行する。これにより、時刻T5では、フォアグラウンド画面60は、スキャンアプリケーションのトップ画面53に切替わるとともに、バックグラウンド画面61の破線で囲まれたコピー用紙設定画面52-1では、ユーザー操作により設定された項目(例えばコピー用紙のサイズ)が表示されている。
その後の時刻T6で、ユーザーがログアウト操作すると、MFPシステム102は、ログイン/ログアウト状態を検出し、ログイン/ログアウト通知631をコンテンツ解析部107に出力する。コンテンツ解析部107は、サーバー300と通信し、ログイン/ログアウト通知631に基づく変更要求611を受信する。コンテンツ管理部127は変更要求611に従い画面管理情報162のコンテンツ165の変更処理を実施する。また、コンテンツ管理部127は、階層変更処理を実施する。階層変更処理により、バックグラウンド画面61の階層にあった認証アプリケーションのトップ画面50は、フォアグラウンド画面60に階層に変化する。フォアグラウンド画面60が認証アプリケーションのトップ画面50に切替えられることで、MFP100は次のユーザーのログイン操作を受付け可能な状態となる。
時刻T6では、コンテンツ管理部127は、サーバー300からの変更要求611に従うコンテンツ変更処理とともに、階層構造を構成するアプリケーション画面のうち、ログアウト直前の非初期画面を初期画面に変更するコンテンツ全体処理を実施する。例えば、ログアウト直前の時刻T5で非初期画面であったコピー用紙設定画面52-1は、コンテンツ全体処理が実行されることで、ログアウト直後の時刻T6では、破線で囲まれた初期画面(トップ画面52)に変化する。これにより、或るユーザーがログアウト後に他のユーザーがログインする場合であっても、或るユーザーにより設定されたコピー用紙設定画面52-1における設定項目が、他のユーザーに公開される事態を回避することができる。
<H.シーケンス>
ウェブブラウザー105の処理のシーケンスを図18~図20を参照して説明する。図18~図20では、表示ドライバー171Aと、ウェブブラウザー105と、サーバー300において実行中のフォアグラウンドアプリ38A(フォアグラウンドアプリケーション38Aの略)と、バックグラウンドアプリ38B(以下、バックグラウンドアプリケーション38Bの略)との間の通信のシーケンスが示される。ここでは、サーバー300でマルチに実行されるアプリケーションは、フォアグラウンドアプリ38Aとバックグラウンドアプリ38Bの2つであり、したがって、MFP100の階層構造は、この2つのアプリケーションに対応する2つのアプリケーション画面で構成される。なお、実行されるアプリケーションの数は2個に限定されない。
(h1.システムの状態通知の変更要求に基づくシーケンスの一例)
図18は、本実施の形態にかかるMFPシステム102の通知612に基づく変更要求611に従うシーケンスの一例を模式的に示す図である。例えば、フォアグラウンド画面を図11のコピー用紙設定画面52-1から図13のコピーアプリケーションのトップ画面52に切替えるシーケンスを示す。
図18を参照して、MFPシステム102がMFP100はシステムオートリセット状態であることを検出して、通知612としてシステムオートリセット通知632をシステム間IF109に出力すると(ステップR3)、システム間IF109はシステムオートリセット通知632に基づき初期URL表示要求を生成し、コンテンツ解析部107に出力する(ステップR4)。この表示要求は、階層構造を構成する各アプリケーション画面を初期画面にするためのURLのコマンドを含む。
コンテンツ解析部107は、システム間IF109から受付けた初期URL表示の要求613を、ネットワークモジュール110を介してサーバー300に送信する。
サーバー300では、要求受付部301が初期URL表示の要求613を受信し、要求処理部302は、受信された初期URL表示の要求613に基づき実行部304を制御する。これにより、実行部304は、初期URL表示の要求613に従いフォアグラウンドアプリ38Aおよびバックグラウンドアプリ38Bを実行する。これらアプリケーションの実行の結果に基き、コンテンツ提供部303は、当該アプリケーションに対応のアプリケーション画面のコンテンツを変更するための変更要求611を生成し、要求送信部305は変更要求611をMFP100に送信する(ステップR5、R17)。この変更要求611は、アプリケーションの識別子とコンテンツを変更するためのコマンドを含む。
コンテンツ解析部107は、サーバー300のフォアグラウンドアプリ38Aおよびバックグラウンドアプリ38Bからの変更要求611を受信する(ステップR7、R19)。コンテンツ解析部107は、コマンド実行エンジン108に変更要求611のコマンドを実行させて、コンテンツ管理部127は、その実行結果に基き、画面管理情報162のフォアグラウンドアプリ38Aおよびバックグラウンドアプリ38Bのコンテンツ165のコンテンツ全体処理を実施する(ステップR11、R23)。
描画部106は、画面管理情報162のコンテンツ165に基づく画像データから表示制御データ168を生成し、生成された表示制御データ168を表示ドライバー171Aに出力する(ステップR13、R27)。これにより、ディスプレイ171Bのフォアグラウンド画面(フォアグラウンドアプリ38Aのアプリケーション画面)と、バックグラウンド画面(バックグラウンドアプリ38Bのアプリケーション画面)は、初期画面に変化する(ステップR15、R29)。
このように、MFP100が、所定状態(システムオートリセット状態)である場合は、サーバー300から受信する変更要求611に従い記憶部160のコンテンツ165を変更する変更処理(コンテンツ全体処理)が実施される。ここでは所定状態として、システムオートリセット状態を説明したが、他の状態(ログイン/ログアウト状態)であっても同様のシーケンスを採用することができるので、説明は繰返さない。
このように、MFP100の稼働状態が所定状態であるときは、バックグラウウンドアプリ38Bが出力する変更要求611に従うコンテンツ変更処理の実施は保留されずに実施される。したがって、所定状態において、ユーザー操作を受付けて、受付けたユーザー操作内容に従いディスプレイ171Bの画面をアプリケーション画面に切替える場合に、上記のようにコンテンツ変更処理の実施が保留された場合に比較して、切替えの所要時間を短縮できる。
このように、MFP100の稼働状態が所定状態(システムオートリセット状態、ログイン/ログアウト状態)である場合は、コンテンツ管理部127は、サーバー300から受信する変更要求611に従い記憶部160(画面管理情報162)のコンテンツ165を変更する変更処理を実施する。
図18では、変形例として、描画部106は、バックグラウンドアプリ38Bのアプリケーション画面については、変更後のコンテンツ165に基づく変更(描画)を保留してもよい。すなわち、ステップR23で、バックグラウンドアプリ38Bのコンテンツの変更処理は実施されるが、描画部106による描画は保留されてもよい。
具体的には、MFPシステム102が、操作受付部103を介して、アプリ切替操作を検出する(ステップR25)。アプリ切替操作が検出されたとき、描画部106は、保留していた描画処理(バックグラウンド画面の画面変更のための表示制御データ168を生成し、表示更新(初期画面)のために表示ドライバー171Aに出力する)を実施してもよい(ステップR25、R27、R29)。
アプリ切替操作が検出されたとき、コンテンツ解析部107は、上記に述べた階層変更処理も実施する。階層変更処理が実施されることで、ステップR29では、フォアグラウンド画面は、バックグラウンドアプリ38Bのアプリケーション画面(初期画面)に切替わる。なお、図18では、バックグラウンドアプリに対する描画処理の実施を保留したが、バックグラウンドアプリ38Bの変更要求611に従うコンテンツの変更処理を保留してもよい。
(h2.システムの状態通知の変更要求に基づくシーケンスの他の例)
図19は、本実施の形態にかかるMFPシステム102の通知612に基づく変更要求611のシーケンスの他の例を模式的に示す図である。図18のシーケンスでは、ウェブブラウザー105は、フォアグラウンドアプリ38Aとバックグラウンドアプリ38Bからの変更要求611に従うコンテンツ変更処理を(保留せずに)全て実施する。これに対して、図19のシーケンスでは、フォアグラウンドアプリ38Aとバックグラウンドアプリ38Bからの変更要求611のうち、バックグラウンドアプリ38Bからの変更要求611に従うコンテンツの変更処理は実施されずに保留されて、フォアグラウンドアプリ38Aからの変更要求611に従うコンテンツの変更処理は実施される。図19では、MFPシステム102が、通知612として、ジョブの実行状態の変化を示す状態変化通知633を出力するケースを説明する。例えば、MFP100では、フォアグラウンドアプリ38Aに対応の印刷ジョブと、バックグラウンドアプリ38Bに対応のコピージョブが実行されている。
図19を参照して、MFPシステム102が、印刷ジョブとコピージョブの実行状態の変化を検出して、状態変化通知633を、システム間IF109を介してコンテンツ解析部107の出力する(ステップR31、R33)。
コンテンツ解析部107は、受付けた状態変化通知633のうち、コピージョブの状態変化通知633はエンキュー条件を満たすと判断し、状態キュー管理部128はコピージョブの状態変化通知633をキュー169にエンキューする(ステップR35)。コンテンツ解析部107は、エンキュー条件を満たさない、すなわちフォアグラウンドアプリに対応の印刷ジョブの状態変化通知633はエンキューせずに、状態変化通知633に基づく要求613を、サーバー300に送信する。
サーバー300は、コンテンツ解析部107から受信した要求613に基づき、当該要求613に含まれたアプリID163で識別されるフォアグラウンドアプリ38Aを実行する。サーバー300は、フォアグラウンドアプリ38Aにより生成された変更要求611を、MFP100に送信する(ステップR37a、R37b)。この変更要求611は、アプリケーションの識別子とコンテンツを変更するためのコマンドを含む。
コンテンツ解析部107のコンテンツ管理部127は、サーバー300から受信した変更要求611のコマンドをコマンド実行エンジン108に実行させて、その実行結果に基き画面管理情報162はフォアグラウンドアプリ38Aのコンテンツ165を変更する(ステップR39、R41)。
描画部106は、画面管理情報162のコンテンツ165に基づく画像データに従う表示制御データ168を生成し、表示更新のために表示ドライバー171Aに出力する(ステップR41a)。これにより、ディスプレイ171Bのフォアグラウンド画面(フォアグラウンドアプリ38Aのアプリケーション画面)は、印刷ジョブの実行状態の変化を通知する画面に変化する(ステップR43)。
このように、MFP100でフォアグラウンドアプリ38Aおよびバックグラウンドアプリ38Bの各ジョブの実行状態が変化した場合には、バックグラウンドアプリ38Bのジョブの状態変化通知633はエンキューされる。これにより、バックグラウンドアプリ38Bのジョブの状態変化通知633に基づく変更要求611に従うコンテンツ165の実施は保留される。
MFPシステム102が、操作受付部103を介して、ユーザーによる、フォアグラウンドアプリケーションの切替操作を検出する(ステップR45)。この切替操作が検出されたとき、コンテンツ解析部107は、デキュー条件が成立したことを判断する。この判断に基き、コンテンツ解析部107は、保留していたコンテンツの変更処理を実施するために、状態キュー管理部128に、キュー169からステップR35でエンキューされた状態変化通知を、デキュー(読出)させる(ステップR47)。コンテンツ解析部107は、デキューされたバックグラウンドアプリ38Bの状態変化通知633に基づく要求613をサーバー300に送信する。
サーバー300は、コンテンツ解析部107から受信した要求613に基づき、当該要求613に含まれたアプリケーションの識別子で識別されるバックグラウンドアプリ38Bを実行する。サーバー300は、バックグラウンドアプリ38Bの実行により出力された変更要求611を、MFP100に送信する(ステップR47a、R47b)。
コンテンツ解析部107は、バックグラウンドアプリ38Bからの変更要求611が有するコマンドを、コマンド実行エンジン108に実行させる(ステップR49)。コンテンツ管理部127は、コマンド実行エンジン108のコマンド実行結果に基き、画面管理情報162のバックグラウンドアプリ38Bのコンテンツ165の変更処理を実施する。描画部106は、コンテンツ165を変更処理後の画面管理情報162に基づき表示制御データ168を生成する(ステップR51a)。描画部106は、表示制御データ168を表示ドライバー171Aに出力する(ステップR51b)。表示ドライバー171Aは、表示制御データ168によりディスプレイ171Bに画面を表示させる(ステップR53)。これにより、ディスプレイ171Bにおいて、フォアグラウンド画面はコピージョブのアプリケーション画面に切替えられて、フォアグラウンド画面により、コピージョブの実行状態の変化が通知される。
図19によれば、MFP100の稼働状態が所定状態(ログインログアウト状態またはシステムオートリセット状態)でない非所定状態(ジョブ実行状態の変化時)である場合は、サーバー300から受信する変更要求611に従う変更処理の実施を保留することができる。より特定的には、この実施が保留される変更処理の変更要求611は、バックグラウンドアプリ38Bから出力された変更要求を含む。
このように、バックグラウンドアプリ38Bに対応のジョブの実行状態が変化した場合は、その状態変化通知633に基づく変更要求611に従うンテンツの変更処理の実施は保留されて、その後、バックグラウンドアプリ38Bがフォアグラウンドアプリに切替えられるときに、状態変化通知633に基づくサーバー300との通信と保留されていたコンテンツの変更処理が実施される。
図19では、MFP100の状態の通知612としてジョブの実行状態の状態変化通知633を例示したが、これに限定されず、システム通知634についても図19と同様のシーケンスを実行することができる。
(h3.アプリケーションからの変更要求611をエンキューするシーケンス)
図20は、本実施の形態にかかるアプリケーションからの変更要求611をエンキューするシーケンスを模式的に示す図である。図20では、バックグラウンドアプリ38Bは、例えば、コピー倍率設定のアプリケーションであり、フォアグラウンドアプリ38Aは他の種類のアプリケーションであるケースを説明する。
まず、サーバー300は、バックグラウンドアプリ38Bの実行結果に基く変更要求611をMFP100に送信する(ステップR55a)。この場合、MFP100の稼働状態の種類は限定されない。MFP100のウェブブラウザー105は、ネットワークモジュール110を介して、この変更要求611を受信する(ステップR55b)。
コンテンツ解析部107は、受信した変更要求611について、エンキューの条件が満たされるかを判断する。この場合、エンキュー条件が満たされると判断されて、要求キュー管理部126は、当該変更要求611をキュー161にエンキュー(格納)する(ステップR57)。したがって、コンテンツ解析部107では、バックグラウンドアプリ38Bからの変更要求611に従うコンテンツ管理部127によるコンテンツの変更処理は実施されずに保留される。
その後、サーバー300は、フォアグラウンドアプリ38Aの実行結果に基く、変更要求611をMFP100に送信する(ステップR59a)。MFP100のウェブブラウザー105は、ネットワークモジュール110を介して、この変更要求611を受信する(ステップR59b)。
コンテンツ解析部107は、受信した変更要求611はエンキューの条件を満たさないと判断する。コンテンツ解析部107は、フォアグラウンドアプリ38Aからの変更要求611が有するコマンドを、コマンド実行エンジン108に実行させる(ステップR61)。コンテンツ管理部127は、コマンド実行エンジン108のコマンド実行結果に基き、画面管理情報162のフォアグラウンドアプリ38Aに対応のコンテンツ165の変更処理を実施する(ステップR63a)。描画部106は、画面管理情報162の変更後のコンテンツ165に基いた表示制御データ168を生成し表示ドライバー171Aに出力する(ステップR63b)。これにより、ディスプレイ171Bのフォアグラウンド画面は、フォアグラウンドアプリ38Aからの変更要求611に従い変化する(ステップR65)。
その後、MFPシステム102が、操作受付部103を介してアプリ切替操作を受付けて(ステップR67)、受付けた操作内容を出力する。ウェブブラウザー105は、MFPシステム102が出力する操作内容からアプリ切替操作を検出したとき、コンテンツ解析部107は、上記に述べた階層変更処理を実施する。また、コンテンツ解析部107は、デキュー条件が満たされると判断したバックグラウンドアプリ38Bの変更要求611を、要求キュー管理部126に、デキューさせる。コンテンツ管理部127は、デキューされた変更要求611に従い、画面管理情報162のバックグラウンドアプリ38Bに対応のコンテンツ165を変更する(ステップR69、R71、R73a)。これにより、実施が保留されていたコンテンツの変更処理が実施される。
描画部106は、バックグラウンドアプリ38Bに対応のコンテンツ165が変更された画面管理情報162に基づく表示制御データ168を生成し、生成された表示制御データ168を表示ドライバー171Aに出力する(ステップR73b)。
上記に述べたように、ウェブブラウザー105は、アプリ切替操作を受付けたとき、階層変更処理を実施するとともに、切替後のフォアグラウンド画面のために、保留されていたコンテンツの変更処理を実施する。
この変更処理には、コンテンツを変更するためにウェブブラウザー105がサーバー300(より特定的にはアプリケーション38)と通信する処理が含まれても良い。この場合、例えば、ステップR69でデキューされる変更要求611は、変更するためのコンテンツ(例えば、変更後のコンテンツ、コンテンツ変更のためのコマンドなど)を取得するためにサーバー300(より特定的にはアプリケーション38)と通信するための通信コマンドが含まれ得る。このようなコンテンツの変更処理が保留されることで、ウェブブラウザー105とサーバー300(アプリケーション38)との通信トラフィックが軽減される。
<I.フローチャート>
図21は、本実施の形態にかかるコンテンツの変更処理のフローチャートの一例を示す図である。コンテンツ解析部107は、図21の処理を、操作受付部103からアプリケーションの切替操作を受付けたとき、または、サーバー300から変更要求を受信したときに実施する。
まず、コンテンツ解析部107は、操作受付部103を介してアプリ切替操作を検出するか否かを判断する(ステップS3)。
コンテンツ解析部107は、アプリ切替操作を検出すると判断したとき(ステップS3でYES)、バックグラウンド画面のバックグラウンドアプリケーションについてキュー161についてデキュー条件が満たされるか否かを判断する(ステップS5)。また、コンテンツ解析部107は、バックグラウンド画面のバックグラウンドアプリケーションについてキュー169についてデキュー条件が満たされるか否かを判断する(ステップS5)。要求キュー管理部126および128は、デキュー条件は満たされないと判断すると(ステップS5でNO)、コンテンツ解析部107はアプリ切替操作に従い階層変更処理を実施する(ステップS19)。これにより、バックグラウンド画面の階層は、フォアグラウンド画面に変更される(ステップS19)。
コンテンツ解析部107は、キュー161についてデキュー条件が満たされると判断すると(ステップS5でYES)、要求キュー管理部126にキュー161から変更要求611をデキュー(読出)させて、コンテンツ管理部127は、デキューされた変更要求611に従うコンテンツ165の変更処理を実施する(ステップS7)。要求キュー管理部126は、デキューした変更要求611をキュー161においてクリア(例えば削除)する(ステップS9)。このように、キュー161からデキューされた各変更要求611に従うコンテンツ165の変更処理が実施されると、処理はステップS19に移る。
同様に、コンテンツ解析部107は、キュー169についてデキュー条件が満たされるを判断すると(ステップS5でYES)、状態キュー管理部128に、キュー169から状態変化通知633をデキュー(読出)させ、コンテンツ解析部107は、デキューされた状態変化通知633に基づきサーバー300と通信する。
コンテンツ解析部107は、サーバー300から、状態変化通知633に対応のアプリケーションが実行されることにより出力された変更要求611を受信し、コンテンツ管理部127は、変更要求611に従うコンテンツ165の変更処理を実施する(ステップS7)。状態キュー管理部128は、デキューされた状態変化通知633をキュー169においてクリア(例えば削除)する(ステップS9)。キュー169に格納されている各状態変化通知633に従うコンテンツ165の変更処理が終了すると、処理はステップS19に移る。
これにより、ウェブブラウザー105は、アプリ切替操作を検出したときは、コンテンツ解析部107は階層構造の変更処理とともに、キュー161に格納されている変更要求611およびキュー169に格納されている状態変化通知633に対応の、保留されていたコンテンツの変更処理を実施する。
ステップS3に戻る。ウェブブラウザー105は、アプリ切替操作を検出しないと判断すると(ステップS3でNO)、コンテンツ解析部107は、バックグラウンドアプリケーションについてサーバー300の変更要求611またはMFPシステム102から通知612を受付けるかを判断する(ステップS11)。ここで、MFPシステム102から受付ける通知612は、ログイン/ログアウト通知631、システムオートリセット通知632、状態変化通知633およびシステム通知634のいずれかを含み得る。
コンテンツ解析部107は、受付けた変更要求611または通知612に基づき、これらはバックグラウンドアプリケーションに対応するかを判断する(ステップS11)。コンテンツ解析部107は、これらはフォアグラウンドアプリケーションに対応する、すなわちバックグラウンドアプリケーションに対応しないと判断したときは(ステップS11でNO)、コンテンツ変更処理を実施する(ステップS19)。具体的には、コンテンツ管理部127は、受付けた変更要求611(MFPシステム102からの通知612に基づきフォアグラウンドアプリケーションから受信する変更要求611)に従い、画面管理情報162のフォアグラウンドアプリケーションに対応のコンテンツ165の変更処理を実施する。
コンテンツ解析部107は、受付けた変更要求611または通知612に基づき、これらはバックグラウンドアプリケーションに対応するものであると判断すると(ステップS11でYES)、ステップS13に移行する。ステップS13では、コンテンツ解析部107は、受付けたものは、MFPシステム102から通知612ではないと判断したときは(ステップS13でNO)、すなわちサーバー300からの変更要求611であると判断したときは、バックグラウンドアプリケーションのコンテンツ165の変更処理の実施が保留されるように、要求キュー管理部126に、当該変更要求611をキュー161に格納させる(ステップS21、S23)。その後、処理はステップS3に戻る。
一方、コンテンツ解析部107は、受付けた変更要求611または通知612に基づき、これらはバックグラウンドアプリケーションに対応するものであると判断したとき(ステップS11でYES)であって、受付けたものは、サーバー300からの変更要求611ではなくMFPシステム102からの通知612であると判断したときは(ステップS13でYES)、コンテンツ解析部107は、ステップS15の判断を実施する。
コンテンツ解析部107は、MFPシステム102から受付けた通知612に基づき、当該通知612は全体変更処理を実施するための通知であるかを判断する(ステップS15)。具体的には、コンテンツ解析部107は、MFPシステム102から受付けた通知612が、ログイン/ログアウト通知631またはシステムオートリセット通知632を示すときは、全体変更処理を実施すると判断し、通知が状態変化通知633またはシステム通知634を示すときは、コンテンツ全体処理ではない(コンテンツ部分処理である)と判断する。
コンテンツ解析部107は、MFPシステム102からの通知612に基づきコンテンツ全体処理を実施すると判断すると(ステップS15でYES)、状態キュー管理部128に、キュー169に格納された状態変化通知633をクリア(削除)させる(ステップS17)。コンテンツ解析部107は、上記に述べたコンテンツ全体処理を実施する(ステップS19)。このコンテンツ全体処理により、画面管理情報162の全てのアプリケーションに対応のコンテンツ165は初期画面のコンテンツに変更される。これにより、ウェブブラウザー105は、MFP100が所定状態(ログイン/ログアウト状態、システムオートリセット状態)であれば、サーバー300から受信する変更要求611に従うコンテンツ全体処理を実施する。
一方、コンテンツ解析部107は、MFPシステム102からの通知612は状態変化通知633またはシステム通知634であると判断したとき、すなわちコンテンツ全体処理を実施しないと判断するとき(ステップS15でNO)、コンテンツ解析部107は、当該通知612(状態変化通知633、システム通知634)に基づく変更要求611に従うコンテンツの変更処理の実施を保留する(ステップS21)。これにより、コンテンツ解析部107が、MFPシステム102からの通知612に基き、画面の一部を変更するようにコンテンツ部分処理を実施すると判断したときは、状態キュー管理部128に当該通知612をキュー169に格納する(ステップS23)。これにより、通知612に基づく変更要求611に従うコンテンツの変更処理(コンテンツ部分処理)の実施は保留される。その後、処理はステップS3に戻る。
本実施の形態では、サーバー300が備える機能は、内蔵サーバー200に備えてもよい。その場合は、ウェブブラウザー105は、内蔵サーバー200と通信することにより、図4および図9に示した各部の機能、ならびに各シーケンスおよびフローチャートを実現することができる。
また、コンテンツ管理部127は、MFP100がログイン/ログアウト状態またはシステムオートリセット状態を含む所定状態である場合は、受信した変更要求611が予め定められた種類のアプリケーション38から出力される変更要求611であるときは、変更処理の実施を保留してもよい。
この予め定められた種類のアプリケーション38は、例えばユーザーにより項目の設定操作がなされない、またはユーザーにより設定された項目を表示しない種類のアプリケーション画面に対応のアプリケーションを含む。
例えば、図18、図19および図20のシーケンスにおいて、コンテンツ解析部107は、受信した変更要求611に基き、変更要求611が有するアプリケーションの識別子は、バックグラウンドアプリ38Bに該当し、且つ予め定められた種類のアプリケーションの識別子を示すと判断したとき、当該変更要求611に従うコンテンツの変更処理は保留すると決定してもよい。これにより、バックグラウンドアプリ38Bからの変更要求611であっても、バックグラウンドアプリ38Bが予め定められた種類に該当すれば、コンテンツ解析部107は、当該変更要求611に従うバックグラウンドアプリ38Bのコンテンツの変更処理を実施する。
<J.プログラム>
本実施の形態では、上記に述べた処理をMFP100およびサーバー300に実行させるためのプログラムが提供される。このようなプログラムは、少なくとも上記の図18~図20のシーケンスまたは図21のフローチャートに従う処理のプログラムを含む。MFP100およびサーバー300のコンピューターに付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカードなどのコンピューター読み取り可能な記憶媒体176,37にて記録させて、プログラム製品として提供することもできる。あるいは、コンピューターに内蔵するハードディスクなどの記憶媒体にて記録させて、プログラムを提供することもできる。また、ネットワーク400を介したダウンロードによって、ウェブブラウザー105などのプログラムを提供することもできる。このプログラムは、CPUなどの1つ以上のプロセッサにより、またはプロセッサとASIC,FPGAなどの回路との組合せにより実行され得る。
なお、ウェブブラウザー105プログラムは、コンピューターのOS(Operating System)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して、プロセッサに処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、各実施の形態のプログラムに含まれ得る。
また、各実施の形態にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して、プロセッサに処理を実行させる。このような他のプログラムに組込まれたプログラムも、各実施の形態にかかるプログラムに含まれ得る。
<K.実施の形態の効果>
本実施の形態によれば、複数のアプリケーション38が実行中において、ディスプレイ171Bに階層構造に従い各アプリケーション38に対応のアプリケーション画面が表示される場合に、バックグラウンドアプリ38Bからの変更要求611に従うコンテンツ165の変更処理の実施はされずに、保留される。この保留がされる期間では、MFP100は、当該変更処理に優先してMFP100に対するユーザー操作の応答処理など他の処理を実施できて、このような他の処理に対する応答性能を改善することができる。
また、MFPシステム102がバックグラウンドアプリ38Bに対応したジョブの実行状態の変化またはシステム状態を検出したときは、状態変化通知633またはシステム通知634の通知612はキュー169に格納されて、対応するコンテンツ165の変更処理の実施はされずに、保留される。この保留がされる期間では、サーバー300とクライアントであるMFP100間のネットワーク通信(要求613と、要求613に基づく変更要求611にかかる通信)は保留されて、トラフィックの増加を抑制できる。したがって、この保留がされる期間では、MFP100は、当該変更処理に優先してMFP100に対するユーザー操作に基づくサーバー300との通信処理を実施することができて、このようなユーザー操作に対する応答性能を改善することができる。
したがって、上記に述べたコンテンツの変更処理の実施が保留されている期間は、リソース(CPU150、記憶部160のメモリ、ネットワーク400の帯域など)の利用が節約されて、その分、MFP100に対するユーザー操作の受付け、およびユーザー操作に基く処理などのために使用するリソースを増加させることができる。この結果、例えばアプリケーション38が実行時にアプリケーション画面を表示するまでの所要時間を短縮することが可能となる。
MFP100が不特定多数のユーザーにより利用されるとしても、ログイン/ログアウト状態またはシステムオートリセット状態など、非初期画面のアプリケーション画面においてユーザーが設定した項目が他のユーザーに公開されてしま可能性がある。このようなログイン/ログアウト状態またはシステムオートリセット状態では、ウェブブラウザー105は、階層構造を構成するアプリケーション画面のうち、非初期画面のコンテンツ165についてはコンテンツ全体処理を実施して初期画面に変更する。したがって、或るユーザーが設定した項目が意図せず他のユーザーに公開されるという事態を回避することができて、ユーザーが設定した項目に関するセキュリティを確保することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。