JP5458708B2 - 画像処理装置、表示制御方法、及び表示制御プログラム - Google Patents

画像処理装置、表示制御方法、及び表示制御プログラム Download PDF

Info

Publication number
JP5458708B2
JP5458708B2 JP2009163074A JP2009163074A JP5458708B2 JP 5458708 B2 JP5458708 B2 JP 5458708B2 JP 2009163074 A JP2009163074 A JP 2009163074A JP 2009163074 A JP2009163074 A JP 2009163074A JP 5458708 B2 JP5458708 B2 JP 5458708B2
Authority
JP
Japan
Prior art keywords
display
display control
virtual machine
screen
data
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.)
Expired - Fee Related
Application number
JP2009163074A
Other languages
English (en)
Other versions
JP2011019130A (ja
Inventor
浩太 永井
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009163074A priority Critical patent/JP5458708B2/ja
Priority to US12/801,911 priority patent/US20110010642A1/en
Publication of JP2011019130A publication Critical patent/JP2011019130A/ja
Application granted granted Critical
Publication of JP5458708B2 publication Critical patent/JP5458708B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、複数の仮想マシンが動作可能な画像処理装置に関し、特に、当該画像処理装置が備える表示装置の表示制御を行う技術に関するものである。
1台の物理コンピュータ上に、あたかもコンピュータが複数稼働しているかのような疑似システムを構築する仮想化技術は既に知られている。このような仮想化技術により実現される擬似的な情報処理システム環境(論理コンピュータ)を、仮想マシン(VM:Virtual Machine)と言う(例えば「特許文献1」参照)。
上記仮想化技術は、近年、PC(Personal Computer)環境だけでなく、複合機(MFP:Multifunction Peripheral)などの画像処理装置にも、動作環境の1つとして採用されている。例えば、次のような動作環境が構築されている。画像処理装置では、2つの仮想マシン環境が動作し、第1仮想マシン上で画像処理の主要機能を実行する。一方、第2仮想マシン上ではカスタマイズ機能を含む拡張機能を実行する。
このように、画像処理装置に仮想化技術を採用する理由には、画像処理に係る主要機能のロバストネス性を確保する点がある。
拡張機能を実現するソフトウェアには、サードベンダなどの他社が開発したものが含まれ、主要機能と異なり、他のソフトウェアとの協働など、何らかの原因で障害が発生する可能性がある。また、障害が発生しても、メーカが対応することができないため、障害対応に時間がかかってしまう恐れがある。このようなことから、画像処理装置では、主要機能と拡張機能とを異なる仮想マシン上で動作させることで、万が一、拡張機能に障害が発生した場合であっても、その障害が主要機能の処理に影響を及ぼすことがない動作環境の提供が望まれる。
ところで、近年の画像処理装置では、大画面の表示パネルに豊富な情報を表示することができる。例えば特許文献2には、ブラウザを用いて表示制御を行う画像処理装置が開示されている。
しかしながら、従来の画像処理装置では、画面表示を行う際に、仮想マシン間の通信データ量や通信回数が多くなり、画面表示の遅延など、ユーザの使用感に悪影響を及ぼすことが考えられる。
複数の仮想マシンが構築された画像処理装置では、第1仮想マシンと第2仮想マシンとの間で通信を行い、あたかも単一の仮想マシンで動作しているかのように機能を実現している。このような環境下において画像処理装置では、画面更新などの表示制御を行う場合、仮想マシン間で更新情報を含むデータがやり取りされる。この更新情報は、情報量が多くなることがある。その結果、画像処理装置では、表示制御において仮想マシン間の通信データ量や通信回数の増大に繋がる。
本発明は上記従来技術の問題点を鑑み提案されたものであり、その目的とするところは、複数の仮想マシンが構築されたシステムにおいて、画面表示を高速化できる画像処理装置、表示制御方法、及び表示制御プログラムを提供することにある。
上記目的を達成するため、本発明に係る画像処理装置は、当該画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる第1及び第2仮想マシン上で動作する画像処理装置であって、
前記標準機能として表示画面の表示制御を実現する複数の動作モジュールと、
各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有し、
前記拡張機能が動作する前記第2仮想マシン側の通信インタフェース部が、
前記拡張機能を実現するアプリケーションからの画面更新要求に応じて、前記アプリケーションの表示画面を制御する、表示制御コマンドを用いた表示制御データを生成する生成手段と、
前記生成手段により生成した表示制御データを、前記標準機能が動作する前記第1仮想マシンに送信するデータ送信手段と、を有し、
前記第1仮想マシン側の通信インタフェース部が、
前記第2仮想マシンから前記表示制御データを受信するデータ受信手段と、
前記データ受信手段により受信した表示制御データに従った表示制御の実行を、前記動作モジュールのうち、画面制御を行う画面制御モジュールに要求する要求手段と、を有し、
前記生成手段は、
前記表示画面を構成する表示部品の削除、追加、及び変更の各表示制御を指示する表示制御コマンドと、階層構造により表示画面を構成する表示部品を指定する表示部品識別子と、階層構造で親にあたる表示部品と子にあたる表示部品とを指定するためのセパレータとを含む、表示制御データを生成するように構成することができる。
このような構成によって、本発明に係る画像処理装置は、第2仮想マシン側において、画面更新要求に応じた表示画面を構成する表示部品の属性情報を取得し、取得した属性情報に基づき、表示制御用の独自コマンドを用いた表示制御データを生成する。画像処理装置は、生成した表示制御データを、表示画面を制御する画面制御モジュールが動作する第1仮想マシンに送信する。その結果、画像処理装置は、第1仮想マシン側において、画面制御モジュールを実行し、受信データに従った表示制御を行う。
これによって、本発明に係る画像処理装置は、表示制御における仮想マシン間の通信データ量を削減することができる。その結果、ユーザへの提供情報やGUI(Graphic User Interface)を高速表示できる(画面表示の高速化が図れる)。
上記目的を達成するため、本発明に係る表示制御方法は、画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる第1及び第2仮想マシン上で動作する環境において、前記標準機能として表示画面の表示制御を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における表示制御方法であって、
前記拡張機能が動作する前記第2仮想マシン側の通信インタフェース部において、
前記拡張機能を実現するアプリケーションからの画面更新要求に応じて、前記アプリケーションの表示画面を制御する、表示制御コマンドを用いた表示制御データを生成する生成手順と、
前記生成手順により生成した表示制御データを、前記標準機能が動作する前記第1仮想マシンに送信するデータ送信手順と、を有し、
前記第1仮想マシン側の通信インタフェース部において、
前記第2仮想マシンから前記表示制御データを受信するデータ受信手順と、
前記データ受信手順により受信した表示制御データに従った表示制御の実行を、前記動作モジュールのうち、画面制御を行う画面制御モジュールに要求する要求手順と、を有し、
前記生成手順は、
前記表示画面を構成する表示部品の削除、追加、及び変更の各表示制御を指示する表示制御コマンドと、階層構造により表示画面を構成する表示部品を指定する表示部品識別子と、階層構造で親にあたる表示部品と子にあたる表示部品とを指定するためのセパレータとを含む、表示制御データを生成するように構成することができる。
このような手順によって、本発明に係る表示制御方法は、第2仮想マシン側で、表示画面を構成する表示部品の取得属性情報に基づき、表示制御データを生成し、表示制御データを、画面制御モジュールが動作する第1仮想マシンに送信し、第1仮想マシン側で画面制御モジュールを実行し、受信データに従った表示制御を行うと言う動作を実現する。
これによって、本発明に係る表示制御方法は、ユーザへの提供情報やGUIの高速表示が可能な環境を提供できる。
本発明によれば、表示制御用の独自コマンドを用いて生成した表示制御データを、第2仮想マシンから第1仮想マシンに送信し、表示制御を要求することで、表示制御における仮想マシン間の通信データ量を削減し、複数の仮想マシンが構築されたシステムにおいて、高速な画面表示が可能な画像処理装置、表示制御信方法、及び表示制御プログラムを提供することができる。
本発明の第1の実施形態に係る画像処理装置のハードウェア構成例を示す図である。 本発明の第1の実施形態に係る複数の仮想マシンが構築されたシステム構成例を示す図である。 本発明の第1の実施形態に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。 本発明の第1の実施形態に係るサブセットモジュールの機能構成例を示す図である。 本発明の第1の実施形態に係る表示部品の階層化例を示す図である。 本発明の第1の実施形態に係る表示制御のデータ例を示す図である。 本発明の第1の実施形態に係る表示制御を行う処理手順例(その1)を示すシーケンス図である。 本発明の第1の実施形態に係る表示制御を行う処理手順例(その2)を示すシーケンス図である。 本発明の第2の実施形態に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。 本発明の第2の実施形態に係るボタン画面の状態遷移を示す図である。 本発明の第2の実施形態に係る表示制御を行う処理手順例(その1)を示すシーケンス図である。 本発明の第2の実施形態に係る表示制御のデータ構造例を示す図である。 本発明の第2の実施形態に係る表示部品情報のデータ例(その1)を示す図である。 本発明の第2の実施形態に係る表示部品情報のデータ例(その2)を示す図である。 本発明の第2の実施形態に係る表示部品情報のデータ例(その3)を示す図である。 本発明の第2の実施形態に係る表示制御を行う処理手順例(その2)を示すシーケンス図である。 本発明の変形例に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。
以下、本発明の好適な実施の形態(以下「実施形態」と言う)について、図面を用いて詳細に説明する。
[第1の実施形態]
<ハードウェア構成>
図1は、本実施形態に係る画像処理装置100のハードウェア構成例を示す図である。
図1に示すように、画像処理装置100は、コントローラ110、表示装置120、プロッタ130、及びスキャナ140などを備え、それぞれが相互にバスBで接続されている。
表示装置120は、表示部に加えてタッチパネルなどの入力部を備えており、機器情報などの各種情報をユーザに提供したり、動作設定や動作指示などの各種ユーザ操作を受け付けたりする。プロッタ130は、画像形成部を備えており、用紙に出力画像を形成する。例えば出力画像を形成する方式には、電子写真方式やインクジェット方式などがある。スキャナ140は、原稿を光学的に読み取り、読み取り画像を生成する。
コントローラ110は、CPU(Central Processing Unit)111、記憶装置112、ネットワークI/F113、及び外部記憶I/F114などを備えており、それぞれが相互にバスBで接続されている。
CPU111は、プログラムを実行することにより各種機能の実現や装置全体を制御する。また記憶装置112は、上記プログラムや各種データ(例えば「画像データ」)を格納し保持する。例えば記憶装置112には、揮発性のメモリであるRAM(Random Access Memory)、不揮発性のメモリであるROM(Read Only Memory)、及び大容量の記憶領域を備えたHDD(Hard Disk Drive)などがある。RAMは、CPU111のワークエリア(プログラムやデータが一時的に読み出される記憶エリア)として機能する。ROMやHDDは、プログラムや各種データの格納先として用いられる。これにより、画像処理装置100では、CPU111がROMに格納されたプログラムをRAM上に読み出し、プログラムを実行する。
ネットワークI/F113は、画像処理装置100をネットワークなどの所定のデータ伝送路に接続するためのインタフェースである。外部記憶I/F114は、外部記憶装置にあたる記録媒体114aを接続するためのインタフェースである。例えば外部記憶装置には、SDメモリカード(SD Memory Card)やUSB(Universal Serial Bus)メモリなどがある。これにより、画像処理装置100は、外部記憶I/F114を介して、記録媒体114aに格納されたプログラムやデータを読み取る。
画像処理装置100では、上記ハードウェア構成により、例えばHDDからRAM上に読み出したプログラムをCPU111により実行することで、1又は複数の仮想マシン環境を動作させることができる。
<システム及びソフトウェア構成>
図2は、本実施形態に係る複数の仮想マシンが構築されたシステム構成例を示す図である。
図2に示すように、画像処理装置100では、表示装置120とコントローラ110とで異なるソフトウェアを有している。なお本実施形態では、表示装置120とコントローラ110とが異なる制御部(CPU)を備えるハードウェア環境を想定している。
《表示装置》
表示装置120では、OS(Operating System)10上でブラウザ11、FlashPlayer12、及びソフトキーボード13などの画面表示に係るアプリケーションが動作する。OS10は、組み込み系の基本ソフトウェアであり、例えばLinux(登録商標:以下略)などがある。ブラウザ11は、HTML(HyperText Markup Language)などで記述されたWebコンテンツを閲覧するソフトウェアである。Flash(商標:以下略)Player12は、Webコンテンツの提供を可能にするクロスプラットフォーム対応のブラウザプラグインである。ソフトキーボード13は、画面上からの文字入力などを支援するGUI(Graphical User Interface)ソフトウェアである。
以上のように、表示装置120では、上記ソフトウェア構成により、ユーザへの提供情報やGUIを表示することができる。
《コントローラ》
図2には、画像処理装置100が備えるコントローラ110(1台の物理コンピュータ)上に2つの仮想マシンが動作するシステム構成が示されている。
図2に示すように、仮想マシン環境は、OS20上で仮想マシン環境を実現するプログラムを動作させることで実現される。本実施形態では、組み込み系システムの開発環境として使用頻度の高いJava(登録商標:以下略)VM(Java Virtual Machine)21を動作させることで実現している。なおOS20は、上記OS10と同様に、組み込み系の基本ソフトウェアである。
複数の仮想マシン環境は、OS20上で複数のJavaVM21を動作させることで実現できる。本実施形態では、JavaVM21及び21(2つのJavaVM21)を動作させることで、第1及び第2仮想マシン環境(2つの仮想マシン環境)を実現している。以降では、JavaVM21及び21を「第1仮想マシン21及び第2仮想マシン21」に置き換え説明する。また、第1仮想マシン21及び第2仮想マシン21を総称する際には、「仮想マシン21」とする。同様に、各仮想マシン21上で動作するソフトウェア(例えば「プログラム」や「データ」)及び使用される記憶領域についても、同じソフトウェア名や記憶領域名を総称する際には、共通する名称と参照符号を用いることとする。
仮想マシン21は、仮想マシン21上でJavaコンポーネント22を動作させるためのヒープメモリ211を有している。ヒープメモリ211は、仮想マシン21上で動作するアプリケーションが自由に確保できるメモリ領域である。このように、複数の仮想マシン21が構築されたシステムでは、仮想マシン21ごとに独立したヒープメモリ211を有することから、処理停止などの障害が発生しても、互いのシステムに影響を及ぼすことがない。
仮想マシン21上で動作するJavaコンポーネント22には、プラットフォーム及びアプリケーション(図中のJavaプラットフォーム221及びJavaアプリケーション222)の各機能を実現するための複数のJavaプログラムが含まれる。Javaプラットフォーム221は、仮想マシン21が実現するシステム(動作環境)の標準機能として動作する。またJavaアプリケーション222は、上記基本機能を利用し、例えばユーザが実行したい作業を実施する機能(仮想マシン環境におけるユーザ提供機能)として動作する。Javaアプリケーション222は、提供する機能構成に応じてインストール/アンインストールが可能である。
以上のように、本実施形態に係る画像処理装置100には、複数の仮想マシン21が動作する環境を構築することができる。
次に、上記システムにおける詳細なソフトウェア構成について説明する。
図3は、本実施形態に係る複数の仮想マシン21が構築されたシステムのソフトウェア構成例を示す図である。
例えば、上記システムが構築された画像処理装置100が、MFP(Multifunction Peripheral)であった場合、次のようなシステム構築が考えられる。
第1仮想マシン21では、プリンタ、スキャナ、FAX(ファクシミリ)などの標準機能を動作させる。
第1仮想マシン21上で動作するJavaコンポーネント22が有するJavaアプリケーション222は、標準アプリケーション222a及びSDK(Software Development Kit)アプリケーション222bを含む。またJavaプラットフォーム221は、Javaモジュール群(動作モジュール群)221a及びSDK API(Application Program Interface)221bを含む。
標準アプリケーション222aは、MFP搭載の標準機能を利用したユーザ提供機能を実現するソフトウェアである。標準アプリケーション222aは、標準機能として、プラットフォームが有するJavaモジュール群221aの動作モジュールを利用する。例えばJavaモジュール群221aには、プリンタ、スキャナ、及びFAXなどの標準機能を実現する動作モジュール(非図示)が含まれる。これにより、例えば標準アプリケーション222aは、Javaモジュール群221aのプリンタ及びスキャナの各動作モジュールを利用してコピー機能(コピーアプリ)を実現する。
またJavaモジュール群221aには、表示制御に係る標準機能を実現する動作モジュールとして、画面制御モジュール42、ハードキーイベント配信モジュール43、及びLED(Light Emitting Diode)点灯モジュール44が含まれる。画面制御モジュール42は、画面生成や画面更新などの画面制御機能を実現する動作モジュールである。ハードキーイベント配信モジュール43は、画像処理装置100が備えるテンキー(非図示)などのハードキーから検出されたイベント(例えば「スタートキー押下時のイベント」)の配信機能を実現する動作モジュールである。なお配信機能とは、検出されたイベントを、イベントに従って動作する各種機能に通知するものである。LED点灯モジュール44は、画像処理装置100が備えるLEDの点灯制御機能を実現する動作モジュールである。
このように、画像処理装置100では、第1仮想マシン21側において、画面生成、画面更新、ハードキーイベント配信、LED点灯制御などの表示制御に係る各種機能が動作する。
SDKアプリケーション222bは、ソフトウェアを開発する際に使用できる命令や関数の集合であるSDK API221bを用いて開発され、ユーザへの個別対応機能(カスタマイズ機能)などを実現するソフトウェアである。SDKアプリケーション222bは、SDK API221bを介して、プラットフォームが有するJavaモジュール群221aの動作モジュールを利用する。これにより、例えばSDKアプリケーション222bは、SDK API221bを介して、Javaモジュール群221aのプリンタモジュールを利用し、機能拡張による認証モジュールと合わせて印刷の利用認証機能(セキュアプリントアプリ)を実現する。
これに対して第2仮想マシン21では、標準機能を利用する拡張機能(例えば「サードベンダ提供機能」)を動作させる。
第2仮想マシン21上で動作するJavaコンポーネント22が有するJavaアプリケーション222は、SDKアプリケーション222bを含み、Javaプラットフォーム221は、SDK API221bを含む。
上述したように、SDKアプリケーション222bは、プラットフォームが有するSDK API221bを用いれば独自に開発できる。特に拡張機能を実現するSDKアプリケーション222bは、サードベンダにより開発され提供されるソフトウェアである。サードベンダにより開発されたソフトウェアは、どのように設計・プログラミングされ、かつどのような工程を経て動作テストされ、提供されたものなのかを、知ることができない。そのため、動作中のメモリリークなど、予期せぬエラー(障害)が発生する恐れがある。
このような場合、SDKアプリケーション222b(拡張機能)を、標準アプリケーション222a(標準機能)と同じ仮想マシン21(第1仮想マシン21)上で動作させると、障害発生の影響からシステム全体を停止(システムダウン)させてしまう可能性がある。そのため、本実施形態では、MFP搭載の標準機能と拡張機能とを異なる仮想マシン21上で動作させることにより、たとえ拡張機能に何らかの障害が発生したとしても、ユーザに対して、標準機能のサービス提供を継続して行うことができる。
しかしこのようなシステム構成の場合、第2仮想マシン21上で動作するSDKアプリケーション222bは、第1仮想マシン21上で動作するJavaモジュール群221aの動作モジュールとデータ通信(仮想マシン間通信)を行う必要がある。なぜなら、第2仮想マシン21上で動作するSDKアプリケーション222bは、第1仮想マシン21上で動作する動作モジュール(標準機能を実現するモジュール)を利用して機能(拡張機能)を実現しているからである。
仮想マシン間通信への対応方法には、第2仮想マシン21上で、各動作モジュールに対応する通信モジュールを動作させる方法(動作モジュール単位で対応する方法)がある。しかし、システム規模が大きく、かつシステム内で多くの動作モジュールが協働する場合には、多くの通信モジュールを用意する必要があり、現実的な対応方法ではない。また、たとえ通信モジュールが用意できたとしても、障害が発生した場合など、その後のシステム管理・保守が煩雑となる。さらに、仮想マシン21上で多くの通信モジュールを動作させなければならず、リソースを無駄に消費することとなる。

そこで本実施形態では、各仮想マシン21に、仮想マシン21間のデータ通信機能(仮想マシン間通信機能)を有するシステム全体のインタフェース部が設けられている。このインタフェース部が、各仮想マシン21上で動作するJavaプラットフォーム221が有するJavaモジュール群221aのサブセットモジュール(通信インタフェース部)41である。各仮想マシン21上では、1つのサブセットモジュール41が動作する。
サブセットモジュール41は、SDKアプリケーション222bから受け付けた機能実行要求に基づき、機能を実現するために連係する動作モジュールに対して処理の実行を要求する。またサブセットモジュール41は、他の仮想マシンと機能実行要求を送受信し、他の仮想マシン上で動作する動作モジュールの実行を制御する。
このように、サブセットモジュール41は、複数の動作モジュールに対して共通の通信インタフェースとして機能する。
第2仮想マシン21上で動作するSDKアプリケーション222bに係る表示制御処理には、第2仮想マシン21から第1仮想マシン21に処理を委譲する必要がある。
委譲が必要な処理には、画面生成、画面更新、ハードキーイベント配信、LED点灯制御などがある。上述したように、これらの処理は、表示制御に係る標準機能であり、第1仮想マシン21上で動作する。よって、画面生成、画面更新、LED点灯制御の場合には、第2仮想マシン21から第1仮想マシン21に対して制御要求を行う必要がある。またハードキーイベント配信の場合には、第1仮想マシン21から第2仮想マシン21に対して配信を行う必要がある。
具体的な表示制御処理の委譲は、次のように行われる。例えば、第2仮想マシン21上で動作するSDKアプリケーション222bが、アプリ画面の更新を要求する場合の動作例を示す。SDKアプリケーション222bは、第2仮想マシン21側のサブセットモジュール41を介して、第1仮想マシン21側のサブセットモジュール41に対し、画面更新要求を行う。第1仮想マシン21側のサブセットモジュール41は、受け付けた画面更新要求に基づき、指定された画面制御モジュール42に対して処理の実行を要求する。
このように、画像処理装置100では、通信インタフェースであるサブセットモジュール41を介して仮想マシン間通信を行い、第2仮想マシン21上で動作するSDKアプリケーション222bからの表示制御処理を実行している。
なお、第2仮想マシン21側のサブセットモジュール41は、第2仮想マシン21上で動作するJavaアプリケーション222がSDKアプリケーション222bのみであることから、SDK API221bのインスタンス(実値)及びSDKアプリケーション222bの固有データを有している。
また図3に示すように、画像処理装置100では、画面表示に係る各種画像データを保持するイメージリソース31を有している。イメージリソース31は、第1仮想マシン21及び第2仮想マシン21において、共通する画像データの記憶領域である。
ユーザに対して提供されるGUIでは、WindowやButtonなどの表示部品に画像データを用いる場合が多い。例えば、第2仮想マシン21上(第2仮想マシンが有する記憶領域)に、第2仮想マシン21上で動作するSDKアプリケーション222bに係る表示部品の画像データを保持する構成としたとする。このような構成では、上記サブセットモジュール41を介した表示制御処理を行うと、表示画面を構成するのに必要な画像データを、第2仮想マシン21から第1仮想マシン21に送信することとなる。そのため、仮想マシン間の通信データ量が多く、画面表示に係る時間(処理時間)の遅延につながり、ユーザの使用感に悪影響を及ぼすことが考えられる。
そこで、本実施形態では、表示部品として用いる画像データを展開(ロード)し、保持(キャッシュ)しておく、上記イメージリソース31を有し、画面表示の高速化を図る。つまり、画像処理装置100では、上記表示制御処理を行うときに、仮想マシン間における画像データの送受信を行わない構成とし、画面表示に係る時間の遅延を防ぐ。
イメージリソース31は、例えば画像処理装置100が備える記憶装置112(例えば「HDD」)の所定の記憶領域である。画像データは、SDKアプリケーション222bがインストールされたときに、アプリ名称や製造番号ごとに展開され保持される。
これにより、画像処理装置100では、第1仮想マシン21上で動作する画面制御モジュール42が、イメージリソース31にアクセスし、アプリ名称や製造番号などのSDKアプリケーション222bを識別するアプリ識別情報に基づき、取得した画像データを用いてアプリ画面を表示する。
<表示制御機能>
ここからは、本実施形態に係る表示制御機能について説明する。
本実施形態に係る画像処理装置100では、第2仮想マシン21側において、画面更新要求に応じた表示画面を構成する表示部品の属性情報を取得し、取得した属性情報に基づき、表示制御用の独自コマンド(以下「表示制御コマンド」と言う)を用いた表示制御データを生成する。画像処理装置100は、生成した表示制御データを、表示画面を制御する画面制御モジュール42が動作する第1仮想マシン21に送信する。その結果、画像処理装置100は、第1仮想マシン21側において、画面制御モジュール42を実行し、受信データに従った表示制御を行う。画像処理装置100では、このような表示制御機能を有している。本実施形態に係る表示制御機能は、サブセットモジュール41が仮想マシン21上で動作することで実現される機能である。
上述したように、第2仮想マシン21から第1仮想マシン21に委譲する表示制御処理には、画面生成、画面更新、ハードキーイベント配信、及びLED点灯制御などがある。
この中で、ハードキーイベント配信やLED点灯制御の処理では、仮想マシン間において、配信時のハードキー情報や点灯要求時の指定LED情報が、第2仮想マシン21から第1仮想マシン21に送信されるだけであり、送受信されるデータ量は少ない。また画面生成の処理でも、生成要求時のアプリ識別情報が、第2仮想マシン21から第1仮想マシン21に送信されるだけであり、送受信されるデータ量は少ない。
しかし、画面更新の処理では、例えば表示画面全体の切り替え処理など、仮想マシン間において、多くの表示部品情報が、第2仮想マシン21から第1仮想マシン21に送信されることになる。また仮想マシン間通信には、例えばRMI(Remote Method Invocation API)通信があるが、RMI通信では、Javaのインスタンス(実値)が送受信される場合が多く、画面制御に不必要なデータが含まれる。さらに、画面更新の処理は、上記画面生成、ハードキーイベント配信、LED点灯制御の各処理に比べて、実行頻度が高い。
そのため、通常の仮想マシン間通信では、通信データ量が多く、画面表示に係る時間(処理時間)の遅延につながる。
そこで、本実施形態に係る画像処理装置100では、画面更新時の通信データ量を削減することを目的とした表示制御用の独自コマンドを用いて表示制御データを生成し、第2仮想マシン21から第1仮想マシン21に送信することで、表示制御を要求する。
これによって、画像処理装置100では、表示制御における仮想マシン間の通信データ量を削減することができる。その結果、ユーザへの提供情報やGUIを高速表示できる(画面表示の高速化が図れる)。
以下に、上記表示制御機能の構成とその動作について説明する。なお以降では、サブセットモジュール41が有する各機能部(表示制御機能を実現する機能部)について、同じ機能部名を総称する際には、共通する名称と参照符号を用いることとする。
図4は、本実施形態に係るサブセットモジュール41の機能構成例を示す図である。(A)には、第1仮想マシン21上で動作するサブセットモジュール41の機能構成、また(B)には、第2仮想マシン21上で動作するサブセットモジュール41の機能構成例が示されている。
まず、図4に示すように、サブセットモジュール41は、第1仮想マシン21及び第2仮想マシン21において、共通する通信部51を有している。
通信部51は、仮想マシン間通信を行う機能部である。よって、通信部51は、仮想マシン間でデータを送信する送信部511、及び仮想マシン間でデータを受信する受信部512を有している。
例えば第1仮想マシン21側の送信部511は、第1仮想マシン21側で動作するハードキーイベント配信モジュール43からハードキー押下時のイベント通知を受け付けると、イベント通知に基づき、ハードキー情報を第2仮想マシン21に対して送信する。送信されたハードキー情報は、第2仮想マシン21側の受信部512により受信される。これにより、画像処理装置100では、第1仮想マシン21から第2仮想マシン21に、ハードキーイベント配信処理を委譲する。
一方、第2仮想マシン21側の送信部511は、第2仮想マシン21側でSDKアプリケーション222bからのLEDの点灯要求を受け付けると、要求に基づき、指定LED情報を第1仮想マシン21に対して送信する。送信された指定LED情報は、第1仮想マシン21側の受信部512により受信される。これにより、画像処理装置100では、第2仮想マシン21から第1仮想マシン21に、LED点灯処理を委譲する。
また送信部511は、第2仮想マシン21側でSDKアプリケーション222bからのアプリ画面の生成要求を受け付けると、要求に基づき、アプリ識別情報を第1仮想マシン21に対して送信する。送信されたアプリ識別情報は、第1仮想マシン21側の受信部512により受信される。これにより、画像処理装置100では、第2仮想マシン21から第1仮想マシン21に、画面生成処理を委譲する。
また送信部511は、アプリ画面の更新要求に従って後述する表示制御データ生成部53により画面更新を指示する表示制御データが生成されると、生成された表示制御データを第1仮想マシン21に対して送信する。送信された表示制御データは、第1仮想マシン21側の受信部512により受信される。これにより、画像処理装置100では、第2仮想マシン21から第1仮想マシン21に、画面更新処理を委譲する。
次に、図4(A)に示すように、第1仮想マシン21上で動作するサブセットモジュール41は、処理要求部52を有している。
処理要求部52は、第1仮想マシン21上で動作する動作モジュールに対して、処理の実行を要求する機能部である。処理要求部52は、受信部512で受信した処理要求に従って処理の実行を要求する。
例えば受信部512で、LEDの点灯要求を受け付けた場合、処理要求部52は、第1仮想マシン21上で動作するLED点灯モジュール44に対して、要求時の指定LED情報に基づくLED点灯処理の実行を要求する。また受信部512で、アプリ画面の生成要求を受け付けた場合、処理要求部52は、第1仮想マシン21上で動作する画面制御モジュール42に対して、要求時のアプリ識別情報に基づく画面生成処理の実行を要求する。また受信部512で、アプリ画面の更新要求を受け付けた場合、処理要求部52は、第1仮想マシン21上で動作する画面制御モジュール42に対して、要求時の表示制御データに基づく画面更新処理の実行を要求する。
次に、図4(B)に示すように、第2仮想マシン21上で動作するサブセットモジュール41は、表示制御データ生成部53及び情報取得部54を有している。
表示制御データ生成部53は、通信データ量を削減することを目的とした表示制御用の独自コマンドを用いて表示制御データを生成する機能部である。表示制御データ生成部532は、画面更新要求に応じたアプリ画面を構成する表示部品の属性情報に基づき、表示制御データを生成する。
情報取得部54は、SDKアプリケーション222bから、アプリ画面を構成する表示部品の属性情報を取得する機能部である。表示部品の属性情報には、例えば配置位置(配置座標)、見た目(例えば「色」や「大きさ」)、及び動作(例えば「クリックアクション」)
などがある。
SDKアプリケーション222bは、イベント通知を受け付けたときなど、アプリ画面を更新する必要がある。そこで、通信部51では、第1仮想マシン21から委譲された表示制御処理に応じて、SDKアプリケーション222bのアプリ画面を更新する必要があるか否かを判断する。本実施形態では、ハードキーイベント配信処理が委譲された場合、ハードキー情報を基にアプリ画面更新の要否を判断している。アプリ画面更新の要否判定は、ハードキー情報の他にも、ブラウザ11やソフトキーボード13を介した各種入力操作イベントなど操作イベント情報を基に行ってもよい。
通信部51は、アプリ画面の更新が必要と判断すると、情報取得部54に、表示部品に係る属性情報の取得を要求する。情報取得部54は、取得した属性情報を表示制御データ生成部53へと渡し、表示制御データの生成を要求する。
以下に、表示制御データ生成部53により生成される表示制御データについて説明する。
図5は、本実施形態に係る表示部品Pの階層化例を示す図である。
ここで、表示画面を構成する表示部品Pの構成について説明する。表示画面は、SDKアプリケーション222bがSDK API221bを用いて形成する。図5に示すように、形成された表示画面は、複数種の表示部品P1〜P8により構成される。よって、SDKアプリケーション222bは、これらの表示部品Pを所定のレイアウトに従って、背面から最前面に向かって順に重畳することで、アプリ画面を形成する。本実施形態に係る表示部品Pは、表示画面形成の特性に基づき、階層構造を有している。
図5には、背面に位置する表示部品Pの階層を第1階層とし、最前面に位置する表示部品Pの階層を第4階層とする階層化例が示されている。例えば、このような階層構造の場合、FrameP1上に、LabelP2、IconP3、WindowP4をレイアウトできる。またWindowP4上には、LabelAreaP5及びDialogP6をレイアウトできる。さらにDialogP6上には、ButtonP7及びPatternP8をレイアウトできる。つまり、階層構造上、親にあたる表示部品Pには、子にあたる1又は複数の表示部品Pをレイアウトすることができる。
このように、本実施形態は、上記階層構造により、表示画面を構成する表示部品Pを互いに関連付けることができる。
図6は、本実施形態に係る表示制御のデータ例を示す図である。
表示制御データ生成部53は、図6に示すような表示制御データ60を生成する。表示制御データ60は、「削除」、「追加」、及び「変更」と言った表示制御を指示する表示制御コマンドと、制御対象である表示部品Pの表示部品データとを含む。また表示部品データでは、所定のセパレータ「@#」及び「#@」を用いて、階層構造で親にあたる表示部品Pと、子にあたる1又は複数の表示部品Pを指定できる。
例えば、画面更新時における表示部品Pの「削除」、「追加」、及び「変更」を制御するデータ例は、以下の通りである。
●表示部品を削除する場合
delete @#sep#@[親の表示部品識別子]@#sep#@[削除する表示部品識別子]
●表示部品を追加する場合
add @#sep#@[親の表示部品識別子]@#sep#@[追加する表示部品識別子]@#sep#@[追加する表示部品の内容]
●表示部品を変更する場合
change @#sep#@[親の表示部品識別子]@#sep#@[変更する表示部品識別子]@#sep#@[変更する表示部品の内容]
上記表示部品識別子とは、SDKアプリケーション222bがアプリ画面を形成するときに割り当てられる、各表示部品Pを一意に特定可能な識別情報(ID)である。
また上記追加・変更する表示部品の内容とは、図6に示す追加・変更時の表示制御データ例のように、追加・変更する表示部品Pの配置位置、見た目、及び動作などを含む詳細情報である。
このように、本実施形態では、画面更新時の仮想マシン間における通信データ量を削減するために、表示制御データ60を表示制御に最低限必要なデータで構成する。
また、本実施形態では、制御対象の表示部品Pを、階層構造上の親子関係により指定する。これにより、次のような表示制御処理が可能になる。
例えば表示部品Pを削除する場合には、削除対象の表示部品P上にレイアウトされた複数の表示部品P(子にあたる表示部品)を1つずつ削除指定する必要がない。表示制御コマンド60により、削除対象の表示部品Pを指定するだけで、親子関係により、子にあたる全ての表示部品Pも削除できる。
さらに、表示制御データ60では、所定のセパレータ「;_;」を用いて表示制御コマンドを区切り、複数の画面更新の要求を可能としている。
例えば、画面更新時における表示部品Pの「削除」及び「追加」を制御するデータ例は、以下の通りである。
●表示部品を削除後に新たに追加する場合
delete @#sep#@…@#sep#@…;_;add @#sep#@…@#sep#@…
このように、本実施形態では、画面更新時に係る表示制御処理要求を一括して行うために、表示制御データ60内に複数個の表示制御コマンドを含むデータで構成する。
表示制御データ生成部53は、画面更新内容に応じて、表示制御データ60内で用いる表示制御コマンドを決定する。次に表示制御データ生成部53は、上記階層構造に基づき、所定のセパレータを用いて制御対象の表示部品P及び親にあたる表示部品Pそれぞれの表示部品識別子を指定する。このとき表示制御データ生成部53は、画面更新時の表示制御に「追加」又は「変更」が指定されている場合、情報取得部54によりSDKアプリケーション222bから取得した表示部品Pの属性情報に基づき、制御対象の表示部品Pの内容(詳細情報)を付加する。表示制御データ生成部53は、このようにして上記データ構成の表示制御データ60を生成する。
以上のように、本実施形態に係る表示制御機能は、上記各機能部が連係動作することにより実現される。
次に、表示制御機能の詳細な動作(機能部群の連係動作)について、処理手順を示すシーケンス図を用いて説明する。
表示制御機能は、画像処理装置100に搭載(インストール)される表示制御プログラムが、CPU111により、格納先(例えば「ROM」)からRAM上に読み出され、以下の処理が実行されることで実現される。なお以降には、表示制御処理の中でも、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面を生成する処理(処理1)、及びボタン押下時におけるSDKアプリケーション222bのアプリ画面を更新する処理(処理2)を例に説明する。
《処理1》
図7は、本実施形態に係る表示制御を行う処理手順例(その1)を示すシーケンス図である。
図7に示すように、画像処理装置100では、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面を生成する場合、以下の表示制御処理が実行される。
第2仮想マシン21上で動作するSDKアプリケーション222bは、SDK API221bを用いてアプリ画面を生成する(ステップS101)。
SDK API221bは、同仮想マシン21上で動作するサブセットモジュール41にアプリ画面生成要求を通知する(ステップS102)。このとき、SDK API221bは、生成要求時にSDKアプリケーション222bから指定されたアプリ識別情報を含む各種パラメータ(以下「画面生成情報」と言う)をサブセットモジュール41に渡す。
サブセットモジュール41は、アプリ画面生成要求通知を受け付けると、通信部51により、第1仮想マシン21上で動作するサブセットモジュール41と仮想マシン間通信を行い、アプリ画面の生成処理を第1仮想マシン21側に委譲する(ステップS103)。このとき、サブセットモジュール41は、通信部51が有する送信部511により、画面生成情報を、アプリ画面の生成処理を行う画面制御モジュール42に指定可能な値に変換し、送信する。これにより、第2仮想マシン21からアプリ画面の生成処理を要求する。その結果、サブセットモジュール41は、第2仮想マシン21上で動作するサブセットモジュール41から送信された変換後の画面生成情報を、通信部51が有する受信部512により受信する。これにより、第1仮想マシン21でアプリ画面生成要求を受け付ける。
サブセットモジュール41は、アプリ画面生成要求を受け付けると、通信部51が有する受信部512から処理要求部52に、アプリ画面の描画要求が通知される(ステップS201)。このとき、受信部512は、生成要求時の変換後の画面生成情報を処理要求部52に渡す。
処理要求部52は、変換後の画面生成情報に基づくアプリ画面生成処理の実行(アプリ画面の描画)を、画面制御モジュール42に要求する(ステップS202)。このとき、処理要求部52は、アプリ識別情報を含む変換後の各種パラメータ(画面生成情報)を、画面制御モジュール42の実行パラメータとして設定し、アプリ画面生成処理の実行を要求する。
画面制御モジュール42は、設定されたパラメータに基づき、画像処理装置100が備える表示装置120の表示画面に対して、アプリ画面の生成処理(アプリ画面の描画)を実行する(ステップS203)。アプリ画面生成処理では、もしアプリ画面を構成する表示部品Pに画像データを用いる場合、イメージリソース31にアクセスし、アプリ識別情報に基づき、該当画像データを取得する。
表示装置120では、このようにしてアプリ画面が描画される(ステップS204)。また表示装置120からは、アプリ画面生成処理の実行結果が、画面制御モジュール42を介して処理要求部52へと応答される。
以上のように、画像処理装置100では、サブセットモジュール41を用いた仮想マシン間通信により、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面生成処理を第1仮想マシン21へと委譲し、表示画面を生成する。
《処理2》
図8は、本実施形態に係る表示制御を行う処理手順例(その2)を示すシーケンス図である。
図8に示すように、画像処理装置100では、ボタン押下時におけるSDKアプリケーション222bのアプリ画面を更新する場合、以下の表示制御処理が実行される。
表示装置120では、ハードキーのボタン押下が検出される(ステップS301)。検出されたボタン押下の検出信号は、第1仮想マシン21上で動作するハードキーイベント配信モジュール43に渡され、ハードキーイベント配信モジュール43からハードキーイベントがサブセットモジュール41に通知される(ステップS302)。このとき、ハードキーイベント配信モジュール43は、検出信号に基づき、ハードキー情報や操作イベント情報を発行し、サブセットモジュール41に通知する。サブセットモジュール41は、通信部51により、これらの情報をイベント通知として受け取る。
サブセットモジュール41は、イベント通知を受け取ると、通信部51により、第2仮想マシン21上で動作するサブセットモジュール41と仮想マシン間通信を行い、ボタン押下時の処理を第2仮想マシン21側に委譲する(ステップS303)。このとき、サブセットモジュール41は、通信部51が有する送信部511により、ハードキー情報や操作イベント情報を送信する。これにより、第1仮想マシン21からボタン押下時の処理を要求する。その結果、サブセットモジュール41は、第1仮想マシン21上で動作するサブセットモジュール41から送信された、ハードキー情報や操作イベント情報を、通信部51が有する受信部512により受信する。これにより、第2仮想マシン21でボタン押下処理要求を受け付ける。
サブセットモジュール41は、ボタン押下処理要求を受け付けると、通信部51が有する受信部512からSDK API221bに、ボタン押下時の処理要求が通知される(ステップS401)。このとき、受信部512は、処理要求時のハードキー情報や操作イベント情報をSDK API221bに渡す。
SDK API221bは、ボタン押下処理の実行を、SDKアプリケーション222bに要求する(ステップS402)。このとき、SDK API221bは、ハードキー情報や操作イベント情報を、SDKアプリケーション222bに渡し、ボタン押下処理の実行を要求する。
SDKアプリケーション222bでは、このようにしてボタン押下処理が実行される(ステップS403)。またSDKアプリケーション222bからは、ボタン押下処理の実行結果が、SDK API221bへと応答される。
またサブセットモジュール41は、ボタン押下処理要求を受け付けると、通信部51が有する受信部512から情報取得部54に、ボタン押下による画面更新後のアプリ画面を構成する表示部品Pに係る属性情報の取得が要求される(ステップS404)。
情報取得部54は、属性情報取得要求を受け付けると、SDK API221bを介して、SDKアプリケーション222bから表示部品Pに係る属性情報を取得する(ステップS405〜S407)。
情報取得部54は、画面更新における表示制御データ60の生成を、サブセットモジュール41が有する表示制御データ生成部53に要求する(ステップS408)。このとき、情報取得部54は、取得した属性情報を表示制御データ生成部53に渡し、表示制御データ60の生成を要求する。
表示制御データ生成部53は、データ生成要求を受け付けると、表示部品Pに係る属性情報及び画面更新内容に基づき、表示制御データ60を生成する(ステップS409)。このとき、表示制御データ生成部53は、画面更新内容に応じて、表示制御コマンドを決定し、制御対象の表示部品Pの表示部品識別子を指定する。さらに、表示制御データ生成部53は、画面更新時の表示制御に「追加」又は「変更」が指定されている場合、表示部品Pの属性情報に基づき、制御対象の表示部品Pの内容を付加する。
表示制御データ生成部53は、同仮想マシン21上で動作するサブセットモジュール41に、生成した表示制御データ60の送信要求を通知する(ステップS410)。このとき、表示制御データ生成部53は、生成した表示制御データ60をサブセットモジュール41に渡す。
サブセットモジュール41は、表示制御データ送信要求通知を受け付けると、通信部51により、第1仮想マシン21上で動作するサブセットモジュール41と仮想マシン間通信を行い、アプリ画面の更新処理を第1仮想マシン21側に委譲する(ステップS411)。このとき、サブセットモジュール41は、通信部51が有する送信部511により、表示制御データ60を送信する。これにより、第2仮想マシン21からアプリ画面の更新処理を要求する。その結果、サブセットモジュール41は、第2仮想マシン21上で動作するサブセットモジュール41から送信された、表示制御データ60を、通信部51が有する受信部512により受信する。これにより、第1仮想マシン21でアプリ画面更新要求を受け付ける。
サブセットモジュール41は、アプリ画面更新要求を受け付けると、通信部51が有する受信部512から処理要求部52に、アプリ画面の描画要求が通知される(ステップS501)。このとき、受信部512は、更新要求時の表示制御データ60を処理要求部52に渡す。
処理要求部52は、表示制御データ60に基づくアプリ画面更新処理の実行(アプリ画面の再描画)を、画面制御モジュール42に要求する(ステップS502)。このとき、処理要求部52は、表示制御データ60のデータ解析結果に基づき、画面制御モジュール42の実行パラメータを設定し、アプリ画面更新処理の実行を要求する。
画面制御モジュール42は、設定されたパラメータに基づき、画像処理装置100が備える表示装置120の表示画面に対して、アプリ画面の更新処理(アプリ画面の再描画)を実行する(ステップS503)。
表示装置120では、このようにしてアプリ画面が再描画され更新される(ステップS504)。また表示装置120からは、アプリ画面更新処理の実行結果が、画面制御モジュール42を介して処理要求部52へと応答される。
以上のように、画像処理装置100では、サブセットモジュール41を用いた仮想マシン間通信により、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面更新処理を第1仮想マシン21へと委譲し、表示画面を更新する。
<まとめ>
以上のように、本実施形態に係る画像処理装置100によれば、第2仮想マシン21側において、画面更新要求に応じた表示画面を構成する表示部品Pの属性情報を取得し、取得した属性情報に基づき、表示制御用の独自コマンド(表示制御コマンド)を用いた表示制御データ60を生成する。画像処理装置100は、生成した表示制御データ60を、表示画面を制御する画面制御モジュール42が動作する第1仮想マシン21に送信する。その結果、画像処理装置100は、第1仮想マシン21側において、画面制御モジュール42を実行し、受信データに従った表示制御を行う。
これによって、画像処理装置100は、表示制御における仮想マシン間の通信データ量を削減することができる。その結果、ユーザへの提供情報やGUIを高速表示できる(画面表示の高速化が図れる)。
[第2の実施形態]
本実施形態では、表示画面を制御する画面制御モジュールにサーブレットを用いる。これにより、上記実施形態と同様、表示制御における仮想マシン間の通信データ量を削減する。なお本実施形態の説明では、上記実施形態と同様の点に対し、同一の参照符号を付し、その説明を省略する。
<ソフトウェア構成>
図9は、本実施形態に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。
図9に示すように、本実施形態では、画像制御モジュール42にサーブレット45を用いる構成例が示されている。サーブレット45とは、HTML文書などのWebコンテンツを動的に生成するプログラム(Javaクラス)である。サーブレット45は、Webサーバ上で動作し、ブラウザ11からHTTPリクエストにより要求されると、Webコンテンツを動的に生成し応答する。
このように、本実施形態では、サーブレット45により、ブラウザ11を介して表示画面を提供する。具体的には、AWT(Abstract Windowing Tools)互換の形式でJavaのGUI作成インタフェースを提供するプラットフォームにおいて、アプレット(Applet)などを用いずに、表示部品PをHTML形式に変換してブラウザ11で表示する。なお上記AWTとは、JavaでGUIを実装するために用いられるクラスライブラリの名称である。
表示画面の提供にブラウザ11を用いるメリットは、次の通りである。
例えば、第1の実施形態で示した表示制御データ60では、表示部品Pに係る詳細情報としてHTMLデータを用いている。従来のAWT形式で表示画面の描画を行う場合では、画面描画を行う第1仮想マシン21に、AWT形式の表示部品Pのインスタンス(実値)を複製する必要があり、画面表示に係るデータが冗長となる。また、仮想マシン間通信で送受信されるデータも、AWT形式のオブジェクトとなるため、通信データ量が多くなってしまう。
これに対して、ブラウザ11では、画面表示に係るデータとしてHTMLデータを用いることから、画面表示のために扱うデータ量を削減できる。
また、近年では、ブラウザ11で用いる技術としてAjax(Asynchronous JavaScript + XML)が知られている。Ajaxは、ブラウザ11内で非同期通信とインタフェースの構築などを行う技術であり、特に、XMLHttpRequestでの非同期通信(メッセージ交換)を特徴としている。そのため、Ajaxを用いれば、仮想マシン間での表示制御データ60を、ブラウザ11に対して非同期で送受信することができ、表示制御処理では、表示画面を部分的に更新するだけでよい。その結果、さらなる画面表示の高速化を図ることができる。
さらに本実施形態では、上記ソフトウェア構成により、例えば表示画面上のボタンが押下されたときの表示制御処理(ボタン画像の更新処理)を、ブラウザ11上で動作するJavaスクリプトで実現することができる。つまり、ボタン押下時の表示制御処理では、仮想マシン間で通信を行わなくてもよい。その結果、表示制御における通信回数を削減することができる。
具体的には、次の通りである。なお、以下の説明では、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面に、ボタンがレイアウトされている場合を例に説明する。
SDKアプリケーション222bがアプリ画面の生成を要求する場合には、第2仮想マシン21から第1仮想マシン21に、サブセットモジュール41を介して、画面生成要求用の表示制御データが送信される。第1仮想マシン21上で動作するサブセットモジュール41は、表示制御データを受信し、サーブレット45を介して、受信データに基づきブラウザ11にアプリ画面を表示する。
そこで、本実施形態では、第2仮想マシン21から第1仮想マシン21に送信される表示制御データとして、予め、以下の情報を有するJavaスクリプトがHTMLデータと共に送信される。
・カーソルがボタン上にないときのボタン画像を描画する手続き
・カーソルがボタン上にあるときのボタン画像を描画する手続き
・ボタン押下時のボタン画像を描画する手続き
・ボタン押下時にサーブレットにイベントを通知する手続き
図10は、本実施形態に係るボタン画面の状態遷移を示す図である。
図10に示すように、normal Buttonは、カーソルがボタン上にない状態である(ST1)。また、Button downは、カーソルがボタン上にあるときの状態である(ST2)。また、Button onは、ボタンが押下されたときの状態である(ST3)。ST1からST3への状態遷移では、上記Javaスクリプト(描画手続き)により、ボタン画像の変換を行う。
また、event responseは、ボタンが押下されたとき(Onclick)の状態である(ST4)。ST2からST4への状態遷移では、上記Javaスクリプトにより、ボタン画像の変更とサーブレット45へのイベント通知(OnEvent)が行われる。図10には、ボタン押下時に画面遷移することにより、サーブレット45に対して画面描画を命令する例が示されているが、この限りでない。ボタン画像の更新については、逐次、サーブレット45にHTMLデータ要求などの命令を送信する必要はない。
<表示制御機能>
ここからは、本実施形態に係る表示制御機能について説明する。
本実施形態に係る画像処理装置100が有する表示制御機能は、サブセットモジュール41が仮想マシン21上で動作することで実現される機能であり、第1の実施形態において説明を行った構成である。よって、機能構成の詳細については説明を省略し、表示制御機能の詳細な動作(機能部群の連係動作)について、処理手順を示すシーケンス図を用いて説明する。
表示制御機能は、画像処理装置100に搭載(インストール)される表示制御プログラムが、CPU111により、格納先(例えば「ROM」)からRAM上に読み出され、以下の処理が実行されることで実現される。なお以降には、表示制御処理の中でも、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面を生成する処理(処理1)、及びボタン押下時におけるSDKアプリケーション222bのアプリ画面を更新する処理(処理2)を例に説明する。
《処理1》
図11は、本実施形態に係る表示制御を行う処理手順例(その1)を示すシーケンス図である。
図11に示すように、画像処理装置100では、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面を生成する場合、以下の表示制御処理が実行される。
第2仮想マシン21上で動作するSDKアプリケーション222bは、SDK API221bを用いてアプリ画面を生成する(ステップS601)。
SDK API221bは、同仮想マシン21上で動作するサブセットモジュール41にアプリ画面生成要求を通知する(ステップS602)。このとき、SDK API221bは、生成要求時にSDKアプリケーション222bから受け取った、アプリ画面を構成する表示部品Pに係る属性情報をサブセットモジュール41に渡す。
サブセットモジュール41は、アプリ画面生成要求通知を受け付けると、通信部51が、画面生成における表示制御データ60の生成を、サブセットモジュール41が有する表示制御データ生成部53に要求する(ステップS603)。このとき、通信部51は、受け取った属性情報を表示制御データ生成部53に渡し、表示制御データ60の生成を要求する。
表示制御データ生成部53は、データ生成要求を受け付けると、表示部品Pに係る属性情報及び画面生成内容に基づき、表示制御データ60を生成する(ステップS604)。このとき、表示制御データ生成部53は、表示制御データ60として、表示制御処理を実行するJavaスクリプトを含む、表示画面のレイアウトが定義されるHTMLデータを生成する。
ここで、本実施形態に係る表示制御データ生成部53が生成する表示制御データ60について説明する。上述したように、本実施形態では、Ajaxを用いている。そのため、表示制御データ生成部53は、表示制御データ60をDOM(Document Object Model)を用いて生成する。DOMとは、W3C(World Wide Web Consortium)から勧告されているHTML文書やXML(Extensible Markup Language)文書などをアプリケーションから利用するためのAPIである。表示制御データ生成部53は、表示制御データ60(HTMLデータ)の生成・更新(表示画面を構成する表示部品Pの生成、追加、及び削除)を、上記DOMを用いて行う。
例えば、表示制御データ生成部53は、表示部品Pを生成する場合、document.createElement()により、表示制御データ60をDOM上のオブジェクトとして生成する。また表示制御データ生成部53は、表示部品Pを追加する場合、appendChild()により追加し、表示部品Pを削除する場合、removeChild()により削除する。表示制御データ生成部53は、このようにして表示制御データ60を生成・更新する。
図12は、本実施形態に係る表示制御のデータ構造例を示す図である。図12には、HTML形式のDIVタグを用いて、表示画面を構成する表示部品Pが定義されるデータ例が示されている。表示制御データ60には、1つの表示部品Pは、1組のDIVタグを用いて定義可能であり、DOM上のオブジェクトにあたる。また表示制御データ60には、表示部品Pの階層構造(親子関係)に従ったDIVタグが記述される。
DIVタグには、表示部品Pを識別する表示部品識別子(ID)が定義されている。表示制御データ60では、この表示部品識別子により、表示画面上の制御対象となる表示部品Pを特定することができる。
またDIVタグ内には、例えば図13〜図15に示すような、表示部品Pの属性を含む情報(表示部品情報)が定義できる。表示部品情報には、表示部品Pの配置位置(配置座標)、見た目(例えば「色」、「大きさ」、「付加文字」)、及び格納先(例えば「イメージリソース31のパス」)などがある。
図13,14,15は、本実施形態に係る表示部品情報のデータ例(その1からその3)を示す図である。
図13(A)には、表示部品WindowP4の表示部品情報70wのデータ例が示されている。表示部品情報70wには、例えばウィンドウの見た目が定義されている。また図13(B)には、表示部品DialogP6の表示部品情報70dのデータ例が示されている。表示部品情報70dには、例えばダイアログの背景色や見た目が定義されている。また図13(C)には、表示部品FrameP1の表示部品情報70fのデータ例が示されている。表示部品情報70fには、例えばフレームの見た目が定義されている。
図14(A)には、表示部品ButtonP7の表示部品情報70bのデータ例が示されている。表示部品情報70bには、例えばボタンの見た目、ボタン画像の配置位置、切り出し領域とサイズ、ボタン画像の格納先、ボタン上の文字が定義されている。また図14(B)には、表示部品LabelP2の表示部品情報70lのデータ例が示されている。表示部品情報70lには、例えばラベルの外枠やラベル上の文字が定義されている。
図15(A)には、表示部品LabelAreaP5の表示部品情報70laのデータ例が示されている。表示部品情報70laには、例えばラベルエリアの外枠やラベルエリア上の文字が定義されている。また図15(B)には、表示部品IconP3の表示部品情報70iのデータ例が示されている。表示部品情報70iには、例えばアイコンの背景、アイコン画像の配置位置、切り出し領域とサイズ、及びアイコン画像の格納先が定義されている。また図15(C)には、表示部品PatternP8の表示部品情報70pのデータ例が示されている。
また表示制御データ生成部53は、上記DIVタグを含むHTML形式の表示制御データ60を生成するために、表示部品Pの生成処理を実現する共通インタフェースを介して行う。これにより、表示制御データ生成部53は、複数種の表示部品Pに対して共通した生成処理を実行できる。また、複数の表示部品Pがレイアウトされる表示部品Pの生成処理では、共通インタフェースを再帰的に呼び出すことで、階層構造(親子関係)に従った表示制御データ60を生成できる。
表示制御を行う処理手順の説明に戻る。
表示制御データ生成部53は、同仮想マシン21上で動作するサブセットモジュール41に、生成した表示制御データ60の送信要求を通知する(ステップS605)。このとき、表示制御データ生成部53は、生成した表示制御データ60をサブセットモジュール41に渡す。
サブセットモジュール41は、表示制御データ送信要求通知を受け付けると、通信部51により、第1仮想マシン21上で動作するサブセットモジュール41と仮想マシン間通信を行い、アプリ画面の生成処理を第1仮想マシン21側に委譲する(ステップS606)。このとき、サブセットモジュール41は、通信部51が有する送信部511により、表示制御データ60を送信する。これにより、第2仮想マシン21からアプリ画面の生成処理を要求する。その結果、サブセットモジュール41は、第2仮想マシン21上で動作するサブセットモジュール41から送信された、表示制御データ60を、通信部51が有する受信部512により受信する。これにより、第1仮想マシン21でアプリ画面生成要求を受け付ける。
サブセットモジュール41は、アプリ画面生成要求を受け付けると、通信部51が有する受信部512から処理要求部52に、アプリ画面の描画要求が通知される(ステップS701)。このとき、受信部512は、更新要求時の表示制御データ60を処理要求部52に渡す。
処理要求部52は、表示制御データ60に基づくアプリ画面生成処理の実行(アプリ画面の描画)を、サーブレット45に要求する(ステップS702)。このとき、処理要求部52は、表示制御データ60をサーブレット45に渡し、アプリ画面生成処理の実行を要求する。
サーブレット45は、受け取った表示制御データ60に従って、画像処理装置100が備える表示装置120上で動作するブラウザ11に対して、アプリ画面の生成処理(アプリ画面の描画)を実行する(ステップS703)。
表示装置120では、このようにしてブラウザ11にアプリ画面が描画され生成される(ステップS704)。また表示装置120からは、ブラウザ11によるアプリ画面生成処理の実行結果が、サーブレット45を介して処理要求部52へと応答される。
以上のように、画像処理装置100では、サブセットモジュール41を用いた仮想マシン間通信により、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面生成処理を第1仮想マシン21へと委譲し、表示画面を生成する。
《処理2》
図16は、本実施形態に係る表示制御を行う処理手順例(その2)を示すシーケンス図である。
図16に示すように、画像処理装置100では、ボタン押下時におけるSDKアプリケーション222bのアプリ画面を更新する場合、以下の表示制御処理が実行される。
表示装置120では、ハードキーのボタン押下が検出される(ステップS801)。検出されたボタン押下の検出信号は、第1仮想マシン21上で動作するハードキーイベント配信モジュール43に渡され、ハードキーイベント配信モジュール43からハードキーイベントがサブセットモジュール41に通知される(ステップS802)。このとき、ハードキーイベント配信モジュール43は、検出信号に基づき、ハードキー情報や操作イベント情報を発行し、サブセットモジュール41に通知する。サブセットモジュール41は、通信部51により、これらの情報をイベント通知として受け取る。
また表示装置120上で動作するブラウザ11がGUIのボタン押下を受け付けた場合には、その操作イベントが、サーブレット45を介してサブセットモジュール41に通知される。
サブセットモジュール41は、イベント通知を受け取ると、通信部51により、第2仮想マシン21上で動作するサブセットモジュール41と仮想マシン間通信を行い、ボタン押下時の処理を第2仮想マシン21側に委譲する(ステップS803)。このとき、サブセットモジュール41は、通信部51が有する送信部511により、ハードキー情報や操作イベント情報を送信する。これにより、第1仮想マシン21からボタン押下時の処理を要求する。その結果、サブセットモジュール41は、第1仮想マシン21上で動作するサブセットモジュール41から送信された、ハードキー情報や操作イベント情報を、通信部51が有する受信部512により受信する。これにより、第2仮想マシン21でボタン押下処理要求を受け付ける。
サブセットモジュール41は、ボタン押下処理要求を受け付けると、通信部51が有する受信部512からSDK API221bに、ボタン押下時の処理要求が通知される(ステップS901)。このとき、受信部512は、処理要求時のハードキー情報や操作イベント情報をSDK API221bに渡す。
SDK API221bは、ボタン押下処理の実行を、SDKアプリケーション222bに要求する(ステップS902)。このとき、SDK API221bは、ハードキー情報や操作イベント情報を、SDKアプリケーション222bに渡し、ボタン押下処理の実行を要求する。
SDKアプリケーション222bでは、このようにしてボタン押下処理が実行される(ステップS903)。またSDKアプリケーション222bからは、ボタン押下処理の実行結果が、SDK API221bへと応答される。
表示装置120では、第2仮想マシン21で実行される上記S901〜S903の処理と非同期に、ブラウザ11上でJavaスクリプトを実行することで、ボタン押下時のアプリ画面の更新処理(アプリ画面の再描画)が行われる。この処理がステップS1001にあたる。
ブラウザ11には、画面生成要求時に受け取ったHTML形式の表示制御データ60に従ってアプリ画面が表示されている。また画面生成要求時には、HTMLデータと共にJavaスクリプトを受け取っている。
これにより、ブラウザ11では、GUI上のボタンが押下された場合、Javaスクリプトが実行されアプリ画面の更新が行われる。このとき、受け付けた操作イベントに対応する表示部品Pに対して、状態変化に応じた更新処理が行われる。
具体的には、次の通りである。ブラウザ11では、押下された表示部品Pの表示部品識別子に基づき、表示制御データ60から更新対象に該当する表示部品情報70を特定する。ブラウザ11は、特定した表示部品情報70、すなわちDIVタグで定義されたデータを更新する。上述したように、表示制御データ60は、DOMのオブジェクトとして生成されており、表示制御データ60内の表示部品情報70は、DOMを用いて生成・更新できる。よって、ブラウザ11では、DOMを用いて該当データを更新し、アプリ画面の更新処理(アプリ画面の再描画)が実行される。表示装置120では、このようにしてアプリ画面が再描画され更新される。
以上のように、画像処理装置100では、サブセットモジュール41を用いた仮想マシン間通信により、第2仮想マシン21上で動作するSDKアプリケーション222bのアプリ画面更新処理を第1仮想マシン21へと委譲し、表示画面を更新する。
<変形例>
図17は、上記実施形態の変形例に係る複数の仮想マシンが構築されたシステムのソフトウェア構成例を示す図である。
図9に示すように、本実施形態では、第1仮想マシン21側のみでサーブレット45を動作させる構成例を示したが、この限りでない。
例えば図17に示すように、第2仮想マシン21側でもサーブレット45が動作する構成であってもよい。
変形例で示すソフトウェア構成は、第1仮想マシン21側のみでサーブレット45を動作させる構成に比べて、さらに仮想マシン間の通信回数を削減できる。仮想マシン間通信は、ハードキーイベント配信やLED点灯制御などの場合、サブセットモジュール41を用いて行う必要があるが、表示画面の生成・更新の場合、仮想マシン間通信を行う必要がなくなる。なぜなら、上記表示画面の生成・更新処理の全ては、ブラウザ11及びサーブレット45で実現可能な機能として完結させることができるからである。なお、第1仮想マシン21と第2仮想マシン21とで、サーブレット45を動作させるためには、HTTP(HyperText Transfer Protocol)通信で用いるポート番号と、サーブレット45に登録するURL(Uniform Resource Locator)の2点について互いに競合を起こさないように実装する必要がある。つまり、第1仮想マシン21上で動作するWebサーバと、第1仮想マシン21上で動作するWebサーバとでは、ブラウザ11に対して異なるポート番号及びURLを用意する必要がある。
<まとめ>
以上のように、本実施形態に係る画像処理装置100によれば、第2仮想マシン21側において、表示画面を構成する表示部品Pの属性を含む詳細情報(表示部品情報)と、要求に応じて表示部品Pの生成・更新を行うプログラム(手続き)と、を含む表示制御データ60を生成する。画像処理装置100は、生成した表示制御データ60を、表示画面を制御するサーブレット45(Webサーバ)が動作する第1仮想マシン21に送信する。その結果、画像処理装置100では、第1仮想マシン21側において、サーブレット45により表示制御データ60を処理し、表示装置120上で動作するブラウザ11で表示画面の生成・更新の表示制御が行える。
これによって、画像処理装置100は、表示制御における仮想マシン間の通信データ量及び通信回数を削減することができる。その結果、ユーザへの提供情報やGUIを高速表示できる(画面表示の高速化が図れる)。
また本実施形態では、表示画面の生成・更新を、ブラウザ11及びサーブレット45により実現することから、複数の仮想マシン環境において安定した動作を実現することができる。
ここまで、上記実施形態の説明を行ってきたが、実施形態に係る画像処理装置100が有する「表示制御機能」は、図を用いて説明を行った各処理手順を動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムが、CPU111により実行されることで実現される。
上記プログラムは、コンピュータが読み取り可能な記録媒体114aに格納することができる。上記記録媒体114aには、例えばSDメモリカード及びUSBメモリなどがある。
よって、上記プログラムは、上記記録媒体114aに記憶させることで、記録媒体114aを読み取り可能な外部記憶I/F114などを介して画像処理装置100にインストールすることができる。また画像処理装置100は、ネットワークI/F113を備えていることから、インターネットなどの電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
10 OS(表示装置側)
11 ブラウザ
12 Flash Player
13 ソフトキーボード
20 OS(画像処理装置側)
21 JavaVM(:第1仮想マシン側、:第2仮想マシン側)
211 ヒープメモリ
22 Javaコンポーネント
221 Javaプラットフォーム
221a Javaモジュール群
221b SDK API
222 Javaアプリケーション
222a 標準アプリケーション(:第1仮想マシン側)
222b SDKアプリケーション
31 イメージリソース(画像データの記憶領域)
41 サブセットモジュール
42 画面制御モジュール
43 ハードキーイベント配信モジュール
44 LED点灯モジュール
45 サーブレット
51 通信部
511 送信部
512 受信部
52 処理要求部(:第1仮想マシン側)
53 表示制御データ生成部(:第2仮想マシン側)
54 情報取得部(:第2仮想マシン側)
60 表示制御データ
70 表示部品情報
100 画像処理装置
110 コントローラ
111 CPU(中央処理装置)
112 記憶装置
113 ネットワークI/F
114 外部記憶I/F(a:記録媒体)
120 表示装置
130 プロッタ(画像形成部)
140 スキャナ(読み取り部)
P 表示部品
国際公開WO01/084303号公報 特開2006−314664号公報

Claims (11)

  1. 当該画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる第1及び第2仮想マシン上で動作する画像処理装置であって、
    前記標準機能として表示画面の表示制御を実現する複数の動作モジュールと、
    各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有し、
    前記拡張機能が動作する前記第2仮想マシン側の通信インタフェース部が、
    前記拡張機能を実現するアプリケーションからの画面更新要求に応じて、前記アプリケーションの表示画面を制御する、表示制御コマンドを用いた表示制御データを生成する生成手段と、
    前記生成手段により生成した表示制御データを、前記標準機能が動作する前記第1仮想マシンに送信するデータ送信手段と、を有し、
    前記第1仮想マシン側の通信インタフェース部が、
    前記第2仮想マシンから前記表示制御データを受信するデータ受信手段と、
    前記データ受信手段により受信した表示制御データに従った表示制御の実行を、前記動作モジュールのうち、画面制御を行う画面制御モジュールに要求する要求手段と、を有し、
    前記生成手段は、
    前記表示画面を構成する表示部品の削除、追加、及び変更の各表示制御を指示する表示制御コマンドと、階層構造により表示画面を構成する表示部品を指定する表示部品識別子と、階層構造で親にあたる表示部品と子にあたる表示部品とを指定するためのセパレータとを含む、表示制御データを生成することを特徴とする画像処理装置。
  2. 前記第2仮想マシン側の通信インタフェース部が、
    前記アプリケーションから、画面更新要求に応じた表示画面を構成する表示部品の属性情報を取得する取得手段を有し、
    前記生成手段は、
    前記取得手段により取得した前記表示部品の属性情報に基づき、表示制御コマンドを用いた表示制御データを生成することを特徴とする請求項1に記載の画像処理装置。
  3. 前記第1及び第2仮想マシンが共有する画像データの記憶領域を有し、
    該記憶領域には、前記表示部品の画像データを保持していることを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記生成手段は、
    階層構造で構成される複数の表示部品のうち、前記階層構造に基づく親子関係に従って、制御対象である表示部品を指定する表示部品識別子を含む、表示制御データを生成することを特徴とする請求項3に記載の画像処理装置。
  5. 前記画面制御モジュールは、
    前記表示制御データに含む表示制御コマンドにより、表示部品を削除する表示制御が指定されていた場合に、
    前記階層構造に従って、制御対象である表示部品の子にあたる1又は複数の表示部品を、制御対象である表示部品とともに削除することを特徴とする請求項2ないし4のいずれか一項に記載の画像処理装置。
  6. 前記第2仮想マシン側の通信インタフェース部が、
    前記アプリケーションからの画面生成要求に応じて、前記画面制御モジュールが表示画面を生成するのに必要な、前記アプリケーションを識別するアプリ識別情報を含む画面生成情報を、前記第1仮想マシンに送信する画面生成情報送信手段を有し、
    前記第1仮想マシン側の通信インタフェース部が、
    前記第2仮想マシンから前記画面生成情報を受信する画面生成情報受信手段を有することを特徴とする請求項1ないし5のいずれか一項に記載の画像処理装置。
  7. 前記第1仮想マシン側の通信インタフェース部が、
    入力操作により受け付けたボタン押下のイベント情報を第2仮想マシンに送信するイベント情報送信手段を有し、
    前記第2仮想マシン側の通信インタフェース部が、
    前記第1仮想マシンから前記イベント情報を受信するイベント情報受信手段を有し、
    前記イベント情報受信手段は、
    受信したイベント情報に基づき、前記アプリケーションにボタン押下時の処理を要求することを特徴とする請求項1ないし6のいずれか一項に記載の画像処理装置。
  8. 当該画像処理装置は、
    ブラウザが動作する表示装置を備え、
    前記画面制御モジュールとしてサーブレットを有し、
    前記データ受信手段により受信したJavaScriptで記述される表示制御データに従った表示制御の実行を、前記要求手段により前記サーブレットに要求し、
    前記サーブレットが、前記ブラウザを介して前記表示画面を描画することを特徴とする請求項に記載の画像処理装置。
  9. 当該画像処理装置は、
    前記ブラウザで受け付けた入力操作によるボタン押下のイベント情報を、前記イベント情報送信手段により前記第2仮想マシンに送信し、
    前記ブラウザで前記JavaScriptを実行し、前記表示画面をボタン押下に応じて更新することを特徴とする請求項8に記載の画像処理装置。
  10. 画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる第1及び第2仮想マシン上で動作する環境において、前記標準機能として表示画面の表示制御を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における表示制御方法であって、
    前記拡張機能が動作する前記第2仮想マシン側の通信インタフェース部において、
    前記拡張機能を実現するアプリケーションからの画面更新要求に応じて、前記アプリケーションの表示画面を制御する、表示制御コマンドを用いた表示制御データを生成する生成手順と、
    前記生成手順により生成した表示制御データを、前記標準機能が動作する前記第1仮想マシンに送信するデータ送信手順と、を有し、
    前記第1仮想マシン側の通信インタフェース部において、
    前記第2仮想マシンから前記表示制御データを受信するデータ受信手順と、
    前記データ受信手順により受信した表示制御データに従った表示制御の実行を、前記動作モジュールのうち、画面制御を行う画面制御モジュールに要求する要求手順と、を有し、
    前記生成手順は、
    前記表示画面を構成する表示部品の削除、追加、及び変更の各表示制御を指示する表示制御コマンドと、階層構造により表示画面を構成する表示部品を指定する表示部品識別子と、階層構造で親にあたる表示部品と子にあたる表示部品とを指定するためのセパレータとを含む、表示制御データを生成することを特徴とする表示制御方法。
  11. 画像処理装置の標準機能と前記標準機能を利用した拡張機能とが異なる第1及び第2仮想マシン上で動作する環境において、前記標準機能として表示画面の表示制御を実現する複数の動作モジュールと、各仮想マシン上で動作し、前記複数の動作モジュールに対して共通の仮想マシン間通信を行う通信インタフェース部と、を有する画像処理装置における表示制御プログラムであって、
    前記拡張機能が動作する前記第2仮想マシン側で通信インタフェース部を動作させることにより、
    コンピュータを、
    前記拡張機能を実現するアプリケーションからの画面更新要求に応じて、前記アプリケーションの表示画面を制御する、表示制御コマンドを用いた表示制御データを生成する生成手段と、
    前記生成手段により生成した表示制御データを、前記標準機能が動作する前記第1仮想マシンに送信するデータ送信手段として機能させ、
    さらに、前記第1仮想マシン側の通信インタフェース部を動作させることにより、
    コンピュータを、
    前記第2仮想マシンから前記表示制御データを受信するデータ受信手段と、
    前記データ受信手段により受信した表示制御データに従った表示制御の実行を、前記動作モジュールのうち、画面制御を行う画面制御モジュールに要求する要求手段として機能させ、
    前記生成手段は、
    前記表示画面を構成する表示部品の削除、追加、及び変更の各表示制御を指示する表示制御コマンドと、階層構造により表示画面を構成する表示部品を指定する表示部品識別子と、階層構造で親にあたる表示部品と子にあたる表示部品とを指定するためのセパレータとを含む、表示制御データを生成する表示制御プログラム。
JP2009163074A 2009-07-09 2009-07-09 画像処理装置、表示制御方法、及び表示制御プログラム Expired - Fee Related JP5458708B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009163074A JP5458708B2 (ja) 2009-07-09 2009-07-09 画像処理装置、表示制御方法、及び表示制御プログラム
US12/801,911 US20110010642A1 (en) 2009-07-09 2010-07-01 Image processing apparatus, display control method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009163074A JP5458708B2 (ja) 2009-07-09 2009-07-09 画像処理装置、表示制御方法、及び表示制御プログラム

Publications (2)

Publication Number Publication Date
JP2011019130A JP2011019130A (ja) 2011-01-27
JP5458708B2 true JP5458708B2 (ja) 2014-04-02

Family

ID=43428398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009163074A Expired - Fee Related JP5458708B2 (ja) 2009-07-09 2009-07-09 画像処理装置、表示制御方法、及び表示制御プログラム

Country Status (2)

Country Link
US (1) US20110010642A1 (ja)
JP (1) JP5458708B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199647A (ja) * 2011-03-18 2012-10-18 Konica Minolta Business Technologies Inc 画像処理装置、画像処理システムおよび画像処理装置の設定用プログラム
JP5773787B2 (ja) * 2011-07-21 2015-09-02 キヤノン株式会社 情報処理装置およびその制御方法およびプログラム
KR101803906B1 (ko) * 2011-11-30 2017-12-05 에스프린팅솔루션 주식회사 복수의 플랫폼이 설치된 화상형성장치 및 그 어플리케이션 실행 방법
JP5555740B2 (ja) * 2012-05-08 2014-07-23 東芝テック株式会社 電子掲示板システム、サーバおよびプログラム
JP2013250798A (ja) * 2012-05-31 2013-12-12 Ricoh Co Ltd 電子機器および画像形成装置
JP5991104B2 (ja) * 2012-09-18 2016-09-14 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
US11159603B2 (en) * 2015-04-15 2021-10-26 Hyland Switzerland Sàrl Cross-platform module for loading across a plurality of device types
WO2017069551A1 (en) * 2015-10-23 2017-04-27 Samsung Electronics Co., Ltd. Image displaying apparatus and method of operating the same
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
JP6677677B2 (ja) * 2017-06-21 2020-04-08 株式会社東芝 情報処理装置、情報処理システム、情報処理方法およびプログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405111B2 (en) * 1997-05-16 2002-06-11 Snap-On Technologies, Inc. System and method for distributed computer automotive service equipment
US20020112078A1 (en) * 1999-12-03 2002-08-15 David Yach Virtual machine web browser
US7180618B2 (en) * 2000-10-27 2007-02-20 Seiko Epson Corporation Image editing system and image editing method
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US6922774B2 (en) * 2001-05-14 2005-07-26 The United States Of America As Represented By The National Security Agency Device for and method of secure computing using virtual machines
US7257815B2 (en) * 2001-09-05 2007-08-14 Microsoft Corporation Methods and system of managing concurrent access to multiple resources
US7350194B1 (en) * 2001-09-24 2008-03-25 Oracle Corporation Techniques for debugging computer programs involving multiple computing machines
US7698360B2 (en) * 2002-02-26 2010-04-13 Novell, Inc. System and method for distance learning
US7587721B2 (en) * 2004-05-20 2009-09-08 Sap Ag Sharing objects in runtime systems
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
JP4695903B2 (ja) * 2005-03-22 2011-06-08 富士電機システムズ株式会社 Webアプリケーションシステム、そのプログラム
US7698706B2 (en) * 2005-05-20 2010-04-13 International Business Machines Corporation Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system
US20060271575A1 (en) * 2005-05-25 2006-11-30 Harris Steven T Clustered object state using field set operations
US7836303B2 (en) * 2005-12-09 2010-11-16 University Of Washington Web browser operating system
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070260702A1 (en) * 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US8856782B2 (en) * 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
JP2008269554A (ja) * 2007-03-29 2008-11-06 Hitachi Software Eng Co Ltd ソースコード生成装置
US8127290B2 (en) * 2007-06-22 2012-02-28 Red Hat, Inc. Method and system for direct insertion of a virtual machine driver
JP2009122749A (ja) * 2007-11-12 2009-06-04 Fujitsu Ltd プログラム、可搬記憶媒体及び制御方法
US8935609B2 (en) * 2007-12-18 2015-01-13 International Business Machines Corporation Method and system to secure the display of advertisements on web browsers
US10127059B2 (en) * 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US20090300599A1 (en) * 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
TW201007574A (en) * 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
KR100993331B1 (ko) * 2008-09-11 2010-11-09 한국전자통신연구원 사용자 일정관리장치 및 방법
JP5251385B2 (ja) * 2008-09-16 2013-07-31 富士通株式会社 イベント検出システム、イベント検出方法、およびプログラム
US9021522B2 (en) * 2008-12-10 2015-04-28 Microsoft Technology Licensing, Llc Concurrent interactive television for network connected devices

Also Published As

Publication number Publication date
JP2011019130A (ja) 2011-01-27
US20110010642A1 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
JP5458708B2 (ja) 画像処理装置、表示制御方法、及び表示制御プログラム
JP5169174B2 (ja) 画像形成装置、表示制御方法及び表示制御プログラム
US20110292428A1 (en) Image processing device, display device, screen control system, and screen control method
KR101782998B1 (ko) 화상 형성 장치의 어플리케이션을 개발하는 방법 및 장치
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
US20090094539A1 (en) Controlling a computer peripheral device using a universal driver and device-generated user interface information
US8438567B2 (en) Information processing device and image processing apparatus
JP5187007B2 (ja) 画像形成装置、表示制御方法、及び表示制御プログラム
EP2992410B1 (en) Equipment unit, information processing terminal, information processing system, display control method, and program
JP2004318842A (ja) Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
KR20130008618A (ko) 인쇄 시스템, 클라이언트, 제어 방법 및 컴퓨터 판독가능 기록매체
EP2348402A1 (en) Image forming apparatus and method for providing local user interface thereof
JP2009253853A (ja) 画像形成装置、情報処理方法、及びプログラム
US9606761B2 (en) Information processing apparatus for controlling an output process and method for the same
JP2013168129A (ja) 情報処理システム、データ提供装置、電子機器、情報処理方法、データ提供方法、データ取得方法、及びプログラム
JP2009290729A (ja) 画像形成装置、情報処理方法、及びプログラム
JP5464038B2 (ja) 情報処理装置、画像形成装置、情報処理方法、プログラムおよび記録媒体
JP2015222557A (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
JP5140351B2 (ja) 情報処理装置
JP7447667B2 (ja) ジョブデータを生成するためのプログラム、方法および装置
US20230020062A1 (en) Information processing system and apparatus to generate description file corresponding to reproduction application based on edit instruction
JP2014071789A (ja) 情報処理装置およびプログラム
JP2011034453A (ja) 画像処理装置、情報提供方法、及び情報提供プログラム
JP5140350B2 (ja) 情報処理装置
KR100960968B1 (ko) Http를 사용하지 않는 웹 어플리케이션 제공 장치 및방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131230

R151 Written notification of patent or utility model registration

Ref document number: 5458708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees