以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、一台以上の画像形成装置10と、一台以上のユーザ端末20とは、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、例えば、スキャン、印刷、コピー、及びFAX送受信等の機能のうち、2以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有するスキャナ、プリンタ、コピー機、又はファクシミリが画像形成装置10として用いられてもよい。
ユーザ端末20は、ユーザが利用する端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末20の具体例として、デスクトップ型のPC(Personal Computer)、ノートPC、PDA(Personal Digital Assistance)、又は携帯電話等が挙げられる。
ユーザ端末20のソフトウェア構成について説明する。図1において、ユーザ端末20は、印刷ウィジェット21a、スキャンウィジェット21b、ウィジェットマネージャ22、文書アプリ23、プリンタドライバ24、及びOS25等を有する。
印刷ウィジェット21a及びスキャンウィジェット21bは、本実施の形態において、「ウィジェット21」として総称されるアプリケーションプログラムである。近年では、ウィジェット(Widget)又はガジェット(Gadget)とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット21と呼ぶ(すなわち、技術的な意義において限定する趣旨ではない)。但し、本実施の形態において、各ウィジェット21は、画像形成装置10の機能を利用して(画像形成装置10と連携して)所定の処理フロー(例えば、ワークフロー等の一連の処理フロー)を実現するという点において共通する。
印刷ウィジェット21aは、所定の論理プリンタに対して生成された印刷データについて、画像形成装置10に印刷ジョブを実行させる。
スキャンウィジェット21bは、画像形成装置10にスキャンを実行させ、スキャンされた画像データをユーザ端末20に保存する。
ウィジェットマネージャ22は、ウィジェット21と画像形成装置10との間の通信の仲介等を行う。各ウィジェット21は、ウィジェットマネージャ22によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ22と協調して動作するアプリケーションが、本実施の形態におけるウィジェット21である。
文書アプリ23は、ワープロソフト、表計算ソフト等、印刷対象となりうる電子的な文書データを作成するアプリケーションである。図中、文書アプリ23は一つのブロックによって表現されているが、文書アプリ23は、文書データのデータ形式に応じて複数の種類が存在しうる。
プリンタドライバ24は、いわゆるプリンタドライバであり、各種の文書アプリ23によって生成された文書データに関する印刷データを生成する。印刷ウィジェット21aに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ24は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する。
OS25は、いわゆるOS(Operating System)である。ユーザ端末20上の各ソフトウェアは、OS25上においてプロセス又はスレッドとして動作する。
画像形成装置10のソフトウェア構成について説明する。図1において、画像形成装置10は、標準アプリ121、SDKアプリ122、SDKプラットフォーム123、コントロールサービス124、及びOS125等を有する。
標準アプリ121は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214が例示されている。スキャンアプリ1211は、スキャンジョブを実行する。印刷アプリ1212は印刷ジョブを実行する。コピーアプリ1213は、コピージョブを実行する。FAXアプリ1214は、FAXの送信ジョブ又は受信ジョブを実行する。
コントロールサービス124は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
SDKアプリ122は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、SDKアプリ122として、プロバイダアプリ1221が例示されている。プロバイダアプリ1221は、ウィジェット21を画像形成装置10より操作可能とするための処理を実行する。
SDKプラットフォーム123は、SDKアプリ122の実行環境を提供する。各SDKアプリ122は、SDKプラットフォーム123が提供するAPI(Application Program Interface)を利用して開発される。例えば、SDKプラットフォーム123は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をSDKアプリ122に提供する。なお、SDKプラットフォーム123のAPIは公開されており、サードベンダ等によってもSDKアプリ122は開発されうる。
OS125は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS125上においてプロセス又はスレッドとして動作する。
続いて、各装置のハードウェア構成について説明する。図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタ13は、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶表示部等の表示手段を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図3は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図3のユーザ端末20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205と、表示装置206と、入力装置207とを有する。
ユーザ端末20での処理を実現するプログラムは、CD−ROM又はメモリカード等の記録媒体201によって提供される。プログラムを記録した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってユーザ端末20に係る機能を実現する。インタフェース装置205は、ネットワーク接続用のインタフェース、USB(Universal Serial Bus)接続用のインタフェース、Bluetooth等の無線通信用のインタフェース等、各種通信用のインタフェースである。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード、マウス等のポインティングデバイス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
続いて、ウィジェット21、ウィジェットマネージャ22、及びプロバイダアプリ1221について更に詳しく説明する。図4は、ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
同図に示されるように、各ウィジェット21は、ウィジェットUI部211、ウィジェット情報送信部212、連携部213、ロジック部214、及び属性情報管理ファイル215等を有する。
ウィジェットUI部211は、ウィジェット21に関する各種の表示制御及び入力制御等を行う。ウィジェット情報送信部212は、ウィジェット21の起動に応じ、ウィジェット情報(ウィジェット21の属性情報)の登録要求をウィジェットマネージャ22に送信する。ウィジェット情報には、当該ウィジェット21が利用する、画像形成装置10の機能(以下、「連携機能」という。)の識別情報(以下、「連携機能識別子」という。)等が含まれている。連携機能は、ウィジェット21と連携する画像形成装置10が有しているべき(有している必要のある)機能であるともいえる。
連携部213は、プロバイダアプリ1221との連携のための通信(情報のやりとり等)を制御する。属性情報管理ファイル215は、ウィジェット21対する属性情報を格納するファイルである。属性情報には、ウィジェット21に対する設定情報も含まれる。設定情報は、ウィジェット21の振る舞い又はウィジェット21によって実行されるジョブの内容を規定するパラメータの集合である。ロジック部214は、各ウィジェット21に固有の機能が実装される部分である。例えば、印刷ウィジェット21aのロジック部214は、所定の論理プリンタに対して生成された印刷データについて、画像形成装置10に印刷ジョブを実行させるための処理を実行する。スキャンウィジェット21bのロジック部214は、スキャンされた画像データの保存処理等を実行する。
なお、ウィジェット21に含まれる各部について、印刷ウィジェット21aに属するものとスキャンウィジェット21bに属するものとを区別する場合、前者については「a」を、後者については「b」を参照番号の末尾に付加する。例えば、印刷ウィジェット21aのロジック部214は、「ロジック部214a」と表記される。
ウィジェットマネージャ22は、ユーザ広告部221、ウィジェット情報登録部222、連携機能広告部223、ウィジェット情報提供部224、及び仲介部225等を有する。
ユーザ広告部221は、ウィジェットマネージャ22の起動に応じ、ユーザ端末20へのログインユーザのユーザID等をネットワーク上に広告(ブロードキャスト又はマルチキャスト等)する。広告は、ユーザ単位(ユーザID単位)で発行される。したがって、ユーザ広告部221による広告(以下、「ユーザ広告」という。)は、何らかのウィジェット21を利用可能になったユーザが新たに発生したことを画像形成装置10に通知するための情報であるといえる。
ウィジェット情報登録部222は、ウィジェット21より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報を、例えば、補助記憶装置202に保存する。
連携機能広告部223は、ウィジェット情報登録部222によって受信されたウィジェット情報に含まれる連携機能識別子等をネットワーク上に広告(ブロードキャスト又はマルチキャスト等)する。連携機能広告部223による広告を、以下、「連携機能広告」という。連携機能広告を受信した各画像形成装置10は、各ユーザ(各ユーザ端末20)が必要としている機能を認識することができる。なお、本実施の形態において、連携機能広告は、画像形成装置との機能連携の要求の一例である。
ウィジェット情報提供部224は、画像形成装置10からの要求に応じ、例えば、補助記憶装置202に保存されているウィジェット情報を画像形成装置10に提供(送信)する。仲介部225は、ウィジェット21とプロバイダアプリ1221との通信を仲介又は中継する。
プロバイダアプリ1221は、ユーザ検知部131、連携機能検知部132、UI制御部133、ウィジェット情報取得部134、ウィジェット連携部135、機能制御部136、及びユーザ管理テーブル137等を有する。
ユーザ検知部131は、ウィジェットマネージャ22より発行されるユーザ広告に基づいて、ウィジェット21を利用可能なユーザ(ユーザ端末20)の存在を検知し、ユーザ広告に含まれているユーザID等をユーザ管理テーブル137に登録する。ユーザ管理テーブル137は、利用可能なウィジェット21がネットワーク上に存在するユーザの一覧を管理するテーブルであり、例えば、例えば、HDD114に記憶されている。
連携機能検知部132は、ウィジェットマネージャ22より発行される連携機能広告に基づいて、連携機能をユーザごと(ユーザ端末20ごと)に検知し、検知結果をユーザ管理テーブル132に登録する。
UI制御部133は、ユーザよりウィジェット21の操作指示等の入力を受け付ける。すなわち、ウィジェット21は、ユーザ端末20に配置されているが、画像形成装置10の操作パネル15からも操作されうる。
ウィジェット情報取得部134は、ユーザ管理テーブル137に登録されているユーザの中から選択されたユーザに属するウィジェット21のウィジェット情報をウィジェットマネージャ22より取得する。ウィジェット連携部135は、ウィジェットマネージャ22との通信を制御する。機能制御部136は、ウィジェット21から要求された機能の実行を制御する。機能を実現するための処理は、標準アプリ121や他のSDKアプリ122に委譲される。
以下、情報処理システム1の処理手順について説明する。ウィジェット21を利用する前に、ユーザは、ユーザ端末20においてウィジェットマネージャ22を起動しておく。そこで、まず、ウィジェットマネージャ22の起動時の処理手順について説明する。
図5は、第一の実施の形態におけるウィジェットマネージャの起動時の処理手順を説明するためのシーケンス図である。
ユーザの指示に応じ、又は自動的にウィジェットマネージャ22が起動されると、ウィジェットマネージャ22のユーザ広告部221は、ログインユーザのユーザIDとウィジェットマネージャURIとを含むユーザ広告をネットワーク上に送信する(S101)。
続いて、各画像形成装置10のプロバイダアプリ1221のユーザ検知部131は、ユーザ広告を受信すると、当該ユーザ広告に含まれているユーザID及びウィジェットマネージャURIをユーザ管理テーブル137に登録する(S102)。
図6は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル137は、ユーザID、ウィジェットマネージャURI、及び連携機能識別子を関連付けて記憶する。ウィジェットマネージャURIは、ウィジェットマネージャ22ごとに一意なURI(Uniform Resource Identifier)である。本実施の形態において、ウィジェットマネージャ22は、一台のユーザ端末20に一つ起動される。したがって、ウィジェットマネージャURIは、ユーザ端末20の識別情報であるともいえる。
なお、ステップS102の時点では、連携機能識別子の登録は行われない。
多数のユーザが、それぞれのユーザ端末20においてウィジェットマネージャ22を起動することにより、各画像形成装置10のユーザ管理テーブル137には、多数のユーザに対するレコードが登録される。
ウィジェットマネージャ22の起動後、ユーザは、ユーザ端末20において、印刷ウィジェット21a又はスキャンウィジェット21bを起動させる。
図7は、第一の実施の形態におけるウィジェットの起動時等の処理手順を説明するためのシーケンス図である。同図では、便宜上、ウィジェット21の起動時に加えて、終了時の処理手順についても説明する。
ユーザによって印刷ウィジェット21aが起動されると、印刷ウィジェット21aのウィジェット情報送信部212aは、印刷ウィジェット21aのウィジェット情報の登録要求を、ウィジェットマネージャ22に送信する(S111)。
図8は、印刷ウィジェットのウィジェット情報の例を示す図である。同図において、印刷ウィジェット21aのウィジェット情報は、ウィジェットID、連携機能識別子、及び表示名等を含む。
ウィジェットIDは、各ウィジェット21を一意に識別する識別情報である。連携機能識別子は、印刷ウィジェット21aの連携機能識別子である。印刷ウィジェット21aは、画像形成装置10に印刷を実行させるウィジェット21である。すなわち、印刷ウィジェット21aは、画像形成装置10の印刷機能を利用する。したがって、印刷ウィジェット21aの連携機能識別子は、印刷機能を示す「print」である。表示名は、印刷ウィジェット21aの名前の表示用の文字列である。なお、ウィジェット情報は、例えば、属性情報管理ファイル215aより取得される。
印刷ウィジェット21aのウィジェット情報送信部212aより送信されたウィジェット情報は、ウィジェットマネージャ22のウィジェット情報登録部222によって受信される。ウィジェット情報登録部222は、受信されたウィジェット情報に含まれているウィジェットIDを含むURIを生成し、ウィジェット情報を当該URIに関連付けて補助記憶装置202に保存(登録)する(S112)。当該URIは、ウィジェット情報の登録に応じてウィジェットごとに生成されるURIである。以下、当該URIを、「ウィジェットURI」という。ウィジェットURIは、例えば、ウィジェットマネージャURIの末尾に、ウィジェットIDが付与されることにより生成される。ここで、ウィジェットマネージャURIは、ウィジェットマネージャ22ごと(すなわち、ユーザ端末20ごと)に異なるURIである。したがって、同一の印刷ウィジェット21aが、異なるユーザ端末20において起動された場合、各印刷ウィジェット21aに対するウィジェットURIの値は異なる。すなわち、ウィジェットURIに基づいて、ネットワーク上において、一つの印刷ウィジェット21aを特定することができる。
なお、印刷ウィジェット21aのウィジェット情報の登録に伴い、ウィジェット情報登録部222は、登録されたウィジェット情報に含まれている連携機能識別子に対するカウンタに1を加算する。
図9は、連携機能識別子ごとのカウンタの例を示す図である。ウィジェットマネージャ22は、同図に示されるような連携機能識別子ごとのカウンタを、例えば、メモリ装置203内に記録している。図7のステップS112では、「print」に対するカウンタに1が加算される。
1の加算により、カウンタの値が0から1に変わった場合、すなわち、同一の連携機能識別子に係るウィジェット21が、一つも起動されていない状態から、一つ起動された状態になった場合、ウィジェットマネージャ22の連携機能広告部223は、ログインユーザのユーザIDと、当該カウンタに係る連携機能識別子とを含む連携機能広告をネットワーク上に送信する(S113)。
各画像形成装置10のプロバイダアプリ1221の連携機能検知部132は、連携機能広告を受信すると、ユーザ管理テーブル137において、当該連携機能広告に含まれているユーザIDに対応するレコードに、当該連携機能広告に含まれている連携機能識別子を登録する(S114)。
図10は、連携機能識別子が登録されたユーザ管理テーブルの例を示す図である。同図は、ユーザAが利用するユーザ端末20において印刷ウィジェット21aが起動された例に対応する。すなわち、ユーザAに対して、連携機能識別子「print」が登録されている。
なお、ステップS112の実行後、加算対象とされた連携機能識別子のカウンタが2以上である場合、ステップS113及びS114は実行されない。ユーザ管理テーブル137に、連携機能識別子が重複して登録される必要はないからである。但し、印刷ウィジェット21bの起動のたびに連携機能広告が送信されてもよい。この場合、連携機能広告の重複は、プロバイダアプリ1221によって排除されればよい。
ステップS112又はステップS113の実行後、ウィジェット情報登録部222は、ステップS112において生成したウィジェットURIを、印刷ウィジェット21aのウィジェット情報送信部212aに返信する(S115)。ウィジェット情報送信部212aは、返信されたウィジェットURIを、当該印刷ウィジェット21aに対するウィジェットURIとして、メモリ装置203に記録しておく。また、起動された印刷ウィジェット21aのウィジェットUI部211aは、印刷ウィジェット21aのアイコンを、ユーザ端末20の表示装置206に表示させる。
以上により、印刷ウィジェット21aは、ウィジェットマネージャ22に登録されたことになる。また、印刷ウィジェット21aを起動したユーザ(ユーザ端末20)が印刷機能を利用することが画像形成装置10に登録されたことになる。
その後、ユーザは、印刷ウィジェット21aを利用して、印刷ジョブを画像形成装置10に実行させる。但し、ここでは、便宜上、印刷ウィジェット21aの終了時の処理手順について、図7を参照しつつ、先に説明する。
例えば、ユーザによって、印刷ウィジェット21aの終了指示が入力されると、印刷ウィジェット21aのウィジェット情報送信部212aは、印刷ウィジェット21aの登録解除要求を、ウィジェットマネージャ22に送信する(S121)。登録解除要求には、印刷ウィジェット21aのウィジェットURIが指定される。
印刷ウィジェット21aのウィジェット情報送信部212aより送信された登録解除要求は、ウィジェットマネージャ22のウィジェット情報登録部222によって受信される。ウィジェット情報登録部222は、登録解除要求に指定されているウィジェットURIに関連付けられているウィジェット情報を削除する(S122)。ウィジェット情報登録部222は、また、当該ウィジェット情報に含まれている連携機能識別子に対するカウンタ(図9参照)より1を減算する。
減算対象とされたカウンタの値が0となった場合、すなわち、登録解除されたウィジェット情報に含まれている連携機能識別子に係るウィジェット21が、ユーザ端末20において一つも起動されていない状態となった場合、連携機能広告部223は、連携機能解除広告をネットワーク上に送信(ブロードキャスト又はマルチキャスト)する(S123)。なお、連携機能解除広告とは、当該広告に含まれている連携機能識別子に係る機能の利用が不要となったことを通知するための広告である。連携機能解除広告には、ユーザ端末20のログインユーザのユーザID及び連携機能識別子等が含まれる。
各画像形成装置10のプロバイダアプリ1221の連携機能検知部132は、連携機能解除広告を受信すると、ユーザ管理テーブル137において、当該連携機能解除広告に含まれているユーザIDに対応するレコードより、当該連携機能解除広告に含まれている連携機能識別子を削除する(S124)。その結果、例えば、ユーザ管理テーブル137は、図6に示されるような状態に戻る。
なお、ステップS122の実行後、減算対象とされた連携機能識別子のカウンタが1以上である場合、ステップS123及びS124は実行されない。
ステップS122又はステップS123の実行後、ウィジェット情報登録部222は、登録解除要求に応じた処理の成否を示す情報を、印刷ウィジェット21aのウィジェット情報送信部212aに返信する(S125)。続いて、印刷ウィジェット21aのウィジェットUI部211aは、印刷ウィジェット21aのアイコンを非表示とする。
なお、図7では、印刷ウィジェット21aに関して説明を行ったが、スキャンウィジェット21bの起動時又は終了時においても、図7と同様の処理手順が実行される。例えば、ステップS111では、起動されたスキャンウィジェット21bのウィジェット情報送信部212によって、スキャンウィジェット21bのウィジェット情報が、ウィジェットマネージャ22に送信される。
図11は、スキャンウィジェットのウィジェット情報の例を示す図である。同図に示されるウィジェット情報を構成する各項目は、図8において説明した印刷ウィジェット21aのウィジェット情報を構成する項目と同様である。但し、各項目の値は異なる。
すなわち、ウィジェットIDは、スキャンウィジェット21bのウィジェットIDである。また、スキャンウィジェット21bは、画像形成装置10のスキャン機能を利用する。したがって、スキャンウィジェット21bの連携機能識別子は、スキャン機能を示す「scan」である。表示名は、スキャンウィジェット21bの名前の表示用の文字列である。
図11に示されるウィジェット情報に基づいて、ウィジェットマネージャ22では、連携機能識別子「scan」に対するカウンタに1が加算される。加算の結果、当該カウンタの値が1となった場合、ユーザID及び連携機能識別子「scan」等を含む連携機能広告が送信される。その結果、各画像形成装置10のユーザ管理テーブル137には、連携機能広告に含まれているユーザIDに対応させて、連携機能識別子「scan」が登録される。なお、或るユーザのユーザ端末20において、印刷ウィジェット21a及びスキャンウィジェット21bの双方が起動された場合、ユーザ管理テーブル137には、当該ユーザのユーザIDに対応付けて、連携機能識別子に「print」及び「scan」の双方が登録される。
続いて、印刷ウィジェット21aによる印刷ジョブの投入処理について説明する。図12は、第一の実施の形態における印刷ウィジェットによる印刷ジョブの投入処理の処理手順を説明するためのシーケンス図である。
例えば、印刷ウィジェット21aのアイコンに対して印刷対象の文書ファイルのアイコンがドラッグアンドドロップされると、印刷ウィジェット21aのロジック部214aは、ドロップされたファイルアイコンに係るファイル名が引数に指定された、文書アプリ23に対する印刷指示を示すコマンドラインをOS25に入力する(S201)。その結果、当該文書アプリ23がバックグラウンドで起動される。文書アプリ23は、起動に応じ、当該文書ファイルの印刷要求をプリンタドライバ24に入力する(S202)。印刷要求に応じ、プリンタドライバ24は、文書ファイルに関する印刷データ(PDL(Page Description Language)データ)を生成する。印刷ウィジェット21aに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ24は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する(S203)。
一方、印刷ウィジェット21aのロジック部214aは、印刷ウィジェット21aの起動後、所定のファイル名の中間ファイルが生成されるのを待機している。具体的には、印刷ウィジェット21aは、中間ファイルの有無を確認するため所定のフォルダ内の所定のファイル名のファイルをポーリングしている。印刷ウィジェット21aは、中間ファイルが生成されたことを検知すると、当該中間ファイルより印刷データを読み込む(S204)。
続いて、連携部213aは、例えば、属性情報管理ファイル215aに記録されている印刷設定情報と、ポーリングにより取得された印刷データとを含む印刷ジョブの登録要求をウィジェットマネージャ22に送信する(S205)。なお、印刷ジョブの登録要求には、印刷ウィジェット21aに対するウィジェットURIも指定される。
ステップS205において印刷ウィジェット21aの連携部213aより送信された印刷ジョブの登録要求は、ウィジェットマネージャ22のウィジェット情報登録部222によって受信される。ウィジェット情報登録部222は、当該登録要求に係る印刷ジョブを識別するためのURI(印刷ジョブURI)を、受信された登録要求に指定されているウィジェットURIに基づいて生成し、当該印刷ジョブを、生成された印刷ジョブURIに関連付けて、補助記憶装置202に記録する(S206)。印刷ジョブURIは、ウィジェットURIの末尾に対して、印刷ジョブごとの識別子が付与されることにより生成される。ウィジェット情報登録部222は、生成された印刷ジョブURIを、印刷ウィジェット21aの連携部213aに返信する(S210)。
その後、印刷ウィジェット21aは、ウィジェット情報の登録後、中間ファイルのポーリングを再開する。したがって、更に、文書ファイルのアイコンが印刷ウィジェット21aのアイコンにドロップされると、当該文書ファイルに係る印刷ジョブが、ウィジェットマネージャ22に登録される。すなわち、一つのウィジェットマネージャ22には、一つの印刷ウィジェット21aに関して複数の印刷ジョブが蓄積されうる。この場合、ウィジェットマネージャ22では、一つのウィジェットURIに基づいて複数の印刷ジョブURIが生成され、各印刷ジョブURIに関連付けられて、印刷ジョブが記憶される。
続いて、スキャンウィジェット22bによるスキャンジョブの設定情報(解像度、カラーモード等)の登録処理について説明する。当該登録処理は、印刷ウィジェット21aによる印刷ジョブの投入処理に対応する。但し、スキャンジョブは、画像形成装置10において投入される。スキャンジョブの投入には、画像形成装置10において原稿がセットされる必要があるからである。したがって、スキャンウィジェット22bによっては、スキャンジョブ自体は投入されず、スキャンジョブに対する設定情報がウィジェットマネージャ22に登録されるのである。
図13は、第一の実施の形態におけるスキャンウィジェットによるスキャンジョブの設定情報の登録処理の処理手順を説明するためのシーケンス図である。
例えば、スキャンウィジェット21bのウィジェットUI部211bが表示装置206に表示させている、スキャンウィジェット21bのアイコンに対して所定の操作(例えば、ダブルクリック等)が行われると、ウィジェットUI部211bは、スキャンジョブに対する設定情報を設定されるための画面(以下、「スキャン設定画面」という。)を表示装置206に表示させる(S251)。なお、スキャン設定画面は、属性情報管理ファイル215bに記録されている、設定情報の既定値が設定された状態で表示されてもよい。
スキャン設定画面において、設定情報が設定され、設定完了の指示が入力されると、スキャンウィジェット21bのロジック部214bは、設定情報の登録要求をウィジェットマネージャ22に送信する(S252)。当該登録要求には、スキャンウィジェット21bに対するウィジェットURIも指定される。
ステップS252においてスキャンウィジェット21bのロジック部214bより送信された設定情報の登録要求は、ウィジェットマネージャ22のウィジェット情報登録部222によって受信される。ウィジェット情報登録部222は、受信された登録要求に指定されているウィジェットURIに関連付けて、登録対象の設定情報を、例えば、補助記憶装置202に記録する(S253)。これにより、ウィジェットマネージャ22に対して、スキャンジョブの設定情報が登録されたことになる。
ユーザは、印刷ウィジェット21aを介して印刷ジョブをウィジェットマネージャ22に投入した後、又はスキャンウィジェット22bを介してスキャンジョブの設定情報をウィジェットマネージャ22に登録した後、印刷ジョブ又はスキャンジョブを実行させるために画像形成装置10の設置場所へ移動する。なお、複数の画像形成装置10がネットワークに接続されている場合、同一のユーザ広告及び連携機能広告等が各画像形成装置10によって受信され、それぞれの画像形成装置10のユーザ管理テーブル137に各広告の内容が登録されている。したがって、ユーザは、印刷機能又はスキャン機能を備えた画像形成装置10であれば、複数の画像形成装置10のいずれからも印刷ジョブ又はスキャンジョブを実行させることができる。
続いて、画像形成装置10におけるユーザによる操作に応じて実行される処理について説明する。図14は、第一の実施の形態における実行可能なウィジェットの一覧の表示処理の処理手順を説明するためのシーケンス図である。
操作対象とされた画像形成装置10の操作パネル15を介してプロバイダアプリ1221の利用指示がユーザによって入力されると(S301)、プロバイダアプリ1221のUI制御部133は、ユーザ管理テーブル137に登録されている各レコードの連携機能識別子と、当該画像形成装置10が備える機能の識別子の一覧との比較に基づいて、当該画像形成装置10を利用可能なユーザを判定する(S302)。当該画像形成装置10が備える機能の識別子(以下、「機器対応機能識別子」という。)の一覧は、例えば、HDD114に予め記録されている。同一機能に関する機器対応識別子と連携機能識別子との値は同一であってもよいし、異なっていてもよい。異なっている場合、機能ごとに、機器対応識別子と連携機能識別子との対応情報がHDD114に記録されていればよい。ここでは、同一機能に関して機器対応機能識別子と連携機能識別子との値は同一であるとする。したがって、当該画像形成装置10の機器対応識別子の一覧に「print」のみが含まれている場合、ユーザ管理テーブル137の連携機能識別子に少なくとも「print」が登録されているユーザが、当該画像形成装置10を利用可能なユーザであると判定される。換言すれば、連携機能識別子に「scan」のみが登録されているユーザは、当該画像形成装置10を利用可能なユーザから除外される。
例えば、ステップS302が実行されるタイミングにおいて、情報処理システム1におけるウィジェットの起動状態は、図15に示される通りであるとする。
図15は、第一の実施の形態におけるウィジェットの起動状態を示す図である。同図には、ユーザAが利用するユーザ端末20aにおいて、一つのスキャンウィジェット21bが起動されていることが示されている。また、ユーザBが利用するユーザ端末20bにおいて、一つのスキャンウィジェット21bが起動されていることが示されている。また、ユーザYが利用するユーザ端末20yにおいて、一つの印刷ウィジェット21aが起動されていることが示されている。また、ユーザZが利用するユーザ端末20zにおいて、一つの印刷ウィジェット21aが起動されていることが示されている。
この場合、画像形成装置10のユーザ管理テーブル137の連携機能識別子には、ユーザA及びユーザBに関して「scan」が登録されており、ユーザY及びユーザZに関して「print」が登録されている。画像形成装置10の機器対応機能識別子が「print」であるとすると、ユーザY及びユーザZが、画像形成装置10を利用可能なユーザであると判定される。
続いて、UI制御部133は、当該画像形成装置10を利用可能であると判定されたユーザに係るレコードをユーザ管理テーブル137より抽出する(S303)。続いて、UI制御部133は、抽出されたレレコードに係るユーザを選択肢とする、ユーザ選択画面を生成し、当該ユーザ選択画面を操作パネル15に表示させる(S304)。ユーザ選択画面は、画像形成装置10との機能連携の対象(ユーザ端末20)を選択させるための画面の一例である。
図16は、第一の実施の形態におけるユーザ選択画面の表示例を示す図である。同図には、操作パネル15の構成要素として、液晶パネル151及び操作ボタン152が示されている。液晶パネル151には、ユーザ選択画面が表示されている。同図では、図15に示される状態に対応した表示例が示されている。したがって、ユーザY及びユーザZが選択肢とされている。一方、ユーザA及びB等は、選択肢に含まれていない。当該画像形成装置10は、スキャン機能を有しておらず、ユーザA及びBを表示させたとしても、ユーザ選択画面の表示内容を煩雑化するだけだからである。換言すれば、選択肢が、当該画像形成装置10を利用可能なユーザに限定されることで、ユーザ選択画面の表示内容を簡素化することができる。その結果、ユーザは、自らに対応する選択肢を容易に見つけ出すことができる。
なお、操作ボタン152は、液晶パネル151の表示内容のスクロール又は切り替え等の指示入力を受け付けるためのボタンである。
続いて、ユーザは、ユーザ選択画面において自らに対応する選択肢(行)を選択する(S305)。選択に応じ、ウィジェット情報取得部134は、選択された選択肢に対応するユーザIDに関連付けられているウィジェットマネージャURIをユーザ管理テーブル137より取得する。
続いて、ウィジェット情報取得部134は、取得されたウィジェットマネージャURI宛に、ウィジェット情報の取得要求を送信する(S306)。ウィジェット情報の取得要求は、選択されたユーザIDに係るユーザのユーザ端末20におけるウィジェットマネージャ22のウィジェット情報提供部224によって受信される。ウィジェット情報提供部224は、補助記憶装置202に記録されているウィジェット情報の一覧を取得し、当該一覧をプロバイダアプリ1221に返信する(S307)。なお、各ウィジェット情報は、当該ウィジェット情報に係るウィジェットに対して割り当てられたウィジェットURIが付与された状態で、プロバイダアプリ1221に転送される。
続いて、プロバイダアプリ1221のUI制御部133は、受信されたウィジェット情報等の一覧をRAM112に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット21の一覧を含む画面(ウィジェット選択画面)を操作パネル15に表示させる(S308)。
例えば、図16のユーザ選択画面において、ユーザYが選択された場合、印刷ウィジェット21aの表示名「印刷」を選択肢として含むウィジェット選択画面が、操作パネル15の液晶パネル151に表示される。
一方、画像形成装置10が、スキャン機能を有する場合、ユーザ選択画面には、図15におけるユーザA及びユーザB等が選択肢として表示される。ユーザA又はユーザBが選択された場合、ユーザ端末20a又は20bより、スキャンウィジェット21bのウィジェット情報及びウィジェットURIがウィジェット情報取得部134によって取得され、当該ウィジェット情報に係るウィジェットを選択肢とした含むウィジェット画面が、液晶パネル151に表示される。
以降の処理は、ウィジェット選択画面において選択されるウィジェット21の種別(印刷ウィジェット21a又はスキャンウィジェット21b)に応じて異なる。したがって、それぞれが選択された場合について、個別に説明する。
図17は、印刷ウィジェットの実行時の処理手順を説明するためのシーケンス図である。すなわち、図17は、ウィジェット選択画面において、印刷ウィジェット21aが選択された場合に実行される処理手順である。
ウィジェット連携部135は、ウィジェット選択画面において選択された選択肢に係るウィジェット情報に含まれている連携機能識別子(「print」)に基づいて、印刷ジョブを実行すべきことを判断する。そこで、ウィジェット連携部135は、当該ウィジェット情報に関連付けられているウィジェットURIを指定して、当該ウィジェットURIに係るウィジェットマネージャ22宛に印刷ジョブ一覧の取得要求を送信する(S401)。
当該取得要求は、当該ウィジェットマネージャ22の仲介部225によって受信される。仲介部225は、当該取得要求に指定されているウィジェットURIに関連付けられて補助記憶装置202に記録されている印刷ジョブごとに、印刷ジョブURI及びジョブ名を含む印刷ジョブ一覧を生成し、当該印刷ジョブ一覧を返信する(S402)。ジョブ名は、例えば、印刷ジョブにおいて印刷対象とされている文書ファイル名である。
プロバイダアプリ1221のウィジェット連携部135は、印刷ジョブ一覧を受信すると、印刷ジョブ一覧に含まれているジョブ名の一覧を操作パネル15に表示させる(S403)。ユーザによって、当該一覧の中から実行対象とするジョブ名が選択されると、ウィジェット連携部135は、選択されたジョブ名に対応する印刷ジョブURIを指定して、当該印刷ジョブURIに係るウィジェットマネージャ22宛に印刷ジョブの取得要求を送信する(S404)。
当該取得要求は、当該ウィジェットマネージャ22の仲介部225によって受信される。仲介部225は、当該取得要求に指定されている印刷ジョブURIに関連付けられて補助記憶装置202に記録されている印刷ジョブ(印刷データ)を補助記憶装置202より取得し、プロバイダアプリ1221に返信する(S405)。
プロバイダアプリ1221のウィジェット連携部135は、受信された印刷ジョブを機能制御部136に入力する。機能制御部136は、入力された印刷ジョブを印刷アプリ1212に実行させる(S406)。その結果、当該印刷ジョブに係る印刷データに基づく印刷画像が印刷された印刷用紙がプリンタ13より出力される。
続いて、ウィジェット選択画面において、スキャンウィジェット21bが選択された場合に実行される処理手順について説明する。
図18は、スキャンウィジェット実行時の処理手順を説明するためのシーケンス図である。
画像形成装置10に1枚以上の原稿がセットされ、ウィジェット選択画面において、スキャンウィジェット21bに対応する選択肢が選択されると、プロバイダアプリ1221のウィジェット連携部135は、選択された選択肢に対応するウィジェット情報(以下、「カレントウィジェット情報」という。)に含まれている連携機能識別子(「scan」)に基づいて、スキャンを実行すべきことを認識する。そこで、ウィジェット連携部135は、カレントウィジェット情報に関連付けられているウィジェットURIを指定して、当該ウィジェットURIに係るウィジェットマネージャ22宛に、スキャンジョブの設定情報の取得要求を送信する(S601)。
当該取得要求は、当該ウィジェットマネージャ22の仲介部225によって受信される。仲介部225は、当該取得要求に指定されているウィジェットURIに関連付けられて補助記憶装置202に記録されている設定情報を返信する(S602)。続いて、ウィジェット連携部135は、当該設定情報を指定して、スキャンの実行を機能制御部136に要求する。
機能制御部136は、当該設定情報に基づくスキャンジョブをスキャンアプリ1211に実行させる(S603)。スキャンアプリ1211は、画像形成装置10にセットされた原稿に対するスキャンをスキャナ12に実行させ、その結果得られる画像データ(以下「スキャン画像データ」という。)をウィジェット連携部135に出力する。
ウィジェット連携部135は、スキャン画像データを、カレントウィジェット情報に関連付けられているウィジェットURI宛に送信する(S604)。当該ウィジェットURI宛に送信されたスキャン画像データは、当該ウィジェットURIに係るウィジェットマネージャ22の仲介部225によって受信される。
一方、スキャンウィジェット21bは、ウィジェット情報を送信した後、画像形成装置10において画像データがスキャンされたことを確認するためのポーリングを行い、画像データの転送(返信)を待機している。具体的には、スキャンウィジェット21bの連携部213bは、ウィジェットURIを指定して、スキャンされた画像データ(スキャン画像データ)の取得要求をウィジェットマネージャ22の仲介部225に送信する(S511)。仲介部225は、当該取得要求に対する応答を行う(S512)。
仲介部225は、スキャン画像データの受信後に受信される、スキャン画像データの取得要求(S511)に応じ、当該取得要求に指定されているウィジェットURIに関して受信されているスキャン画像データを、スキャンウィジェット21bの連携部213bに返信する(S512)。
連携部213bは、スキャン画像データを受信すると、当該スキャン画像データをロジック部214bに入力する。ロジック部214bは、スキャン画像データを処理対象として、自らに実装されている処理(ロジック)を実行する(S605)。具体的には、ロジック部214bは、属性情報管理ファイル215bにおいて設定されているフォルダ内にファイルを生成し、当該ファイル内にスキャン画像データを出力する。続いて、連携部213bは、次のスキャンウィジェット21bの実行に備えて、スキャン画像データ取要求のポーリングを再開し(S511)、スキャン画像データの転送を待機する。
上述したように、第一の実施の形態によれば、画像形成装置10は、当該画像形成装置10が有している機能を利用するユーザ(ユーザ端末20)に対応する選択肢を優先させて、ユーザ選択画面を表示させる。具体的には、ユーザ選択画面における選択肢は、画像形成装置10が有している機能を利用するユーザ(ユーザ端末20)に限定される。換言すれば、画像形成装置10が有していない機能を利用するユーザ(ユーザ端末20)は選択肢から排除される。したがって、利便性を損なうことなく当該選択肢の数を削減することができる。その結果、液晶パネル151が、4行パネルのように該像度の低いパネルである場合でも、操作性の劣化を抑制することができる。
なお、画像形成装置10を利用可能と判定されたユーザ(ユーザ端末20)に対応する選択肢の優先の形態は、画像形成装置10を利用可能でないと判定されたユーザに対応する選択肢を非表示とすることでなくてもよい。例えば、優先対象の選択肢の表示順が相対的に下位とされたり、非優先対象がグレーアウト(選択不可状態)されたりしてもよい。非優先対象の選択肢が非表示とされないことにより、ユーザ広告自体は、正常に画像形成装置10において受信されていることを確認することができる。
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でよい。
第二の実施の形態では、印刷ウィジェット21aに関して、連携機能広告及び連携機能解除広告が発行されるタイミングが第一の実施の形態と異なる。すなわち、第二の実施の形態では、印刷ウィジェット21aの起動時に連携機能広告は発行されない。また、印刷ウィジェット21aの終了時に連携機能解除広告は発行されない。具体的には、図7のステップS113及びS114、並びにステップS123及びS124は実行されない。また、ステップS112又はS122において、カウンタの加算又は減算は行われない。
図19は、第二の実施の形態において連携機能広告が発行されるタイミングを説明するためのシーケンス図である。同図は、図12のステップS205〜S210を抽出したものである。図19中、図12と同一ステップには、同一符号を付し、その説明は適宜省略する。
ステップS206において印刷ジョブが登録された後、ウィジェットマネージャ22の連携機能広告部223は、登録された印刷ジョブに係るウィジェットURIに関連付けられているウィジェット情報に含まれる連携機能識別子に対応するカウンタ(図9参照)に1を加算する(S207)。ここでは、「print」に対するカウンタに1が加算される。
1の加算により、カウンタの値が0から1に変わった場合、すなわち、印刷ジョブが一つも登録されていない状態から、一つ登録された状態となった場合、ウィジェットマネージャ22の連携機能広告部223は、ログインユーザのユーザIDと、当該カウンタに係る連携機能識別子とを含む、連携機能広告をネットワーク上に送信する(S208)。
各画像形成装置10のプロバイダアプリ1221の連携機能検知部132は、連携機能広告を受信すると、ユーザ管理テーブル137において、当該連携機能広告に含まれているユーザIDに対応するレコードに、当該連携機能広告に含まれている連携機能識別子を登録する(S209)。
続いて、図20は、第二の実施の形態において連携機能解除広告が発行されるタイミングを説明するためのシーケンス図である。同図の前提として、ウィジェットマネージャ22に登録された印刷ジョブは、その実行に応じて必ずしもウィジェットマネージャ22からは削除されない。すなわち、図17のステップS405において、プロバイダアプリ1221に転送された印刷ジョブは、ウィジェットマネージャ22に登録されたままとなる。このことは、同一の印刷ジョブを、同一の又は異なる画像形成装置10において複数回実行可能であることを意味する。このような印刷ジョブは、印刷ウィジェット21aに対する指示によって、登録解除することができる。
例えば、ユーザ端末20において、印刷ウィジェット21aのアイコンが右クリックされると、印刷ウィジェット21aのウィジェットUI部211aは、コンテキストメニューを表示させる。当該コンテキストメニューの中から、「印刷ジョブ一覧表示」のメニュー項目が選択されると、ウィジェットUI部211aは、印刷ウィジェット21aのウィジェットURIを指定して、印刷ジョブ一覧の取得要求をウィジェットマネージャ22に送信する(S701)。
当該取得要求は、当該ウィジェットマネージャ22の仲介部225によって受信される。ウィジェットマネージャ22の仲介部225は、当該取得要求に指定されているウィジェットURIに関連付けられて補助記憶装置202に記録されている印刷ジョブごとに、印刷ジョブURI及びジョブ名を含む印刷ジョブ一覧を生成し、当該印刷ジョブ一覧を返信する(S702)。
印刷ウィジェット21aのウィジェットUI部211aは、印刷ジョブ一覧を受信すると、印刷ジョブ一覧に含まれているジョブ名の一覧を含む印刷ジョブ一覧画面を表示装置206に表示させる(S703)。ユーザによって、当該一覧の中から登録解除対象とするジョブ名が選択され、登録解除指示が入力されると、ウィジェットUI部211aは、選択されたジョブ名に対応する印刷ジョブURIを指定して、印刷ジョブの登録解除要求をウィジェットマネージャ22に送信する(S704)。
当該登録解除得要求は、当該ウィジェットマネージャ22のウィジェット情報登録部222によって受信される。ウィジェット情報登録部222は、当該登録解除要求に指定されている印刷ウィジェットURIに係る印刷ジョブを削除する(S705)。
続いて、連携機能広告部223は、印刷ウィジェット21bのウィジェットURIに関連付けられているウィジェット情報に含まれている連携機能識別子「print」のカウンタから1を減算する(S706)。
減算対象とされたカウンタの値が0となった場合、すなわち、ユーザ端末20において、印刷ジョブが一つも登録されていない状態となった場合、連携機能広告部223は、連携機能解除広告をネットワーク上に送信(ブロードキャスト又はマルチキャスト)する(S707)。
各画像形成装置10のプロバイダアプリ1221の連携機能検知部132は、連携機能解除広告を受信すると、ユーザ管理テーブル137において、当該連携機能解除広告に含まれているユーザIDに対応するレコードより、当該連携機能解除広告に含まれている連携機能識別子を削除する(S708)。
上述したように、第二の実施の形態では、印刷ウィジェット21aの起動の湯無ではなく、印刷ジョブの登録の有無に基づいて、連携機能広告又は連携機能解除広告が発行される。その結果、第一の実施の形態よりも、画像形成装置10を利用可能なユーザを限定することができる。例えば、第二の実施の形態において、ユーザ選択画面が表示されるタイミング(厳密には、図14のステップS302のタイミング)において、情報処理システム1におけるウィジェットの起動状態は、図21に示される通りであるとする。
図21は、第二の実施の形態におけるウィジェットの起動状態を示す図である。同図に関しては、図15と異なる点について説明する。
図21では、印刷ウィジェット21bに関して、印刷ジョブの登録の有無が明確化されている。すなわち、ユーザ端末20yにおいては、印刷ジョブは登録されていない。一方、ユーザ端末20zにおいては、一つの印刷ジョブが登録されている。
この場合、画像形成装置10のユーザ管理テーブル137の連携機能識別子には、ユーザA及びユーザBに関して「scan」が登録されており、ユーザZに関して「print」が登録されている。一方、ユーザYに関しては、連携機能識別子は登録されていない。
図21に示されるような状態において、画像形成装置10が、印刷機能を有し、スキャン機能を有さない場合、図14のステップS304において、ユーザ選択画面は、例えば、図22に示されるように表示される。
図22は、第二の実施の形態におけるユーザ選択画面の表示例を示す図である。同図のユーザ選択画面には、ユーザZのみが選択肢とされており、印刷ウィジェット21aを起動させているユーザYは選択肢に含まれていない。ユーザYに関しては、印刷ジョブは登録されていないからである。印刷ジョブが登録されていなければ、画像形成装置10に印刷ジョブを実行させることはできない。したがって、第二の実施の形態では、より厳密に、画像形成装置10を利用可能なユーザが限定される。その結果、ユーザ選択画面における選択肢の数を更に削減することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。