従来技術では、これら何種類ものソフトウェアを全てインストールしていなければ、画像の入力から印刷までの一連の処理を実現することができなかった。このため、画像の入出力に使用する新たなデバイスが増える度に新たなソフトウェアのインストールが必要とされ、新たなレタッチを実現するためには新たなレタッチソフトのインストールが必要とされていた。新たなソフトウェアをインストールすることは、コンピュータのハードウェア資源を消費し、また、煩雑な作業でもあるため、画像の入出力に関する利便性を損ねる場合があった。
入出力の各段階で個別のソフトウェアが要求されることは、特に、コンピュータになじみの薄いユーザにとって深刻な課題であった。これらのユーザにとっては、各ソフトウェアをインストールし、その使用方法を覚えることは大きな負担となっていた。近年では、コンピュータになじみの薄いユーザが増えつつあり、こうした負担の軽減が要望されていた。
従来技術では、画像の入出力は、「入力→レタッチ→出力」というように手順が固定されていた。例えば、ユーザは、画像を入力することなく、レタッチ方法のみを先に指定しておいたり、印刷先となるプリンタや印刷モードを指定しておいたりすることはできなかった。このため、例えば、予めレタッチ方法、印刷先等を指定した上で、複数の画像を順次差し替えて印刷を行うことは、比較的困難であった。
上述の課題は、画像の入出力だけでなく、音声の入出力時にも同様に生じ得た。本発明は、これらの課題に鑑みてなされたものであり、画像または音声の入出力における利便性を向上することを目的とする。
上記課題の少なくとも一部を解決するために、本発明では、以下に示す構成からなる入出力制御装置を用い、画像または音声を再現するための視聴覚データの入出力を行う複数のデバイスのうち、任意のデバイス間で視聴覚データの入出力を実行可能とした。
本発明によるアプリケーションサーバは、画像または音声を再現するための視聴覚データの入力、編集または出力を行うための複数の個別機能部と、前記複数の個別機能部の動作内容を指示するためのインタフェース画面としてのWebページをクライアント装置に提供するインタフェース提供部と、を含む複数の機能部を実現するための複数のアプリケーションプログラムをWebサーバに提供するアプリケーションサーバである。各個別機能部は、該個別機能部で提供する機能に関する設定内容を保持する設定保持部と、前記インタフェース提供部を介して受信したリクエストに対し、該設定内容に応じたHTMLデータを生成して前記インタフェース提供部に返信するインタフェース生成部と、を備える。前記インタフェース生成部は、該個別機能部自身にリンクする回帰リンクであって、該個別機能部の動作内容を指定するためのパラメータを含む回帰リンクを前記HTMLデータ内に入れる。前記設定保持部は、前記回帰リンクを含む前記HTMLデータに基づいてクライアント装置に表示されたWebページ上において前記回帰リンクがクリックされると、該クリックに応じて前記クライアント装置から該個別機能部に供給される前記パラメータに従って前記設定内容を更新する。
なお、各個別機能部は、更に、前記回帰リンクに基づくリクエストへのレスポンスとして、前記設定内容の更新後に、前記Webサーバへのリダイレクトを行うリダイレクト部を備えるようにしてもよい。
本発明の入出力制御装置は、入出力部、指示入力部、動作制御部を備える。入出力部は、各デバイスを動作させるために個別に用意された個別機能部との間で、視聴覚データおよびコマンドの授受を行う。個別機能部は、必ずしも入出力制御装置内に設けられている必要はない。例えば、入出力制御装置とネットワークで接続された別の装置に設けられていてもよい。個別機能部は、例えば、各デバイスのドライバソフトを用いて構成することができる。入出力部は、これらの個別機能部との間で視聴覚データおよびコマンドをやりとりすることにより、各デバイスを動作させ、その結果を受け取ることが可能となる。
指示入力部は、視聴覚データの入力から出力までの複数過程でそれぞれ使用すべき個別機能部を選択する選択指示を入力する。選択指示は、入出力制御装置の操作によって行われたものでもよいし、外部からファイル等の形式で受け渡されたものであってもよい。
動作制御部は、複数過程に沿って、選択された各個別機能部を動作させる。この際、一つの個別機能部から出力される視聴覚データを次の過程で使用される個別機能部に受け渡す。例えば、入力用に選択された個別機能部を動作させて視聴覚データを入力し、受け取った視聴覚データを出力用に選択された個別機能部に受け渡す。こうすることで、入力から出力まで一連の処理を実現することができる。受け渡されるデータは、個別機能部の間で共通のフォーマットを用いることが好ましいが、動作制御部が受け渡し先に応じてデータ変換をするものとしてもよい。
本発明の入出力制御装置を用いれば、ユーザは、入力に使用するデバイス、出力に使用するデバイスを選択するだけで、視聴覚データの入出力を実現することができる。デバイスを動作させるためのソフトウェアは個別機能部によって提供されるから、ユーザが個別に備える必要はない。従って、視聴覚データの入出力における利便性を向上することができる。
本発明は、種々のデバイスを対象とすることができる。画像の場合、入力用のデバイスとしては、例えば、ディジタルカメラ、スキャナなどが含まれ、出力用のデバイスとしては、例えば、印刷装置、表示装置などが含まれる。音声の場合、入力用のデバイスとしては、例えば、マイクが含まれ、出力用のデバイスとしては、種々の再生装置が含まれる。入力用のデバイスは、広義には、入出力制御装置にディジタルデータとしての視聴覚データを受け渡すことができればよい。また、出力用のデバイスは、広義には、入出力装置が最終的に視聴覚データを出力する相手であればよい。かかる観点から、例えば、Webサーバ、ハードディスクその他の記録媒体も入力用のデバイスおよび出力用のデバイスに含めうる。
本発明の入出力制御装置は、更に、視聴覚データの編集を行うための個別機能部を含めて動作可能とすることが好ましい。こうすることにより、視聴覚データの編集も行うことが可能となる。画像の場合には、編集用の個別機能部は、レタッチ用のソフトウェアによって実現される。入出力の過程では、編集用の個別機能部を複数選択可能としてもよい。
本発明の入出力制御装置では、選択指示と併せて、各個別機能部の動作内容を指定する動作指示を入力してもよい。この動作指示に相当するコマンドを個別機能部に受け渡すことにより、個別機能部の動作を制御することができる。例えば、入出力用のデバイスの動作モードを設定したり、編集用の個別機能部には編集に使用するパラメータを指定したりすることが可能となる。こうすることにより、入出力の各過程で、多彩な処理を実現することが可能となる。
本発明の入出力制御装置は、各過程の実行順序に関わらず任意の順序で個別機能部を指定可能とすることが好ましい。こうすれば、例えば、出力先となる個別機能部を先に固定したまま、入力を行う個別機能部を容易に切り換えることができる。従って、各過程における設定を他の入出力に容易に流用することができる。
本発明の入出力制御装置では、各過程における個別機能部の指定を、一覧可能なインタフェース画面を介して選択指示の入力を行うことが実用上好ましい。動作指示も併せて一覧可能とすることが好ましい。かかるインタフェース画面は、任意の順序で個別機能部を指定可能とする場合にも有用である。
本発明の入出力制御装置は、例えば、Webサーバにおいて、URL管理部、インタフェース提供部、動作制御部を備えることにより構成可能である。これらの各要素は、例えば、CGIプログラムまたはサーブレット(登録商標)などサーバサイドプログラムで構成することが可能である。この場合、ユーザは、ブラウザでWebサーバが提供するWebページのURLを入力することにより、各要素を動作させることができる。
URL管理部は、視聴覚データを入力する複数のアプリケーション、および前記視聴覚データを出力する複数のアプリケーション起動用のURL(Uniform Resource Locator)を管理する。管理対象となるアプリケーションは、入力用および出力用のデバイスを制御するデバイスドライバを含め、例えば、CGIプログラムまたはサーブレットなどのサーバサイドプログラムで構成することができる。
インタフェース提供部は、各アプリケーションの動作内容を指示するためのインタフェース画面としてのWebページを提供する。このインタフェース画面は、ブラウザによって表示可能である。各アプリケーションに、自己の動作内容を指定するためのHTMLデータを生成する機能を持たせ、インタフェース画面は、このHTMLデータを組み合わせて生成することが好ましい。各アプリケーションは、HTMLデータで呼び出される画像ファイルも併せて生成することが好ましい。Webサーバは、URLを用いて入力用および出力用のアプリケーションを呼び出すことにより、多彩なインタフェースを実現することができる。
動作制御部は、先に説明した通りである。動作制御部は、URLを用いて各アプリケーションを呼び出すことにより、各アプリケーションを動作させることができる。
かかるWebサーバとして構成することにより、ネットワーク上に散在するアプリケーションを利用した入出力を行うことができ、また、入出力に関する指示もネットワークを介して行うことが可能となる。
各アプリケーションが生成するHTMLデータには、回帰リンク、即ち、そのアプリケーション自身へのリンクを含めても良い。この回帰リンクには、そのアプリケーション自身によって特定されたパラメータが付されることが好ましい。例えば、HTMLデータ中に、そのアプリケーションの動作を指定するためのボタンを設け、このボタンに回帰リンクを付してもよい。このボタンがクリックされた場合には、そのアプリケーション自身がブラウザからのリクエストを受信し、ボタンに付されたパラメータを受信することができる。従って、アプリケーションは、そのボタンが選択されたことを検知することができ、それに応じた動作設定を行うことができる。このように回帰リンクを用いることにより、各アプリケーションの動作内容を設定するためのHTMLデータを、アプリケーションごとに独立して生成することが可能となる。
各アプリケーションは、回帰リンクによるリクエストを受けた場合には、上述のパラメータによって自己の動作設定を行った後、クライアントに管理用のWebサーバのURLをリダイレクトすることが好ましい。こうすることにより、ユーザは管理用のWebサーバが提供するインタフェース画面を閲覧し続けることができる。見かけ上、インタフェース画面の遷移を伴わずに、アプリケーションの動作設定を行うことが可能となるため、実用性の高いインタフェース画面を提供することが可能となる。
本発明のWebサーバを起動させるためにブラウザに入力されるURLには、入出力に使用されるアプリケーションを特定する情報、および該アプリケーションの動作内容を特定する情報をパラメータとして含めてもよい。Webサーバは、このパラメータを解釈して、使用すべきアプリケーションを特定し、その動作内容を特定する情報を各アプリケーションに受け渡し可能とすることが好ましい。こうすることにより、本発明における入出力を実行するために必要な情報を、一つのURLに集約することができ、ブラウザのブックマークなどの機能により、これらの情報を容易に保存することが可能となる。
本発明は、上述のWebサーバが利用するアプリケーションを提供するアプリケーションサーバとして構成してもよい。このアプリケーションサーバは、自己の動作内容を保持し、その設定内容に応じたHTMLデータを生成可能とすることが好ましい。このHTMLデータは、Webサーバが提供するインタフェース画面に利用することができる。こうすることにより、動作内容の設定状況を反映したインタフェース画面を容易に提供することができる。
この場合、HTMLデータには、先に説明した回帰リンクを含め、各アプリケーションが、この回帰リンクに含まれるパラメータに応じて、設定内容を更新可能とすることが好ましい。こうすることにより、他のアプリケーションおよびWebサーバの構成に関わらず、アプリケーション固有の構成によって、HTMLデータを介した動作設定を実現することができる。
先に説明した通り、アプリケーションは、この回帰リンクに基づくリクエストへのレスポンスとして、設定内容の更新後に、Webサーバへのリダイレクトを行うことが好ましい。
本発明において、上述した種々の特徴は、必ずしも全てを備えている必要はなく、一部を省略してもよいし、適宜組み合わせて構成してもよい。また、本発明は、上述した態様に限らず、種々の態様で構成可能である。例えば、任意のデバイス間で視聴覚データの入出力を行うための入出力制御方法として構成してもよい。また、上述した入出力制御装置、Webサーバ、アプリケーションサーバの機能を実現するためのコンピュータプログラム、およびかかるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体として構成してもよい。ここで、記録媒体としては、フレキシブルディスクやCD−ROM、DVD、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等の、コンピュータが読取り可能な種々の媒体を利用できる。
本発明の実施の形態について、画像入出力システムとしての実施例に基づき、以下に示す順序で説明する。
A.システム構成:
B.サーバサイドプログラムの構成:
C.インタフェース画面:
D.インタフェース画面の生成:
E.設定の保持:
F.効果:
G.変形例:
A.システム構成:
図1は実施例としての画像入出力システムの概略構成を示す説明図である。このシステムは、ホームゲートウェイ30を中心として、各機器をローカルエリアネットワークLANで接続することで構成される。ホームゲートウェイ30は、ローカルエリアネットワークLANとインターネットとの間を接続する装置である。内部にCPU、RAM、ROMを備えており、種々のプログラムを稼働することも可能である。本実施例では、ホームゲートウェイ30は、HTTPプロトコルに対応したモジュールを備えており、Webサーバとしての機能も提供する。また、ホームゲートウェイ30には、画像の入出力を実行するためのサーバサイドプログラム100が備えられている。サーバサイドプログラム100の内容については、後で詳述する。
ローカルエリアネットワークLANには、ユーザが利用する機器として、クライアント10、入力デバイス、出力デバイスが接続されている。図中の入力デバイス、出力デバイスは、例示であるため、これらの全てを備えている必要はなく、更に他のデバイスを含めても良い。
本実施例では、入力デバイスとして、ディジタルカメラ21、スキャナ22、およびストレージサーバ23を用いるものとした。ストレージサーバ23は、既に生成された画像データを保持しておくデバイスであり、新たに画像データを生成するデバイスではないが、出力対象となる画像データを供給するデバイスという観点から、入力デバイスに含め得るものとした。
出力デバイスとしては、プリンタ24、プロジェクタ25およびストレージサーバ23を用いるものとした。ストレージサーバ23は、画像を視覚的に出力するデバイスではないが、画像データの出力先となるデバイスという観点から、出力デバイスとしても扱い得るものとした。
クライアント10は、ネットワークへの接続機能を有する汎用のコンピュータであり、Webページを閲覧するためのブラウザ11がインストールされている。ユーザは、ブラウザ11によって、サーバサイドプログラム100が提供するインタフェース画面を閲覧することができる。ユーザは、このインタフェース画面を通じて、画像の入出力に使用する入力デバイス、出力デバイスを指定するなどの動作指示を行うことができる。
サーバサイドプログラム100は、この動作指示に従って、入力デバイスを稼働させ画像データを取得し、指定された出力デバイスに画像データを受け渡す。また、この出力デバイスを制御して、画像の出力を行わせる。例えば、図中に例示するように、ディジタルカメラ21から画像データを取得し、プリンタ24に受け渡して印刷を行わせる。かかる機能は、以下に示すソフトウェア構成によって実現される。
B.サーバサイドプログラムの構成:
図2はサーバサイドプログラム100の機能ブロックを示す説明図である。本実施例では、各機能ブロックは、主としてJAVA(登録商標)言語で記述されたサーブレット(登録商標)を用いて構成した。各機能ブロックには、URL(Uniform Resource Locator)が付されており、ブラウザ等から、このURLに対してリクエストを送信することにより、稼働させることができる。図中に示した各機能ブロックのURLは、説明の便宜上付した例示であり、URLの設定はこれらに限定されるものではない。なお、各機能ブロックは、サーブレットに限らず、CGIプログラムその他のプログラミング手法を用いて構成したり、ハードウェア的に構成したりしても構わない。
入力アプリケーション110は、入力デバイスを動作させるための制御プログラムである。ディジタルカメラアプリケーション111(以下、「ディジタルカメラAP」と称する)は、ローカルエリアネットワークLANを介してディジタルカメラ21から画像を取得する機能を奏する。スキャナアプリケーション112(以下、「スキャナAP」と称する)は、スキャナ22を制御して、画像を取得する機能を奏する。画像取得アプリケーション113(以下、「画像取得AP」と称する)は、ストレージサーバ23から画像を取得する機能を奏する。本実施例では、それぞれJPEG(登録商標)フォーマットで画像を取得するものとした。
編集アプリケーション120は、JPEGフォーマットで画像を受信し、所定の編集を施して、出力する機能を奏する。本実施例では、編集後の画像もJEPGフォーマットで出力されるものとした。簡易編集アプリケーション121(以下、「簡易編集AP」と称する)は、予め用意されたフレームを画像に重ね合わせたり、画像のサイズを変更したりする簡易的な編集を実行する。カードアプリケーション122(以下、「カードAP」と称する)は、予め用意されたテンプレートを利用して、年賀状、クリスマスカード、カレンダーなどを作成する機能を提供する。アルバムアプリケーション123(以下、「アルバムAP」と称する)は、予め用意されたフォームで、簡易的なアルバムを作成する機能を提供する。
出力アプリケーション130は、画像データを受信し、出力デバイスに出力するための制御プログラムである。プロジェクタアプリケーション131(以下、「プロジェクタAP」と称する)は、プロジェクタ25を動作させて、受信した画像データを表示させる。プリンタアプリケーション132(以下、「プリンタAP」と称する)は、プリンタ24を動作させて、受信した画像データを印刷させる。Web公開アプリケーション133(以下、「Web公開AP」と称する)は、受信した画像データをWebページの形式でサーバに保存する機能を奏する。
入力アプリケーション110、編集アプリケーション120、出力アプリケーション130は、上述した各機能に加えて、自己の動作設定を行うためのインタフェース画面を生成する機能も奏する。例えば、ディジタルカメラAP111は、ディジタルカメラ21から取り込んだ画像を一覧表示して、出力対象となる画像を選択させるためのインタフェース画面を提供する。本実施例では、ブラウザ11を介して動作指示を行うことを可能とするため、各インタフェース画面は、HTMLファイルで生成するものとした。
インタフェース提供部101は、クライアント10に提供するインタフェース画面を生成する機能を奏する。インタフェース提供部101は、入力アプリケーション110、編集アプリケーション120、出力アプリケーション130にインタフェース画面の作成を依頼する(図中の実線矢印)。本実施例では、全アプリケーションに依頼を送信するのではなく、画像の入出力に利用するよう指定されたアプリケーションに対して送信するものとした。各アプリケーションからは、この依頼に応じて、インタフェース画面を構成するHTMLデータが返信される(図中の破線矢印)。インタフェース提供部101は、これらのHTMLデータを組み合わせたHTMLファイルを生成し、入力、編集、出力の動作を設定するためのインタフェース画面を提供する。
動作制御部102は、ユーザが画像の入出力の実行を指示した時に起動する。動作制御部102は、この実行指示および入出力に使用すべきアプリケーションを特定した動作指示を、インタフェース提供部101から受け取る。動作制御部102は、この動作指示で指定された入力アプリケーション110を呼び出して画像データを取得する。次に、この画像データを、指定された編集アプリケーション120に受け渡し、編集結果を受け取る。更に、編集結果を出力アプリケーション130に受け渡し、画像の出力を行わせる。このように、動作指示で指定された各アプリケーションを起動させるとともに、各アプリケーション間で画像データの受け渡しを行うことにより、動作制御部102は、画像の入出力を実現することができる。
C.インタフェース画面:
図3は実施例で利用されるインタフェース画面を示す説明図である。ブラウザ11に表示される画面例を示した。インタフェース画面200は、先に説明した通り、インタフェース提供部101によって生成される。まず、実施例におけるインタフェース画面200の変遷を説明する。これらの画面を実現するための処理内容については後述する。
実施例のインタフェース画面200は、いくつかの領域に分けられている。入力設定領域210は、入力アプリケーション110の選択およびその動作設定を行うための領域である。図中の例では、タブ211により、ディジタルカメラAP111が選択されている状態を示した。この画面では、「Select Image」なるメニュー212が設けられており、ここをクリックすることで次の状態に移行することができる。
編集設定領域230は、編集アプリケーション120の選択およびその動作設定を行うための領域である。図中の例では、タブ231により、簡易編集AP121が選択されている状態を示した。この画面では、「Edit Image」なるメニュー232が設けられており、ここをクリックすることで次の状態に移行することができる。
出力設定領域250は、出力アプリケーション130の選択およびその動作設定を行うための領域である。図中の例では、タブ251により、プリンタAP132が選択されている状態を示した。この画面では、「Printer Setting」なるメニュー252が設けられており、ここをクリックすることで次の状態に移行することができる。
Printボタン202は、画像の入出力の実行指示を行うためのボタンである。カスタマイズ領域290は、システムのカスタマイズを行うための領域である。図中の例では、「Web Service」なるメニュー292が設けられており、ここをクリックすることで新たなデバイスの追加など、新機能の追加を行うことができる。Printボタン202およびカスタマイズ領域290は、インタフェース提供部101によって生成される。
インタフェース画面200は、各領域のいずれの個所からでも設定を開始することができる。以下では、便宜上、入力設定領域210で出力対象となる画像を設定し、編集設定領域230で編集方法を特定し、出力設定領域250で出力モード等の設定を行う順序で説明をするが、設定順序はこれに限定されるものではない。例えば、出力先の特定、編集方法の特定、出力対象となる画像の特定という順序で設定することも可能である。
図4はインタフェース画面200から移行した画面を示す説明図である。インタフェース画面200(図3)において、「Select Image」なるメニュー212をクリックすると、この画面に移行する。移行後のインタフェース画面200Aでは、入力設定領域210Aの状態が変化する。本実施例では、ディジタルカメラ21から取得された画像が列挙され、出力対象となる画像を選択可能となっている。図中には6枚の画像が列挙されている状態を例示した。ユーザは、画像をクリックすることにより、出力対象を特定することができる。
図5はインタフェース画面200Aから移行した画面を示す説明図である。インタフェース画面200A(図4)において、画像「pic1.jpg」をクリックすると、この画面に移行する。移行後のインタフェース画面200Bでは、入力設定領域210Bの状態が変化し、出力対象として選択された画像のみが表示される。ここでは、「pic1.jpg」を選択した場合を例示したが、その他の画像を選択した場合も同様である。表示された画像「pic1.jpg」をクリックすると、再びインタフェース画面200Aに戻るものとしてもよい。
図6はインタフェース画面200Bから移行した画面を示す説明図である。インタフェース画面200B(図5)において、編集設定領域230の「Edit Image」メニュー232をクリックすると、この画面に移行する。移行後のインタフェース画面200Cでは、編集設定領域230Cの状態が変化し、簡易編集を行うための設定画面が表示される。入力設定領域210Bの状態は、変化しない。
簡易編集の設定領域230Cには、画像の向きを指定するためのラジオボタン233、拡大率を指定するためのボックス234、およびフレームを特定するためのラジオボタン235が設けられている。図では、縦向き(Portrait)、2倍の拡大率、Frame1が選択されている状態を例示した。
図7はインタフェース画面200Cから移行した画面を示す説明図である。インタフェース画面200C(図6)において、「Set Value」メニュー236をクリックすると、この画面に移行する。移行後のインタフェース画面200Dでは、編集設定領域230Dの状態が変化し、設定された編集内容が表示される。この画面では、併せて「Edit Image」メニュー232が表示される。このメニュー232をクリックすると、再びインタフェース画面200Cの状態に戻る。
図8はインタフェース画面200Dから移行した画面を示す説明図である。インタフェース画面200D(図7)において、出力設定領域250の「Printer Setting」メニュー252をクリックすると、この画面に移行する。移行後のインタフェース画面200Dでは、出力設定領域250Eの状態が変化し、プリンタの設定を行うための画面が表示される。入力設定領域210Bおよび編集設定領域230Dの状態は、変化しない。
出力設定領域250Eには、印刷用紙および画質を設定するためのボックス253、254、高速印刷のオン・オフを設定するためのラジオボタン255が設けられている。図中の例では、印刷用紙として「SFINE(スーパーファイン)」、画質として「FINE」が選択され、高速印刷がオフとされている状態を例示した。
図9はインタフェース画面200Eから移行した画面を示す説明図である。インタフェース画面200E(図8)において、「Set Value」メニュー256をクリックすると、この画面に移行する。移行後のインタフェース画面200Fでは、出力設定領域250Fの状態が変化し、プリンタの設定内容が表示される。この画面では、併せて「Printer Setting」メニュー252が表示される。このメニュー252をクリックすると、再びインタフェース画面200Eの状態に戻る。
以上の設定が行われた段階で、「Print」ボタン202をクリックすると、ディジタルカメラ21から「pic1.jpg」の画像が入力され、2倍に拡大されてFrame1との重ね合わせが行われ、指定された印刷モードで印刷が行われる。
先に説明した通り、本実施例のインタフェースは、入力、編集、出力をどのような順序でも設定することが可能である。例えば、図9の状態まで設定が完了した時点で、編集設定領域230Dの内容を修正することも可能である。この場合には、「Edit Image」メニュー232をクリックすれば、入力設定領域210B、出力設定領域250Fの状態は保持されたまま、図6に示した編集設定領域230Cが表示され、容易に設定を変更することができる。
D.インタフェース画面の生成:
図10はインタフェース画面の生成処理を示すフローチャートである。ユーザがクライアント10のブラウザ11で、インタフェース提供部101に相当するURLを入力してHTTPリクエストを発信することにより、この処理が開始される(ステップS10)。インタフェース提供部101は、このリクエストを受信すると、入力アプリケーションのいずれかに対して、HTTPリクエストを発信し、インタフェース画面の生成を依頼する(ステップS11)。インタフェース提供部101は、図3に示したタブ211で選択されている入力アプリケーションを管理しており、この入力アプリケーションに対してリクエストを発信する。
各アプリケーションは、このリクエストに対して、自己の動作内容を設定するためのインタフェース画面を表示するためのHTMLデータを生成し、インタフェース提供部101に返信する(ステップS12)。ここでは、入力設定領域の画面を表示するためのHTMLデータが返信される。生成される画面は、先に図3〜9で示した通り、入力設定領域での設定内容に応じて変動する。
以下、同様にして、インタフェース提供部101は、編集アプリケーション120および出力アプリケーション130に、インタフェース画面の生成を依頼し、HTMLデータを受信する(ステップS13〜S16)。編集アプリケーション120からは、編集設定領域の画面を表示するためのHTMLデータが返信され、出力アプリケーション130からは、出力設定領域の画面を表示するためのHTMLデータが返信される。
インタフェース提供部101は、こうして得られた各HTMLデータを合成し、図3〜図9に示した通り、入力設定領域、編集設定領域、出力設定領域が一つの画面で一覧可能なHTMLファイルを生成する。このHTMLファイルをクライアント10に送信することにより(ステップS17)、インタフェース画面が提示される。
図10に示したインタフェース画面の生成処理は、図3〜9で示した通り、ユーザの操作に応じて表示すべき画面を変更する必要性が生じる度に行われる。但し、ユーザの各操作は、入力設定領域、編集設定領域、出力設定領域のいずれか一つを対象として行われるから、画面は操作対象となった領域のみ変更すればよい。例えば、図3から図4への変遷など入力設定領域に対して操作が行われた場合には、入力設定領域のHTMLデータのみを更新すれば足りる。かかる場合には、インタフェース提供部101は、入力アプリケーション110へのリクエスト(ステップS11)およびHTMLデータの授受(ステップS12)を行い。図中に破線で示した通り、編集アプリケーション120、出力アプリケーション130に対するリクエスト等(ステップS13〜S16)は省略する。編集設定領域、出力設定領域については従前の処理で取得済みのHTMLデータを流用し、新たに得られた入力設定領域のHTMLデータと組み合わせてHTMLファイルを生成するのである(ステップS17)。
更新が必要なアプリケーションについてのみリクエストの送信等を行うことにより、インタフェース画面用のHTMLファイルを生成するための処理時間を短縮することができる。もちろん、更新の必要性に関わらず入力アプリケーション110、編集アプリケーション120、出力アプリケーション130の全てにリクエストを送信する構成を採っても構わない。
図11はクリック時にインタフェース画面を変更する処理のフローチャートである。ここでは、インタフェース画面200で「Select Image」メニュー212をクリックした時の画面の移行(図3から図4への移行)を例にとって説明する。
クライアント10で、「Select Image」メニュー212をクリックすると、このメニュー212に付されたリンク先にHTTPリクエストが送信される(ステップS20)。本実施例では、このリンク先は、ディジタルカメラAP111に設定されている。先に説明した通り、メニュー212を含む入力設定領域は、ディジタルカメラAP111によって生成されている。従って、メニュー212には、これを生成したアプリケーション自身に戻るリンクが付されていることになる。以下、リンクの生成者に戻るリンクを回帰リンクと呼ぶものとする。
本実施例では、回帰リンクには、アプリケーションの動作内容を指定するためのパラメータが付されている。例えば、メニュー212には、「action=select」なるパラメータが付されている。ディジタルカメラAP111は、回帰リンクによるリクエストとともに、このパラメータを併せて受信し、パラメータに応じた動作設定を行う(ステップS21)。この段階では、設定内容をディジタルカメラAP内で保持しておけばよい。パラメータの内容および動作設定は、ディジタルカメラAP111が独自に設定可能である。このやりとりで使用されるパラメータは、他のアプリケーションおよびインタフェース提供部101の動作に何ら影響を与えるものではないからである。
ディジタルカメラAP111は、動作設定を行った後、リンク先をインタフェース提供部101にリダイレクトさせるためのレスポンスをクライアント10に返信する(ステップS22)。クライアント10は、これに応じて、インタフェース提供部101にHTTPリクエストを送信する(ステップS23)。
インタフェース提供部101は、このリクエストを受け取ると、図10に示し通り、インタフェース画面の生成を行う。インタフェース提供部101は、画面の更新が必要となるディジタルカメラAPに対して、HTTPリクエストを送信する(ステップS11)。ディジタルカメラAP111は、ステップS21の処理によって設定内容が更新されているため、これに応じたHTMLデータを生成し(ステップS11a)、インタフェース提供部101に返信する(ステップS12)。インタフェース提供部101は、このHTMLデータを、従前の編集設定領域および出力設定領域のHTMLデータとを組み合わせて、新たなインタフェース画面用のHTMLファイルし、クライアント10に送信する(ステップS17)。これにより、「Select Image」メニュー212がクリックされた後は、図4に示したインタフェース画面が生成されることになる。
ディジタルカメラAP111の動作設定を行うという観点からは、ステップS22のリダイレクトは、省略することも可能である。但し、この場合、ディジタルカメラAP111が生成したHTMLデータをクライアント10に返信すれば、入力設定領域だけのインタフェース画面が表示され、編集設定領域、出力設定領域が欠落してしまう。本実施例では、回帰リンクによって動作設定を行った後、リダイレクトすることにより、入力、編集、出力の画面を一覧可能な状態を保持したまま、設定内容を反映したインタフェース画面を提供することができる。
ここでは、ディジタルカメラAP111の動作を例にとって説明したが、他のアプリケーションも同様に動作する。
E.設定の保持:
図12はアプリケーションがインタフェース画面を生成する処理のフローチャートである。ここでは、入力アプリケーション110が入力設定領域のHTMLデータを生成する場合を例にとって説明する。図10におけるステップS11からS12までの処理に相当する。
本実施例では、このHTMLファイル生成時に、各アプリケーションの動作設定をパラメータに組み込んだURLを併せて生成するものとした。インタフェース提供部101は、入力アプリケーション110に対してインタフェース画面の作成を依頼する際に、戻りURLを併せて提供する(ステップS11)。戻りURLとは、入力アプリケーション110が、HTMLファイルをレスポンスとして返すURLである。図示する通り、戻りURLには、次の内容のパラメータが含まれている。
「input=CameraServlet」は、入力アプリケーション110として、ディジタルカメラAP111を利用することを意味する。パラメータの値は、入力アプリケーション110の種類によって、ScanServlet、LocalImageServletなどに変更される。
「inputParam=Default」は、入力アプリケーション110の動作内容を設定するためのパラメータである。本実施例では、図11に示した回帰リンクに含まれるパラメータを用いるものとした。「Default」は何も動作設定がなされていないことを意味する。
「edit1=EditorServlet」は、編集アプリケーション120として、簡易編集AP121を利用することを意味している。「edit1Param=Default」は、編集アプリケーション120の動作内容を設定するためのパラメータである。
「output=PrinterServlet」は、出力アプリケーション130として、プリンタAP132を利用することを意味している。「outputParam=Default」は、出力アプリケーション130の動作内容を設定するためのパラメータである。
入力アプリケーション110は、インタフェース提供部101からの依頼を受け取ると(ステップS11)、最新の設定内容に基づいて入力設定領域のHTMLデータを生成する(ステップS11B)。次に、この設定内容を表すパラメータをエンコードし(ステップS11C)、戻りURLの書き換えを行う(ステップS11D)。
図中に、エンコードの例を示した。例えば、本実施例では、図5の入力設定領域210Bの状態は、パラメータ「action=bye&image=/pic1.jpg」で表現される。従って、入力アプリケーション110は、戻りURLのうち、その動作内容を設定するパラメータ「inputParam」の値を、「action=bye&image=/pic1.jpg」に書き換える。この際、周知の通り、「=」、「&」は、URLの表記上、パラメータ中に使うことができない。入力アプリケーション110は、インターネット上のエンコードルールに従い、「=」を「%3D」、「&」を「%26」にエンコードした上で戻りURLの書き換えを行う。書き換えは、「inputParam」を対象として行われ、その他のパラメータはそのまま保持される。
図中に書き換え後の、戻りURLを示した。図示する通り、「inputParam」の値が、「action%3Dbye%26image%3D%2Fpic1.jpg」に書き換えられる。この結果、戻りURLには、入力アプリケーション110の現状の設定内容を表す情報が組み込まれたことになる。入力アプリケーション110は、URLの書き換えを行った後、HTMLデータをインタフェース提供部101に返信する(ステップS12)。インタフェース提供部101は、併せて、この戻りURL中のパラメータも受信する。
同様の処理を、編集アプリケーション120、出力アプリケーション130も実行する。編集アプリケーション120はパラメータ「edit1Param」の書き換えを行い、出力アプリケーション130はパラメータ「outputParam」の書き換えを行う。以上の処理により、入力アプリケーション110、編集アプリケーション120、出力アプリケーション130からインタフェース用のHTMLデータを受信した時点の戻りURLには、入力、編集、出力に使用すべきアプリケーションの種類およびその動作内容に関する情報が含まれていることになる。
インタフェース提供部101は、インタフェース画面とともに、この戻りURLをクライアント10に提示する。こうすることにより、ブラウザ11のブックマーク機能を利用して、設定内容を容易に保存することが可能となる。また、URLを電子データとして他人に受け渡すことにより、設定内容を容易に伝達することも可能となる。インタフェース提供部101は、URLにこれらのパラメータが含まれている場合には、その内容を解析することにより、これらの設定を容易に再現することができる。設定内容をURLのパラメータとして保持する機能は、画像の入出力を実現する上で必須ではないため、省略しても差し支えない。パラメータを含まない戻りURLを用いるものとしてもよいし、各アプリケーションがパラメータの書き換えを行わず、常に一定の戻りURLを用いるものとしてもよい。
E.効果:
以上で説明した実施例の画像入出力システムによれば、ユーザは、入力、編集、出力に使用するアプリケーションを指定することにより、画像の入出力を行わせることができる。デバイスの制御、画像の編集を実現する機能は、サーバサイドプログラム100によって提供されるから、クライアント10には、これらのソフトウェアをインストールする必要がない。
実施例のシステムでは、ブラウザ11を介して動作設定を行うことができる。動作設定用のインタフェース画面は、入力、編集、出力の設定内容を一覧可能であるため、設定内容を容易に把握可能であるとともに、簡易な操作で設定することができる。また、実施例のインタフェース画面によれば、入力、編集、出力をいかなる順序でも設定可能であるため、設定時の利便性を向上させることができる。例えば、編集および出力の設定を保持した状態で、入力設定を変更することも可能であるから、出力対象となる画像を差し替えながら一定の編集設定、出力設定で印刷を行うことが可能となる。
G.変形例:
実施例では、各デバイスがローカルエリアネットワークLANで接続されている状態を例示した(図1参照)。本実施例のシステムは、インターネット上に各デバイスが散在している場合でも、適用可能である。各アプリケーションが、インターネット上のデバイスを制御可能であればよい。同様に、アプリケーションが制御可能であれば、ホームゲートウェイ30、クライアント10またはインターネット上のサーバなどにローカルに接続されたデバイスを含めることも可能である。
本実施例では、全てのアプリケーションが、サーバサイドプログラム100に組み込まれている場合を例示したが、各アプリケーションは、インターネット上に散在していても構わないし、クライアント10の内部に備えても構わない。
本実施例では、各アプリケーション間の画像の受け渡しを、JPEGフォーマットで行うものとしたが、画像はいかなるフォーマットを適用しても構わない。入力アプリケーション110から編集アプリケーション120への受け渡しに利用されるフォーマットと、編集アプリケーション120から出力アプリケーション130への受け渡しに利用されるフォーマットとが相違していても構わない。但し、全アプリケーションで共通のフォーマットを利用するものとすれば、フォーマットが適合するか否かを考慮する必要なくアプリケーションを自由に組み合わせることができる利点がある。
実施例では、編集アプリケーション120を用いるものとしたが、これを省略しても差し支えない。また、編集アプリケーション120を複数使用可能としてもよい。
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例では、画像の入出力を例にとって説明したが、本発明は、音声の入出力を行うシステムに適用することも可能である。