[1]実施形態
まず、図1から図11までを参照して、実施形態の情報処理システムの全体構成、ハードウェア構成及び機能構成について説明する。
[1−1]全体構成
図1は、情報処理システムの全体構成の一例を示すブロック図である。図1では、通信回線2と、通信機器3と、情報処理装置10と、複数のユーザ装置20とを備える情報処理システム1が示されている。情報処理システム1は、本実施形態では、コピーやスキャン、FAX(ファクシミリ)、プリント(画像データの媒体への出力)などの機能をユーザに提供するシステムである。
通信回線2は、例えばインターネットや移動体通信網、電話回線などのうちの少なくとも1つ以上を含む通信のためのシステムである。通信回線2は、自システムに接続された装置同士の通信を仲介する。通信回線2には、情報処理装置10及び通信機器3が接続されている。通信機器3は、ルータやハブ、アクセスポイントなど、通信を仲介する機能を有する通信装置である。通信機器3は、本実施形態では、アクセスポイントであり、無線LANの規格に準拠して無線通信を行う。
通信機器3は、ユーザ装置20と無線通信を行う一方、通信回線2を介して情報処理装置10と通信する。つまり、情報処理装置10は、通信回線2という通信システムと、通信機器3という外部の通信装置とを介してユーザ装置20と通信する。なお、通信機器3は、ユーザ装置20が接続する通信装置の一例であり、ユーザ装置20は、他の通信装置を介して情報処理装置10と通信してもよい。ただし、ここでいう「他の通信装置」には、情報処理装置10及び操作装置30は含まれない。以下では、「他の通信装置」といった場合、情報処理装置10、ユーザ装置20及び操作装置30のいずれでもない通信装置を指すものとする。
情報処理装置10は、媒体に画像を形成する画像形成処理や、媒体に形成された画像を読み取る画像読取処理などの処理を行う装置である。これらの処理は、前述したコピーやスキャン、FAX、プリントなどの機能がユーザに提供される際に行われる。情報処理装置10は、自装置の操作に用いられる操作装置30を有する。操作装置30は、情報処理装置10を操作するための装置である。操作装置30は、情報処理装置10の筐体に固定されており、情報処理装置10が設置されている場所に来たユーザによって用いられる。操作装置30は、例えば液晶ディスプレイ等を有し、情報処理装置10を操作するための画像データ(以下「操作画像データ」という)を表示する。操作画像データについて、図6を参照して説明する。
図6は、表示された操作画像データの一例を示す図である。図6の例では、コピー機能を利用するための操作画像データ群A1が表示されている。操作画像データ群A1には、コピーを開始させるための操作画像データA11などが含まれている。ユーザは、この操作画像データA11をタップする(軽く叩く)ことで、操作画像データA11に対応する操作、すなわちコピーを開始させる操作を行う。
操作装置30は、表示した操作画像データに対する操作が行われると、その操作を受け付け、情報処理装置10に対して、受け付けた操作に対応する要求を行う。操作装置30は、操作画像データA11が操作された場合であれば、操作画像データA11に対応する処理として、コピー機能を提供するための処理(具体的には画像読取処理及び画像形成処理を含む一連の処理。以下「コピー処理」という)の要求を情報処理装置10に対して行う。
ユーザ装置20は、情報処理装置10から提供された操作画像データを表示し、表示した操作画像データに対して操作が行われると、その操作を受け付け、受け付けた操作に対応した処理の要求を情報処理装置10に対して行うという点で、操作装置30と共通している。ユーザ装置20は、例えばタブレット端末やパーソナルコンピュータなどであり、ユーザによって持ち運ばれて利用されるものでもよいし、机に設置されて利用されるものでもよい。また、情報処理装置10の操作に限らず、他の用途(会社の業務など)にも用いられてもよい。
情報処理装置10は、操作装置30やユーザ装置20からの要求に基づいて処理を実行すると、実行している処理の状況を表す情報(以下「状況情報」という)をこれらの装置に送信することで、これらの装置に対して処理の状況を通知する。
図7は、表示された状況情報の例を示す図である。情報処理装置10は、例えばコピー処理を実行した場合であれば、図7(a)に示すように、コピーが完了した枚数(部数及びページ数)を表す枚数情報C11や「コピーしています。」という文字列、「白黒」、「A4」、「100%」及び「ソート」というコピーのパラメータなどを含む状況情報C1を送信する。
また、情報処理装置10は、コピー処理が進んで要求された枚数のコピーが完了すると、図7(b)に示すように、要求された枚数の分のコピーが完了したことを表す枚数情報C21や「コピーが完了しました。」という文字列などを含む状況情報C2を送信する。なお、枚数情報C11及びC21は、コピーを要求された枚数を分母とし、そのうちコピーが完了した枚数を分子とする分数で表されている。このように、状況情報には、処理の進捗を表す情報や処理の結果を表す情報、処理に用いられるパラメータの情報などが含まれる。操作装置30及びユーザ装置20は、いずれも、提供された操作画像を図6に示すように表示し、通知された状況を図7に示すように表示する表示装置でもある。以下では、操作装置30及びユーザ装置20を区別しない場合には表示装置4という。
[1−2]ハードウェア構成
図2は、ユーザ装置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は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発の(すなわち電力が供給されなくても書き込まれたデータを記憶し続ける)記憶手段を備え、制御部21が制御に用いるデータやプログラム、画像データなどを記憶する。通信部23は、無線LAN(Local Area Network)の規格に準拠して無線通信を行う通信回路及びアンテナを備える通信手段であり、例えば図1に示す通信機器3と無線通信を行う。つまり、通信部23は、上述した他の通信装置(情報処理装置10、ユーザ装置20及び操作装置30のいずれでもない通信装置。通信機器3はその一例)と通信する手段である。表示部24は、液晶ディスプレイ等を有し、制御部21により制御されて表示面に画像を表示する。
操作部25は、例えば自装置がタブレット端末である場合には、表示面に重ねて設けられたタッチセンサ(タッチスクリーンやタッチパネルともいう)や筐体に設けられたボタン等を備え、上述したタップ等のユーザの操作を受け付けてその操作の内容を示す操作データを制御部21に供給する。なお、自装置がパーソナルコンピュータである場合には、操作部25はキーボードやマウスを備えていてもよい。制御部21は、供給された操作データに応じた制御を行う。
図3は、操作装置30のハードウェア構成の一例を示すブロック図である。操作装置30は、制御部31と、記憶部32と、通信部33と、表示部34と、操作部35とを備えるコンピュータである。以下、図2に示すブロックと共通のハードウェアを表すブロック(通信部33以外の各部)には、共通の名称を付して説明を省く。通信部33は、有線LANの規格に準拠して通信を行う通信回路と、通信用のケーブル(具体的にはLANケーブル)が有するコネクタを差し込むポートとを備える。通信部33は、前述した他の通信装置を介さず情報処理装置10と通信する手段である。
図4は、情報処理装置10のハードウェア構成の一例を示すブロック図である。情報処理装置10は、制御部11と、記憶部12と、画像読取部13と、画像形成部14と、第1通信部15と、第2通信部16と、接続部17とを備えるコンピュータである。以下、図2及び図3に示すブロックと共通のハードウェアを表すブロック(制御部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]機能構成
情報処理装置10、ユーザ装置20及び操作装置30の各制御部が各記憶部に記憶されているプログラムを実行して各部を制御することで、以下に述べる機能が実現される。
図5は、情報処理システム1の機能構成の一例を示すブロック図である。情報処理装置10は、仲介手段101と、提供手段102と、処理手段103と、通知手段104と、制御手段105と、消去手段106とを備える。ユーザ装置20は操作手段200を備え、操作装置30は操作手段300を備える。
[1−3−1]仲介手段
情報処理装置10の仲介手段101は、自装置(情報処理装置10)と表示装置4との通信を仲介する手段である。より詳細には、仲介手段101は、上述した他の通信装置(例えば通信機器3)を介して自装置に接続される表示装置4(本実施形態ではユーザ装置20)との通信を仲介する。また、仲介手段101は、他の通信装置を介さず自装置に接続される表示装置4(本実施形態では操作装置30)との通信を仲介する。仲介手段101が用いる通信の手順(いわゆる通信プロトコル)について以下に説明する。
仲介手段101は、表示装置4(ユーザ装置20及び操作装置30)と自装置との間で各種の通信プロトコル(規格)に準拠した通信を仲介することが可能に構成されている。仲介手段101は、例えば表示装置4から送信されてくるユーザインターフェースを構成するための操作画像データを取得する要求であるHTTP(Hypertext Transfer Protocol)リクエストを受け取って後述する提供手段102に供給したり、その応答で後述する提供手段102から供給される層が画像データを記述したHTMLファイルを含むHTTPレスポンスを受け取って表示装置4に向けて送信したりする。
また、仲介手段101は、表示装置4から送信されてくる処理要求をHTTPリクエストとして受け取り、後述する制御手段105へ渡し、処理手段103で処理された結果に基づき生成される通知情報や自装置10で発生したイベントに基づき生成される通知情報を、通知手段104から受け取り、一例としてHTTPレスポンスとして表示装置に渡す制御を仲介する。また、仲介手段101は、WebSocketの規格にも準拠した通信制御を行うことも可能である。仲介手段101は、例えば、TCP(Transmission Control Protocol)のハンドシェイク手続きで表示装置4が一度接続されたあとは、HTTPリクエスト及びHTTPレスポンスを示す通知データの通信だけでなく、例えば提供手段102から任意のタイミングで行われる表示装置4への通知データの送信を仲介する。これにより、情報処理システム1においては、表示装置4が発信するHTTPリクエストによるいわゆるプル型の通信だけでなく、情報処理装置10から発信するプッシュ型の通知処理の通信も行われるようになっている。
仲介手段101は、以下に述べる提供手段102、通知手段104、制御手段105、表示手段201及び301(以下、それぞれを区別しない場合は「表示手段401」という)、要求手段202及び302(以下、それぞれを区別しない場合は「要求手段402」という)の通信を仲介する。詳細には、仲介手段101は、情報処理装置10の提供手段102及び通知手段104が表示装置4の表示手段401と行う通信をそれぞれ仲介し、表示装置4の要求手段402が情報処理装置10の制御手段105と行う通信をそれぞれ仲介する。
[1−3−2]提供手段
情報処理装置10の提供手段102は、上述した操作画像データを、仲介手段101を介して表示装置4に提供する手段である。提供手段102は、ユーザ装置20には、仲介手段101及び上述した他の通信装置を介した通信により操作画像データを提供する。また、提供手段102は、操作装置30には、仲介手段101を介す一方他の通信装置を介さない通信により操作画像を提供する。
提供手段102は、操作画像(具体的には操作画像データ)を記憶しており、操作画像データを要求するデータを含むHTTPリクエストが仲介手段101を介して送信されてくると、この要求に対応する操作画像データを含むHTTPレスポンスを要求元に対して仲介手段101を介して送信する。この操作画像データは、例えばHTML形式で記述された情報である。
提供手段102は、ユーザ装置20から操作画像を要求するデータが送信されてきた場合には、それに応答してユーザ装置20に操作画像データとしてのHTML形式のデータを送信する。また、提供手段102は、操作装置30から操作画像データの要求データが送信されてきた場合には、それに応答して操作装置30に操作画像データとしてのHTML形式のデータを送信する。このように操作画像データの要求元(ユーザ装置20及び操作装置30)に操作画像データを送信することで、提供手段102は、それらの要求元に操作画像データとしてのHTML形式のデータをそれぞれ提供する。
[1−3−3]処理手段
情報処理装置10の処理手段103は、処理を実行する手段である。処理手段103は、上述したコピー処理の他、スキャン処理、FAX処理、プリント処理(それぞれスキャン機能、FAX機能、プリント機能を提供するための処理)などを実行する。コピー処理には、図4に示す画像読取部13による画像読取処理及び画像形成部14による画像形成処理が含まれる。スキャン処理には画像読取処理が含まれ、FAX処理には第2通信部16によるFAX通信処理が含まれる。また、プリント処理には、第1通信部15による通信処理及び画像形成処理が含まれる。スキャン処理及びFAX処理には、他にも、データの取得及び出力の方法に応じて、第2通信部16を用いたデータ通信処理やデータを記憶部12に書き込む書込処理、記憶されたデータを記憶部12から読み出す読出処理などが含まれる。
処理手段103が処理を実行すると、様々な状況が発生する。例えばコピー処理であれば、原稿からの画像の読み取り、媒体の搬送の開始、感光体へのトナー像の形成、媒体への画像の形成などである。また、カラー設定や拡大率、ソートの有無などのコピーのパラメータも、コピー処理における状況に含まれる。処理手段103は、本実施形態では、処理を実行すると、それらの処理の状況のうち、通知の対象となる状況を表す状況情報を生成し、通知手段104に供給する。
通知の対象となる状況とは、例えば、図7に示したコピーの完了枚数や、用紙のサイズなどのパラメータなどである。情報処理装置10の記憶部12には通知の対象となる状況を示す一覧が記憶されており、処理手段103は、記憶部12を参照し、処理の状況を表す状況情報のうち、その一覧に含まれる状況を表すものを通知手段104に供給する。なお、処理手段103は一覧に含まれるか否かに関係なく状況情報を通知手段104に供給し、供給された状況情報が一覧に含まれる状況を表すものであるか否かを通知手段104が判断してもよい。
[1−3−4]通知手段
情報処理装置10の通知手段104は、処理手段103が実行する処理の状況を、仲介手段101を介した通信により表示装置4に通知する手段である。通知手段104は、本実施形態では、第1から第4までの4つの通知方法を用いて通知を行う。第1及び第2の通知方法では、通知手段104は、表示装置4からの要求に対する応答で処理の状況を通知する。具体的には、通知手段104は、表示装置4からHTTPリクエストが仲介手段101を介して送信されてきた場合に、そのHTTPリクエストに対するHTTPレスポンスに処理手段103から供給された状況情報を記述し、仲介手段101を介してそのHTTPレスポンスを表示装置4に送信することで、処理の状況を通知する。
通知手段104は、第1の通知方法では、表示装置4からHTTPリクエストによる処理の要求(以下「処理要求」という)があった場合に、まず、処理手段103により実行されるその処理が完了するまで待つ。つまり、ここで要求されている「処理」は、処理手段103が行う処理である。そして、通知手段104は、処理を要求したHTTPリクエストに対するHTTPレスポンスにその処理が完了したときの状況、すなわち処理の結果を記述して送信することで、記述した処理の結果を表示装置4に通知する。
通知手段104は、第2の通知方法では、表示装置4からHTTPリクエストによる処理要求があった場合に、要求された処理の完了を待たずに、そのHTTPリクエストに対するHTTPレスポンスにより、まずは処理要求が受け付けられた旨を通知する。それ以降、通知手段104は、表示装置4からその処理の状況の通知を求める要求(以下「通知要求」という)を記述したHTTPリクエストが送信されてきたときに、そのHTTPリクエストに対するHTTPレスポンスに状況情報を記述して送信することで、処理の状況を通知する。
表示装置4は、このHTTPリクエストによる通知要求を一定周期で繰り返し行い(いわゆるポーリングを行い)、通知手段104は、ポーリングによる通知要求を受ける度にその応答で処理の状況を通知する。本実施形態では、表示装置4は、処理の完了や処理の途中で障害が発生しして処理を中止した等の結果が通知されるまでポーリングを行い、通知手段104は、処理の結果を通知するまで処理の状況を繰り返し通知する。
まとめると、通知手段104は、第1の通知方法を用いた場合には、処理を要求したHTTPリクエストに対するHTTPレスポンスにより、要求された処理の結果を要求元の表示装置4に通知する。また、通知手段104は、第2の通知方法を用いた場合には、処理を要求したHTTPリクエストに対するHTTPレスポンスとは別の通信、すなわち、通知を要求するHTTPリクエストに対するHTTPレスポンスにより、処理の結果及びそれ以外の処理の状況を要求元の表示装置4に通知する。このように、通知手段104は、第1及び第2の通知方法を用いた場合には、表示装置4からの要求(処理要求または通知要求)があったときにその要求に対する応答で通知(いわゆるプル型の通知)を行う。
通知手段104は、第3及び第4の通知方法を用いた場合は、HTTPレスポンスとは異なる規格の通信により処理の状況を通知する。具体的には、通知手段104は、WebSocketの規格に基づく通信により処理の状況を通知する。第3及び第4の通知方法は、仲介手段101が、TCPのハンドシェイク手続きを行って自装置(情報処理装置10)とその表示装置4と接続させた状態で行われる。この状態で、通知手段104は、例えば処理手段103から状況情報が供給されると、WebSocketの規格に準拠するプロトコルを用いて状況情報として記述された通知データを生成する。通知手段104は、この通知データを、仲介手段101を介して表示装置4に送信することで、処理の状況を通知する。
通知手段104は、第3の通知方法では、表示装置4からHTTPリクエストによる処理要求があったときに、第2の通知方法のように、要求された処理の完了を待たずにまずは処理要求が受け付けられた旨をそのHTTPリクエストに対するHTTPレスポンスにより通知する。それ以降、通知手段104は、処理手段103から状況情報が供給されたときに、HTTPリクエストによる通知要求を受け取っていなくても、供給された状況情報を記述した通知データを表示装置4に送信して、処理の結果及びそれ以外の処理の状況を要求元の表示装置4に通知する。
つまり、通知手段104は、第3の通知方法を用いた場合には、処理を要求したHTTPリクエストに対するHTTPレスポンスとは別の通信(本実施形態ではWebSocketの規格に準拠した通信)により、その処理の結果及びそれ以外の処理の状況を通知する。
通知手段104は、第4の通知方法では、表示装置4からのHTTPリクエストによる処理要求の有無に関係なく、処理手段103から状況情報を供給されたときに、供給された状況情報を記述した通知データを表示装置4に送信して、その状況情報が表す状況を要求元の表示装置4に通知する。通知手段104は、第4の通知方法を用いた場合には、例えば「トナー切れ」や「用紙切れ」、「画像形成部の故障」など、予め定められた状況を通知する。なお、通知手段104は、各表示装置4について個別に定められた処理の状況を通知してもよい。
このように、通知手段104は、第3及び第4の通知方法を用いた場合、表示装置4からのHTTPリクエストに含まれる要求(処理要求及び通知要求)の有無に関係なく、能動的な通知(いわゆるプッシュ型の通知)を行う。
第1、第2及び第3の通知方法は、いずれも、要求された処理の状況(処理の結果も含む)を通知するための方法である。本実施形態では、表示装置4が処理を要求するときにその処理の結果等を通知する方法を指定する。通知手段104は、表示装置4によって指定された通知方法を用いて処理の結果等を通知する。
[1−3−5]操作手段
ユーザ装置20の操作手段200及び操作装置30の操作手段300(これらを区別しない場合は「操作手段400」という)は、情報処理装置10を操作するための手段である。操作手段400は、例えば表示装置4がブラウザのプログラムを実行することで実現される。操作手段200は、表示手段201と、要求手段202とを有し、操作手段300は、表示手段301と、要求手段302とを有する。それぞれユーザ装置20及び操作装置30を区別しない場合には、「表示手段401」及び「要求手段402」という。
[1−3−5−1]表示手段
表示手段401(ユーザ装置20の表示手段201及び操作装置30の表示手段301)は、情報処理装置10から送信されてきた情報や画像を表示する手段である。表示手段401は、例えば、情報処理装置10の通知手段104から送信されてきた通知データに記述された状況情報(処理の結果やそれ以外の処理の状況などを表す情報)を表示する。表示手段401は、例えば前述した図7に示す状況情報C1やC2を表示する。
また、表示手段401は、例えば情報処理装置10のURL(Uniform Resource Locator)にアクセスする操作をユーザが行った場合に、前述した操作画像データの要求データをこのURL、すなわち情報処理装置10に送信する。情報処理装置10の提供手段102がその応答で操作画像データを送信してくると、表示手段401は、受信した操作画像データに含まれる操作画像を表示する。具体的には、表示手段401は、操作画像データに含まれるHTML形式で記述された操作画像の配置や大きさなどのパラメータに基づいて、操作画像データを表示する。こうして表示された操作画像が例えば図6に示す操作画像データ群A1である。
操作画像データ群A1には、上述した操作画像データA11(コピーを開始させるという要求に対応した操作画像)の他に、コピー処理で用いられるパラメータを選択するための操作画像データが含まれている。例えば、図6に示す「倍率選択」、「用紙選択」及び「カラーモード選択」という文字列の下には、コピーする画像の倍率、コピーした画像を形成する用紙及びコピーした画像のカラーモードというパラメータを選択するための操作画像がそれぞれ表示されている。ユーザがこれらの操作画像を操作することでパラメータが選択される。
表示手段401は、選択されているパラメータを表す操作画像を他とは異なる態様で(この例では線を太くする態様。ハイライトなどの態様でもよい)で表示することで、選択されているパラメータがユーザに分かるようにしている。表示手段401は、表示した操作画像に関するデータを要求手段に供給する。操作画像に関するデータとは、操作画像が操作されたか否かを判断するために用いられるデータであり、例えば操作画像が表示されている領域を示すデータである。また、表示手段401は、選択されたパラメータを表すデータを要求手段に供給する。
また、操作画像データ群A1には、「処理状況」という文字列を含む操作画像データA12が含まれている。操作画像データA12が操作されると、図7に示すコピー処理の状況が表示され、「処理の中止」という文字列を含む操作画像データA13が表示される。操作画像データA13は、実行されている処理の中止を要求するための操作画像である。表示手段401は、操作画像データA13についても、前述した操作画像に関するデータを要求手段に供給する。
[1−3−5−2]要求手段
要求手段402(ユーザ装置20の要求手段202及び操作装置30の要求手段302)は、表示手段401により表示された操作画像に対する操作がユーザにより行われると、そのユーザの操作に応じた要求を、HTTPリクエストにより情報処理装置10に対して行う手段である。要求手段402は、例えば、操作画像への操作に対応する処理を情報処理装置10に要求する(つまり上述した処理要求を行う)。ここでいう処理は、処理手段103が実行する処理である。また、要求手段402は、操作画像への操作に応じて、先に要求した処理の状況及び結果の通知を情報処理装置10に要求する(つまり上述した通知要求を行う)。
要求手段402は、例えばユーザが操作部のタッチセンサをタップした場合に、表示手段401から供給されたデータに基づき、操作画像が表示されている領域(例えばボタン画像の表示領域内)にタップされた位置が含まれているか否かを判断する。要求手段402は、含まれていると判断した場合に、その領域に表示されている操作画像への操作を受け付ける。要求手段402は、上述した要求内容決定画像(図6の例であれば操作画像データA11)への操作を受け付けた場合に、表示手段401から供給されたデータが示すパラメータを用いて、その要求内容決定画像が示す処理を情報処理装置10に対して要求する。図6に示す状態で操作画像データA11に対する操作が行われた場合であれば、要求手段402は、110%の倍率でA4普通紙に白黒でコピーするための処理を情報処理装置10に要求する。
具体的には、要求手段402は、操作された要求内容決定画像に対応する処理(この例ではコピー処理)を、表示手段401から供給されたデータが示すパラメータを用いて行うという指示を記述した指示データを生成し、この指示データを含むHTTPリクエストを生成する。要求手段402は、生成した指示データを情報処理装置10に送信することで、情報処理装置10に対してHTTPリクエストにより処理を要求する。このように要求手段402が送信する処理を要求する旨を表すデータのことを以下では「処理要求データ」という。なお、コピー処理が要求される場合には、指示データを含む処理要求データが生成されるが、要求される処理によっては、処理要求データに指示データが含まれない場合もある。例えば情報処理装置10の電源を落とす処理が要求される場合には処理要求データに指示データが含まれない。
要求手段402がHTTPリクエストを送信すると、その応答でHTTPレスポンスが送信されてくる。要求手段402は、これらHTTPリクエストの送信とHTTPレスポンスの受信とを含む一連の処理を実行し、それらの処理の実行中はユーザの操作を受け付けない。例えば図6に示す操作画像データ群A1が表示されている場合であれば、それらの操作画像をユーザがタップしても、上述したタップした位置などの判断が行われない。つまり、要求手段402は、自手段が送信したHTTPリクエストに対するHTTPレスポンスを受け取るまでは、ユーザによる操作を受け付けない状態となる。要求手段402は、HTTPレスポンスを受け取ったあとは、再びユーザの操作を受け付ける状態になる。この状態においても、ユーザによる処理の中止の指示の操作は受け付けるようにしてもよい。
要求手段402は、処理要求を行う場合に、その処理の状況を通知する方法を指定し、指定した方法で通知することを要求する。具体的には、要求手段402は、上述した第1、第2、第3の通知方法のうちのいずれかを用いるように指定する。要求手段402は、例えば、指定する通知方法を処理要求データに記述して送信する。この場合、情報処理装置10の通知手段104が、処理要求データに記述された通知方法を用いて処理の状況を通知する。なお、要求手段402は、処理要求データとは別のXMLデータに指定する通知方法を記述してHTTPリクエストとして表示装置4に送信してもよい。この場合、通知手段104は、例えば、このHTTPリクエストに対するHTTPレスポンスで、通知方法の指定を受け付けた旨を通知し、それ以降の通知を指定された通知方法で行う。
また、要求手段402は、図7に示す操作画像データA13が操作された場合には、上記のとおり要求した処理が実行中であっても、その処理の中止を要求する。ユーザは、例えば、要求した処理が不要になった場合や処理の異常を表す通知がされた場合などに操作画像データA13を操作する。要求手段402は、操作画像データA13への操作を受け付け、処理の中止を要求する旨を記述した処理要求データを含むHTTPリクエストを情報処理装置10に対して送信する。
[1−3−6]制御手段
情報処理装置10の制御手段105は、処理手段103を制御して処理を実行させる手段である。制御手段105が制御を行う場合、例えば情報処理装置10のオペレーションシステムによって記憶領域が割り当てられる。この記憶領域は、処理手段103が処理を実行するための作業を行うために割り当てられるものであり、「作業領域」と呼ばれている(ワークエリアともいう)。以下では、「作業領域」と言った場合、制御手段105に対して割り当てられた記憶領域をいうものとする。
制御手段105は、作業領域を用いて、実行させる処理に応じた制御プログラムを実行する。制御プログラムは、処理手段103を制御するための機能を実現するためのプログラムであり、情報処理装置10の記憶部12やROMなどに記憶されている。なお、制御プログラムは1つのプログラムに限らず、複数のプログラム群であってもよい。制御手段105は、作業領域に、制御プログラムそのものやパラメータ、画像データなどのデータを記憶させて制御プログラムを実行する。制御手段105は、実行した制御プログラムの機能により処理手段103を制御する。
制御手段105は、例えば上述した操作画像データ(例えば図6に示す操作画像データA11など)を表示する表示装置4からその操作画像への操作に対応する処理を要求された場合に上記の制御を行う。具体的には、制御手段105は、表示装置4からの処理要求データが仲介手段101を介して送信されてきた場合に、処理手段103を制御して、その処理要求データにより要求された処理を実行させる。つまり、制御手段105は、表示装置4から処理要求データを含むHTTPリクエストにより処理が要求されると、処理手段103を制御して要求された処理を実行させる。表示装置4からHTTPリクエストとして送信されてきた処理要求データは、仲介手段101によって仲介されて制御手段105に供給される。
制御手段105は、例えば、処理要求データに含まれている指示データを解析し、解析した指示の内容のとおりに処理が実行されるように、処理手段103を制御する。具体的には、制御手段105は、指示された処理(例えばコピー処理)を指示されたパラメータで実行させる。これにより、処理手段103は、例えばユーザの操作によって定められた画質及び読取方法で媒体から画像を読み取り、読み取った画像を、ユーザの操作によって定められた出力形式、倍率、用紙及びカラーモードで形成する。
制御手段105は、制御プログラムを実行すると、1または2以上の処理を並行して実行する。この処理の単位を「タスク」といい、1以上のタスクを含む一連の処理を「トランザクション」という。例えば画像読取部13を制御する処理や画像形成部14を制御する処理がタスクとして実行され、コピー処理というトランザクションが実行される。制御手段105は、トランザクション及び各タスクを識別する情報として、トランザクションID及びタスク番号を発行し、これらを互いに対応付けて記憶部12に記憶させておく。
また、制御手段105は、要求元の表示装置4の通信の宛先と、処理要求データに記述されている通知方法(第1から第3の通知方法のうちのいずれか)とを、トランザクションIDに対応付けて記憶部12に記憶させる。制御手段105は、処理を実行させる際に、発行したトランザクションIDを処理手段103に供給し、処理手段103は、通知手段104に対して、上述した状況情報とともにトランザクションIDを供給する。通知手段104は、処理手段103から供給されたトランザクションIDに対応付けられた通信の宛先に対して、ともに供給された状況情報を記述した通知データを送信する。このとき、通知手段104が、そのトランザクションIDに対応付けられた通知方法で通知データを送信することで、指定された通知方法での通知が行われる。
[1−3−7]消去手段
情報処理装置10の消去手段106は、制御手段105に割り当てられた記憶領域(上述した作業領域)に記憶されたデータを消去する手段である。消去手段106には、要求手段402から送信されてきた処理の中止を要求する旨を記述した処理要求データを含むHTTPリクエストが仲介手段101を介して供給される。本実施形態では、消去手段106は、このHTTPリクエストにより表示装置4から処理の中止が要求されたときにデータの消去を行う。
消去手段106は、制御手段105が応答する状態(以下「応答状態」という)であるか応答しない状態(以下「非応答状態」という)であるかによって異なる手順でデータの消去を行う。応答状態とは、制御手段105が要求された処理を実行させているときに、他の処理が要求されれば、その要求に応答して他の処理も並行して実行させることが可能な状態であることをいう。
また、非応答状態とは、他の処理が要求されても制御手段105がそれを実行できない状態(いわゆるハングした状態)であることをいう。なお、他の処理が要求されてからその実行が開始されるまでに要する時間が基準時間(例えば5分や10分など)を超える場合には、非応答状態であるものとしてもよい。要求された処理が正常に実行されているときには応答状態になりやすく、何らかの異常が発生しているときには非応答状態になりやすい。
制御手段105は、要求された処理の実行を開始すると、その処理のトランザクションIDを消去手段106に供給する。消去手段106は、供給されたトランザクションIDを用いて、それにより識別される処理を実行する制御手段105の状態を判断する。情報処理装置10においては、制御手段105が実行する各タスクの状態が例えばオペレーションシステムのタスク管理機能によって「応答なし」であるかが監視され、上述したタスクIDに対応付けて管理されている。消去手段106は、トランザクションIDに対応付けて記憶されているタスクIDの状態をオペレーションシステムから取得し、「実行中」や「実行待ち」、「停止中」といった「応答なし」が含まれていなければ応答状態と判断し、「応答なし」が含まれていれば非応答状態と判断する。
消去手段106は、制御手段105が応答する状態(つまり応答状態)であれば、制御手段105に制御プログラムを終了させてから作業領域のデータを消去する。制御手段105は、実行している制御プログラムを終了させる場合、その制御プログラムについて定められた手順で終了のための処理(以下「終了処理」という)を実行する。制御手段105は、この終了処理において、例えば、実行中の制御プログラムを停止する処理と、作業領域に記憶されている更新されたデータをHDD等の不揮発な記憶手段に書き込む(これを「データを保存する」という)処理と、作業領域を解放する処理とを行う。
消去手段106は、応答状態である制御手段105に対して前述した終了処理を行うように指示する。制御手段105は、応答状態であるため、この指示を受け付けて終了処理を実行する。制御手段105は、終了処理を完了するとその旨を消去手段106に伝える。消去手段106は、制御手段105から終了処理が完了した旨が伝えられると、制御手段105に割り当てられていた記憶領域に記憶されているデータを消去する。
一方、非応答状態では、制御手段105が他の処理を実行できないため、制御プログラムの終了処理も実行できない。そのため、消去手段106は、制御手段105が応答しない状態(つまり非応答状態)であれば、制御手段105に制御プログラムを終了させることなく、作業領域のデータを消去する。この場合、更新されたデータが作業領域に記憶されていてもHDD等に保存されることなく消去されるが、例えば排他制御された2つのタスクが互いに相手の結果を待つ状態(いわゆるデッドロック)が生じていると、作業領域に記憶されたそれらのタスクで用いられるデータも消去されるので、その状態が解消され、制御プログラムが新たに実行可能となる。
また、消去手段106は、作業領域W1の割り当てを解放するように例えばオペレーションシステムに対して指示する。この指示は、例えばオペレーションシステムにおいて用意されたコマンドを発行することによって行われる。オペレーションシステムは、この指示を受けると、例えば作業領域W1を割り当てるために記憶していたパラメータ(例えば作業領域W1の先頭及び最後尾のアドレス)を削除または初期化して、作業領域W1を解放する。
また、上述したタスクの中には、まだ実行されていないが、実行待ちの状態(いわゆるキューに格納された状態)にされているものがある。このキューが作業領域に記憶されている場合には、消去手段106はそれを消去する。また、キューが作業領域外に記憶されている場合には、消去手段106は、トランザクションIDに対応付けられているタスクIDを用いて、制御手段105が実行することになっていたタスクを特定してキューから消去する。これにより、キューに残ったタスクが実行されてCPU等のハードウェア資源に負荷がかかることが避けられる。
消去手段106によるデータの消去の具体例について図8を参照して説明する。
図8は、RAM及びHDDに記憶されるデータの遷移の一例を示す図である。図8(a)に示す状態では、HDDに「PGM1」及び「PGM2」という制御プログラムに含まれるプログラムと、「D1」及び「D2」というデータとが記憶され、RAMにはデータが記憶されていない。この状態で、制御手段105の作業領域W1(図中の点線で囲まれた領域)が割り当てられる。
制御手段105は、図8(b)に示すように、HDDに記憶されているプログラム及びデータを作業領域W1にコピーし、記憶させたプログラム「PGM1」及び「PGM2」を実行することで、上述したタスクを実行する。図8(c)では、「PGM1」及び「PGM2」を囲う矩形の線を太くすることで、これらのプログラムに対応するタスクが実行されていることを表している。この例では、各タスクが実行されることで、「D2」というデータが図8(c)に示すように「D2a」に更新される。表示装置4から処理の中止が要求されると、消去手段106は、作業領域W1に記憶されているデータを消去する。
消去手段106は、制御手段105が応答状態であれば、終了処理を行うように制御手段105に対して指示する。この指示により、制御手段105は、図8(d)に示すように、実行されていたタスクを停止し、更新されたデータをHDDにコピーする。それから消去手段106は、RAMに記憶されているプログラム及びデータを図8(e)に示すように消去する。この場合、更新されたデータ「D2a」がHDDに保存される。
消去手段106は、制御手段105が非応答状態であれば、図8(f)に示すようにタスクが実行されている状態からRAMに記憶されているプログラム及びデータを図8(g)に示すように消去し、作業領域W1を解放させる。この場合、更新されたデータ「D2a」はHDDに保存されないが、実行されていた「PGM1」及び「PGM2」に対応するタスクは強制的に終了することになる。
例えば制御手段105の状態に関係なく終了処理をさせてからデータを消去しようとすると、非応答状態の場合、制御手段105が他の処理を実行できないため、終了処理が実行されず、当然完了もしない。そのため、データの消去が始まらず、作業領域にデータが残ってしまう。すると、前述したデッドロックが生じていてもそれが解消されず、新たな制御プログラムの実行が阻害される。本実施形態では、消去手段106が非応答状態のときは終了処理をさせることなくデータを消去するので、消去されなかったデータによって制御プログラムの実行が阻害されることがない。
反対に、制御手段105の状態に関係なく終了処理をさせることなくデータを消去すると、応答状態の場合であっても、更新されたデータが保存されない。例えば更新されたデータが既に他の処理で使用されていると、再度制御プログラムを実行したときに、データの不整合が生じることがある。本実施形態でも、非応答状態になってしまうと更新されたデータが保存されないが、応答状態の場合には、更新データが保存されるのでそういった不整合が生じない。このように、本実施形態によれば、制御プログラムの機能により実行される処理を途中で中止した場合に、一律の手順で処理を中止させるときに比べて、その制御プログラムがより安定した状態で次回も実行されることになる。
[1−4]階層構造
情報処理システム1の構成について、その構成を階層構造で表した図9及び図10を参照して説明する。
図9は、情報処理システム1の構成を表す階層構造の一例を示す図である。情報処理システム1は、プレゼンテーション層40と、インターフェース50と、ファンクション層60と、ミドルウェア層70と、ハードウェア層80とを備える。プレゼンテーション層40は、ユーザによる操作を受け付ける機能(いわゆるユーザインターフェース)を実現する層であり、図5に示す操作手段400として機能する。
プレゼンテーション層40は、UI制御部41と、デバイス制御部42と、通信部43とを備える。UI制御部41は、ユーザインターフェースを制御する部分であり、上述した操作画像や状況情報を表示したり、ユーザの操作を受け付けたりする。UI制御部41は図5に示す表示手段401によって実現される。デバイス制御部42は、ユーザの操作に基づいて情報処理装置10に対して上記のとおり処理を要求し、後述するファンクション層60を制御する。デバイス制御部42は、要求手段402によって実現される。通信部43は、UI制御部41及びデバイス制御部42が情報処理装置10と行う通信を制御する。
インターフェース50は、プレゼンテーション層40とファンクション層60との接続を仲介する機能を実現する層である。プレゼンテーション層40とインターフェース50との接続は、図1に示す通信機器3等の通信機能を有する装置を介する場合(ユーザ装置20との接続)と、そういった外部装置を介さない場合(操作装置30との接続)とがある。ファンクション層60は、コピー機能やスキャン機能など、目的とする用途に沿ってデータを加工する機能を実現する層である。ミドルウェア層70は、ファンクション層60とハードウェア層80との中間で汎用的な処理を実行する層である。ハードウェア層80は、画像読み取りや画像形成などの処理を物理的に実現する層である。
ファンクション層60は、受付・応答部61と、イベント通知部62と、操作画像管理部63と、操作画像DB(Data Base:データベース)64と、コピー機能やスキャン機能などを提供する機能部65とを備える。受付・応答部61は、プレゼンテーション層40からインターフェース50を介して送信されてくる処理要求データが示す処理の要求を受け付け、機能部65に処理を依頼する。このとき、受付・応答部61は、上述したトランザクションIDの発行も行う。また、受付・応答部61は、受け付けた要求に対する応答を示す応答データを、インターフェース50を介してプレゼンテーション層40に送信する。応答データは、要求を受け付けた旨を示すだけの場合もあれば、状況情報を示す場合もある。つまり、受付・応答部61は、処理の状況の通知を行うこともあり、その通知は、上述した第1及び第2の通知方法によるプル型の通知となる。
イベント通知部62には、機能部65を介して状況情報が供給される。イベント通知部62は、供給された状況情報を記述した通知データを生成し、この通知データをWebSocketのプロトコルを用いてインターフェース50を介してプレゼンテーション層40に送信する。つまり、イベント通知部62が行う通知は、上述した第3及び第4の通知方法によるプッシュ型の通知である。操作画像管理部63は、プレゼンテーション層40に送信する操作画像データの管理を行う。操作画像DB64は、操作画像データを格納するデータベースである。機能部65は、情報処理装置10がユーザに提供する機能を実現するためのモジュール群である。
図10は、機能部65に含まれるモジュール群の一例を示す図である。機能部65には、コピー機能、スキャン機能、FAX機能、プリント機能、宛先表管理機能(宛先情報を管理する機能)、デバイス管理機能(画像読取部13の原稿セット状態や画像形成部14の媒体、消耗品の状態などを管理する機能)、認証機能、親展ボックス機能(情報処理装置10に記憶されている電子文書を管理する機能)、プレビュー機能、ダウンロード機能(プログラムの更新を制御する機能)、保守機能(リモートからの要求に従いハードウェアをメンテナンスする機能)、診断機能(ハードウェアを診断する機能)をそれぞれ実現するためのモジュールが含まれている。
図9に示すインターフェース50は、図5に示す仲介手段101として機能する。操作画像管理部63及び操作画像DB64が協働することで提供手段102として機能し、ミドルウェア層70及びハードウェア層80が協働することで処理手段103として機能する。また、受付・応答部61及びイベント通知部62が協働することで通知手段104として機能し、受付・応答部61及び機能部65が協働することで制御手段105として機能する。
図11は、情報処理システム1の構成を表す階層構造の一例を示す図である。図10に示したモジュール群は、それぞれ、要求部651及び管理部652と、画像形成制御部653、画像読取制御部654及び通信制御部655のうち各モジュールにおいて利用される制御部(以下「利用制御部」という)とを有する。例えば、コピー機能を実現する場合には、画像形成制御部653及び画像読取制御部654が利用制御部となり、プリント機能を実現する場合には、画像形成制御部653が利用制御部となる。以下では、プリント機能を実現するモジュールが実行される場合を例に挙げて、各モジュールの役割について説明する。
画像のプリントを要求する操作がユーザによって行われると、プレゼンテーション層40からジョブの起動を要求する要求データがインターフェース50を介してファンクション層60に送信される。受付・応答部61はこの要求データを受信して、受信した要求データを解析し、要求の内容に応じたモジュールの要求部651(この例ではプリント機能の要求部651)に要求データを供給する。要求部651は、供給された要求データを解析し、ミドルウェア層70に対してジョブの生成を要求する。ミドルウェア層70は、要求されたジョブを生成する処理を行い、その処理結果を要求部651に通知する。要求部651は、通知された処理結果を受付・応答部61及びインターフェース50を介してプレゼンテーション層40に通知する。
プレゼンテーション層40は、通知された処理結果を表示する。また、ミドルウェア層70は、生成したジョブを前述した利用制御部(プリント機能の場合は画像形成制御部653)に供給する。利用制御部は、供給されたジョブをユーザに提示する形式で表したユーザジョブを生成し、ユーザジョブの内容を示すデータを、ミドルウェア層70を介して管理部652に供給する。管理部652は、供給されたデータが示すユーザジョブの内容を示す通知データを生成する。このユーザジョブの内容は、上述した状況情報にあたるものであり、管理部652が生成する通知データは、上述した状況情報データである。管理部652は、生成した状況情報データを、イベント通知部62及びインターフェース50を介してプレゼンテーション層40に送信する。こうしてジョブに関するプッシュ型の通知が行われる。
ジョブの一時停止、中止、継続及び優先順位変更等の処理を要求する操作がユーザによって行われると、プレゼンテーション層40からそれらの処理を要求する要求データがインターフェース50を介してファンクション層60に送信される。受付・応答部61はこの要求データを受信して、受信した要求データを解析し、要求の内容に応じたモジュールの管理部652(この例ではプリント機能の管理部652)に要求データを供給する。管理部652は、供給された要求データを解析し、要求された処理を行うようにミドルウェア層70に要求する。ミドルウェア層70は、要求された処理を行い、その処理結果を管理部652に通知する。管理部652は、通知された処理結果を受付・応答部61及びインターフェース50を介してプレゼンテーション層40に通知する。プレゼンテーション層40は、通知された処理結果を表示する。
[1−5]動作
[1−5−1]ユーザの操作に基づく動作
情報処理システム1は、以上の構成に基づき、ユーザの操作に応じて画像形成等の処理を実行するための実行処理を行う。実行処理において情報処理システム1が備える各装置が行う動作について、図12及び図13を参照して説明する。
図12は、実行処理における各装置の動作の一例を示すシーケンス図である。図12の例では、ユーザがユーザ装置20を操作する場合について説明する。実行処理は、例えば、ユーザがユーザ装置20に対して、ブラウザを起動して情報処理装置10のURLにアクセスする操作を行うことを契機に開始される。
まず、ユーザ装置20が、操作画像データを要求する要求データを通信機器3を介して情報処理装置10に送信する(ステップS11)。情報処理装置10は、要求データを受信すると、その要求データが要求する操作画像を含む操作画像データを生成して(ステップS12)、ユーザ装置20に通信機器3を介して送信する(ステップS13)。ユーザ装置20は、受信した操作画像データに含まれる操作画像を表示する(ステップS14)。ステップS11及びS14は表示手段301が行う動作であり、ステップS12及びS13は提供手段102が行う動作である。
次に、表示された操作画像データに対してユーザが操作を行うと、ユーザ装置20は、そのユーザ操作を受け付ける(ステップS21)。ステップS21で指示内容決定画像(例えば図6に示す操作画像データA11)へのユーザ操作を受け付けると、ユーザ装置20は、操作画像への操作により定められた処理の要求を示す処理要求データを生成し(ステップS22)、情報処理装置10に通信機器3を介して送信する(ステップS23)。情報処理装置10は、処理要求データを受信すると、その処理要求データが示す要求に応じて処理を実行する(ステップS24)。ステップS21、ステップS22及びS23は要求手段302が行う動作である。ステップS24は処理手段103及び制御手段105が協働して行う動作である。
情報処理装置10は、例えば処理の状況が更新される度に、上述した状況情報データを生成して(ステップS31)、ユーザ装置20に通信機器3を介して送信する(ステップS32)。ユーザ装置20は、状況情報データが送信されてくると、その状況情報データが示す状況情報を表示する(ステップS33)。ステップS31及びS32は通知手段104が行う動作であり、ステップS33は表示手段301が行う動作である。また、ステップS11、S13、S23及びS32における通信は、いずれも仲介手段101及び通信機器3を介して行われる。
図13は、実行処理における各装置の動作の別の一例を示すシーケンス図である。図13では、ユーザが操作装置30を操作する場合を示している。この場合も、図12に示した各ステップの動作が行われ、ユーザ装置20が行っていた動作は操作装置30が行う。また、ステップS11、S13、S23及びS32における通信は、いずれも仲介手段101を介す一方、通信機器3を介さずに行われる。
[1−5−2]4つの通知方法での動作
以下、情報処理装置10の通知手段104が上述した第1から第4までの4つの通知方法で状況を通知する際に各装置が行う動作について、図14から図17までを参照して説明する。図14から図16までにおいては、表示装置4のデバイス制御部42と、情報処理装置10の受付・応答部61、イベント通知部62、ミドルウェア層70及びハードウェア層80とが動作の主体としてそれぞれ示す。図17においては、それらの動作の主体のうち、受付・応答部61をインターフェース50に代えて示す。
図14は、第1の通知方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図14に示す動作は、例えば、ユーザがコピーを行う前に、コピーのためのパラメータ(倍率や用紙のサイズ、カラーモードなど)を変更する操作を行うことを契機に開始される。まず、表示装置4のデバイス制御部42が、パラメータを変更する操作を受け付けると(ステップS111)、パラメータの変更の要求を記述した処理要求データを情報処理装置10に対してHTTPリクエストに含めて送信する(ステップS112)。ステップS111は図12及び図13に示すステップS21(ユーザ操作の受け付け)に対応し、ステップS112はステップS22及びS23(処理要求データの生成及び送信)に対応する。
情報処理装置10の受付・応答部61は、その処理要求データを受信すると、そこに記述された要求の内容を解釈し(ステップS113)、解釈した内容での処理の実行を情報処理装置10のミドルウェア層70に指示する(ステップS114)。ミドルウェア層70は、ハードウェア層80と協働して、指示された処理、すなわちパラメータの変更を実行する(ステップS115)。ステップS113からS115までは図12及び図13に示すステップS24(処理の実行)に対応する。
ミドルウェア層70及びハードウェア層80は、処理の結果を表す情報を状況情報として受付・応答部61に供給する(ステップS116)。受付・応答部61は、供給された状況情報(この例ではパラメータの変更結果)を記述した通知データを生成し(ステップS117)、処理の要求元である表示装置4にHTTPレスポンスに含めて送信する(ステップS118)。表示装置4のデバイス制御部42は、送信されてきた通知データに記述された状況情報を自装置の表示部に表示させる(ステップS119)。ステップS116及びS117は図12及び図13に示すステップS31(通知データの生成)に対応する。ステップS118はステップS32(通知データの送信)に対応し、ステップS119はステップS33(状況情報の表示)に対応する。
図15は、第2の通知方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図15に示す動作は、例えば、ユーザが情報処理装置10の画像読取部13に原稿をセットし、表示装置4に対してコピーを開始させる操作を行うことを契機に開始される。まず、表示装置4のデバイス制御部42は、コピーを開始させる操作を受け付けると(ステップS121)、受け付けた操作に応じた指示データを作成する(ステップS122)。デバイス制御部42は、作成した指示データを記述した処理要求データを、図9に示す通信部43を介して情報処理装置10に送信する(ステップS123)。情報処理装置10の受付・応答部61は、図9に示すインターフェース50を介して処理要求データを受け取ると、記述された指示データに基づく指示の内容を解釈し(ステップS124)、その処理に対応するトランザクションIDを発行する(ステップS125)。
受付・応答部61が、解釈した処理の内容に基づいて処理の指示を表す情報(この例ではコピージョブ。以下「処理指示情報」という)を生成してトランザクションIDとともにミドルウェア層70に供給すると(ステップS126)、ミドルウェア層70及びハードウェア層80が協働して、供給された処理指示情報に基づく処理(コピー処理)を実行する(ステップS127)。受付・応答部61は、処理指示情報を供給したあと、コピー処理の要求を受け付けたことを表す情報(例えば「コピーを受け付けました。」という文字列)と発行したトランザクションIDとを記述した通知データをHTTPレスポンスに含めて表示装置4に送信する(ステップS131)。なお、ステップS131の動作は、ステップS126の動作と並行してまたはそれよりも前に行われてもよい。表示装置4のデバイス制御部42は、HTTPレスポンスを参照し、要求が受け付けられた旨を表す情報を自装置の表示部に表示させるとともに(ステップS132)、トランザクションIDを自装置の記憶部に記憶させる(ステップS133)。
表示装置4のデバイス制御部42は、コピー処理の要求に対する応答を受け取ったあと、そのコピー処理の状況の通知を求める通知要求と、ステップS133において記憶させたトランザクションIDとを記述したデータをHTTPリクエストに含めて送信する(ステップS141)。情報処理装置10の受付・応答部61は、そのトランザクションIDに対応付けられたコピー処理の状況情報がまだ供給されていなければ、その旨を記述した通知データを生成してHTTPレスポンスに含めて表示装置4に送信する(ステップS142)。ステップS141及びS142の動作は繰り返し行われる。
情報処理装置10のミドルウェア層70は、コピー(読み取った原稿を示す画像)を媒体に出力すると、それを検知して(ステップS151)、コピーが媒体に出力されたという状況を示す状況情報を、ステップS126に供給されたトランザクションIDに対応付けて受付・応答部61に供給する(ステップS152)。受付・応答部61は、供給された状況情報及びトランザクションIDを記憶部12に記憶させておく(ステップS153)。受付・応答部61は、ステップS153以降に通知要求及びトランザクションIDが記述されたHTTPリクエストを受信すると(ステップS141)、HTTPリクエストに含まれるトランザクションIDに対応付けられた状況情報を記憶部12から読み出し、その状況情報を記述した通知データを生成してHTTPレスポンスを発行する(ステップS154)。
受付・応答部61が生成したHTTPレスポンスを表示装置4に送信すると(ステップS155)、表示装置4のデバイス制御部42は、ステップS132のように、HTTPレスポンスに記述された状況情報を自装置の表示部に表示させる(ステップS156)。以上のとおり表示装置4が要求した処理に関する情報がトランザクションIDによって対応付けられることで、処理の状況がその処理の要求元である表示装置4に対して通知される。以降、コピー処理が完了したときに処理の結果が通知されるまで、ステップS151からS156までの動作が繰り返し行われる。
図16は、第3の通知方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図16に示す動作は、図15のように、コピーを開始させる操作をユーザが行うことを契機に開始される。まず、表示装置4のデバイス制御部42が、コピーを開始させる操作を受け付けると(ステップS121)、イベント通知部62によるプッシュ型の通知、すなわち第3の通知方法を指定する旨を記述した通知要求データを情報処理装置10に送信する(ステップS161)。情報処理装置10の受付・応答部61は、その通知要求データを受信すると、そこに第3の通知方法を指定する旨が記述されていることをミドルウェア層70に伝達する(ステップS162)。
ミドルウェア層70は、伝達された指定を受け付け、表示装置4に対して今後第3の通知方法での通知を行うための設定を行う(ステップS163)。ミドルウェア層70は、例えば第3の通知方法を行うか否かを表すフラグをONにする。このように、図16の例では、処理要求データとは別の通知要求データにより通知方法を指定している。なお、表示装置4のデバイス制御部42は、指定する通知方法を処理要求データに記述してもよい。その場合、受付・応答部61がステップS126において指示情報及びトランザクションIDをミドルウェア層70に供給する際に第3の通知方法が指定された旨を伝達することで、第3の通知方法の設定が行われる。
次に、図15に示すステップS122からS127までの動作と、ステップS131からS133までの動作が行われる。続いて、情報処理装置10のミドルウェア層70及びハードウェア層80は、ステップS151(コピー出力の検知)の動作を行うと、前述したフラグがONになっているため、コピーが媒体に出力されたという状況を示す状況情報とトランザクションIDとを受付・応答部61ではなく、イベント通知部62に供給する(ステップS172)。イベント通知部62は、供給された状況情報(コピー枚数等)とトランザクションIDとを記述した通知データを生成して(ステップS173)、表示装置4に送信する(ステップS174)。表示装置4のデバイス制御部42は、通知データに記述された内容(例えば図7(a)に示す状況情報C1)を自装置の表示部に表示させる(ステップS175)。以降、コピー処理が完了したときに処理の結果が通知されるまで、ステップS151及びステップS172からS175までの動作が繰り返し行われる。
図17は、第4の通知方法が用いられる場合の各装置の動作の一例を示すシーケンス図である。図17に示す動作は、表示装置4においてブラウザが起動され、情報処理装置10にアクセスする操作(URLの入力やブックマークの選択など)が行われることを契機に開始される。まず、表示装置4のデバイス制御部42が、そのアクセスのための操作を受け付けて(ステップS191)、通信部43と協働して、情報処理装置10のインターフェース50とWebSocketの規格に準拠した接続を行う(ステップS192)。
それ以降に、情報処理装置10において予め定められた状況(トナー切れや用紙切れ、画像形成部の故障など)が発生すると、情報処理装置10のミドルウェア層70及びハードウェア層80が協働して、その定められた状況を検知し(ステップS201)、検知した状況を表す状況情報をイベント通知部62に供給する(ステップS202)。イベント通知部62は、供給された状況情報を記述した通知データを生成し(ステップS203)、その通知データを、WebSocketの接続をしている表示装置4にインターフェース50を介して送信する(ステップS204)。表示装置4のデバイス制御部42は、ステップS204で受信した通知データに記述された状況情報を自装置の表示部に表示させる(ステップS205)。
なお、上述したように、表示装置4毎に異なる状況が通知されてもよい。その場合には、ステップS192のあとに、デバイス制御部42が、自装置に通知すべき状況を記述した通知要求データを情報処理装置10に通信部43を介して送信する。インターフェース50を介してそれを受け取ったイベント通知部62は、その通知すべき状況を、表示装置4の宛先に対応付けて記憶しておく。イベント通知部62は、ステップS202で供給された状況情報が、記憶しておいた通知すべき状況を表している場合に、その状況の通知を行う。
[2]変形例
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態及び以下に示す各変形例は、必要に応じて組み合わせて実施してもよい。
[2−1]通信の規格
実施形態では、ユーザ装置20は、無線LANの規格に準拠する無線通信を行う通信部を備えていたが、これに限らず、例えば操作装置30の通信部33のように有線LANの規格に準拠する通信を行う通信部を備えていてもよい。この場合、ユーザ装置20は、有線LANのルータやハブなどに通信用のケーブルを介して接続される。この場合のユーザ装置20の通信部も、上述した他の通信装置(情報処理装置10とは異なる通信装置。例えばルータやハブなど)と通信する通信手段として機能する。また、無線通信を行う通信部として、Bluetooth(登録商標)、NFC(Near field communication)などの規格に準拠する無線通信を行う通信部を備えるようにしてもよい。
また、実施形態では、情報処理装置10の第1通信部15と操作装置30の通信部33が有線LANの規格に準拠して通信を行ったが、これに限らず、例えば、USB(Universal Serial Bus)やHDMI(登録商標)(High-Definition Multimedia Interface)などの規格に準拠する通信を行ってもよいし、他にも、無線LANやBluetooth、NFCなどの規格に準拠する無線通信を行ってもよい。いずれの場合も、操作装置30の通信部33は、ルータやハブなどの他の通信装置を介さずに情報処理装置10の第1通信部15と通信する。
[2−2]操作装置の構成
操作装置30は、実施形態では図2に示すように制御部31及び記憶部32を備えていたが、これらを備えていなくてもよい。
図18は、本変形例の情報処理装置のハードウェア構成の一例を示す図である。図18の例では、図4に示す各部のうち、表示部以外の各部を備える情報処理装置10aと、操作装置30aとが示されている。本変形例でも、操作装置30aは情報処理装置10aの筐体に固定されている。操作装置30aは、図3に示す通信部33と、UI部36とを備える。
通信部33及びUI部36は、情報処理装置10a内のバスに接続され、制御部11によって制御されるようになっている。また、通信部33は、第1通信部15とも接続されている。UI部36は、表示面と表示面に重ねられたタッチセンサとを備え、ユーザからの操作を受け付けるとともに画像を表示する。UI部36は、受け付けたユーザの操作に応じた操作データを制御部11に供給し、制御部11は、この操作データに応じた処理を行う。
本変形例では、制御部11がブラウザのプログラムを実行することで図5に示す操作手段300の機能を実現する。例えば表示手段301は、第1通信部15を介して送信されてきた操作画像データを通信部33を介して受信し、UI部36に表示する。また、要求手段302は、UI部36がタップされることで操作画像への操作を受け付ける。また、要求手段302は、そうして受け付けた操作により定められた指示を示す指示データを、通信部33及び第1通信部15を介して送信する。このように、本変形例においても、情報処理装置と表示装置4との通信が、他の通信装置を介す場合も介さない場合も共通の仲介手段を介して行われることになる。
[2−3]操作装置の設置
操作装置30は、実施形態や上記変形例では情報処理装置の筐体に固定されていたが、固定されていなくてもよい。
図19は、本変形例の情報処理装置のハードウェア構成の一例を示す図である。図19の例では、図4に示す各部のうち、表示部以外の各部を備える情報処理装置10bと、操作装置30bとが示されている。操作装置30bは、図3に示す各部を備え、図5に示す操作手段200として機能する装置である。
操作装置30bは、通信用のケーブルまたはデータバスケーブルを介して第1通信部15に接続されており、情報処理装置10bの筐体上またはその周囲の机等に設置された状態でユーザにより使用される。この操作装置30bは、実施形態の操作装置30のように、他の通信装置(例えば図1に示す通信機器3)を介さずに情報処理装置10と通信を行う。なお、操作装置30bは、通信用のケーブルまたはデータバスケーブルを取り外して、別の場所に持って行き別の用途に用いてもよい。なお、図19の例では、操作装置30bに代えて、操作手段として機能する他の装置(例えば図1等に示したユーザ装置20)が接続されてもよい。また、操作装置30bを、通信機器3に接続させて、通信機器3及び通信回線2を介して情報処理装置10bと通信させてもよい。
[2−4]処理手段
処理手段103が行う処理は、実施形態で述べたものに限らず、どういった処理であってもよい。例えば、処理手段103は、情報処理装置が工場の機械とそれを制御する装置とを有するものである場合に、その機械で材料を搬送したり加工したりする処理を行う。この場合も、ユーザ装置20及び操作装置30のどちらからでも共通の仲介手段を介した通信が行われることによって情報処理装置が操作されるようになる。
[2−5]要求手段
要求手段402は、実施形態では、タッチセンサで操作を受け付けたが、これに限らず、自装置がタブレット端末であれば筐体に設けられたボタンで操作を受け付けてもよいし、自装置がパーソナルコンピュータであればキーボードやマウスなどで操作を受け付けてもよい。
[2−6]仲介手段
仲介手段101は、実施形態では、SOAPの規格に準拠していたが、これに限らず、例えばREST(Representational State Transfer)やSGML(Standard Generalized Markup Language)などの規格に準拠して通信を仲介してもよい。要するに、仲介手段101は、ウェブで用いられる規格に準拠して通信を仲介するものであればよい。これにより、ブラウザを実行可能な大半の装置が操作用装置として利用可能となる。
[2−7]処理の中止
実施形態では図7に示す操作画像データA13が操作されることで処理が中止されたが、これに限らず、何らかの条件が満たされた場合に処理が中止されてもよい。例えば、処理が開始されてから長時間(5分や10分など)が経過した場合や、情報処理装置10がバッテリーなどの予備電源を持っていて主電源が切れた場合など、強制的に処理を中止させた方がよい状況が生じた場合に満たされる条件が用いられるとよい。この場合、消去手段106が、これらの条件が満たされた場合に、実施形態のように作業領域のデータを消去する。
[2−8]提供手段
図7に示す操作画像データA13、すなわち処理の中止を要求するための操作画像が、必要なときにだけ表示されてもよい。この場合、提供手段102が、制御手段105が非応答状態である場合に、中止を要求する操作を受け付けるための操作画像(操作画像データA13がその一例)を表示装置4に提供する。提供手段102は、例えば、決められた時間の間隔(10秒毎や30秒毎など)で、消去手段106のように制御手段105の状態を監視する。
提供手段102は、制御手段105から応答を示すデータが供給されなくなると、非応答状態であると判断し、例えばWebSocketの規格に準拠したXMLデータを表示装置4に送信することで操作画像データA13を提供する。こうしてそれまで表示されていなかった操作画像データA13、すなわち処理を中止させるための操作画像が表示されることで、処理を中止すべきタイミングがユーザに通知されることになる。
提供手段102は、制御手段105の監視を、上記とは異なるタイミングで行ってもよい。提供手段102は、例えば、自装置が表示装置4と通信したときに制御手段105が応答しない状態であれば、操作画像データA13を表示装置4に提供する。ここでいう通信は、例えば、処理要求や通知要求を表すHTTPリクエストや操作画像データ要求データの表示装置4による送信である。他にも、情報処理装置10からの通知データの送信が用いられてもよい。
情報処理装置10と表示装置4が通信するときには、通信しないときに比べて、ユーザが表示装置4を使用している可能性が高い。そのため、上記のように通信があったときに操作画像データA13が提供されるようにすることで、通信の有無に関係なく操作画像データを提供する場合に比べて、処理を中止すべきタイミングがより確実にユーザに伝わるようになる。特に、表示装置4から発信される通信を用いると、ユーザが表示装置4を使用している可能性がより高くなり、通信の発信元に関係なく操作画像データを提供する場合に比べて、前述したタイミングがさらに確実にユーザに伝わるようになる。
ところで、上述した第3の通知方法での通知が行われると、第1の通知方法での通知が行われた場合のように処理が完了するまでHTTPレスポンスを待つということがないので、その場合に比べてHTTPレスポンス待ちで操作が受け付けられない期間が短くなる。しかし、制御手段105が非応答状態になると、通知の対象となる状況が発生しなくなって通知が行われなくなるおそれがある。そうなると、異常が生じていることにユーザが気付かずに作業領域のデータが放置され、情報処理装置10の記憶領域が有効に使われなくなることが起こり得る。
本変形例では、第3の通知方法で通知が行われるときに制御手段105が非応答状態になっても、上記のとおり操作画像データA13を提供することで処理を中止すべきタイミングがユーザに通知される。これにより、第3の通知方法が用いられる場合において、操作画像データA13の提供が本変形例のように行われない場合に比べて、作業領域にデータが残り続けることが抑制される。
[2−9]制御手段の監視
消去手段106は、実施形態では、オペレーションシステムのタスク管理機能からタスクの状態を取得したが、これに限らず、自手段がタスクの状態を監視する機能を有していていもよい。また、情報処理システムが別に監視手段を有していてもよい。
図20は、本変形例の情報処理装置10cの機能構成の一例を示す図である。情報処理装置10cは、図5に示す各手段に加え、監視手段107を備える。監視手段107には、制御手段105からトランザクションIDが供給される。
監視手段107は、供給されたトランザクションIDに対応付けて記憶されているタスクIDにより識別されるタスクの状態を監視する。消去手段106は、処理の状態を判断する際に、その処理を識別するトランザクションIDを監視手段107に供給する。監視手段107がそのトランザクションIDに対応付けられたタスクIDのタスクの状態を消去手段106に伝えることで、消去手段106は処理の状態を判断する。
[2−10]発明のカテゴリ
本発明は、情報処理装置、表示装置、通信機器及びこれらの装置を備える情報処理システムの他にも、これらの装置が実施する処理を実現するための情報処理方法としても捉えられるものである。また、本発明は、情報処理装置及び表示装置というコンピュータを、上述した各手段として機能させるためのプログラムとしても捉えられるものである。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されたり、インターネット等の通信回線を介して、コンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態でも提供されたりする。