[1]実施形態
まず、図1から図11までを参照して、実施形態の情報処理システムの全体構成、ハードウェア構成及び機能構成について説明する。
[1−1]全体構成
図1は、情報処理システムの全体構成の一例を示すブロック図である。図1では、通信回線2と、通信機器3と、情報処理装置10と、複数のユーザ装置20とを備える情報処理システム1が示されている。情報処理システム1は、本実施形態では、コピーやスキャン、FAX(ファクシミリ)、プリント(画像データの媒体への出力)などの機能をユーザに提供するシステムである。
通信回線2は、例えばインターネットや移動体通信網、電話回線などのうちの少なくとも1つ以上を含む通信のためのシステムである。通信回線2は、自システムに接続された装置同士の通信を仲介する。通信回線2には、情報処理装置10及び通信機器3が接続されている。通信機器3は、通信機能を有する装置であり、本実施形態では無線LANの規格に準拠して無線通信を行う。通信機器3は、ユーザ装置20と無線通信を行う一方、通信回線2を介して情報処理装置10と通信する。つまり、情報処理装置10は、通信回線2及び通信機器3を介してユーザ装置20と通信する。なお、情報処理装置10とユーザ装置20は、通信機器3を介することなく、直接通信するように構成してもよい。
情報処理装置10は、媒体に画像を形成する画像形成処理や、媒体に形成された画像を読み取る画像読取処理などの処理を行う装置である。これらの処理は、前述したコピーやスキャン、FAX、プリントなどの機能がユーザに提供される際に行われる。情報処理装置10は、自装置の操作に用いられる操作装置30を有する。操作装置30は、情報処理装置10を操作するための装置であり、いわゆるコントロールパネルである。操作装置30は、情報処理装置10の筐体に固定されており、情報処理装置10が設置されている場所に来たユーザによって用いられる。操作装置30は、例えば液晶ディスプレイ等を有し、情報処理装置10を操作するための画像データ(以下「操作画像データ」という)を表示する。操作画像データに基づき表示される操作画像について、図2を参照して説明する。
図2は、操作装置30に表示される操作画像の一例を示す図である。図2の例では、コピー機能を利用するための操作画像データ群A1が表示されている。操作画像データ群A1には、コピーを開始させるための操作画像データA11などが含まれている。ユーザは、操作画像データA11をタップする(軽く叩く)ことで、操作画像データA11に対応する操作、すなわちコピーを開始させる操作を行う。操作装置30は、表示した操作画像データに対して操作が行われると、その操作に対応した処理の要求を情報処理装置10に対して行う。操作画像データA11が操作された場合であれば、操作装置30は、コピー機能を提供するための処理(具体的には画像読取処理および画像形成処理を含む一連の処理。以下「コピー処理」という)を情報処理装置10に要求する。
ユーザ装置20は、操作画像を表示し、表示した操作画像に対して操作が行われると、その操作に対応した処理の要求を情報処理装置10に対して行うという点で、操作装置30と共通している。ユーザ装置20は、例えばタブレット端末やパーソナルコンピュータなどであり、ユーザによって持ち運ばれて利用されるものでもよいし、机に設置されて利用されるものでもよい。また、情報処理装置10の操作に限らず、他の用途(会社の業務など)にも用いられてもよい。
情報処理装置10は、操作装置30やユーザ装置20からの要求に基づいて処理を実行すると、実行している処理の状況を表す情報(以下「状況情報」という)をこれらの装置に送信することで、これらの装置に対して処理の状況を通知する。状況情報とは、例えば、コピー機能が利用される場合であれば、画像が読み取られた媒体の枚数や画像が形成された媒体の枚数などの情報である。
図3は、表示された状況情報の例を示す図である。情報処理装置10は、例えばコピー処理を実行した場合であれば、図3(a)に示すように、コピーが完了した枚数(部数及びページ数)を表す枚数情報C11や「コピーしています。」という文字列、「白黒」、「A4」、「100%」及び「ソート」というコピーのパラメータなどを含む状況情報C1を通知する。
また、情報処理装置10は、コピー処理が進んで要求された枚数のコピーが完了すると、図3(b)に示すように、要求された枚数の分のコピーが完了したことを表す枚数情報C21や「コピーが完了しました。」という文字列などを含む状況情報C2を送信する。なお、枚数情報C11及びC21は、コピーを要求された枚数を分母とし、そのうちコピーが完了した枚数を分子とする分数で表されている。このように、状況情報には、処理の進捗を表す情報や処理の結果を表す情報、処理に用いられるパラメータの情報などが含まれる。操作装置30及びユーザ装置20は、いずれも、通知された状況を図3に示すように表示する表示装置でもある。以下では、操作装置30及びユーザ装置20を区別しない場合には表示装置4という。
[1−2]ハードウェア構成
図4は、ユーザ装置20のハードウェア構成の一例を示すブロック図である。ユーザ装置20は、制御部21と、記憶部22と、通信部23と、表示部24と、操作部25とを備えるコンピュータである。制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)及びリアルタイムクロックを備え、CPUが、RAMをワークエリアとして用いてROMや記憶部22に記憶されたプログラムを実行することによって各部の動作を制御する。リアルタイムクロックは、現在の日時を算出してCPUに通知する。
記憶部22は、ハードディスクドライブ等を備え、制御部21が制御に用いるデータやプログラム、画像データなどを記憶する。通信部23は、無線LAN(Local Area Network)の規格に準拠して無線通信を行う通信回路及びアンテナを備える通信手段であり、例えば図1に示す通信機器3と無線通信を行う。表示部24は、例えば液晶ディスプレイを有し、制御部21により制御されて表示面に画像を表示する。操作部25は、例えば自装置がタブレット端末である場合には、表示面に重ねて設けられたタッチセンサ(タッチスクリーンやタッチパネルともいう)や筐体に設けられたボタン等を備え、上述したタップ等のユーザの操作を受け付けてその操作の内容を示す操作データを制御部21に供給する。なお、自装置がパーソナルコンピュータである場合には、操作部25はキーボードやマウスを備えていてもよい。制御部21は、供給された操作データに応じた制御を行う。
図5は、操作装置30のハードウェア構成の一例を示すブロック図である。操作装置30は、制御部31と、記憶部32と、通信部33と、表示部34と、操作部35とを備えるコンピュータである。以下、図4に示すブロックと共通のハードウェアを表すブロック(通信部33を除く各部)には、共通の名称を付して説明を省く。通信部33は、有線LANの規格に準拠して通信を行う通信回路と、通信用のケーブル(具体的にはLANケーブル)が有するコネクタを差し込むポートとを備える通信手段である。
上述したように、操作装置30とユーザ装置20を区別しない場合には表示装置4という。また、これに伴い、制御部31と制御部21を区別する必要がない場合には「制御部141」という。記憶部32と記憶部22を区別する必要がない場合には「記憶部142」という。表示部34と表示部24を区別する必要がない場合には「表示部144」という。操作部35と操作部25を区別する必要がない場合には「操作部145」という。
図6は、情報処理装置10のハードウェア構成の一例を示すブロック図である。情報処理装置10は、制御部11と、記憶部12と、画像読取部13と、画像形成部14と、第1通信部15と、第2通信部16と、接続部17とを備えるコンピュータである。以下、図4及び図5に示すブロックと共通のハードウェアを表すブロック(制御部11及び記憶部12)には、共通の名称を付して説明を省く。また、情報処理装置10は、UI(User Interface)部として機能する前述した操作装置30を備えている。制御部11は、本実施形態では、操作装置30を除く各部を制御する。
画像読取部13は、例えばCCD(Charge Coupled Devices)方式を用いて、原稿に描かれた画像を読み取る画像読取処理を行う。画像読取部13は、用紙等の媒体に形成されたコンテンツの画像を光学的に読み取って、読み取った画像を表す画像データを制御部11に供給する。画像形成部14は、例えば電子写真方式を用いて、媒体に画像を形成する画像形成処理を行う。画像形成部14は、制御部11から供給される画像データが示す画像を用紙等の媒体に形成する。なお、画像の読み取り及び画像の形成に用いられる前述した方式は、それぞれ一例であり、他の方式であってもよい。
第1通信部15は、通信用のケーブルやデータバスを介して操作装置30の通信部33と接続され、前述した外部装置を介さずに操作装置30と通信する。つまり、通信部33も、前述した外部装置を介さずに情報処理装置10と通信する。
第2通信部16は、通信用のインターフェースとして有線LANまたは無線LANの規格に準拠して通信を行う通信回路と、通信用のケーブル(LANケーブル)が有するコネクタを差し込むポートや無線LANの規格に準拠した無線の送受信装置を備え、このインターフェースを介して接続される装置と通信する通信処理を行う。第2通信部16は、図1に示す通信回線2に接続されて、外部装置(情報処理装置10にとっての外部装置であり、例えば通信機器3)を介して例えばユーザ装置20と通信する。接続部17は、SDメモリーカード等の記憶媒体を接続するスロット等を有し、それらの記憶媒体と接続する。制御部11は、接続部17を介して、それらの記憶媒体に記憶されているデータの読み出しや記憶媒体へのデータの書き込みを行う。操作装置30は、図5の説明で述べた構成を備え、第1通信部15と通信する。操作装置30は、この通信を行うことで、例えば制御部11から送信されてくるデータが示す画像を表示したり、情報処理装置10を操作するためのデータを制御部11に送信したりするユーザインターフェース部(UI部)として機能する。
[1−3]機能構成
図7は、情報処理システム1の機能構成の一例を示すブロック図である。情報処理システム1は、情報処理装置10(第2情報処理装置の一例)と、表示装置4(すなわち操作装置30またはユーザ装置20(第1情報処理装置の一例))とを有する。情報処理装置10は、生成手段101と、第1送信手段102と、第2送信手段103と、記憶制御手段104と、第1特定手段105と、第2特定手段106と、処理手段107とを備える。生成手段101は、情報処理装置10が実行する処理に関するメッセージを生成する。第1送信手段102は、ウェブクライアントとして機能するソフトウェアに対して、生成手段101により生成されたメッセージを、当該メッセージを識別するメッセージ識別子とともに送信する。第2送信手段103は、メッセージ識別子を含む再送要求が上記ソフトウェアから受信された場合、受信された再送要求に含まれるメッセージ識別子に基づいて、生成手段101により生成されたメッセージの中から、上記ソフトウェアが受信していないメッセージであって、かつ、当該メッセージの属性が予め定められた条件を満たすものを特定する。また、第2送信手段103は、特定したメッセージを上記ソフトウェアへ送信する。
記憶制御手段104は、生成されたメッセージの少なくとも一部を、メッセージ識別子およびメッセージの送付先であるソフトウェアを識別するクライアント識別子と対応付けて記憶手段108に記憶する。第1特定手段105は、記憶手段108に記憶されたメッセージの中から、上記ソフトウェアが受信していないメッセージを特定する。第2特定手段106は、第1特定手段105により特定されたメッセージの中から、当該メッセージの属性が予め定められた条件を満たすものを特定する。処理手段107は、処理を実行する。
この例で、情報処理装置10の制御部11、制御部11および第1通信部15、または制御部11および第2通信部16は、生成手段101、第1送信手段102、第2送信手段103、記憶制御手段104、第1特定手段105、第2特定手段106および処理手段107の一例である。記憶部12は記憶手段108の一例である。
表示装置4は、受信手段401と、記憶制御手段402と、第3送信手段403と、処理実行手段404と、第4送信手段406とを備える。受信手段401は、ウェブサーバとして機能するソフトウェアが実行する処理に関するメッセージを、当該メッセージを識別するメッセージ識別子とともに当該ソフトウェアから受信する。記憶制御手段402は、受信手段401により受信されたメッセージ識別子を記憶手段405に記憶する。第3送信手段403は、メッセージの受信に関する状態が予め定められた条件を満たす場合、メッセージの再送要求であってメッセージ識別子を含む再送要求を送信する。処理実行手段404は、上記再送要求の応答として上記ソフトウェアから受信されるメッセージに対応する処理のうち、受信されたメッセージの属性が予め定められた条件を満たす処理を実行する。第4送信手段406は、上記ソフトウェアに対して処理の実行を要求する。
この例で、ユーザ装置20の制御部21、制御部21および通信部23、操作装置30の制御部31、または制御部31および通信部33は、受信手段401、記憶制御手段402、第3送信手段403、処理実行手段404および第4送信手段406の一例である。記憶部22および記憶部32は記憶手段405の一例である。
[1−4]階層構造
図8は、情報処理システム1の構成を表す階層構造の一例を示す図である。情報処理システム1は、プレゼンテーション層40と、インターフェース50と、ファンクション層60と、ミドルウェア層70と、ハードウェア層80とを備える。プレゼンテーション層40は表示装置4(すなわち操作装置30およびユーザ装置20)の制御部141が記憶部142に記憶されたプログラムを実行することによって実現される。プレゼンテーション層40はウェブクライアントとして機能するソフトウェアの一例である。インターフェース50、ファンクション層60およびミドルウェア層70は、情報処理装置10の制御部11が記憶部12に記憶されたプログラムを実行することによって実現される。インターフェース50、ファンクション層60およびミドルウェア層70は、ウェブサーバとして機能するソフトウェアの一例である。ハードウェア層80は、情報処理装置10のハードウェア資源の集合であり、ミドルウェア層70により制御される。
この実施形態では、プレゼンテーション層40(すなわち表示装置4)とインターフェース50(すなわち情報処理装置10)とは、WWW(World Wide Web:ワールドワイドウェブ。以下「ウェブ」という)の規格に準拠して通信が行われる。この例で、プレゼンテーション層40とインターフェース50とは、HTTP(Hypertext Transfer Protocol)およびWebSocketにより通信を行う。
表示装置4がユーザ装置20である場合、情報処理装置10とユーザ装置20(すなわちプレゼンテーション層40とインターフェース50)は、図1の説明で述べたように、通信回線2および通信機器3を介してデータの授受を行う。すなわち、この場合、情報処理装置10およびユーザ装置20ではない通信機器(通信機器3や通信回線2が有する通信機器など。以下「他の通信機器」という)を介する通信が行われる。一方、表示装置4が操作装置30である場合、情報処理装置10と操作装置30(すなわちプレゼンテーション層40とインターフェース50)は、図6の説明で述べた第1通信部15に接続されているケーブルを介してデータの授受を行う。すなわち、この場合、前述した他の通信機器を介さない通信が行われる。上記他の通信機器には、通信機器3以外にも、例えば通信回線2が有するルータやハブ、ブリッジなどが含まれる。なお、通信回線2がルータ等を有しない場合でも、少なくとも通信機器3が含まれる。
[1−4−1]プレゼンテーション層
操作装置30またはユーザ装置20に相当するプレゼンテーション層40は、ユーザによる操作を受け付ける機能(いわゆるユーザインターフェース)を実現する。プレゼンテーション層40は、UI制御部41と、デバイス制御部42と、通信部43とを備える。UI制御部41は、ユーザインターフェースを制御する部分であり、インターフェース50(すなわち情報処理装置10)から送信されてくる、上述した操作画像データや状況情報を表示部144に表示したり、操作部145から供給されるデータに応じてユーザの操作を受け付けたりする。具体的には、例えば、UI制御部41は、前述した図3に示される状況情報C1やC2を表示する。ここで、状況情報の他の例について図10及び図11を参照して説明する。
図10は、表示された状況情報の例を示す図である。この例では、コピー処理の途中で媒体を収納する収納部がユーザによって開かれた場合に表示される状況情報が表示されている。具体的には、「用紙収容部がセットされていません。」という文字列を含む状況情報C3が表示されている。
図11は、表示された状況情報の別の例を示す図である。この例では、複数の画像を記憶したSDメモリーカード等の記憶媒体が図6に示す情報処理装置10の接続部17に接続されたときに、その記憶媒体に記憶された画像のサムネイル画像の一覧を表示する処理の状況及び結果が表示されている。図11(a)では、「画像一覧を表示しています。」という文字列と、読み込みが済んだ画像から生成したサムネイル画像(この例では10個のサムネイル画像)とを含む状況情報C4が示されている。図11(b)では、「画像一覧を表示しました。」という文字列と、記憶媒体から読み出した全画像から生成したサムネイル画像の一覧とを含む状況情報C5が示されている。
また、UI制御部41は、例えば情報処理装置10のURL(Uniform Resource Locator)にアクセスする操作をユーザが行うことで、操作画像データの要求を情報処理装置10のインターフェース50に送信する。また、UI制御部41は、送信した操作画像データの要求の応答として情報処理装置10の操作画像管理部63から送信されてきた、操作画像を表すデータ(以下「操作画像データ」という)が示す操作画像を、表示部144に表示する。より具体的には、UI制御部41は、例えばHTML(Hyper Text Markup Language)形式で記述された操作画像データによって示される操作画像の配置や大きさなどのパラメータに基づいて、操作画像を表示する。こうして表示された操作画像が例えば図2に示す操作画像データ群A1である。
操作画像データ群A1には、コピーする画像の倍率、コピーした画像を形成する用紙及びコピーした画像のカラーモードというパラメータをそれぞれ選択させるための操作画像(例えばボタン画像やアイコン画像)が含まれている。UI制御部41は、ユーザがこれらの操作画像を操作することで選択したり設定されるパラメータの内容をユーザに提示するために操作画像を表示態様を変えて表示する。図2の例では、現在選択されているコピーの倍率(この例では「110%」)を表す文字列を含む画像と、現在選択されている用紙及びカラーモードを表す操作画像(この例では「他の倍率」、「A4普通紙」、「白黒」という文字列が描かれたもの)を、選択されていない選択画像とは異なる態様(この例では線を太くする態様。ハイライトやラジオボタンなどの態様でもよい。)で表示した例である。
操作画像データ群A1には、コピーを開始させるための操作画像データA11が含まれている。操作画像データA11が操作されると、その時点で選択されているパラメータを用いたコピーの処理がインターフェース50を介してファンクション層60に要求される。
図8の説明に戻る。UI制御部41は、表示した操作画像に関するデータをデバイス制御部42に供給する。操作画像に関するデータとは、操作画像が操作されたか否かを判断するために用いられるデータであり、現在表示されている画面の識別情報であったり、操作画面でユーザが選択したり設定したパラメータの種類と値といったデータである。
デバイス制御部42は、ユーザの操作に基づいてインターフェース50を介してファンクション層60へ処理の実行を要求する。デバイス制御部42は、操作画像に対する操作がユーザにより行われると、UI制御部41から供給されるデータに基づいて、そのユーザの操作に応じた処理を情報処理装置10に要求する。
デバイス制御部42は、UI制御部41から供給されたパラメータ伝達画像に関するデータが示すパラメータを用いて、情報処理装置10に処理を依頼する内容を指示データとして生成し、この指示データを送信することにより処理を情報処理装置10に対して要求する。図2に示す状態で操作画像データA11に対する操作が行われた場合であれば、UI制御部41は、コピー処理依頼を示す情報と、複写倍率のパラメータとして「11%」、カラーモードのパラメータとして「白黒」、用紙サイズのパラメータとして「A4普通紙」を、デバイス制御部42へ送り、デバイス制御部42は、110%の倍率でA4普通紙に白黒でコピーするための処理を表す指示データを生成して情報処理装置10に要求する。
この例で、デバイス制御部42は、UI制御部42から受けとった機能に関する指示情報とパラメータを用いて行うという指示を記述した指示データを生成する。この実施形態では、指示データとしてXML(Extensible Markup Language)で記述される。デバイス制御部42は、生成した指示データを含むHTTPリクエストを生成する。デバイス制御部42は、生成したHTTPリクエストをインターフェース50に送信することで、ファンクション層60に対して処理を要求する。このようにデバイス制御部42が処理を要求するためにインターフェース50へ送信するHTTPリクエストのことを以下では「処理要求」という。なお、コピー処理が要求される場合には、指示エータを含む処理要求が生成されるが、要求される処理によっては、処理要求に指示データが含まれない場合もある。例えば情報処理装置10の電源を落とす処理が要求される場合には処理要求に指示データが含まれない。
通信部43は、UI制御部41及びデバイス制御部42がインターフェース50と行う通信を制御する。
[1−4−2]インターフェース50
インターフェース50は、プレゼンテーション層40とファンクション層60との接続を仲介する機能を実現する層である。プレゼンテーション層40とインターフェース50との接続は、図1に示す通信機器3等の通信機能を有する外部装置を介する場合(ユーザ装置20との接続)と、そういった外部装置を介さない場合(操作装置30との接続)とがある。インターフェース50は、ユーザ装置20及び操作装置30との通信を、共通の通信手順(HTTP、WebSocketなどの規格に準拠した通信の手順)で仲介する。インターフェース50は、例えばプレゼンテーション層40から送信されてくるHTTPリクエストを受け取ってファンクション層60に供給したり、その応答でファンクション層60から供給されるHTTPレスポンスを受け取ってプレゼンテーション層40に向けて送信したりする。
[1−4−3]ファンクション層60
ファンクション層60は、コピー機能やスキャン機能など、目的とする用途に沿ってデータを加工する機能を実現する層である。ファンクション層60は、受付・応答部61と、イベント通知部62と、操作画像管理部63と、操作画像DB(Data Base:データベース)64と、コピー機能やスキャン機能などを提供する機能部65とを備える。
受付・応答部61は、プレゼンテーション層40からインターフェース50を介して送信されてくる処理要求を受け付け、機能部65に処理を依頼する。このとき、受付・応答部61は、依頼された処理を識別する情報として、トランザクションIDを発行する。また、受付・応答部61は、その処理を要求してきた要求元(表示装置4)を識別する情報として、クライアントID(クライアント識別子の一例)を発行する。受付・応答部61は、発行したトランザクションID及びクライアントIDと、要求元の表示装置4の通信の宛先を互いに対応付けて記憶部12に記憶させる。受付・応答部61は、機能部65に処理を依頼する際に、発行したトランザクションIDを機能部65に供給する。また、受付・応答部61は、受け付けた要求に対する応答を、インターフェース50を介してプレゼンテーション層40に送信する。応答は、要求を受け付けた旨を示すだけの場合もあれば、状況情報を含む場合もある。
イベント通知部62は、状況情報を含む通知データを生成し、生成した通知データをWebSocketに準拠したデータに含めてインターフェース50を介してプレゼンテーション層40に送信する。
本実施形態では、ファンクション層60とプレゼンテーション層40は、大別して4つの方法で、要求の送信や応答または通知の送信を行う。第1および第2の方法は、HTTPプロトコルが用いられる方法であり、これらは受付・応答部61により行われる。一方、第3の方法は、HTTPプロトコルとWebSocketプロトコルとが併用される方法であり、この方法は受付・応答部61とイベント通知部62が協働することにより行われる。第4の方法は、WebSocketプロトコルによりイベント(通知)の送信が行われる方法であり、この方法はイベント通知部62により行われる。
第1の方法では、受付・応答部61は、プレゼンテーション層40から処理要求(HTTPリクエスト)が送信されてきた場合、ミドルウェア層70およびハードウェア層80によるその処理の実行が完了するまで待機する。この場合、受付・応答部61は、ミドルウェア層70から処理の完了が通知されると、処理が完了したときの状況を示す状況情報を含むHTTPレスポンスを、処理を要求してきたプレゼンテーション層40に送信する。具体例を挙げると、例えば図2に示す「倍率選択」の欄の「−」や「+」という操作画像をユーザが操作した場合、プレゼンテーション層40からコピーの倍率というパラメータを下げる処理や上げる処理が要求される。この場合、受付・応答部61は、要求された処理が実行されて変化したパラメータの値を処理の結果として応答する。
第2の方法では、受付・応答部61は、プレゼンテーション層40から処理要求(HTTPリクエスト)が受信された場合、要求された処理の完了を待たずにまずは処理要求が受け付けられた旨の応答(HTTPレスポンス)を送信する。その後、状況情報は、プレゼンテーション層40がHTTPによるいわゆるポーリングを行うことにより取得される。すなわち、受付・応答部61は、プレゼンテーション層40からその処理の状況の通知を求める要求(以下「通知要求」という)があったときに、その通知要求に対する応答を行う。第2の方法で応答が行われると、例えば図3(a)に示す枚数情報C11は、コピーされた画像が媒体に形成される度ではなく、ポーリングの度に通知されて表示される。このため、例えばページ数が1枚ずつ増えるのではなく、数枚ずつ増えることがある。
このように、受付・応答部61は、第1及び第2の方法を用いた場合、プレゼンテーション層40からの要求(処理要求または通知要求)があったときにその要求に対する応答を送信する。受付・応答部61は、第1の方法を用いた場合には、処理要求に対する応答で処理の結果を要求元のプレゼンテーション層40に送信し、第2の方法を用いた場合には、処理要求に対する応答よりもあとに受け取った通知要求に対する応答で、処理の結果およびそれ以外の処理の状況を要求元のプレゼンテーション層40に送信する。
第3の方法では、受付・応答部61は、プレゼンテーション層40から処理要求(HTTPリクエスト)が受信されると、第2の方法のように、要求された処理の完了を待たずにまずは処理要求が受け付けられた旨を示す応答(HTTPレスポンス)を送信する。そのあと、イベント通知部62は、ミドルウェア層70およびハードウェア層80により実行されている処理において通知すべき状況が生じたら、通知要求がなくてもその状況をWebSocketによりプレゼンテーション層40に通知する。つまり、第3の方法により通知される状況は、処理要求により実行される処理の状況である。第3の方法で通知の送信が行われると、例えば図3(a)に示す枚数情報C11のうちの「ページ数」が、コピーされた画像が媒体に形成される度に増えていく。
第4の方法では、イベント通知部62は、プレゼンテーション層40からの処理要求の有無に関係なく、通知すべき状況が生じたら、通知要求がなくてもその状況をWebSocketによりプレゼンテーション層40に通知する。つまり、第4の方法により通知される状況は、処理要求により実行される処理に関係がある場合もあるし、それとは関係がない場合もある。この第4の方法では、例えば、WebSocketの規格に基づいて情報処理装置10とセッションが確立されたプレゼンテーション層40であればどれでも通知先となり得る。情報処理システム1においては、例えば、「トナー切れ」や「用紙切れ」、「収容部オープン(用紙等の媒体を収納する収納部が開いた状態)」などの状況は第4の方法で通知するように定められる。なお、第4の方法により通知される状況は、通知先であるプレゼンテーション層40(表示装置4)毎に異なっていてもよい。
このように、イベント通知部62は、第3及び第4の方法を用いた場合、プレゼンテーション層40からの要求(処理要求及び通知要求)の有無に関係なく、能動的に(いわゆるプッシュ型の)通知を行う。イベント通知部62は、第3の方法を用いた場合には、処理要求に対する応答よりもあとに、その処理の結果およびそれ以外の処理の状況を通知し、第4の方法を用いた場合には、予め定められた処理の状況を通知する。
第2及び第3の方法が用いられた場合、受付・応答部61またはイベント通知部62は、どちらの場合でも、処理要求に対する応答よりもあとに、処理の結果およびそれ以外の処理の状況を送信する。また、第1から第3までの3通りの方法は、要求された処理の状況を通知するための方法である。本実施形態では、プレゼンテーション層40は、処理を要求するときに、その処理の状況(処理の結果を含む)を送信する方法(すなわち第1の方法ないし第4の方法のいずれか)を指定する。例えば、送信の方法は、デバイス制御部42によって生成される処理要求に含まれるパラメータによって指定されてもよい。受付・応答部61およびイベント通知部62は、プレゼンテーション層40によって指定された方法を用いて状況情報の送信を行う。
この実施形態では、状況情報は、ミドルウェア層70によって生成され、受付・応答部61またはイベント通知部62に供給される。なお、状況情報や機能部65、受付・応答部61またはイベント通知部62によって生成されてもよい。また、イベント通知部62へ供給される状況情報は、ミドルウェア層70(または機能部65)からイベント通知部62へ直接供給されることなく、受付・応答部61を経由してイベント通知部62へ供給されてもよい。
操作画像管理部63は、プレゼンテーション層40に送信する操作画像データの管理を行う。操作画像DB64は、操作画像データを格納するデータベースである。操作画像管理部63は、上述した操作画像データを、インターフェース50を介してプレゼンテーション層40に提供する。操作画像管理部63は、操作画像データを記憶しており、操作画像要求がインターフェース50を介して送信されてくると、例えばHTMLで記述された操作画像データを含む応答を要求元に対してインターフェース50を介して送信する。
操作画像管理部63は、ユーザ装置20から操作画像データの要求が送信されてきた場合、それに応答してユーザ装置20に操作画像データを送信する。また、操作画像管理部63は、操作装置30から操作画像データの要求が送信されてきた場合には、それに応答して操作装置30に操作画像データを送信する。このように操作画像データの要求元(ユーザ装置20及び操作装置30)に操作画像データを送信することで、操作画像管理部63は、それらの要求元に操作画像データをそれぞれ提供する。
機能部65は、情報処理装置10がユーザに提供する機能を実現するためのモジュール群である。情報処理装置10の機能部65は、プレゼンテーション層40から処理要求がインターフェース50を介して送信されてくると、ミドルウェア層70を制御して、その処理要求により要求された処理を実行させる。
図9は、機能部65に含まれるモジュール群の一例を示す図である。機能部65には、コピー機能、スキャン機能、FAX機能、プリント機能、宛先表管理機能(宛先情報を管理する機能)、デバイス管理機能(画像読取部13の原稿セット状態や画像形成部14の媒体、消耗品の状態などを管理する機能)、認証機能、親展ボックス機能(情報処理装置10に記憶されている電子文書を管理する機能)、プレビュー機能、ダウンロード機能(プログラムの更新を制御する機能)、保守機能(リモートからの要求に従いハードウェアをメンテナンスする機能)、診断機能(ハードウェアを診断する機能)をそれぞれ実現するためのモジュールが含まれている。
機能部65は、例えば、処理要求に含まれている指示データを解析し、解析した指示の内容のとおりに処理が実行されるように、ミドルウェア層70を制御する。具体的には、機能部65は、指示された処理(例えばコピー処理)を指示されたパラメータで実行させる。これにより、ミドルウェア層70は、例えばユーザの操作によって定められた画質及び読取方法で媒体から画像を読み取り、読み取った画像を、ユーザの操作によって定められた出力形式、倍率、用紙及びカラーモードで形成する。
機能部65は、ミドルウェア層70に処理の実行を指示する際に、受付・応答部61から供給されたトランザクションIDをミドルウェア層70に供給する。ミドルウェア層70は、受付・応答部61に対して、上述した状況情報とともにトランザクションIDを供給する。
また、機能部65は、処理要求に記述されている方法(第1から第4の方法のうちのいずれか)を指定する記述を解析し、解析した方法(すなわち表示装置4が指定した方法)を受付・応答部61に伝達する。受付・応答部61またはイベント通知部62は、機能部65から供給されたトランザクションIDに対応付けられた通信の宛先に対して、ともに供給された状況情報を記述した通知データを、伝達された方法に則って送信する。これにより、受付・応答部61またはイベント通知部62は、処理の要求元に対して処理の状況を指定された方法で送信する。なお、機能部65は処理要求を受付・応答部61に供給するだけにして、受付・応答部61が指定された通知先の解析を行ってもよい。
ミドルウェア層70は、ファンクション層60とハードウェア層80との中間で汎用的な処理を実行する層である。ハードウェア層80は、画像読み取りや画像形成などの処理を物理的に実現する層である。ミドルウェア層70およびハードウェア層80は、上述したコピー処理の他、スキャン処理、FAX処理、プリント処理(それぞれスキャン機能、FAX機能、プリント機能を提供するための処理)などの各種の処理を実行する。コピー処理には、図6に示す画像読取部13による画像読取処理及び画像形成部14による画像形成処理が含まれる。スキャン処理には画像読取処理が含まれ、FAX処理には第2通信部16によるFAX通信処理が含まれる。また、プリント処理には、第1通信部15による通信処理及び画像形成処理が含まれる。スキャン処理及びFAX処理には、他にも、データの取得及び出力の方法に応じて、第2通信部16を用いたデータ通信処理やデータを記憶部12に書き込む書込処理、記憶されたデータを記憶部12から読み出す読出処理などが含まれる。ミドルウェア層70およびハードウェア層80は、処理を実行すると、上述した状況情報(実行している処理の状況を表す情報)をファンクション層60に供給する。
図8に示す受付・応答部61、イベント通知部62、操作画像管理部63および機能部65の少なくともいずれかひとつは、図7の生成手段101、第1送信手段102、第2送信手段103、記憶制御手段104、第1特定手段105および第2特定手段106の一例である。ミドルウェア層70およびハードウェア層80は、処理手段107の一例である。UI制御部41、デバイス制御部42および通信部43の少なくともいずれか一つは、受信手段401、記憶制御手段402、第3送信手段403、処理実行手段404の一例である。
[1−5]動作
[1−5−1]状況情報の送信動作
まず、上述した第1から第4までの4つの方法で状況情報を送信する際に各装置が行う動作の例について、図12から図15までを参照して説明する。
[1−5−1−1]状況情報の第1の送信動作
図12は、状況情報の送信方法として、上述の第1の方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図12に示す動作は、例えば、ユーザがコピーを行う前に、コピーのためのパラメータ(倍率や用紙のサイズ、カラーモードなど)を変更する操作を行うことを契機に開始される。まず、表示装置4の制御部141(プレゼンテーション層40)が、パラメータを変更する操作を受け付けると(ステップS111)、パラメータの変更の要求を記述した処理要求データをHTTPリクエストに含めて情報処理装置10に対して送信する(ステップS112)。情報処理装置10の受付・応答部61は、そのHTTPリクエストを受信すると、受信された要求の内容を解釈し(ステップS113)、解釈した内容での処理の実行を情報処理装置10のミドルウェア層70に指示する(ステップS114)。
ミドルウェア層70は、ハードウェア層80と協働して、指示された処理、すなわちパラメータの変更を実行し(ステップS115)、その結果を表す情報を状況情報として受付・応答部61に供給する(ステップS116)。受付・応答部61は、供給された状況情報(この例ではパラメータの変更結果)を記述した通知データを生成する(ステップS117)。受付・応答部61は、生成した通知データを含むHTTPレスポンスを、処理の要求元である表示装置4に送信する(ステップS118)。表示装置4の制御部141は、送信されてきたHTTPレスポンスに含まれる状況情報を自装置の表示部144に表示させる(ステップS119)。
[1−5−1−2]状況情報の第2の送信動作
図13は、第2の方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図13に示す動作は、例えば、ユーザが情報処理装置10の画像読取部13に原稿をセットし、表示装置4に対してコピーを開始させる操作を行うことを契機に開始される。まず、表示装置4の制御部141は、コピーを開始させる操作を受け付けると(ステップS121)、受け付けた操作に応じた指示データを作成する(ステップS122)。制御部141は、作成した指示データを含む処理要求(HTTPリクエスト)を情報処理装置10に送信する(ステップS123)。情報処理装置10の受付・応答部61は、図8に示すインターフェース50を介して処理要求を受け取ると、受け付けた処理要求に含まれる指示データを解析することで、指示の内容を解釈する(ステップS124)。
受付・応答部61が、解釈した内容に基づいてコピー処理をミドルウェア層70に指示すると(ステップS125)、ミドルウェア層70及びハードウェア層80が協働して、指示された内容に基づく処理(コピー処理)を実行する(ステップS126)。受付・応答部61は、コピー処理を指示したあと、コピー処理の要求を受け付けた旨を示すHTTPレスポンスを、ステップS123において受信されたHTTPリクエストの応答として表示装置4に送信する(ステップS131)。表示装置4の制御部141は、受信されたHTTPレスポンスに応じた内容を自装置の表示部144に表示させる(ステップS132)。なお、ステップS131の動作は、ステップS124またはS125の動作の前に行われてもよい。
第2の方法においては、表示装置4からの処理要求に対する処理状況の通知および処理完了の通知は、表示装置4がHTTPリクエストによりポーリング処理を行うことにより表示装置4に取得される。表示装置4の制御部141は、コピー処理の要求に対する応答を受け取ったあと、そのコピー処理の状況の通知を求める通知要求(HTTPリクエスト)を送信することによってポーリング処理を行う(ステップS141)。情報処理装置10の受付・応答部61は、コピー処理の状況情報がまだ供給されていなければ、その旨を示すHTTPレスポンスを表示装置4に送信する(ステップS142)。ステップS141及びS142の動作は繰り返し行われる。
情報処理装置10のミドルウェア層70は、コピー(読み取った原稿を示す画像)を媒体に出力すると、それを検知して(ステップS151)、コピーが媒体に出力されたという状況を示す状況情報を受付・応答部61に供給する(ステップS152)。受付・応答部61は、状況情報が供給されたあとに通知要求(HTTPリクエスト)を受信すると(ステップS141)、状況情報を含むHTTPレスポンスを生成して(ステップS153)、表示装置4に送信する(ステップS154)。表示装置4の制御部141は、ステップS132のように、HTTPレスポンスに応じた内容を自装置の表示部に表示させる(ステップS155)。
[1−5−1−3]状況情報の第3の送信動作
図14は、第3の方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。第1の方法および第2の方法では、表示装置4と情報処理装置10との間でHTTPによるデータの遣り取りが行われた。それに対し、第3の方法では、HTTPに加えて、WebSocketプロトコルにより情報処理装置10から表示装置4へのデータの送信が行われる。具体的には、第2の方法においてポーリングにより取得された状況情報が、第3の方法においてはWebSocketのメッセージとして表示装置4へ通知される。第2の方法と第3の方法とは、ひとつの処理を異なる方法で実現するものであり、両者は選択的に用いられる。
図14に示す動作は、図13のように、コピーを開始させる操作をユーザが行うことを契機に開始される。まず、表示装置4の制御部141は、コピーを開始させる操作を受け付けると(ステップS121)、情報処理装置10との間でWebSocketセッションを確立するための処理を行う。すなわち、制御部141は、情報処理装置10へWebSocketのハンドシェイク要求であるHTTPリクエストを送信する。このHTTPリクエストには、表示装置4を識別するクライアントIDが含まれる。
情報処理装置10のインターフェース50は、表示装置4から受信されたHTTPリクエストに基づき、WebSocketセッションの確立を行う。受付・応答部61は、WebSocketのハンドシェイク応答を表示装置4へ送信し、これにより、表示装置4と情報処理装置10との間でWebSocketのセッション(以下、単に「セッション」という)が確立される(ステップS160)。なお、セッションが確立されるタイミングはこのタイミングに限られない。例えば、ユーザが表示装置4を用いてウェブブラウザを起動して情報処理装置10のURL(Uniform Resource Locator)にアクセスする操作を行ったタイミングで、セッションの確立処理が行われてもよい。
また、受付・応答部61は、受信されたHTTPリクエストに含まれるクライアントIDを記憶部12の予め定められた領域(以下「キャッシュ領域12a」という)に格納する。キャッシュ領域12aに記憶されたクライアントIDは、セッションが正常な処理により切断された場合にキャッシュ領域12aから削除される。すなわち、キャッシュ領域12aには、情報処理装置10との間でセッションを確立中である表示装置4のクライアントID、およびセッションが処理の途中で切断されてしまった表示装置4のクライアントIDが蓄積される。
ステップS161以降の処理において、表示装置4と情報処理装置10とは、HTTPまたはWebSocketのいずれかのプロトコルを用いてメッセージのやりとりを行う。以下、HTTPにより送受信されるメッセージとWebSocketにより送信されるメッセージとを各々区別する必要がない場合には、これらを単に「メッセージ」と称して説明する。情報処理装置10の受付・応答部61は、自装置が送信したメッセージを、そのメッセージに付与されていたクライアントID、トランザクションIDおよびシーケンスIDとともにキャッシュ領域12aに格納する。シーケンスIDは、そのメッセージを識別する識別情報(メッセージ識別子の一例)である。また、表示装置4の制御部141は、自装置が受信したメッセージに付与されていたトランザクションIDおよびシーケンスIDの組を、自装置のキャッシュ領域(以下「キャッシュ領域142a」という)に格納する。キャッシュ領域142aは、記憶部142に設けられていてもよく、また、RAMに設けられてもよい。キャッシュ領域142aに格納されたIDのセットは、セッションが処理の途中で切断された場合などに参照される。
図14の説明に戻る。WebSocketセッションが確立されると、制御部141は、上述した第3の方法を申し込む旨を記述した通知要求データを含むHTTPリクエストを情報処理装置10に送信する(ステップS161)。情報処理装置10の受付・応答部61は、そのHTTPリクエストを受信すると、受信されたHTTPリクエストに含まれる通知要求データに記述された申込みの内容をミドルウェア層70に伝達する(ステップS162)。ミドルウェア層70は、伝達された申込みを受け付け、表示装置4に対して今後第3の方法で状態情報の送信を行うための設定を行う(ステップS163)。ミドルウェア層70は、例えば第3の方法で通知を行うか否かを表すフラグをONにする。
次に、図13に示すステップS122からS126までの動作と、ステップS131及びS132の動作が行われる。続いて、情報処理装置10のミドルウェア層70及びハードウェア層80は、ステップS151(コピー出力の検知)の動作を行うと、上記フラグがONになっているため、コピーが媒体に出力されたという状況を示す状況情報を受付・応答部61ではなく、イベント通知部62に供給する(ステップS172)。イベント通知部62は、供給された状況情報(コピー枚数等)を記述した通知データを生成して(ステップS173)、生成したデータをステップS160で確立したWebSocketセッションを介して表示装置4に送信する(ステップS174)。表示装置4の制御部141は、受信されたデータに記述された内容(例えば図3(a)に示す状況情報C1)を自装置の表示部144に表示させる(ステップS175)。
ミドルウェア層70及びハードウェア層80は、コピー処理を完了すると(ステップS181)、その旨を示す状況情報をイベント通知部62に供給する(ステップS182)。イベント通知部62は、この状況情報を記述した通知データ(例えば「コピーが完了しました。」という文字列を含む通知データ)を生成し(ステップS183)、生成した通知データを、WebSocketのメッセージに含めて表示装置4に送信する(ステップS184)。表示装置4の制御部141は、ステップS184で受信した通知データに記述された内容(例えば図7(b)に示す状況情報C2)を自装置の表示部に表示させる(ステップS185)。
[1−5−1−4]状況情報の第4の送信動作
図15は、第4の方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。第4の方法では、WebSocketにより状況情報が表示装置4へ通知される。この方法では、予め確立されたWebSocketセッション、例えば図14のステップS160で確立されたセッションが用いられる。情報処理装置10において予め定められた状況(トナー切れや用紙切れ、収容部オープンなど)が発生すると、情報処理装置10のミドルウェア層70及びハードウェア層80が協働して、その定められた状況を検知し(ステップS201)、検知した状況を表す状況情報をイベント通知部62に供給する(ステップS202)。イベント通知部62は、供給された状況情報を記述した通知データを生成し(ステップS203)、その通知データを、確立されているWebSocketのセッションを介して表示装置4にインターフェース50を介して送信する(ステップS204)。表示装置4の制御部141は、ステップS204で受信した通知データに記述された状況情報を自装置の表示部に表示させる(ステップS205)。
なお、上述したように、表示装置4毎に異なる状況が通知されてもよい。その場合には、ステップS192のあとに、制御部141が、自装置に通知すべき状況を記述した通知データを情報処理装置10に通信部43を介して送信する。インターフェース50を介してそれを受け取ったイベント通知部62は、その通知すべき状況を表示装置4の宛先に対応付けて記憶しておく。イベント通知部62は、ステップS202で供給された状況情報が、記憶しておいた通知すべき状況を表している場合にその状況の通知を行う。
[1−5−2]動作例1
図16は、情報処理システム1の具体的な動作の一例を示すシーケンス図である。この例では、ユーザが表示装置4を操作して、情報処理装置10にコピー処理を実行させる場合の動作例を説明する。この動作例では、情報処理装置10から表示装置4への状況情報の送信の方法として、上述した第3の方法および第4の方法が用いられる(第3の方法が用いられるため、第2の方法は用いられない)。具体的には、クライアントからの要求により実行される処理(例えばコピー処理)の実行指示および実行完了通知の送信処理については、第3の方法が用いられ、クライアントからの要求によらない、情報処理装置10の装置状態を示す通知(例えば、用紙の収容部がセットされていない旨を示す通知)の送信処理については、第4の方法が用いられる。具体的には、図16のステップS308ないしS322、S330およびS331が第3の方法に対応しており、ステップS324ないしS327が第4の方法に対応している。
まず、ユーザは、表示装置4に対して、ウェブブラウザを起動して情報処理装置10のURLにアクセスする操作を行う。ステップS301において、表示装置4の制御部141は、ウェブブラウザを起動する。ステップS302において、制御部141は、情報処理装置10へTCP(Transmission Control Protocol)のハンドシェイク要求を送信する。表示装置4の制御部141と、情報処理装置10の制御部11との間で、TCPコネクションを確立するためのやり取りが行われ、TCPコネクションが確立される。ステップS303において、制御部141は、WebSocketのハンドシェイク要求であるHTTPリクエストを送信する。インターフェース50は、表示装置4から受信されたHTTPリクエストに基づき、WebSocketへの切り替えを行う。インターフェース50は、WebSocketのハンドシェイク応答を行い、これにより、表示装置4と情報処理装置10との間でWebSocketのセッションが確立される。
セッションが確立されると、制御部141は、表示部144に表示する操作画像を表示するためのデフォルトの設定情報(以下「デフォルト設定情報」という)の取得要求を情報処理装置10へ送信する(ステップS304)。具体的には、制御部141は、デフォルト設定情報の取得要求を示すメッセージを生成する。制御部141は、生成したメッセージを含むHTTPリクエストを情報処理装置10へ送信する。
受付・応答部61は、表示装置4からHTTPリクエストを受信すると、受信されたHTTPリクエストに含まれるメッセージに対応するデフォルト設定情報を取得する。デフォルト設定情報は、情報処理装置10の記憶部12に記憶されていてもよく、また、SDカードなどのメモリーカードに記憶されていてもよい。また、デフォルト設定情報は、通信回線2を介して接続されたサーバ装置に格納されていてもよい。ステップS305において、受付・応答部61は、取得したデフォルト設定情報を示すメッセージを生成し、生成したメッセージを含むHTTPレスポンスを表示装置4へ送信する。
ステップS306において、制御部141は、情報処理装置10から受信されたHTTPレスポンスに含まれるデフォルト設定情報に従ってデフォルトの操作画像を表示部144に表示する。この例では、制御部141は、受信されたデフォルト設定情報が示す操作画像の配置や大きさなどのパラメータに基づいて、操作画像を表示する。
こうして表示された操作画像の一例が、上述した図2に示す操作画像データ群A1である。操作画像データ群A1には、「画質調整」、「読取方法」、「出力形式」、「処理編集」などのタグを選択することで表示される操作画像も含まれる。操作画像データ群A1には、コピーする画像の倍率、コピーした画像を形成する用紙及びコピーした画像のカラーモードというパラメータをそれぞれ選択させるための操作画像データグループA12、A13及びA14が含まれている。操作画像データグループA12、A13及びA14は、コピー機能を利用するときに機能部65に指示しなければならないパラメータを選択するための操作画像である。
例えば操作画像データグループA12には、コピーの倍率を1%単位で大きくするという指示に対応した操作画像データA15と、コピーの倍率を1%単位で小さくするという指示に対応した操作画像データA16とが含まれている。図2に示すように倍率が110%であれば、操作画像データA15を1回操作すれば倍率が111%となり、操作画像データA16を2回操作すれば倍率が108%となる。こうしてパラメータが選択され、上述した操作画像データA11(コピーを開始させるための操作画像)が操作されると、その時点で選択されているパラメータを用いて処理を実行するように情報処理装置10に対する指示が行われる。つまり、操作画像データA11は、指示の内容を定める(つまり決定する)ための操作画像であり、以下では「指示内容決定画像」という。制御部141は、前述したデフォルト設定情報に基づいてこれらの操作画像を表示する。
また、制御部141は、現在選択されているパラメータの内容をユーザに伝達するための画像(以下「パラメータ伝達画像」という)を表示する。制御部141は、例えば、表示領域B11に、現在選択されているコピーの倍率(この例では「110%」)の文字列をパラメータ伝達画像として表示し、現在選択されている用紙及びカラーモードを表す操作画像(この例では「他の倍率」、「A4普通紙」、「白黒」という文字列が描かれたもの)を、選択されていない選択画像とは異なる態様(この例では線を太くする態様。ハイライトなどの態様でもよい。)で表示している。
ユーザによって操作画像に対する操作が行われると、制御部141は、その操作に対応した指示を特定する。制御部141は、例えばユーザが操作部のタッチセンサをタップした(軽く叩いた)場合に、操作部から出力されるデータに基づき、タップされた位置が操作画像領域に含まれているか否かを判断する。
ステップS307において、制御部141は、ユーザによって操作された内容に基づいて、情報処理装置10に依頼する処理の内容を記述した指示データを生成する。この例で、ユーザによりコピー処理に関する設定の変更と、コピー処理の実行とが指示された場合の動作を示す。ステップS308において、制御部141は、生成した指示データを含むHTTPリクエストを生成し、生成したHTTPリクエストを情報処理装置10へ送信する。
情報処理装置10の受付・応答部61は、表示装置4からHTTPリクエストを受信する。ステップS309において、受付・応答部61は、HTTPリクエストの送信元である表示装置4を識別するクライアントIDと、要求された処理を識別するトランザクションIDとを発行する。なお、HTTPリクエストの送信元である表示装置4のクライアントIDが既に発行されている場合は、再度発行を行うことなく、既に発行されているクライアントIDが用いられる。ステップS310において、受付・応答部61は、発行したクライアントIDとトランザクションIDとを対応付けて、自装置のキャッシュ領域12aに格納する。
受付・応答部61は、処理要求を受け付けた旨を示すHTTPレスポンスを生成する。このHTTPレスポンスには、ステップS309で発行されたクライアントIDとトランザクションIDとが含まれる。ステップS311において、受付・応答部61は、生成したHTTPレスポンスを、ステップS308で受信されたHTTPリクエストの応答として表示装置4へ送信する。
HTTPレスポンスを受信すると、制御部141は、ステップS312において、受信されたHTTPレスポンスに含まれるクライアントIDとトランザクションIDとを対応付けてキャッシュ領域142aに格納する。ステップS313において、表示部144に表示している画面を更新する。表示部144には、例えば、指示された処理が受け付けられた旨を示す画面が表示される。
ステップS314において、受付・応答部61は、受信されたHTTPリクエストに含まれる指示データをミドルウェア層70に供給し、画像処理の実行を指示する。ステップS315において、ミドルウェア層70は、供給された指示データに従って処理データを生成する。この処理データは、表示装置4から指示された画像処理を管理するためのデータである。ステップS316において、ミドルウェア層70は、生成された処理データに従って、指示された処理の実行を開始する。具体的には、例えば、ミドルウェア層70は、指示データにより指定された画質及び読取方法で媒体から画像を読み取るように画像読取部13を制御する。また、ミドルウェア層70は、画像読取部13が読み取った画像を、操作により定められた出力形式、倍率、用紙及びカラーモードで形成するように画像形成部14を制御する。このようにして、ミドルウェア層70およびハードウェア層80は、画像読取部13および画像形成部14を制御して、表示装置4により指示された内容に応じた処理を行う。
指示された画像処理を実行している期間において、ミドルウェア層70は、処理の状況に関する状況情報を生成する。ミドルウェア層70は、例えば決められた処理(媒体からの画像の読み取りや画像を形成した媒体の排出など)を行う度に状況情報を生成する。ミドルウェア層70は状況情報をイベント通知部62に送信する(ステップS317)。イベント通知部62は、ミドルウェア層70から状況情報を受信すると、ステップS318において、シーケンスIDを発行する。ステップS319において、イベント通知部62は、発行したシーケンスIDを、メッセージの送信先の表示装置4を示すクライアントIDおよびその処理を識別するトランザクションIDに対応付けてキャッシュ領域12aに格納する。
図17は、キャッシュ領域12aに格納されるデータの一例を示す図である。キャッシュ領域12aには送信されるメッセージに関するデータが格納される。具体的には、キャッシュ領域12aには、「クライアントID」と、「トランザクションID」と、「シーケンスID」と、「優先度」と、「body」との各情報が対応付けて記憶される。これらの情報のうち、「クライアントID」は、処理要求の送信元である表示装置4を識別する識別情報である。「トランザクションID」は、処理単位で割り当てられる識別情報である。ひとつの処理が完了するまでにやり取りされるメッセージには同一のトランザクションIDが付される。「シーケンスID」は、個々のメッセージを識別する識別情報であり、送信されるメッセージの各々にそれぞれ異なるシーケンスIDが割り当てられる。この例で、シーケンスIDは、複数のメッセージの各々に、メッセージが送信される順にインクリメントされる。また、この例で、シーケンスIDは、送信されるメッセージがHTTPで送信されるかWebSocketで送信されるかに関わらず、送信される順番を示す通し番号が付される。
「優先度」は、各メッセージの優先度を示す情報であり、各メッセージの種別に応じて予め定められている。優先度はメッセージの属性の一例である。この例で、例えば、コピー処理が完了した旨を示すメッセージや、用紙の収容部がセットされていない旨を示すメッセージの優先度は高く設定されており、一方、コピー処理の途中経過を示すメッセージの優先度は低く設定されている。なお、表示装置4からの処理要求を受け付けた旨を示すHTTPレスポンス(ステップS311で送信されるHTTPレスポンス)には、シーケンスIDが発行されない。このHTTPレスポンスについては、「シーケンスID」および「優先度」の項目に「null」を設定したデータがキャッシュ領域142aに登録されてもよい。
再び図16を参照する。イベント通知部62は、ミドルウェア層70から供給された状況情報と、ステップS318で発行されたシーケンスIDと、ステップS309で発行されたトランザクションIDとを含むWebSocketのメッセージを生成する。このイベントには、イベントの優先度を示すパラメータが含まれる。ステップS320において、イベント通知部62は、WebSocketセッションを介して生成したイベントを表示装置4へ送信する。
表示装置4の制御部141は、情報処理装置10からWebSocketのメッセージを受信する。ステップS321において、制御部141は、受信されたメッセージに含まれるトランザクションIDとシーケンスIDと優先度とを対応付けてキャッシュ領域142aに格納する。
図18は、キャッシュ領域142aに格納されるデータの一例を示す図である。キャッシュ領域142aには、情報処理装置10から受信されたメッセージを識別する情報が格納される。具体的には、キャッシュ領域142aには、「クライアントID」と、「トランザクションID」と、「シーケンスID」と、「優先度」と、「画面ID」との各情報が対応付けて記憶される。これらの情報のうち、「クライアントID」、「トランザクションID」、「シーケンスID」および「優先度」は、情報処理装置10から受信されるメッセージに付与されている情報である。「画面ID」は、そのメッセージに対応する画面を識別する識別情報である。「画面ID」とメッセージの種別とは予め対応付けられており、制御部141は、記憶部142に予め記憶された対応関係に基づいて、受信されたメッセージに対応する画面IDを特定し、特定した画面IDをキャッシュ領域142aに格納する。なお、図18には、キャッシュ領域142aにクライアントIDが格納される例を示しているが、クライアントIDがキャッシュ領域142aに格納されない構成であってもよい。
図16の説明に戻る。ステップS322において、制御部141は、受信されたメッセージに含まれる状況情報に基づいて、表示部144に表示している画面を更新する。具体的には、例えば、処理を実行中である旨を示す画面において、読み取られた媒体の枚数や、画像が形成された媒体の枚数が更新される。
ミドルウェア層70から状況情報が供給される毎に、ステップS317ないしステップS322の処理が繰り返し行われ、キャッシュ領域12aおよびキャッシュ領域142aが更新されるとともに、表示装置4の画面がその都度更新される。すなわち、ステップS317ないしステップS322の処理は、ユーザによって指示された処理が情報処理装置10において完了するまで、状況情報が供給される毎に繰り返し実行される。ひとつの処理が完了するまでにイベント通知部62から表示装置4へ送信される複数のメッセージは、ひとつの処理の関するメッセージであるため、同一のトランザクションIDが付される。なお、シーケンスIDはそれぞれのメッセージで異なる。
ここで、コピー処理の途中で、媒体を収容する収容部がユーザによって開かれた場合、ステップS323において、ミドルウェア層70は、ハードウェア層80から通知に応じて、収容部がセットされていない旨を検知する。ステップS324において、ミドルウェア層70は、検知した状態を示す状態情報をイベント通知部62に供給する。ステップS325において、イベント通知部62は、この状態情報を送信するためのトランザクションIDとシーケンスIDとを発行する。収容部の状態の通知処理は、コピー処理とは異なる処理であるため、コピー処理のトランザクションIDとは異なるトランザクションIDが発行される。ステップS326において、イベント通知部62は、発行したトランザクションIDとシーケンスIDとをキャッシュ領域12aにキャッシュする。ステップS327において、イベント通知部62は、供給された状態情報を含むとともに、発行したトランザクションIDとシーケンスIDとを含むWebSocketのメッセージを表示装置4に送信する。ステップS328において、制御部141は、受信されたメッセージに含まれるIDのセットをキャッシュ領域142aにキャッシュする。ステップS329において、制御部141は、受信された状態情報に応じた画面(図10に例示される画面)を表示する。
さて、指示された画像処理の実行が完了すると、ステップ330において、ミドルウェア層70は、処理が完了した旨を示す状態情報をイベント通知部62に供給する。ステップS331において、イベント通知部62は、供給された状態情報を含むWebSocketメッセージを生成し、生成したメッセージをWebSocketセッションにより表示装置4へ送信する。ステップS332において、制御部141は、受信されたイベントに含まれるIDのセットをキャッシュ領域142aにキャッシュする。ステップS333において、制御部141は、指示された画像処理が完了した旨を示す画面を表示部144に表示する。
[1−5−3]動作例2
図19は、情報処理システム1の動作の他の例を示すシーケンス図である。この例では、ユーザが表示装置4を操作して、情報処理装置10にコピー処理を実行させる場合の動作であって、コピー処理の途中で(コピー処理が完了する前に)、表示装置4が情報処理装置10からメッセージを受信できなくなってしまった場合の動作を説明する。メッセージを受信できない場合とは、例えば、WebSocketセッションが何らかの原因により切断されてしまった場合や、表示装置4のメッセージの受信に係るバッファの空き容量がなくなってしまうことによってメッセージが受信できなくなった場合、通信回線の状況によりメッセージの一部または全部が紛失されてしまった場合などが挙げられる。WebSocketセッションが切断されてしまう場合とは、例えばネットワークが不安定であったり、停電や節電などの理由による切断が挙げられる。図19には、図16のステップS322の処理が行われた後に、WebSocketセッションが切断された場合の動作が例示されている。
表示装置4の制御部141は、情報処理装置10からのメッセージを受信していない可能性があると判定した場合、メッセージの再送処理を行う。判定の方法としては、例えば、セッションの切断が検知された場合や、メッセージの受信に係るバッファの空き容量がなくなってしまった場合に、受信すべきメッセージが受信されていない可能性があると判定してもよい。受信すべきメッセージが受信されていない可能性があると判定した場合、制御部141は、セッションが切断されているかを判定する。セッションが切断されている場合、制御部141は、ステップS401において、WebSocketの再接続要求、すなわちハンドシェイク要求(HTTPリクエスト)を情報処理装置10へ送信する。なお、セッションが切断されていない場合、ステップS401ないしステップS404の処理はスキップされる。ステップS401において送信される再接続要求には、キャッシュ領域142aに格納されている自装置を識別するクライアントIDが含まれる。ここで、表示装置4の制御部141が、受信すべきメッセージが受信されていない可能性があると判定する別の態様としては、キャッシュに記憶している通知メッセージのうち、同一のトランザクションIDが付与されたメッセージを確認し、一連のメッセージの全体の数とそのメッセージが何通目であるかを示す情報が付加されている場合に、最後まで受信していないことを判断するようにしてもよいし、一連のメッセージに必ず最後を示す情報がある場合に、また、最後を示す情報が不可され得たメッセージが無いことを核にすることにより、まだ最後までメッセージを受信していないことを判断するように構成してもよい。
ステップS402において、インターフェース50は、受信されたHTTPリクエストに含まれるクライアントIDを、キャッシュ領域12aに記憶されたクライアントIDと照合する。キャッシュ領域12aには、上述したように、情報処理装置10との間でセッションを確立している表示装置4のクライアントIDが格納されており、セッションが正常な処理により切断された場合にキャッシュ領域12aから削除される。すなわち、通信ネットワークの問題等により処理の途中でセッションが切断されてしまった場合、そのセッションの確立先のクライアントIDはキャッシュ領域12aに記憶されたままとなっている。また、情報処理装置10が複数の表示装置4との間でセッションを確立している場合、キャッシュ領域12aには、複数のクライアントIDが格納されている。ステップS401において受信されたHTTPリクエストに含まれるクライアントIDがキャッシュ領域12aに格納されている場合、インターフェース50は、表示装置4との間のセッションを再度確立する処理を行う。すなわち、ステップS404において、インターフェース50は、表示装置4にハンドシェイク応答を送信し、セッションを確立する。なお、受信されたHTTPリクエストに含まれるクライアントIDがキャッシュ領域に格納されていない場合、制御部11は、セッションを新規に確立すると判断する。図19では、受信されたHTTPリクエストに含まれるクライアントIDがキャッシュ領域12aに格納されている場合の動作を例示している。
ステップS405において、制御部141は、キャッシュ領域142aに格納されているトランザクションID、セッションIDおよびクライアントIDのセットを読み出す。キャッシュ領域142aにIDのセットが複数格納されている場合、この実施形態では、制御部141は、格納されている全てのIDのセットを読み出す。
ステップS406において、制御部141は、読み出したIDのセットを情報処理装置10へ送信する。このIDのセットは、WebSocketセッションを介して送信される。
イベント通知部62は、表示装置4からIDのセットを受信する。ステップS407において、受付・応答部61は、受信されたIDのセットとキャッシュ領域12aに記憶されているIDのセットと照合し、照合結果に基づいて、どのメッセージを再送するかを決定する。この例で、受付・応答部61は、受信されたIDのセットとキャッシュ領域12aに記憶されたIDのセットとを比較して差分を抽出する。また、受付・応答部61は、抽出された差分に含まれるIDのセットに対応するメッセージのうち、優先度が予め定められた閾値よりも高いメッセージを、再送するメッセージとして特定する。例えば、受付・応答部61は、優先度が「100」以上であるメッセージを再送するメッセージとして特定してもよい。ステップS408において、イベント通知部62は、特定したメッセージを表示装置4へ再送する。
制御部141は、再送されたメッセージを受信する。ステップS409において、制御部141は、受信されたメッセージに含まれるIDのセットをキャッシュ領域142aに格納し、ステップS410において、受信されたメッセージに応じた画面を表示部144に表示する。この例で、制御部141が表示部144に表示する画面は、受信されたメッセージ(優先度が閾値よりも高いメッセージ)に対応する画面であり、例えば、収容部が正しくセットされていない旨を示す画面や、処理が完了した旨を示す画面である。すなわち、この例で、表示部144には、ユーザへの通知が必須であると考えられる画面が表示され、ユーザへの通知が必ずしも必要でない画面、例えばコピー処理の途中経過を示す画面(コピーが3ページ目まで終わりました、など)は表示されない。
ところで、処理の途中でセッションが切断されてしまった場合など、何らかの原因で表示装置4が情報処理装置10からのメッセージを受信できなくなってしまう場合がある。この場合、表示装置4で受信すべきメッセージが受信されない虞がある。例えば、情報処理装置10でコピー処理が完了しているにも関わらず、表示装置4がコピー処理の完了通知を受信できない場合、表示装置4の画面が更新されなくなってしまう。また、他の例として、例えば、ユーザによって指示されたコピー処理を情報処理装置10が実行している最中に、用紙の収容部が情報処理装置10からはずされてしまったにも関わらず、収容部が正しくセットされていない旨の通知が表示装置4で受信されなかった場合、表示装置4にはその旨が表示されないから、ユーザはコピー処理が実行されない理由を把握することができない。
それに対しこの実施形態では、表示装置4から再送要求があった場合、情報処理装置10が表示装置4から送信されてきたIDのセットと自装置にキャッシュされているIDのセットとを照合し、照合結果に応じてメッセージの再送処理を行う。これにより、情報処理装置10から表示装置4への通知がロストすることが防止される。また、このとき、キャッシュされているすべてのメッセージを再送するのではなく、条件を満たすメッセージを選定して送信することにより、再送に起因する処理負荷が軽減される。
上記した実施例では、表示装置4と情報処理装置10との間の通信セッションが切断された後にセッションを再確立したときに、表示装置4からメッセージ再送要求を行う例を説明したが、この構成に限られることはなく、情報処理装置10の受付・応答部61またはイベント通知部62は、セッションの再確立したおきに表示装置10に対し、キャッシュ領域142aに格納された情報の取得を要求し、取得したIDのセットとキャッシュ領域12aに記憶されたIDのセットとを比較して差分を抽出するようにしてもよい。情報処理装置10側から表示装置4へのキャッシュ領域に格納された情報の取得は、セッション再確立する毎に要求してもよいし、情報処理装置10の受付・応答部61またはイベント通知部62が未送信のメッセージが存在すると判断したときにのみ要求するようにしてもよい。
[2]変形例
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態及び以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
[2−1]再送するメッセージの特定方法
上述の実施形態では、イベント通知部62は、図19のステップS407において、どのメッセージを再送するかを、受信されたIDのセットとキャッシュ領域12aに記憶されたIDのセットと比較して差分を抽出し、抽出した差分のうち、重要度(優先度)が予め定められた閾値よりも高いメッセージを、再送するメッセージとして特定した。再送するメッセージの特定方法はこれに限られない。例えば、イベント通知部62は、抽出された差分に含まれるIDのセットに対応する全てのメッセージを、優先度の値に関わらず、再送するメッセージとして特定してもよい。
また、上述の実施形態では、イベント通知部62は、抽出された差分に含まれるIDのセットに対応するメッセージのうち、優先度が閾値よりも高いメッセージを再送するメッセージとして特定したが、判定に用いられる属性は優先度に限られない。判定に用いられるメッセージの属性としては、例えば、メッセージの送信先である表示装置4の種別(リモート/ローカル、など)を示す情報や、メッセージが送信されてからの経過時間が用いられてもよい。
また、他の例として、イベント通知部62は、キャッシュ領域12aに記憶されているメッセージの中に、表示装置4が受信しておらず、かつ、属性が予め定められた条件を満たすメッセージがない場合、表示装置4が受信済であって属性が条件を満たすメッセージを再送すべきメッセージとして特定してもよい。例えば、イベント通知部62は、抽出された差分に含まれるIDのセットに対応するメッセージのうち、優先度が閾値よりも高いメッセージが無い場合、差分に含まれないIDのセットに対応するメッセージの中から、優先度が閾値よりも高いメッセージを、再送するメッセージとして特定してもよい。この例では、再送されたメッセージが表示装置4で受信されることにより表示部144に表示される画面は、既に表示された画面である。すなわち、この例では、表示部144の画面が、特定の画面(例えば、ユーザが処理の経過を把握し易い画面、等)まで戻す制御が行われる。
また、他の例として、イベント通知部62は、キャッシュ領域12aにキャッシュされたメッセージのうち、送信されてから経過した時間が予め定められた閾値以下であるメッセージを再送すべきメッセージとして特定してもよい。また、イベント通知部62は、送信されてから経過した時間が予め定められた閾値以上であるメッセージをキャッシュ領域12aから削除するようにしてもよい。
また、表示装置4から要求された処理の完了通知を示すメッセージがキャッシュ領域12aにキャッシュされている場合、イベント通知部62は、処理の完了通知を示すメッセージを再送すべきメッセージとして特定してもよい。この場合、その完了通知を示すメッセージに含まれるトランザクションIDと同一のトランザクションIDが付された他のメッセージは、再送すべきメッセージとして特定されない。この例では、例えば、コピー処理の途中経過(コピーが3ページ目まで終わりました、など)を示すメッセージは再送されない。
また、上述の実施形態において、イベント通知部62が、キャッシュ領域12aにキャッシュされたメッセージの属性に基づいて、送信すべきメッセージの順序を変更して送信してもよい。
[2−2]メッセージのキャッシュ方法
上述の実施形態では、イベント通知部62は、表示装置4へ送信するメッセージを全てキャッシュ領域12aにキャッシュしたが、イベント通知部62がキャッシュするメッセージを選定してもよい。例えば、イベント通知部62は、表示装置4へ送信するメッセージのうち、重要度が予め定められた閾値よりも高いメッセージをキャッシュし、それ以外のメッセージはキャッシュしないようにしてもよい。
また、複数の記憶領域(例えばRAMとハードディスクドライブ)にキャッシュ領域を設ける構成とし、イベント通知部62が、重要度に応じてキャッシュする領域を異ならせてもよい。例えば、イベント通知部62が、重要度が閾値よりも高いメッセージは記憶部12のキャッシュ領域に格納する一方、重要度が閾値以下であるメッセージはRAMに設けたキャッシュ領域に格納するようにしてもよい。
[2−3]再送要求に含めるIDセットの選定方法
上述の実施形態では、表示装置4の制御部141は、キャッシュ領域142aにキャッシュされている全てのIDのセットを再送要求に含めて情報処理装置10へ送信した。再送要求に含めるIDのセットは上述した実施形態で示したものに限られない。例えば、制御部141は、キャッシュ領域142aに格納されているIDのセットのうち、最新のIDのセットを読み出して再送要求に含めて送信してもよい。また、他の例として、例えば、制御部141は、キャッシュ領域142aに格納されているIDのセットのうち、重要度(優先度)が予め定められた閾値以上であるIDのセットを読み出してもよい。
また、上述の実施形態では、制御部141は、受信済みである(すなわちキャッシュ領域142aに格納されている)IDを読み出して再送要求に含めたが、再送要求に含めるIDのセットは、キャッシュ領域142aに格納されているものに限られない。例えば、制御部141は、キャッシュ領域142aに格納されているIDのセットに含まれるシーケンスIDに基づいて受信していないメッセージのシーケンスIDを推定し、推定したシーケンスIDを再送要求に含めてもよい。具体的には、例えば、キャッシュ領域142aにシーケンスIDとして「001」、「002」が格納されている場合、制御部141は、キャッシュ領域142aに格納されているシーケンスIDの中から最近に受信されたもの(この例では、「001」)を特定し、特定したシーケンスIDをインクリメントした値(この例では、「003」)を再送要求に「003」含めてもよい。この場合、情報処理装置10の制御部11は、送信されてくる再送要求に含まれるシーケンスIDが付されたメッセージおよびそれ以降のメッセージを再送する。
[2−4]再送されたメッセージに対応する処理の実行
上述の実施形態において、制御部141は、情報処理装置10から再送されてきたメッセージに対応する処理を実行するか否かを、メッセージによって異ならせてもよい。具体的には、例えば、制御部141は、再送されてきたメッセージのうち、重要度が予め定められた閾値よりも高いメッセージに対応する処理を実行し、それ以外の処理を実行しないようにしてもよい。
また、例えば、再送されてきたメッセージのなかに、ユーザによって指示された処理の完了通知を示すメッセージが含まれている場合、制御部141は、完了通知のメッセージに対応する処理(すなわち完了画面の表示処理)を行い、そのメッセージに付されているトランザクションIDが付された他のメッセージに関する処理を行わないようにしてもよい。
[2−5]通信の規格
実施形態では、ユーザ装置20は、無線LANの規格に準拠する無線通信を行う通信部を備えていたが、これに限らず、例えば操作装置30の通信部33と同様に有線LANの規格に準拠する通信を行う通信部を備えていてもよい。この場合、ユーザ装置20は、有線LANのルータやハブなどに通信用のケーブルを介して接続される。この場合のユーザ装置20の通信部も、上述した他の通信機器(ルータやハブなど)と通信する通信手段として機能する。
また、実施形態では、情報処理装置10の第1通信部と操作装置30の通信部が有線LANの規格に準拠して通信を行ったが、これに限らず、例えば、USB(Universal Serial Bus)やHDMI(登録商標)(High-Definition Multimedia Interface)などの規格に準拠する通信を行ってもよいし、他にも、無線LANやBluetooth(登録商標)、NFC(Near field communication)などの規格に準拠する無線通信を行ってもよい。いずれの場合も、操作装置30の通信部は、他のルータはハブなどの通信機器を介さずに情報処理装置10の第1通信部と通信する。このように、操作装置30の通信部は、他の通信機器を介さず情報処理装置10と通信する通信手段として機能する。
また、上述の実施形態では、情報処理装置10と表示装置4とは、HTTPおよびWebSocketの2種類の通信プロトコルを併用してデータの授受を行ったが、用いられる通信プロトコルはこれらに限られない。情報処理装置10と表示装置4とが用いる通信プロトコルは、表示装置4(ウェブクライアント)から送信される要求に対する応答を情報処理装置10(ウェブサーバ)が送信するための第1通信プロトコルと、情報処理装置10から表示装置4へ通知を送信するために第2通信プロトコルであればよい。
また、上述の実施形態において、情報処理装置10と表示装置4とは、SOAP(Simple Object Access Protocol)の規格に準拠したデータの授受を行ってもよい。また、情報処置装置10と表示装置4とがデータの授受を行う際に準拠するプロトコルはこれに限られない。情報処理装置10と表示装置4とは、例えばREST(Representational State Transfer)やSGML(Standard Generalized Markup Language)などの規格に準拠して通信してもよい。
[2−6]操作装置の構成
操作装置30は、実施形態では図5に示すように制御部や記憶部、通信部を備えていたが、これらを備えていなくてもよい。
図20は、本変形例の情報処理装置10aのハードウェア構成の一例を示す図である。図20の例では、図6に示す各部のうち、操作装置30を除く各部を備える情報処理装置10aと、操作装置30aとが示されている。本変形例でも、操作装置30aは情報処理装置10aの筐体に固定されている。操作装置30aは、図5に示す通信部33と、UI部36とを備える。
通信部33及びUI部36は、情報処理装置10a内のバスに接続され、制御部11によって制御されるようになっている。また、通信部33は、第1通信部15とも接続されている。UI部36は、表示面と表示面に重ねられたタッチセンサとを備え、ユーザからの操作を受け付けるとともに画像を表示する。UI部36は、受け付けたユーザの操作に応じた操作データを制御部11に供給し、制御部11は、この操作データに応じた処理を行う。本変形例では、制御部11がブラウザのプログラムを実行することで図7に示す表示装置4の機能を実現する。
[2−7]操作装置の設置
操作装置は、実施形態や上記変形例では情報処理装置の筐体に固定されていたが、固定されていなくてもよい。例えば、操作装置が情報処理装置の筐体に固定されておらず、いわゆるリモコンとして用いられる装置であってもよい。
図21は、本変形例の情報処理装置10bのハードウェア構成の一例を示す図である。図21の例では、図6に示す各部のうち、操作装置30を除く各部を備える情報処理装置10bと、操作装置30bとが示されている。操作装置30bは、図5に示す各部を備え、図7に示す表示装置4として機能する装置である。情報処理装置10bの筐体には、操作装置30bを設置可能な形に形成された部分(以下「設置部」という)を有する。
操作装置30bは、通信用のケーブルを介して第1通信部15に接続されており、設置部に設置された状態でユーザにより使用される。操作装置30bは、実施形態の操作装置30と同様に、他の通信機器を介さずに情報処理装置10と通信を行うローカルの表示装置4として用いられる。なお、ユーザは、操作装置30bからケーブルを取り外して、操作装置30bを別の場所に持って行き別の用途に用いてもよい。なお、図19の例では、操作装置30bに代えて、操作手段として機能する他の装置(例えば図1等に示したユーザ装置20)が接続されてもよい。また、操作装置30bを、通信機器3に接続させて、通信機器3及び通信回線2を介して情報処理装置10bと通信させてもよい。
[2−8]情報処理装置10が行う処理
上述の実施形態では、コピー処理を行う場合の動作について説明したが、情報処理装置10が行う処理はコピー処理に限られない。情報処理装置10が行う処理は、例えば上述した画像読取処理であってもよく、また、画像形成処理であってもよい。
[2−9]操作の受付方法
上述の実施形態では、制御部21は、タッチセンサでユーザの操作を受け付けたが、ユーザの操作を受け付ける方法はこれに限られない。例えば、表示装置4がタブレット端末であれば筐体に設けられたボタンで操作を受け付けてもよい。また、表示装置4がパーソナルコンピュータであればキーボードやマウスなどで操作を受け付けてもよい。
[2−10]メッセージの送信
イベント通知部62は、実施形態では、WebSocketの規格に準拠するXMLデータを送信したが、これに限らない。例えば、Cometと呼ばれる技術を用いて、表示装置4のUI制御部41が送信してきたHTTPリクエストをイベント通知部62が維持し、送信すべきメッセージ(状況情報の更新など)が発生することを契機に、イベント通知部62が、維持していたHTTPリクエストへの応答で状況情報を送信してもよい。Cometを用いた方法だと、実施形態と同様に、操作用装置からの要求が行われたときにその応答でこの送信が行われる場合に比べて、処理の状況がユーザに早く伝達されることになる。
[2−11]発明のカテゴリ
本発明は、情報処理装置、表示装置、通信機器及びこれらの装置を備える情報処理システムの他にも、これらの装置が実施する処理を実現するための情報処理方法としても捉えられるものである。また、本発明は、情報処理装置及び表示装置というコンピュータを、上述した各手段として機能させるためのプログラムとしても捉えられるものである。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されたり、インターネット等の通信回線を介して、コンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態でも提供されたりするものであってもよい。