(57)【要約】【課題】端末装置において、１以上のハードウェアを有効に利用しつつ複雑な情報処理が行えなかった。【解決手段】端末要求を構成する情報とシナリオ元情報との対応を示す１以上の対応情報を格納し得る対応情報格納部と、端末装置のカレント情報を端末装置ごとに格納し得るカレント情報格納部と、端末装置から端末要求を受信する受信部と、端末要求に対応するシナリオ元情報を取得し、かつ、端末要求に対応する処理を行う端末要求処理部と、シナリオ元情報と処理結果とカレント情報とを用いて、シナリオを生成するシナリオ生成部と、シナリオを端末装置に送信する送信部と、シナリオの端末装置への送信に応じて、カレント情報を更新するカレント情報更新部とを具備するサーバ装置により、ドライバにより駆動される１以上のハードウェアを具備し、情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。【選択図】図１
2014092893.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上の端末装置とサーバ装置とを具備する情報システムであって、
前記端末装置は、
ドライバにより駆動される１以上の端末機能部と、
前記１以上の端末機能部のドライバを識別する１以上のドライバ識別子を格納し得る端末ドライバ管理部と、
ユーザからの１以上の指示を受け付ける端末受付部と、
前記１以上の指示に対応する要求である端末要求を構成し、当該端末要求を前記サーバ装置に送信する端末送信部と、
前記端末要求の送信に対応して、前記サーバ装置からコマンドとデータとを有するシナリオを受信する端末受信部と、
前記シナリオを解釈し、前記１以上のドライバ識別子、および当該１以上のドライバ識別子で識別される１以上の機能部に渡すデータであり、前記シナリオが有するデータを取得する端末パーサ部と、
前記端末パーサ部が取得した前記１以上のドライバ識別子で識別される１以上の端末機能部に、前記端末パーサ部が取得したデータを渡し、前記１以上の端末機能部を呼び出す端末機能呼出部とを具備し、
前記サーバ装置は、
端末要求を構成する情報とシナリオを構成する元になる情報であるシナリオ元情報との対応を示す１以上の対応情報を格納し得る対応情報格納部と、
端末装置の現在の状態を示す情報であるカレント情報を、端末装置ごとに格納し得るカレント情報格納部と、
前記端末装置から端末要求を受信する受信部と、
前記受信部が受信した端末要求を解釈し、当該端末要求に対応するシナリオ元情報を、前記対応情報格納部から取得し、かつ、前記受信部が受信した端末要求に対応する処理を行う端末要求処理部と、
前記端末要求処理部が取得したシナリオ元情報と、前記端末要求処理部が処理を行って得た処理結果と、前記端末装置に対応するカレント情報とを用いて、シナリオを生成するシナリオ生成部と、
前記シナリオ生成部が生成したシナリオを端末装置に送信する送信部と、
前記シナリオの端末装置への送信に応じて、前記カレント情報を更新するカレント情報更新部とを具備する情報システム。
【請求項２】
前記１または２以上の各端末装置が具備している端末機能部のドライバを識別する１以上のドライバ識別子を、端末装置ごとに格納し得るサーバドライバ管理部をさらに具備し、
前記シナリオ生成部は、
前記サーバドライバ管理部に格納されている１以上のドライバ識別子に応じて、生成するシナリオが異なる請求項１記載の情報システム。
【請求項３】
前記サーバドライバ管理部は、
端末装置の種類を示す種類識別子と１以上のドライバ識別子とを対応付ける１以上の種類別ドライバ情報を格納し得る種類別ドライバ情報格納手段と、
端末装置を識別する端末識別子と種類識別子とを対応付ける１以上の端末管理情報を格納し得る端末管理情報格納手段とを具備する請求項２記載の情報システム。
【請求項４】
端末装置のユーザを識別するユーザ識別子と端末識別子とを対応付ける１以上のユーザ管理情報を格納し得るユーザ管理情報格納部と、
前記端末要求が、処理を行う端末装置を移動する旨の要求である場合に、処理を行う端末装置が、現在処理を行っている端末装置である旧端末装置から新端末装置に変更になるように、ユーザ管理情報が有する端末識別子であり、前記端末要求を送信してきた端末装置のユーザのユーザ識別子に対応する端末識別子を、前記新端末装置の端末識別子に変更するユーザ管理情報変更部とをさらに具備し、
前記シナリオ生成部は、
前記旧端末装置のカレント情報を用いて、シナリオを生成し、
前記送信部は、
前記シナリオ生成部が生成したシナリオを新端末装置に送信する請求項２または請求項３記載の情報システム。
【請求項５】
請求項１から請求項４いずれか記載の情報システムを構成する端末装置。
【請求項６】
請求項１から請求項４いずれか記載の情報システムを構成するサーバ装置。
【請求項７】
記憶媒体に、
端末要求を構成する情報とシナリオを構成する元になる情報であるシナリオ元情報との対応を示す１以上の対応情報を格納しており、かつ、端末装置の現在の状態を示す情報であるカレント情報を、端末装置ごとに格納しており、
受信部、端末要求処理部、シナリオ生成部、送信部、カレント情報更新部により実現される情報処理方法であって、
前記受信部が、端末装置から端末要求を受信する受信ステップと、
前記端末要求処理部が、前記受信ステップで受信された端末要求を解釈し、当該端末要求に対応するシナリオ元情報を、前記記憶媒体から取得し、かつ、前記受信ステップで受信された端末要求に対応する処理を行う端末要求処理部と、
前記シナリオ生成部が、前記端末要求処理ステップで取得されたシナリオ元情報と、前記端末要求処理ステップで処理を行って得られた処理結果と、前記端末装置に対応するカレント情報とを用いて、シナリオを生成するシナリオ生成ステップと、
前記送信部が、前記シナリオ生成ステップで生成されたシナリオを端末装置に送信する送信ステップと、
前記カレント情報更新部が、前記シナリオの端末装置への送信に応じて、前記カレント情報を更新するカレント情報更新ステップとを具備する情報処理方法。
【請求項８】
記憶媒体に、端末要求を構成する情報とシナリオを構成する元になる情報であるシナリオ元情報との対応を示す１以上の対応情報を格納しており、かつ、端末装置の現在の状態を示す情報であるカレント情報を、端末装置ごとに格納しており、
コンピュータを、
前記端末装置から端末要求を受信する受信部と、
前記受信部が受信した端末要求を解釈し、当該端末要求に対応するシナリオ元情報を、前記対応情報格納部から取得し、かつ、前記受信部が受信した端末要求に対応する処理を行う端末要求処理部と、
前記端末要求処理部が取得したシナリオ元情報と、前記端末要求処理部が処理を行って得た処理結果と、前記端末装置に対応するカレント情報とを用いて、シナリオを生成するシナリオ生成部と、
前記シナリオ生成部が生成したシナリオを端末装置に送信する送信部と、
前記シナリオの端末装置への送信に応じて、前記カレント情報を更新するカレント情報更新部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置の操作に応じて、サーバから端末装置に端末側ドライバ動作のためのコマンドを送信する情報システム等に関するものである。
【背景技術】
【０００２】
従来、クライアント側におけるＷｅｂブラウザの機能を有効に活用することによってサーバ側の負担を軽減しつつ、ダイナミックな画面展開を図ることができるクライアント・サーバシステムがあった（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１８６７９２号公報（第１頁、第１図等）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の情報システムにおいては、ドライバにより駆動される１以上のハードウェアを具備し、かつ情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行えなかった。
【課題を解決するための手段】
【０００５】
本第一の発明の情報システムは、１または２以上の端末装置とサーバ装置とを具備する情報システムであって、端末装置は、ドライバにより駆動される１以上の端末機能部と、１以上の端末機能部のドライバを識別する１以上のドライバ識別子を格納し得る端末ドライバ管理部と、ユーザからの１以上の指示を受け付ける端末受付部と、１以上の指示に対応する要求である端末要求を構成し、端末要求をサーバ装置に送信する端末送信部と、端末要求の送信に対応して、サーバ装置からコマンドとデータとを有するシナリオを受信する端末受信部と、シナリオを解釈し、１以上のドライバ識別子、および１以上のドライバ識別子で識別される１以上の機能部に渡すデータであり、シナリオが有するデータを取得する端末パーサ部と、端末パーサ部が取得した１以上のドライバ識別子で識別される１以上の端末機能部に、端末パーサ部が取得したデータを渡し、１以上の端末機能部を呼び出す端末機能呼出部とを具備し、サーバ装置は、端末要求を構成する情報とシナリオを構成する元になる情報であるシナリオ元情報との対応を示す１以上の対応情報を格納し得る対応情報格納部と、端末装置の現在の状態を示す情報であるカレント情報を、端末装置ごとに格納し得るカレント情報格納部と、端末装置から端末要求を受信する受信部と、受信部が受信した端末要求を解釈し、端末要求に対応するシナリオ元情報を、対応情報格納部から取得し、かつ、受信部が受信した端末要求に対応する処理を行う端末要求処理部と、端末要求処理部が取得したシナリオ元情報と、端末要求処理部が処理を行って得た処理結果と、端末装置に対応するカレント情報とを用いて、シナリオを生成するシナリオ生成部と、シナリオ生成部が生成したシナリオを端末装置に送信する送信部と、シナリオの端末装置への送信に応じて、カレント情報を更新するカレント情報更新部とを具備する情報システムである。
【０００６】
かかる構成により、サーバ装置で端末装置の現在の状況を管理することにより、情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。
【０００７】
また、本第二の発明の情報システムは、第一の発明に対して、１または２以上の各端末装置が具備している端末機能部のドライバを識別する１以上のドライバ識別子を、端末装置ごとに格納し得るサーバドライバ管理部をさらに具備し、シナリオ生成部は、サーバドライバ管理部に格納されている１以上のドライバ識別子に応じて、生成するシナリオが異なる情報システムである。
【０００８】
かかる構成により、サーバ装置で端末装置の現在の状況およびドライバを管理することにより、情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。
【０００９】
また、本第三の発明の情報システムは、第二の発明に対して、サーバドライバ管理部は、端末装置の種類を示す種類識別子と１以上のドライバ識別子とを対応付ける１以上の種類別ドライバ情報を格納し得る種類別ドライバ情報格納手段と、端末装置を識別する端末識別子と種類識別子とを対応付ける１以上の端末管理情報を格納し得る端末管理情報格納手段とを具備する情報システムである。
【００１０】
かかる構成により、端末装置が具備するドライバの登録、管理が容易に行える。
【００１１】
また、本第四の発明の情報システムは、第二または第三の発明に対して、端末装置のユーザを識別するユーザ識別子と端末識別子とを対応付ける１以上のユーザ管理情報を格納し得るユーザ管理情報格納部と、端末要求が、処理を行う端末装置を移動する旨の要求である場合に、処理を行う端末装置が、現在処理を行っている端末装置である旧端末装置から新端末装置に変更になるように、ユーザ管理情報が有する端末識別子であり、端末要求を送信してきた端末装置のユーザのユーザ識別子に対応する端末識別子を、新端末装置の端末識別子に変更するユーザ管理情報変更部とをさらに具備し、シナリオ生成部は、旧端末装置のカレント情報を用いて、シナリオを生成し、送信部は、シナリオ生成部が生成したシナリオを新端末装置に送信する情報システムである。
【００１２】
かかる構成により、処理中に、処理を行う対象の端末装置を変更できる。
【発明の効果】
【００１３】
本発明による情報システムによれば、ドライバにより駆動される１以上のハードウェアを具備し、かつ情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における情報システムの概念図
【図２】同情報システムを構成する端末装置１のブロック図
【図３】同情報システムを構成するサーバ装置２のブロック図
【図４】同端末装置１の動作について説明するフローチャート
【図５】同端末要求構成処理について説明するフローチャート
【図６】同サーバ装置２の動作について説明するフローチャート
【図７】同シナリオ構成処理について説明するフローチャート
【図８】同端末ドライバ管理表を示す図
【図９】同端末オブジェクト管理表を示す図
【図１０】同対応情報管理表を示す図
【図１１】同種類別ドライバ情報管理表を示す図
【図１２】同端末管理情報管理表を示す図
【図１３】同グループ情報管理表を示す図
【図１４】同履歴管理表を示す図
【図１５】同カレント情報管理表を示す図
【図１６】同ユーザ管理情報管理表を示す図
【図１７】同キャラクタ管理表を示す図
【図１８】同関連ユーザ管理表を示す図
【図１９】同端末装置１におけるキャラクタの表示例を示す図
【図２０】同端末装置１におけるキャラクタの表示例を示す図
【図２１】同端末装置１におけるキャラクタの表示例を示す図
【図２２】同コンピュータシステムの概観図
【図２３】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００１５】
以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００１６】
（実施の形態１）
本実施の形態において、サーバ装置で端末装置のカレントの情報を管理することにより、２以上の各端末装置におけるユーザの指示等から構成された端末要求をサーバ装置が受信し、端末要求を用いて、サーバ装置で処理を行い、その処理結果と、端末要求を用いて取得されるシナリオ元情報と、端末装置のカレント情報とを用いて、シナリオを構成し、２以上の各端末装置に送信する情報システムについて説明する。なお、端末装置は、シナリオを解釈し、ドライバを駆動し、ハードウェア（端末機能部）を動作させる。また、本実施の形態において、カレント情報を用いずに、シナリオは構成されても良い。
【００１７】
また、本実施の形態において、サーバ装置で２以上の各端末装置のドライバを管理する情報システムについて説明する。なお、本実施の形態において、例えば、サーバ装置で、ユーザと端末装置の種類とを管理し、かつ端末装置の種類ごとに具備するドライバを管理することにより、各端末装置のドライバを管理する。なお、端末装置の種類とは、例えば、機種名や品番などである。
【００１８】
また、本実施の形態において、一の端末装置に対する操作により、サーバ装置が他の端末装置にコマンドを送信し、他の端末装置がコマンドを処理する情報システムについて説明する。
【００１９】
また、本実施の形態において、２以上の端末装置をグループ管理し、コマンドを送付できる他の端末装置はグループ内の端末装置のみに限定する情報システムについて説明する。
【００２０】
また、本実施の形態において、ユーザごとに、使用中の端末装置が移動できる情報システムについて説明する。なお、本実施の形態において、端末装置を移動した場合、ユーザのカレント情報を移動先の端末装置に引き継げる。
【００２１】
また、本実施の形態において、端末要求を蓄積し、２以上の端末要求の履歴に基づいて、シナリオを生成する情報システムについて説明する。つまり、ユーザの指示の履歴に応じて、生成するシナリオが異なる情報システムについて説明する。
【００２２】
さらに、本実施の形態において、蓄積された端末要求を統計処理する情報システムについて説明する。
【００２３】
図１は、本実施の形態における情報システムの概念図である。情報システムは、１または２以上の端末装置１とサーバ装置２を備える。端末装置１とサーバ装置２とは、インターネット、イントラネット等のネットワーク３により通信可能である。なお、情報システムは、サーバ装置２も、２以上具備しても良い。
【００２４】
端末装置１は、いわゆるパーソナルコンピュータ、いわゆるスマートフォンや携帯電話等の携帯端末、街角に設置されている表示装置、テレビジョン装置、ナビゲーション装置等、問わない。端末装置１は、ドライバにより駆動される１以上のハードウェアを具備し、情報を出力できる装置であれば良い。
【００２５】
図２は、本実施の形態における情報システムを構成する端末装置１のブロック図である。端末装置１は、端末機能部１０１、端末ドライバ管理部１０２、端末オブジェクト格納部１０３、端末受付部１０４、端末送信部１０６、端末受信部１０７、端末パーサ部１０８、端末機能呼出部１０９、および端末オブジェクト出力部１１０を備える。
【００２６】
図３は、本実施の形態における情報システムを構成するサーバ装置２のブロック図である。サーバ装置２は、カレント情報格納部２００、対応情報格納部２０１、サーバドライバ管理部２０２、グループ情報格納部２０３、履歴格納部２０４、受信部２０５、端末要求処理部２０６、シナリオ生成部２０７、送信部２０８、履歴蓄積部２０９、受付部２１０、統計処理結果取得部２１１、統計処理結果出力部２１２、カレント情報更新部２１３、ユーザ管理情報格納部２１４、およびユーザ管理情報変更部２１５を備える。
【００２７】
また、サーバドライバ管理部２０２は、種類別ドライバ情報格納手段２０２１、および端末管理情報格納手段２０２２を備える。
【００２８】
端末装置１を構成する端末機能部１０１は、ドライバにより駆動され、所定の機能を実現する。端末機能部１０１は、通常、ハードウェアであり、例えば、ディスプレイ、スピーカー、カメラ、電話等である。ただし、端末機能部１０１は、メール機能を実現するソフトウェアでも良い。
【００２９】
端末ドライバ管理部１０２は、１以上の端末機能部１０１のドライバを識別する１以上のドライバ識別子を格納し得る。
【００３０】
端末オブジェクト格納部１０３は、１以上のオブジェクトを格納し得る。オブジェクトとは、データや情報と捉えても良い。オブジェクトは、例えば、アニメーションのキャラクタの情報である。オブジェクトは、データや情報と、当該データ等を処理するプログラムやスクリプト等が一体化されていても良い。なお、端末オブジェクト格納部１０３のオブジェクトは、通常、サーバ装置２から受信されたオブジェクトである。
【００３１】
端末受付部１０４は、ユーザからの１以上の指示を受け付ける。指示は、データを有しても、有さなくても良い。指示とは、操作と捉えても良い。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【００３２】
指示の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。端末受付部１０４は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００３３】
端末要求構成部１０５は、１以上の指示に対応する要求である端末要求を構成する。端末要求構成部１０５は、通常、端末受付部１０４が受け付けた１以上の指示を用いて、端末要求を構成する。端末要求は、通常、指示の対象のオブジェクトの識別子を有するが、オブジェクトの識別子を有さなくても良い。端末要求は、例えば、指示の対象のオブジェクトの識別子と、指示の内容を示す指示内容情報とを有する。指示内容情報とは、指示した位置を示す座標情報または、指示した領域を特定する領域識別子、操作の種類を示す操作種類識別子および位置や領域を示す座標情報や領域識別子等である。操作種類識別子は、ドラッグ、ダブルクリック、クリック、タッチ等、操作を識別する情報である。また、端末要求は、通常、端末装置１に特有の情報である端末特有情報を含む。端末特有情報とは、例えば、端末装置１にとって変化のない静的特有情報と、動的に変化する動的特有情報とがあり得る。静的特有情報は、例えば、端末装置１の識別子である端末識別子、端末装置１のユーザの識別子等である。また、動的特有情報は、例えば、端末装置１の位置を示す端末位置情報、端末装置１が存在する場所の天気を示す天気情報、現在時刻等である。
【００３４】
端末要求構成部１０５は、例えば、ユーザが画面に対して指示した場合に、表示中のオブジェクトのオブジェクト識別子であり、端末装置１が保持しているオブジェクト識別子を取得する。また、端末要求構成部１０５は、ユーザの指示した画面上の位置を示す１以上の座標情報から操作種類識別子を取得する。そして、端末要求構成部１０５は、オブジェクト識別子、操作種類識別子、１以上の座標情報を有する端末要求を構成する。
【００３５】
端末要求構成部１０５は、端末受付部１０４が音声を受け付けた場合、当該音声を音声認識し、文字列を取得しても良い。そして、端末要求構成部１０５は、当該文字列を含む端末要求を構成しても良い。また、端末要求構成部１０５は、端末受付部１０４が一の言語の文を受け付けた場合、当該文を他の言語に機械翻訳し、当該機械翻訳結果を含む端末要求を構成しても良い。つまり、端末要求構成部１０５は、端末受付部１０４が受け付けた１以上の指示に対して、音声認識、機械翻訳等の処理を実行しても良い。
【００３６】
また、端末要求構成部１０５は、端末受付部１０４が音声を受け付けた場合、当該音声をサンプリングし、デジタル化して、端末要求を構成しても良い。
【００３７】
また、端末要求構成部１０５は、端末受付部１０４が受け付けた指示等により動作する端末機能部１０１の識別子またはドライバのドライバ識別子を取得し、端末要求に含めても良い。さらに、端末要求構成部１０５は、端末受付部１０４が受け付けた指示等により動作するソフトウェアの識別子を取得し、端末要求に含めても良い。
【００３８】
なお、端末要求構成部１０５が構成する端末要求のデータ構造は問わないことは言うまでもない。なお、情報システムで扱う他のデータのデータ構造も問わない。
【００３９】
端末送信部１０６は、端末要求構成部１０５が構成した端末要求をサーバ装置２に送信する。端末送信部１０６は、サーバ装置２に端末要求を送信するために、サーバ装置２を識別するサーバ装置識別子を保持している。なお、サーバ装置識別子は、サーバ装置２と通信するために必要な情報であり、例えば、サーバ装置２のＩＰアドレス、ＭＡＣアドレス、サーバ装置２が情報を取得できるメールアドレス等である。
【００４０】
端末受信部１０７は、端末要求の送信に対応して、サーバ装置２からシナリオを受信する。シナリオは、端末装置１のドライバを動作させるコマンドを有する。また、シナリオは、通常、コマンドとデータとを有する。シナリオは、例えば、端末機能部１０１への動作指示、表示されているオブジェクトの動作を示すコマンドである動作コマンド等を有する。端末機能部１０１への動作指示は、例えば、ドライバ識別子とドライバに渡すデータとを含む。シナリオは、１または２以上のコマンド等を有する。コマンド等とは、コマンド、データ、またはコマンドとデータ等である。
【００４１】
端末パーサ部１０８は、シナリオを解釈し、１以上のドライバ識別子、およびデータを取得する。データは、１以上のドライバ識別子で識別される１以上の端末機能部１０１に渡すデータであり、シナリオが有するデータである。また、データは、オブジェクトでも良い。
【００４２】
また、端末パーサ部１０８は、シナリオを解釈し、シナリオから動作コマンドを取得しても良い。
【００４３】
端末機能呼出部１０９は、端末パーサ部１０８が取得した１以上のドライバ識別子で識別される１以上の端末機能部１０１に、端末パーサ部１０８が取得したデータを渡し、１以上の端末機能部１０１を呼び出す。ここで、呼び出すとは、動作させる、という意味であると捉えても良い。
【００４４】
端末オブジェクト出力部１１０は、１以上のオブジェクトを出力する。ここで、オブジェクトは、通常、サーバ装置２から受信されたデータである。また、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。つまり、端末オブジェクト出力部１１０は、オブジェクトをディスプレイに表示しても良いし、端末オブジェクト格納部１０３に蓄積しても良い。
【００４５】
また、端末オブジェクト出力部１１０は、動作コマンドに従って、動作コマンドに対応するオブジェクトを動作させる。この動作結果は、通常、ディスプレイに表示される。ただし、端末オブジェクト出力部１１０は、スピーカーを通して声またはサウンドにより動作結果を出力しても良いし、ＬＥＤ等を利用した光の明滅を行うことにより動作結果を出力しても良いし、機械の動作等によって様々な表現で動作結果を報知する等しても良い。
【００４６】
サーバ装置２を構成するカレント情報格納部２００は、１または２以上のカレント情報を端末装置１ごとに格納し得る。カレント情報とは、端末装置１の現在の状態を示す情報である。カレント情報は、例えば、端末装置１で出力中のオブジェクトのオブジェクト識別子を有する。また、カレント情報は、例えば、端末装置１で出力中のオブジェクトの位置を示す位置情報やオブジェクトのサイズ等を有する。
【００４７】
対応情報格納部２０１は、１以上の対応情報を格納し得る。対応情報は、端末要求を構成する情報とシナリオ元情報との対応を示す情報である。シナリオ元情報は、シナリオを構成する元になる情報である。対応を示す情報とは、情報そのものであっても良い。つまり、対応情報は、端末要求を構成する情報とシナリオ元情報とを有する情報でも良いし、端末要求を構成する情報へのポインタとシナリオ元情報へのポインタとを有する情報等でも良い。シナリオ元情報は、１以上のコマンドを含むコマンド列でも良いし、プログラム等でも良い。
【００４８】
サーバドライバ管理部２０２は、１または２以上の各端末装置１が具備している端末機能部１０１の１以上のドライバ識別子を、端末装置１ごとに格納し得る。ドライバ識別子は、ドライバを識別する情報であり、例えば、ドライバ名、ドライバのディスク上での物理アドレス等である。サーバドライバ管理部２０２は、端末装置１ごと、または端末装置１の種類ごとに、１以上のドライバ識別子を格納していることは好適である。
【００４９】
サーバドライバ管理部２０２を構成する種類別ドライバ情報格納手段２０２１は、端末装置１の種類を示す種類識別子と１以上のドライバ識別子とを対応付ける１以上の種類別ドライバ情報を格納し得る。なお、ＡとＢとを対応付ける情報とは、ＡとＢとを有する情報でも良いし、ＡとＢとのリンクを示す情報でも良いし、Ａの格納場所を示す情報とＢの格納場所を示す情報とを有する情報等でも良い。また、端末装置１の種類とは、例えば、機種、またはメーカー、またはメーカーと機種等である。
【００５０】
端末管理情報格納手段２０２２は、端末装置１を識別する端末識別子と種類識別子とを対応付ける１以上の端末管理情報を格納し得る。
【００５１】
グループ情報格納部２０３は、グループ情報を格納し得る。グループ情報は、２以上の端末装置１のグループを特定する情報である。グループ情報は、２以上の各端末装置１を識別する２以上の端末識別子を有する．
【００５２】
履歴格納部２０４は、要求履歴を格納し得る。要求履歴は、受信部２０５が受信した端末要求の一部または全部である。履歴格納部２０４は、端末装置１ごとに、要求履歴を格納していることは好適である。また、履歴格納部２０４は、端末装置１の端末機能部１０１ごとに、要求履歴を格納していても良い。ここでの端末機能部１０１ごととは、ドライバ識別子ごとと同意義である。さらに、履歴格納部２０４は、端末装置１ごとに、かつ、端末装置１で動作したソフトウェア単位で要求履歴を格納していても良い。なお、ソフトウェア単位とは、ソフトウェアの識別子に対応づける、という意義である。
【００５３】
受信部２０５は、端末装置１から端末要求を受信する。
【００５４】
端末要求処理部２０６は、受信部２０５が受信した端末要求を解釈する。そして、端末要求処理部２０６は、当該端末要求に対応するシナリオ元情報を、対応情報格納部２０１から取得する。また、端末要求処理部２０６は、端末要求に対応する処理を行い、処理結果を取得する。処理とは、例えば、図示しないデータベースに対する検索処理、端末要求が有する文字列に対する機械翻訳処理等、何でも良い。
【００５５】
端末要求処理部２０６は、例えば、端末要求が音声を含む場合、当該音声を音声認識し、文字列を取得しても良い。そして、端末要求処理部２０６は、当該文字列を用いて、シナリオ元情報を、対応情報格納部２０１から取得しても良い。
【００５６】
シナリオ生成部２０７は、端末要求処理部２０６が取得したシナリオ元情報と、端末要求処理部２０６が処理を行って得た処理結果と、端末装置１に対応するカレント情報とを用いて、シナリオを生成する。
【００５７】
また、シナリオ生成部２０７は、端末要求処理部２０６が取得したシナリオ元情報と、端末要求処理部２０６が処理を行って得た処理結果とを用いて、シナリオを生成しても良い。
【００５８】
シナリオ生成部２０７は、受信部２０５が受信した端末要求、および履歴格納部２０４に格納されている要求履歴を用いてシナリオを生成しても良い。つまり、端末要求が同じでも、要求履歴が異なれば生成するシナリオが異なることは好適である。例えば、キャラクタへのタッチ状況に応じて、動作が異なることは好適である。
【００５９】
なお、通常、シナリオ生成部２０７は、サーバドライバ管理部２０２に格納されている１以上のドライバ識別子に応じて、生成するシナリオが異なる。ここで、生成するシナリオが異なるとは、例えば、シナリオ内に、端末装置１が保有しないドライバのドライバ識別子を含まないようにすることである。例えば、音声出力を行うことを指示するシナリオの送信先の端末装置１が、音声出力を行うドライバ（端末機能部１０１）を具備せず、表示装置を搭載している（表示を行うドライバ（端末機能部１０１）を具備する端末装置１である場合、出力する情報を表示装置に表示するシナリオに変更する。なお、表示装置に情報を表示するシナリオは、文字列で情報を出力するシナリオでも良いし、キャラクタでの手話やジェスチャー表現等で情報を出力するシナリオでも良い。つまり、シナリオ生成部２０７は、例えば、情報を出力する機能を有する複数のドライバや端末機能部１０１のうち、端末装置１が有するドライバや端末機能部１０１を起動するように、シナリオを変更する。
【００６０】
また、シナリオに含まれる指示であり、情報を出力する等の指示に対応するドライバや端末機能部１０１を有しない端末装置１に送信するシナリオを構成する場合、シナリオ生成部２０７は、当該命令に対応する部分を消去して、シナリオを生成しても良い。かかる場合、本来、予定するシナリオの内容に欠損が生じることとなる。具体的には、例えば、画像と音声を端末で再生する命令等を含むシナリオである場合、ディスプレイデバイスのドライバとスピーカーのドライバを有する端末装置１に送信するシナリオは、画像と音声を端末で再生する命令等を含むシナリオであるが、スピーカーのドライバを有しない端末装置１に送信するシナリオは、画像を端末で再生する命令等を含み、音声を再生する命令を含まないシナリオである。
【００６１】
なお、端末装置１が保有しないドライバに関して、サーバ装置２が処理を行うことは好適である。また、この処理は、通常、端末要求処理部２０６が行う。
【００６２】
ユーザが利用する端末装置１の移動が発生する場合、シナリオ生成部２０７は、旧端末装置のカレント情報を用いて、シナリオを生成することは好適である。なお、旧端末装置とは、移動前の端末装置１である。
【００６３】
送信部２０８は、シナリオ生成部２０７が生成したシナリオを端末装置１に送信する。また、送信部２０８は、他端末装置に、コマンドやシナリオを送信しても良い。他端末装置も、端末装置１と同様の構成を有することが好適であるが、コマンドやシナリオを受信し、当該コマンドやシナリオに応じた動作が行えれば良い。ここで、コマンドやシナリオを送信する先の他端末装置の識別子は、予め格納されていても良いし、端末装置１から受信されても良いし、他端末装置から端末装置１とペアである旨の情報が受信されても良い。端末装置１とペアである旨の情報は、例えば、端末装置１のユーザを識別するユーザ識別子である。
【００６４】
送信部２０８は、シナリオ生成部２０７が生成したシナリオを端末装置１に送信する。また、送信部２０８は、他端末装置に、コマンドを送信しても良い。他端末装置も、端末装置１と同様の構成を有することが好適であるが、コマンドを受信し、当該コマンドに応じた動作が行えれば良い。ここで、コマンドを送信する先の他端末装置の識別子は、予め格納されていても良いし、端末装置１から受信されても良いし、他端末装置から端末装置１とペアである旨の情報が受信されても良い。端末装置１とペアである旨の情報は、例えば、端末装置１のユーザを識別するユーザ識別子である。
【００６５】
ただし、送信部２０８は、グループ情報が有する２以上のいずれかの端末識別子にも対応しない端末装置１にはコマンドを送信しないことは好適である。
【００６６】
また、ユーザが利用する端末装置１の移動が発生する場合、送信部２０８は、シナリオ生成部２０７が生成したシナリオを新端末装置に送信する。
【００６７】
履歴蓄積部２０９は、受信部２０５が受信した端末要求の一部または全部である要求履歴を履歴格納部２０４に蓄積する。端末要求の一部とは、２以上の端末要求から生成される情報も含む、とする。また、履歴蓄積部２０９は、端末要求が有する端末機能部１０１の識別子またはドライバのドライバ識別子ごとに、要求履歴を履歴格納部２０４に蓄積しても良い。また、履歴蓄積部２０９は、端末要求が有するソフトウェアの識別子ごとに、要求履歴を履歴格納部２０４に蓄積しても良い。また、履歴蓄積部２０９は、シナリオ生成部２０７が生成したシナリオに含まれる端末機能部１０１の識別子またはドライバ識別子ごとに、要求履歴を履歴格納部２０４に蓄積しても良い。また、履歴蓄積部２０９は、シナリオ生成部２０７が生成したシナリオに含まれるソフトウェアの識別子ごとに、要求履歴を履歴格納部２０４に蓄積しても良い。
【００６８】
受付部２１０は、サーバ装置２のユーザの指示やデータ等を受け付ける。指示やデータ等の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部２１０は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００６９】
統計処理結果取得部２１１は、要求履歴を統計処理し、統計処理結果を取得する。統計処理とは、例えば、平均値を取得する処理、単位時間あたりの操作の数を取得する処理等である。統計処理の内容は問わない。
【００７０】
統計処理結果出力部２１２は、統計処理結果取得部２１１が取得した統計処理結果を出力する。
【００７１】
カレント情報更新部２１３は、シナリオの端末装置１への送信に応じて、カレント情報を更新する。更新されるカレント情報は、シナリオが送信された端末装置１のカレント情報である。カレント情報更新部２１３は、シナリオの端末装置１への送信とは無関係に、カレント情報を更新しても良い。例えば、カレント情報に端末装置１の位置情報が含まれる場合であり、端末装置１から当該端末装置１の位置情報が受信された場合、カレント情報更新部２１３は、当端末装置１の位置情報を最新の位置情報に更新する。なお、最新の位置情報とは、現時刻から最も近い時刻に受信された位置情報である。
【００７２】
ユーザ管理情報格納部２１４は、１以上のユーザ管理情報を格納し得る。ユーザ管理情報は、端末装置１のユーザを識別するユーザ識別子と端末識別子とを対応付ける情報である。ユーザ管理情報は、ユーザが現在利用している端末装置を管理するための情報である。
【００７３】
ユーザ管理情報変更部２１５は、端末要求が、処理を行う端末装置１を移動する旨の要求である場合に、処理を行う端末装置１が、現在処理を行っている端末装置１である旧端末装置から新端末装置に変更になるように、ユーザ管理情報が有する端末識別子であり、端末要求を送信してきた端末装置１のユーザのユーザ識別子に対応する端末識別子を、新端末装置の端末識別子に変更する。
【００７４】
端末ドライバ管理部１０２、端末オブジェクト格納部１０３、カレント情報格納部２００、対応情報格納部２０１、サーバドライバ管理部２０２、グループ情報格納部２０３、履歴格納部２０４、ユーザ管理情報格納部２１４、種類別ドライバ情報格納手段２０２１、および端末管理情報格納手段２０２２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００７５】
端末ドライバ管理部１０２等にドライバ識別子等が記憶される過程は問わない。例えば、記録媒体を介してドライバ識別子等が端末ドライバ管理部１０２等で記憶されるようになってもよく、通信回線等を介して送信されたドライバ識別子等が端末ドライバ管理部１０２等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたドライバ識別子等が端末ドライバ管理部１０２等で記憶されるようになってもよい。
【００７６】
端末送信部１０６、端末受信部１０７、受信部２０５、および送信部２０８は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００７７】
端末パーサ部１０８、端末機能呼出部１０９、端末要求処理部２０６、シナリオ生成部２０７、履歴蓄積部２０９、統計処理結果取得部２１１、カレント情報更新部２１３、およびユーザ管理情報変更部２１５は、通常、ＭＰＵやメモリ等から実現され得る。端末パーサ部１０８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００７８】
端末オブジェクト出力部１１０、および統計処理結果出力部２１２は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末オブジェクト出力部１１０は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００７９】
次に、情報システムの動作について説明する。まず、端末装置１の動作について、図４のフローチャートを用いて説明する。
【００８０】
（ステップＳ４０１）端末受付部１０４は、ユーザ等から指示またはデータ等を受け付けたか否かを判断する。指示等を受け付ければステップＳ４０２に行き、受け付けなければステップＳ４０１に戻る。
【００８１】
（ステップＳ４０２）端末要求構成部１０５は、ステップＳ４０１で受け付けた指示等を用いて、端末要求を構成するか否かを判断する。端末要求を構成すると判断した場合はステップＳ４０３に行き、端末要求を構成しないと判断した場合はステップＳ４１１に行く。なお、端末要求構成部１０５は、例えば、端末要求を構成するイベントや指示や条件等を予め格納しており、ステップＳ４０１で受け付けた指示等が、かかる格納しているイベントや指示や条件等に合致するか否かにより、端末要求を構成するか否かを判断する。また、端末要求構成部１０５は、例えば、端末要求を構成しないイベントや指示や条件等を予め格納しており、ステップＳ４０１で受け付けた指示等が、かかる格納しているイベントや指示等に合致しない場合に、端末要求を構成すると判断する。なお、条件とは、例えば、Ｎ（Ｎは０より大きい数値）秒間、入力が無いこと、所定の入力後、Ｎ秒、経過したこと等である。また、ステップＳ４０２において、端末要求構成部１０５は、条件に合致するまで、ウェイトしても良い。
【００８２】
（ステップＳ４０３）端末要求構成部１０５は、ステップＳ４０１で受け付けた指示等、またはステップＳ４０１で受け付けた指示等と一時蓄積している指示等を用いて端末要求を構成する。なお、端末要求を構成する処理について、図５のフローチャートを用いて説明する。
【００８３】
（ステップＳ４０４）端末送信部１０６は、ステップＳ４０３で構成された端末要求を、サーバ装置２に送信する。なお、端末送信部１０６は、例えば、サーバ装置２のＩＰアドレスを保持している。
【００８４】
（ステップＳ４０５）端末受信部１０７は、サーバ装置２からシナリオを受信したか否かを判断する。シナリオを受信すればステップＳ４０６に行き、シナリオを受信しなければステップＳ４０５に戻る。
【００８５】
（ステップＳ４０６）端末パーサ部１０８は、ステップＳ４０５で受信されたシナリオを解釈し、１以上のドライバ識別子、およびデータを取得する。なお、ここでは、シナリオは、１以上のドライバを操作する命令を含むとする。
【００８６】
（ステップＳ４０７）端末機能呼出部１０９は、カウンタｉに１を代入する。
【００８７】
（ステップＳ４０８）端末機能呼出部１０９は、ステップＳ４０６で取得した情報の中で、ｉ番目のドライバの操作に関する情報が存在するか否かを判断する。ｉ番目のドライバの操作に関する情報が存在すればステップＳ４０９に行き、存在しなければステップＳ４０１に戻る。
【００８８】
（ステップＳ４０９）端末機能呼出部１０９は、ステップＳ４０６で取得した情報の中で、ｉ番目のドライバの操作に関する情報に従って、ｉ番目のドライバを操作する。
【００８９】
（ステップＳ４１０）端末機能呼出部１０９は、カウンタｉを１、インクリメントする。ステップＳ４０８に戻る。
【００９０】
（ステップＳ４１１）端末送信部１０６は、指示等をバッファに一時蓄積する。ステップＳ４０１に戻る。
【００９１】
なお、ステップＳ４０２において、端末送信部１０６は、ステップＳ４０１で受け付けた指示等を用いて、端末要求を構成するか否かを判断した。しかし、指示等を受け付けた場合、常に、端末要求を構成しても良い。
【００９２】
また、図４のフローチャートにおいて、シナリオの中に、ドライバを動作させる処理以外の処理が記載されていても良い。その場合、端末装置１は、シナリオに従って、動作を行う。
【００９３】
また、図４のフローチャートにおいて、ユーザからの指示等を受け付けることなく、シナリオをサーバ装置２から受信し、当該シナリオを処理しても良い。
【００９４】
さらに、図４のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９５】
次に、ステップＳ４０３の端末要求を構成する処理について、図５のフローチャートを用いて説明する。
【００９６】
（ステップＳ５０１）端末要求構成部１０５は、バッファに指示等が存在するか否かを判断する。バッファに指示等が存在すればステップＳ５０２に行き、バッファに指示等が存在しなければステップＳ５０３に行く。
【００９７】
（ステップＳ５０２）端末要求構成部１０５は、バッファから指示等を読み出す。
【００９８】
（ステップＳ５０３）端末要求構成部１０５は、ステップＳ５０１で受け付けられた指示等を取得する。
【００９９】
（ステップＳ５０４）端末要求構成部１０５は、ステップＳ５０３で取得した指示等、またはステップＳ５０３で取得した指示等とステップＳ５０２で読み出した指示等とを用いて、指示対象のオブジェクト識別子を取得する。なお、指示等が画面上の座標値（ｘ，ｙ）であり、端末要求構成部１０５は、現在、画面上に表示されているオブジェクトのオブジェクト識別子およびオブジェクトの表示位置（例えば、オブジェクトの輪郭を特定する座標値の集合）を保持しており、指示等が示す座標値に対応するオブジェクト識別子を取得する。なお、かかる技術は、オブジェクトの管理技術として公知であるので、詳細な説明を省略する。例えば、画面上にあるキャラクタが表示されている場合、端末要求構成部１０５は、タッチされたキャラクタのオブジェクト識別子を取得する。
【０１００】
（ステップＳ５０５）端末要求構成部１０５は、ステップＳ５０３で取得した指示等、またはステップＳ５０３で取得した指示等とステップＳ５０２で読み出した指示等とを用いて、指示内容情報を取得する。指示内容情報は、例えば、タッチされたこと、ドラッグされてこと、またはタッチされたキャラクタの領域を示す領域識別子等である。例えば、端末要求構成部１０５は、現在、画面上に表示されているオブジェクトの領域識別子と領域を特定する位置情報（領域の輪郭を示す座標値の集合）を保持している、とする。
【０１０１】
（ステップＳ５０６）端末要求構成部１０５は、端末特有情報を取得する。端末特有情報は、例えば、ＧＰＳ受信機で取得された位置情報、現在時刻、端末識別子等である。
【０１０２】
（ステップＳ５０７）端末要求構成部１０５は、オブジェクト識別子、指示内容情報、端末特有情報を有する端末要求を構成する。なお、ここで、端末要求構成部１０５は、オブジェクト識別子、指示内容情報、端末特有情報のうち、１または２の情報のみから端末要求を構成しても良い。上位処理にリターンする。
【０１０３】
なお、図５のフローチャートにおいて、端末要求の構成方法の一例を説明した。端末要求構成部１０５は、受け付けられた指示等から端末要求を構成すれば良く、その方法は問わない。
【０１０４】
例えば、端末要求構成部１０５は、受け付けられた音声を音声認識し、文字列を取得しても良い。そして、端末要求構成部１０５は、当該文字列と端末識別子等の端末特有情報により、端末要求を構成しても良い。
【０１０５】
また、端末要求構成部１０５は、受け付けられた音声をサンプリングし、音声データを取得しても良い。そして、端末要求構成部１０５は、当該音声データと端末識別子等の端末特有情報により、端末要求を構成しても良い。
【０１０６】
次に、サーバ装置２の動作について、図６のフローチャートを用いて説明する。
【０１０７】
（ステップＳ６０１）受信部２０５は、端末装置１から端末要求を受信したか否かを判断する。端末要求を受信すればステップＳ６０２に行き、端末要求を受信しなければステップＳ６１１に行く。
【０１０８】
（ステップＳ６０２）端末要求処理部２０６は、受信部２０５が受信した端末要求を解釈する。そして、端末要求処理部２０６は、端末要求に対応するシナリオ元情報を、対応情報格納部２０１から取得する。
【０１０９】
（ステップＳ６０３）端末要求処理部２０６は、端末要求の解釈結果を用いて、サーバ装置２が行うべき処理が存在するか否かを判断する。サーバ装置２が行うべき処理が存在すればステップＳ６０４に行き、存在しなければステップＳ６０５に行く。端末要求処理部２０６は、例えば、端末要求が変数を含む場合、またはシナリオ元情報が変数を含む場合、サーバ装置２が行うべき処理が存在すると判断する。
【０１１０】
（ステップＳ６０４）端末要求処理部２０６は、端末要求が指示する処理であり、サーバ装置２が行うべき処理を行う。そして、端末要求処理部２０６は、処理結果を取得する。
【０１１１】
（ステップＳ６０５）シナリオ生成部２０７は、シナリオを構成する。シナリオ構成処理について、図７のフローチャートを用いて説明する。
【０１１２】
（ステップＳ６０６）送信部２０８は、ステップＳ６０５で構成されたシナリオを端末装置１に送信する。
【０１１３】
（ステップＳ６０７）履歴蓄積部２０９は、ステップＳ６０１で受信された端末要求の全部または一部を履歴格納部２０４に蓄積する。なお、端末要求の一部は、１以上の端末要求から構成された情報（例えば、後述する好感度）も含む、と考える。
【０１１４】
（ステップＳ６０８）ユーザ管理情報変更部２１５は、端末要求または送信されたシナリオから、ユーザの指示が端末装置１の移動であるか否かを判断する。端末装置１の移動であればステップＳ６０９に行き、端末装置１の移動でなければステップＳ６０１に戻る。
【０１１５】
（ステップＳ６０９）ユーザ管理情報変更部２１５は、端末要求を送信してきた端末装置１に関して、現在処理を行っている端末装置１である旧端末装置から新端末装置に変更になるように、ユーザ管理情報が有する端末識別子であり、端末要求を送信してきた端末装置１のユーザのユーザ識別子に対応する端末識別子を、新端末装置の端末識別子に変更する。ステップＳ６０１に戻る。
【０１１６】
（ステップＳ６１０）カレント情報更新部２１３は、シナリオの端末装置１への送信に応じて、カレント情報を更新する。なお、カレント情報を更新する必要が無い場合は、ステップＳ６１０では何もしない。
【０１１７】
（ステップＳ６１１）受付部２１０は、統計処理を行うことを示す指示を受け付けたか否かを判断する。かかる指示を受け付けた場合はステップＳ６１２に行き、指示を受け付けない場合はステップＳ６０１に戻る。なお、かかる指示を、適宜、統計処理指示という。
【０１１８】
（ステップＳ６１２）統計処理結果取得部２１１は、履歴格納部２０４の１または２以上の端末要求を用いて、統計処理を行う。そして、統計処理結果取得部２１１は統計処理結果を取得する。
【０１１９】
（ステップＳ６１３）統計処理結果出力部２１２は、ステップＳ６１２で取得された統計処理結果を出力する。ステップＳ６０１に戻る。
【０１２０】
なお、図６のフローチャートにおいて、ステップＳ６０７の処理等、他の処理と独立して行える処理の順序は問わないことは言うまでもない。
【０１２１】
また、図６のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１２２】
次に、ステップＳ６０５のシナリオ構成処理について、図７のフローチャートを用いて説明する。
【０１２３】
（ステップＳ７０１）シナリオ生成部２０７は、端末要求が有する端末識別子を取得し、メモリ上に配置する。
【０１２４】
（ステップＳ７０２）シナリオ生成部２０７は、ステップＳ６０４の処理結果を取得し、メモリ上に配置する。なお、ステップＳ６０４の処理結果が存在しない場合もあり得る。
【０１２５】
（ステップＳ７０３）シナリオ生成部２０７は、カレント情報格納部２００から、ステップＳ７０１で取得した端末識別子に対応するカレント情報を取得し、メモリ上に配置する。
【０１２６】
（ステップＳ７０４）シナリオ生成部２０７は、カウンタｉに１を代入する。
【０１２７】
（ステップＳ７０５）シナリオ生成部２０７は、ステップＳ６０２で取得されたシナリオ元情報の中で、ｉ番目の処理単位のシナリオ元情報が存在するか否かを判断する。ｉ番目の処理単位が存在すればステップＳ７０６に行き、ｉ番目の処理単位が存在しなければ上位処理にリターンする。なお、処理単位とは、例えば、シナリオ生成部２０７がパージングする単位であり、例えば、行である。
【０１２８】
（ステップＳ７０６）シナリオ生成部２０７は、ｉ番目の処理単位のシナリオ元情報を、解釈する。
【０１２９】
（ステップＳ７０７）シナリオ生成部２０７は、ステップＳ７０６における解釈結果を用いて、メモリから必要な情報を取得する。そして、シナリオ生成部２０７は、ｉ番目の処理単位のシナリオ元情報と取得した情報とを用いて、シナリオを生成する。例えば、シナリオ生成部２０７は、ｉ番目の処理単位のシナリオ元情報の変数に、取得した情報を代入し、シナリオを取得する。
【０１３０】
（ステップＳ７０８）シナリオ生成部２０７は、ステップＳ７０７で取得したシナリオをバッファに追記する。
【０１３１】
（ステップＳ７０９）シナリオ生成部２０７は、カウンタｉを１、インクリメントする。ステップＳ７０５に戻る。
【０１３２】
なお、図７のフローチャートにおいて、シナリオ構成のための処理の一例を示した。つまり、シナリオ構成のための処理は他の処理でも良い。
【０１３３】
以下、本実施の形態における情報システムの具体的な動作について説明する。情報システムの概念図は図１である。
【０１３４】
図８は、端末装置１の端末ドライバ管理部１０２に格納されている端末ドライバ管理表の一例である。ここでの端末ドライバ管理表は、ある一の端末装置１が具備しているドライバの情報を管理している。また、端末ドライバ管理表は、「ＩＤ」「ドライバ識別子」「ドライバ呼出関数」を有するレコードを１以上格納している。「ＩＤ」は、端末ドライバ管理表のレコードを識別する情報である。また、「ドライバ識別子」は、ドライバを識別する情報である。さらに、「ドライバ呼出関数」は、ドライバを動作させるための関数である。ここで、「ドライバ呼出関数」の代わりに、ドライバを動作させるためのメッセージでも良いし、メソッド名でも良いし、ドライバ呼出へのポインタの情報等でも良い。つまり、端末ドライバ管理表のレコードは、ドライバを動作させるための情報であれば何でも良い。なお、ドライバ呼出関数「ｓｈｏｗ＿ｃｈａｒ（）」はキャラクタを表示等するドライバの呼び出し関数の一例であり、「ｖｏｉｃｅ（）」は音声を再生するドライバの呼び出し関数の一例であり、「ｕｉ（）」はユーザインターフェイスをハンドリングするドライバの呼び出し関数の一例であり、「ｃａｍｅｒａ（）」はカメラのドライバの呼び出し関数の一例であり、「ｔｅｌ（）」は電話のドライバの呼び出し関数の一例であり、「ｍａｉｌ（）」はドライバの呼び出し関数の一例であり、「ｄａｔａ＿ｍａｎａｇｅ（）」はデータ管理を行うドライバの呼び出し関数の一例である。
【０１３５】
図９は、端末装置１の端末オブジェクト格納部１０３に格納されている端末オブジェクト管理表の一例である。ここでの端末オブジェクト管理表は、「ＩＤ」「キャラクタ」「全体領域情報」「部分情報」「表示フラグ」を有するレコードを１以上格納している。「ＩＤ」はキャラクタ識別子である。「全体領域情報」は、キャラクタが表示される画面上での領域を示す情報である。「全体領域情報」は、通常、２以上の座標情報を有する。座標情報は、通常、画面上での座標情報である。また、「部分情報」は、キャラクタの部分に関する情報である。部分とは、顔、胸、お腹、手、足等である。「部分情報」は、「部分識別子」「部分領域情報」を有する。「部分識別子」は、部分を識別するＩＤであり、例えば、胸は「１」、顔は「２」である。また、「部分領域情報」は、キャラクタの部分の領域を示す情報であり、通常、２以上の座標情報を有する。座標情報は、画面上での座標情報でも良いし、キャラクタ内での相対的な座標の情報等でも良い。「表示フラグ」は、現在、キャラクタが表示されているか否かを示す情報である。ここでは、「表示フラグ＝１」を有するレコードに対応するキャラクタは、現在、端末装置１の画面上に表示されている。また、「表示フラグ＝０」を有するレコードに対応するキャラクタは、現在、端末装置１の画面上に表示されていない。
【０１３６】
また、図１０は、サーバ装置２の対応情報格納部２０１に格納されている対応情報管理表である。対応情報管理表は、「ＩＤ」「端末要求」「シナリオ元情報」を有するレコードを１以上格納している。「ＩＤ」は、対応情報管理表のレコードを識別する情報である。「端末要求」は、端末要求を示す情報である。また、「シナリオ元情報」は、端末要求に対応するシナリオ元情報である。「シナリオ元情報」は、ここでは、コマンド、制御情報付きのコマンドであるが、その構造、内容は問わない。なお、ここでは、コマンドは、例えば、関数の形式である。また、制御情報は、例えば、「ｉｆ  ｔｈｅｎ  ｅｌｓｅ」等である。図１０において、「ｃａｌｌ（＄キャラクタ）」は、「＄キャラクタ」で特定されるキャラクタを端末装置１に呼び出し、端末装置１で出力するシナリオである。また、「ｖｏｌｕｍｎｅ＿ｕｐ（＄端末装置識別子，＄数値）」は「＄端末装置識別子」で識別される端末装置１において出力されるボリュームを「＄数値」分、アップするシナリオである。また、「ｇｅｔ＿ｃｈａｒ（＄ユーザ識別子，＄キャラクタ）」は、ユーザ識別子で識別されるユーザの端末装置１で、現在、表示されているキャラクタに関する情報を取得する関数である。また、「ｄｅｌｅｔｅ（＄ユーザ識別子，＄キャラクタ）」は、ユーザ識別子で識別されるユーザの端末装置１からキャラクタの表示を消去する（未表示にする）命令に対応するシナリオである。また、「ｐｕｔ＿ｃｈａｒ（＄端末識別子，ｃｈ）」は端末識別子で識別される端末装置１に、変数「ｃｈ」に格納されているキャラクタに関する情報を送信する命令に対応するシナリオである。また、「ｓｅａｒｃｈ（＄端末識別子，＄人）」は、端末識別子で識別される端末装置１のユーザと「＄人」の関係を有するユーザの端末識別子を検索する関数である。また、「ｔｅｌ（ｔｅｒｍｉｎａｌ，"電源をＯＮにして下さい"）」は、ｔｅｒｍｉｎａｌで特定される端末装置１に電話をかけ、"電源をＯＮにして下さい"を出力するシナリオである。また、「ｐｕｔ（＄位置情報，ｔｅｒｍｉｎａｌ）」は、ｔｅｒｍｉｎａｌで特定される端末装置１に位置情報を送信するシナリオである。また、「ｓｔａｒｔ＿ｕｐ（ｎａｖｉ（））」は、端末装置１のナビゲーションシステムを起動するためのシナリオである。また、「ｓｅｔ＿ｄｅｓｔｉｎａｔｉｏｎ（＄位置情報）」は、端末装置１のナビゲーションシステムにおいて、目的地を設定するシナリオである。また、「ｒｏｕｔｅ＿ｓｅａｒｃｈ（＄現在位置，＄目的地）」は、現在地を始点、目的地を終点とする経路探索を行うシナリオである。また、「ｓｅｎｄ＿ｍｅｓｓａｇｅ（）」は、引数内のメッセージを送信し、端末装置１で出力を促すシナリオである。なお、かかるシナリオ、関数は例であることは言うまでもない。
【０１３７】
また、図１１は、サーバ装置２のサーバドライバ管理部２０２の種類別ドライバ情報格納手段２０２１が格納している種類別ドライバ情報管理表の一例である。種類別ドライバ情報管理表は、「ＩＤ」「種類識別子」「ドライバ識別子」を有するレコードを１以上格納している。「ＩＤ」は、レコードを識別する情報である。「種類識別子」は、端末装置１の種類を識別する情報である。また、「ドライバ識別子」は、ドライバを識別する情報である。つまり、種類別ドライバ情報表は、１以上の端末装置１の種類ごとに、端末装置１が保有するドライバを管理している。
【０１３８】
また、図１２は、端末管理情報格納手段２０２２の端末管理情報管理表である。端末管理情報管理表は、端末装置１の種類を管理する表であり、「ＩＤ」「端末識別子」「種類識別子」を有するレコードを１以上格納している。
【０１３９】
図１３は、サーバ装置２のグループ情報格納部２０３に格納されているグループ情報管理表である。グループ情報管理表は、「グループＩＤ」「端末識別子」を有するレコードを１以上格納している。「グループＩＤ」は、グループを識別する情報である。「端末識別子」は、グループＩＤで特定されるグループに属する端末装置の識別子である。そして、属性値「端末識別子」は、２以上の端末識別子を有する。サーバ装置２がグループ情報管理表を用いる場合、端末要求を送信してきた端末装置と、同一のグループに存在する端末装置のみ、当該端末要求に基づいて、制御できない、とする。
【０１４０】
図１４は、サーバ装置２の履歴格納部２０４が格納している履歴管理表の一例である。履歴管理表は、「ＩＤ」「端末識別子」「要求履歴」「好感度」を有するレコードを１以上格納している。「要求履歴」は、端末識別子で識別される端末装置１から送信された１以上の端末要求の履歴を格納する。また、「好感度」は、要求履歴から構成される情報であり、キャラクタの、端末装置１のユーザに対する好感度である。例えば、閾値以上の回数、キャラクタの胸やお腹へタッチしたことを示す１以上の端末要求が受信された場合、端末要求処理部２０６は、対応する好感度の値を下げる。また、例えば、閾値以上の回数、キャラクタの頭や顔へタッチしたことを示す１以上の端末要求が受信された場合、端末要求処理部２０６は、対応する好感度の値を上げる。また、Ｎ分（Ｎは正の数値）以上、タッチを示す端末要求が受信されなかった場合、端末要求処理部２０６は、対応する好感度を初期値（例えば、「高」）に戻す。なお、好感度の「高」「中」「低」は、それぞれ、例えば、数値「１」「２」「３」に対応する。また、好感度を変更する処理は、例えば、端末要求処理部２０６が行う。
【０１４１】
図１５は、カレント情報格納部２００に格納されているカレント情報管理表である。カレント情報管理表は、各端末装置１のカレントの状態を管理する表である。カレント情報管理表は、「ＩＤ」「端末識別子」「カレント情報」を有するレコードを１以上格納している。「カレント情報」は、「オブジェクト識別子」「出力位置」「画像ＩＤ」「電源」等を有する。「カレント情報」の「オブジェクト識別子」は、端末装置１で出力されているオブジェクト識別子であり、「出力位置」は画面上におけるオブジェクトの出力位置であり、「画像ＩＤ」は端末装置１で出力されている画像を識別する情報であり、図１７のオブジェクト管理表のレコード番号「ＩＤ」の値に対応する情報である。また、「電源」は電源がＯＮかＯＦＦかを示す情報である。なお、ここでは、「電源＝ＯＦＦ」の際でも、端末装置１の電話機能は使用できる、とする。つまり、「電源＝ＯＦＦ」は電話が鳴ることについてのみ待機の状態である。とする。
【０１４２】
図１６は、ユーザ管理情報格納部２１４に格納されているユーザ管理情報管理表である。ユーザ管理情報管理表は、現在、ユーザが利用している端末装置を管理する表であり、「ＩＤ」「ユーザ識別子」「端末識別子」を有するレコードを１以上格納している。
【０１４３】
また、図１７は、シナリオ生成部２０７が保持しているキャラクタ管理表である。キャラクタ管理表は、「ＩＤ」「キャラクタＩＤ」「名前」「データ」を有する。「データ」は「画像」「音声」「部分情報」を有する。「部分情報」は、「部分識別子」「部分領域情報」を有する。また、「データ」は「全体領域情報」を含むことは好適である。「全体領域情報」は、図９の「全体領域情報」と同様の情報である。また、「ＩＤ」はレコードを識別する情報である。また、「キャラクタＩＤ」は、キャラクタ識別子である。また、「名前」はキャラクタの名前である。また、「データ」は、端末装置１で出力されるデータであり、「画像」は通常、動画であるが、静止画でも良い。
【０１４４】
さらに、図１８は、端末要求処理部２０６が保持している関連ユーザ管理表である。関連ユーザ管理表は、端末装置１を所有しているユーザに関係のある人を、その関係とともに管理する表である。図１８は、「ＩＤ」「端末識別子１」「関係」「端末識別子２」を有するレコードを１以上格納している。「端末識別子１」は、端末識別子であり、第一のユーザが所有する端末の識別子である。「端末識別子２」は、端末識別子であり、第二のユーザが所有する端末の識別子である。「関係」は、第一のユーザと第二のユーザとの関係を示す情報である。関連ユーザ管理表の「ＩＤ＝１」のレコードにおいて、端末識別子「１０１」のユーザのおばあちゃんが、端末識別子「１０３」のユーザである、ことを示す。
【０１４５】
かかる状況において、本実施の形態における情報システムの具体的な動作について、４つの例を挙げて説明する。
【０１４６】
（具体例１）
具体例１は、端末装置１に入力された命令をサーバ装置２で解釈し、サーバ装置２から端末装置１へオブジェクト（ここでは、キャラクタ）を送信し、端末装置１の状態を管理する情報システムの例である。さらに具体的には、端末装置１のユーザが、端末装置１にキャラクタ「Ｙちゃん」を呼び出すため、「Ｙちゃん、出てきて」と音声入力し、サーバ装置２からのシナリオにより、キャラクタ「Ｙちゃん」が端末装置１に表示される処理について説明する。
【０１４７】
まず、端末装置識別子「１０１」で識別される端末装置１のユーザが、自分の端末装置１に向かって、「Ｙちゃん、出てきて」を音声で指示した、とする。次に、端末受付部１０４は、音声「Ｙちゃん、出てきて」を受け付ける。なお、図１５のカレント情報管理表によれば、現在、端末識別子「１０１」で識別される端末装置１のカレント情報は「オブジェクト識別子：ＮＵＬＬ（−）、出力位置：ＮＵＬＬ（−）、画像ＩＤ：ＮＵＬＬ（−）、・・・、電源「１（ＯＮ）」」であるので、当該端末装置１において、電源ＯＮであるが、オブジェクトは表示されていない。
【０１４８】
次に、端末要求構成部１０５は、音声が途切れたので、端末要求を構成すると判断する。そして、端末要求構成部１０５は、音声「Ｙちゃん、出てきて」をデジタル化して、音声データを得る。また、端末要求構成部１０５は、予め格納している端末識別子「１０１」、図示しないＧＰＳ受信機で取得された位置情報（Ｘａ，Ｙａ）を取得する。また、端末要求構成部１０５は、図示しない時計や、外部の装置（例えば、ＮＴＰサーバ）から現在時刻「２０１２／１０／２７  １０：３８：５１」取得する。そして、端末要求構成部１０５は、端末要求「１０１，（Ｘａ，Ｙａ），２０１２／１０／２７  １０：３８：５１，音声データ「Ｙちゃん、出てきて」」を構成する。なお、端末識別子「１０１」は静的な端末特有情報であり、位置情報や現在時刻は動的な端末特有情報である。また、音声データ「Ｙちゃん、出てきて」は指示内容情報に該当する。ただし、本端末要求は、指示対象のオブジェクト識別子を有さない。また、ここでの端末要求は「端末識別子，位置情報，現在時刻，指示内容情報」を有するが、この端末要求の構造は一例であることは言うまでもない。
【０１４９】
次に、端末送信部１０６は、構成された端末要求を、サーバ装置２に送信する。
【０１５０】
次に、サーバ装置２の受信部２０５は、端末装置１から端末要求「１０１，（Ｘａ，Ｙａ），２０１２／１０／２７  １０：３８：５１，音声データ「Ｙちゃん、出てきて」」を受信する。
【０１５１】
次に、端末要求処理部２０６は、受信された端末要求から指示内容情報「音声データ「Ｙちゃん、出てきて」」を取得する。そして、端末要求処理部２０６は、音声データ「Ｙちゃん、出てきて」を音声認識し、文字列「Ｙちゃん、出てきて」を取得する。
【０１５２】
次に、端末要求処理部２０６は、指示内容情報に対応する文字列「Ｙちゃん、出てきて」を用いて、図１０の対応情報管理表を検索する。なお、指示内容情報に対応する文字列は、指示内容情報である、としても良い。
【０１５３】
そして、端末要求処理部２０６は、指示内容情報が、対応情報管理表の「ＩＤ＝１」の端末要求「＄キャラクタ"出てきて"」にマッチする、と判断する。そして、端末要求処理部２０６は、対応情報管理表の「ＩＤ＝１」のシナリオ元情報「ｃａｌｌ（＄キャラクタ）」を取得する。
【０１５４】
次に、シナリオ生成部２０７は、端末要求「＄キャラクタ"出てきて"」と文字列「Ｙちゃん、出てきて」とから、変数「＄キャラクタ」の値「Ｙちゃん」を得る。次に、シナリオ生成部２０７は、「Ｙちゃん」を用いて、図１７のキャラクタ管理表を検索し、「ＩＤ＝１」のレコードのデータ（画像、音声）を得る。そして、シナリオ生成部２０７は、シナリオ元情報「ｃａｌｌ（＄キャラクタ）」と「ＩＤ＝１」のレコードのデータ（画像、音声）とから、シナリオ「ｃａｌｌ（画像，音声）」を構成する。本シナリオは、「ＩＤ＝１」のレコードのデータ（画像、音声）を含む。つまり、「ｃａｌｌ（画像，音声）」は画像と音声とを含む意味である。
【０１５５】
次に、送信部２０８は、構成されたシナリオ「ｃａｌｌ（画像，音声）」を端末装置１に送信する。なお、送信部２０８は、端末識別子「１０１」に対応する送信先の情報（例えば、ＩＰアドレス）を保持しており、かかる送信先の情報を用いて、シナリオを端末装置１に送信する。
【０１５６】
次に、履歴蓄積部２０９は、受信された端末要求を用いて、要求履歴「１０１，（Ｘａ，Ｙａ），２０１２／１０／２７  １０：３８：５１，「Ｙちゃん、出てきて」」を履歴格納部２０４に蓄積する。なお、履歴蓄積部２０９は、シナリオ元情報「ｃａｌｌ（＄キャラクタ）」、またはシナリオ「ｃａｌｌ（画像，音声）」を履歴格納部２０４に蓄積しても良い。かかる場合、端末要求の一部とは、シナリオ元情報または生成されたシナリオでも良い。
【０１５７】
次に、カレント情報更新部２１３は、端末識別子「１０１」で識別される端末装置１のカレント情報を更新する。つまり、カレント情報更新部２１３は、「Ｙちゃん」のキャラクタ識別子「１」、画像ＩＤ「１」を取得する。そして、カレント情報更新部２１３は、図１５のカレント情報管理表における端末識別子「１０１」に対応するレコードの中の、「オブジェクト識別子」の属性値に「１」、および画像ＩＤの属性値に「１」を書き込む。つまり、カレント情報更新部２１３は、「ＩＤ＝１」のレコードにおいて、現在「ＮＵＬＬ（−）」であるオブジェクト識別子を「１」に変更し、かつ現在「ＮＵＬＬ（−）」である画像ＩＤを「１」に変更する。なお、カレント情報更新部２１３は、キャラクタの、端末装置１における出力位置（例えば、出力位置の初期値である（０，０）等）をも書き込んでも良い。
【０１５８】
次に、端末装置１の端末受信部１０７は、サーバ装置２からシナリオ「ｃａｌｌ（画像，音声）」を受信する。
【０１５９】
次に、端末パーサ部１０８は、受信されたシナリオを解釈し、（画像，音声）のキャラクタをディスプレイに表示される。つまり、端末機能呼出部１０９は、シナリオ「ｃａｌｌ（画像，音声）」を用いて、ドライバ識別子「キャラクタ」に対応するドライバ呼出関数「ｓｈｏｗ＿ｃｈａｒ（画像）」を実行し、キャラクタをディスプレイに表示する。また、端末機能呼出部１０９は、シナリオ「ｃａｌｌ（画像，音声）」を用いて、ドライバ識別子「音声再生」に対応するドライバ呼出関数「ｖｏｉｃｅ（音声）」を実行し、キャラクタの音声を再生する。
【０１６０】
次に、「１０１」で識別される端末装置１の端末オブジェクト管理表に、図９の「ＩＤ＝１」のレコードが格納される。なお、図９では、表示フラグが「０」であるが、表示フラグは「１」に変更される。
【０１６１】
以上、本具体例によれば、端末装置１とサーバ装置２とが通信しながら、端末装置１での処理が続けられ、かつ、端末装置１から送信された端末要求をサーバ装置２が解釈する。そして、サーバ装置２で少なくとも一部の処理を行い、サーバ装置２が処理結果と端末要求に対応するシナリオ元情報とを用いたシナリオを構成し、端末装置１に送信する。そして、端末装置１が、自信が具備するドライバの駆動を含むシナリオを解釈し、ドライバを動作させ、所望の処理を行う。また、サーバ装置２では、現在の端末装置１の状態がカレント情報管理表で管理される。
【０１６２】
（具体例２）
具体例２は、端末装置１から送信された端末要求をサーバ装置２で解釈し、サーバ装置２から端末装置１のドライバを動作させる例である。そして、具体例２は、端末装置１のユーザの操作の履歴に基づいて、端末装置１において異なる動作を実現できる動作の例である。さらに具体的には、端末装置１のユーザが、端末装置１に表示されているキャラクタの胸を閾値以上タッチした場合に、端末装置１のユーザの好感度が下がり、好感度が高い場合と比較して、キャラクタの動作が異なる処理について説明する。また、具体例２において、サーバ装置２で管理している端末装置１のドライバの情報に基づいて、端末装置１に送信されるシナリオが異なる動作についても説明する。
【０１６３】
今、図１４の履歴管理表によれば、端末識別子「１０１」のユーザに対するキャラクタ「ＩＤ＝１」の好感度は「高」である。なお、好感度は「高」「中」「低」の３段階のいずれかで管理される、とする。また、図１４の履歴管理表によれば、端末識別子「１０１」のユーザは、キャラクタ識別子「１」で識別されるキャラクタの胸を１回、顔を１回、タッチしていることが分かる。
【０１６４】
また、ここでは、端末要求処理部２０６は、キャラクタの胸またはお腹に、３分以内に、３回以上タッチした場合に、好感度が一つ下がる、とする。
【０１６５】
かかる状況において、端末装置１のユーザが、図１９の画面上の「キャラクタＩＤ＝１」のキャラクタの胸をタッチした、とする。なお、図１９の画面はタッチパネルである。
【０１６６】
次に、端末受付部１０４は、このユーザからキャラクタ「１」の胸へのタッチを示す座標情報を含む指示（例えば、ｐｏｉｎｔ（ｘｂ，ｙｂ））を受け付ける。ｐｏｉｎｔ（ｘｂ，ｙｂ）は、例えば、タッチパネルのドライバからの出力である。
【０１６７】
次に、端末要求構成部１０５は、図９の端末オブジェクト管理表の「表示フラグ＝１」に対応するキャラクタ識別子（オブジェクト識別子）「１」を取得する。
【０１６８】
そして、端末要求構成部１０５は、指示（ｐｏｉｎｔ（ｘｂ，ｙｂ））から、タッチされたと判断する。そして、端末要求構成部１０５は、座標情報（ｘｂ，ｙｂ）が、図９の端末オブジェクト管理表の「ＩＤ＝１」のレコードが有する部分領域情報「（ｘ１０１，ｙ１０１）（ｘ１０２，ｙ１０２）・・・」で特定される領域内の点であることを検知する。そして、端末要求構成部１０５は、当該部分領域情報と対になる部分識別子「１」を取得する。
【０１６９】
次に、端末要求構成部１０５は、受け付けた指示から部分識別子「１」が取得できたので、端末要求を構成すると判断する。なお、端末要求構成部１０５は、図９の端末オブジェクト管理表で管理されている部位識別子が取得できた場合に、端末要求を構成すると判断するとする。
【０１７０】
次に、端末要求構成部１０５は、端末要求「ｔｏｕｃｈ（１，１）」を構成する。つまり、端末要求構成部１０５は、タッチされたとの判断から、「ｔｏｕｃｈ」を取得し、オブジェクト識別子「１」、部分識別子「１」から「ｔｏｕｃｈ」の引数（１，１）を得る。なお、端末要求構成部１０５は、ユーザがオブジェクトに対して行った操作の種類（タッチ（クリック）、ダブルクリック、ドラッグ等）に応じた関数名（端末要求を構成する情報の一例）を保持している、とする。
【０１７１】
また、端末要求構成部１０５は、例えば、端末識別子「１０１」、位置情報（Ｘｃ，Ｙｃ）、現在時刻「２０１２／１０／２８  １１：３８：２５」も取得した、とする。そして、端末要求構成部１０５は、端末要求「ｔｏｕｃｈ（１，１）」に、端末識別子、位置情報および現在時刻をも加えて、送信する端末要求「ｔｏｕｃｈ（１，１），１０１，（Ｘｃ，Ｙｃ），２０１２／１０／２８  １１：３８：２５」を構成した、とする。
【０１７２】
次に、端末送信部１０６は、構成された端末要求を、サーバ装置２に送信する。
【０１７３】
次に、サーバ装置２の受信部２０５は、端末装置１から端末要求「ｔｏｕｃｈ（１，１），１０１，（Ｘｃ，Ｙｃ），２０１２／１０／２８  １１：３８：２５」を受信する。
【０１７４】
次に、端末要求処理部２０６は、受信部２０５が受信した端末要求を解釈し、「ｔｏｕｃｈ（１，１）」を取得する。そして、端末要求処理部２０６は、「ｔｏｕｃｈ（１，１）」が図１０の対応情報管理表の「ＩＤ＝３」のレコードにマッチする、と判断する。そして、端末要求処理部２０６は、「ｔｏｕｃｈ（１，１）」から「オブジェクト識別子＝１」「部位識別子＝１」を得る。なお、端末要求処理部２０６は、ここでは、「ｔｏｕｃｈ（１，１）」は２回目であるので、図１４の履歴管理表の好感度「高」を変更しない。
【０１７５】
次に、シナリオ生成部２０７は、「ＩＤ＝３」のレコードのシナリオ元情報を対応情報管理表から取得する。そして、シナリオ生成部２０７は、取得したシナリオ元情報に従って、端末識別子「１０１」の好感度「高」を図１４の履歴管理表から得る。そして、シナリオ生成部２０７は、シナリオ元情報を解釈し、当該シナリオ元情報が有する好感度「高」に対応する記述「ｓｈｏｗ＿ｃｈａｒ（＄オブジェクト識別子，ＩＤ＝２）」を得る。次に、シナリオ生成部２０７は、「ｓｈｏｗ＿ｃｈａｒ（＄オブジェクト識別子，ＩＤ＝２）」の変数「＄オブジェクト識別子」に「１」を代入し、「ｓｈｏｗ＿ｃｈａｒ（１，２）」を得る。次に、シナリオ生成部２０７は、オブジェクト識別子「１」に対応し、「ＩＤ＝２」のデータ（ＩＤ＝２のレコードのデータ）を図１７から取得する。このデータは、図１７の「ＩＤ＝２」のレコードの画像と、音声データ「もう、やだー」である。
【０１７６】
また、シナリオ生成部２０７は、端末識別子「１０１」に対応する種類識別子「ｋ０１」を取得する。そして、シナリオ生成部２０７は、種類識別子「ｋ０１」に対応するドライバ識別子であり、画像に対応するドライバ識別子である「キャラクタ」が存在するか否かを、図１１のドライバ管理表から判断する。ここで、種類識別子「ｋ０１」に対応するドライバ識別子「キャラクタ」が存在するので、シナリオ生成部２０７は、シナリオ「（キャラクタ，「ＩＤ＝２」のレコードの画像）」を取得する。また、シナリオ生成部２０７は、種類識別子「ｋ０１」に対応するドライバ識別子であり、音声に対応するドライバ識別子である「音声再生」が存在するか否かを、図１１のドライバ管理表から判断する。ここで、種類識別子「ｋ０１」に対応するドライバ識別子「音声再生」が存在するので、シナリオ生成部２０７は、シナリオ「（音声再生，「ＩＤ＝２」のレコードの音声）」を取得する。そして、シナリオ生成部２０７は、シナリオ「（キャラクタ，「ＩＤ＝２」のレコードの画像）、（音声再生，「ＩＤ＝２」のレコードの音声）」を構成する。なお、ｓｈｏｗ＿ｃｈａｒは、キャラクタを端末装置で出力するコマンドであり、画像に対応するドライバ識別子が「キャラクタ」であり、音声に対応するドライバ識別子が「音声再生」であることを示す情報を、シナリオ生成部２０７は、保持している、とする。
【０１７７】
また、例えば、端末識別子「１０１」に対応する種類識別子が「ｋ０２」であったと仮定した場合、シナリオ生成部２０７は、図１１のドライバ管理表から、種類識別子が「ｋ０２」に対応するドライバ識別子であり、画像に対応するドライバ識別子である「キャラクタ」が存在すると判断するが、音声に対応するドライバ識別子「音声再生」は存在しない、と判断する。そして、シナリオ生成部２０７は、シナリオ「（キャラクタ，「ＩＤ＝２」のレコードの画像）」を構成する。
【０１７８】
次に、送信部２０８は、構成されたシナリオを端末装置１に送信する。また、次に、履歴蓄積部２０９は、受信された端末要求の全部または一部を履歴格納部２０４に蓄積する。ここでは、履歴蓄積部２０９は、端末要求の一部と考えられる「（１，１，タッチ）」を履歴格納部２０４に蓄積する。
【０１７９】
次に、カレント情報更新部２１３は、シナリオの端末装置１への送信に応じて、カレント情報を更新する。つまり、カレント情報更新部２１３は、図１５のカレント情報管理表において、端末装置識別子「１０１」に対応する画像ＩＤの値を「２」に変更する。
【０１８０】
次に、端末装置１の端末受信部１０７は、サーバ装置２からシナリオ「（キャラクタ，「ＩＤ＝２」のレコードの画像）、（音声再生，「ＩＤ＝２」のレコードの音声）」を受信する。
【０１８１】
次に、端末パーサ部１０８は、受信されたシナリオを解釈し、ドライバ識別子「キャラクタ」と「ＩＤ＝２」のレコードの画像、およびドライバ識別子「音声再生」と音声「もう、やだー」を取得する。なお、端末パーサ部１０８は、各ドライバ識別子に対応するドライバ呼出関数を保持している。
【０１８２】
次に、端末機能呼出部１０９は、ドライバ呼出関数を用いて、ドライバ識別子「キャラクタ」に対応するドライバに対して、「ＩＤ＝２」のレコードの画像を与え、当該ドライバを起動する。また、端末機能呼出部１０９は、同様に、ドライバ識別子「音声再生」に対応するドライバに対して、音声「もう、やだー」を与え、当該ドライバを起動する。その結果、図１９のキャラクタ表示が図２０のように変わり、音声「もう、やだー」が出力される。なお、図２０のキャラクタは、胸を触られているが、好感度が「高」なので、笑っている画像である。
【０１８３】
次に、上記と同様に、端末装置１のユーザが、図２０の画面上の「キャラクタＩＤ＝１」のキャラクタの胸をタッチした、とする。
【０１８４】
すると、上記と同様に、端末要求構成部１０５は、送信する端末要求「ｔｏｕｃｈ（１，１），１０１，（Ｘｄ，Ｙｄ），２０１２／１０／２８  １１：３８：４８」を構成した、とする。
【０１８５】
次に、端末送信部１０６は、構成された端末要求を、サーバ装置２に送信する。
【０１８６】
次に、サーバ装置２の受信部２０５は、端末装置１から端末要求を受信する。そして、端末要求処理部２０６は、受信部２０５が受信した端末要求を、上記と同様に解釈する。そして、「ｔｏｕｃｈ（１，１）」は３回目であるので、端末要求処理部２０６は、図１４の履歴管理表の好感度「高」から「中」に変更する。
【０１８７】
次に、シナリオ生成部２０７は、「ＩＤ＝３」のレコードのシナリオ元情報を対応情報管理表から取得する。そして、シナリオ生成部２０７は、取得したシナリオ元情報に従って、端末識別子「１０１」の好感度「中」を履歴管理表から得る。そして、シナリオ生成部２０７は、シナリオ元情報を解釈し、当該シナリオ元情報が有する好感度「中」に対応する記述「ｓｈｏｗ＿ｃｈａｒ（＄オブジェクト識別子，ＩＤ＝３）」を得る。次に、シナリオ生成部２０７は、「ｓｈｏｗ＿ｃｈａｒ（＄オブジェクト識別子，ＩＤ＝３）」の変数「＄オブジェクト識別子」に「１」を代入し、「ｓｈｏｗ＿ｃｈａｒ（１，３）」を得る。次に、シナリオ生成部２０７は、オブジェクト識別子「１」に対応し、「ＩＤ＝３」のデータ（ＩＤ＝３のレコードのデータ）を図１４から取得する。このデータは、図１７の「ＩＤ＝３」のレコードの画像と、音声データ「やらしいわね」である。また、シナリオ生成部２０７は、画像に対応するドライバ識別子「キャラクタ」と、音声に対応するドライバ識別子「音声再生」とを取得する。そして、シナリオ生成部２０７は、シナリオ「（キャラクタ，「ＩＤ＝３」のレコードの画像）、（音声再生，「ＩＤ＝３」のレコードの音声）」を構成する。
【０１８８】
次に、送信部２０８は、構成されたシナリオを端末装置１に送信する。また、次に、履歴蓄積部２０９は、受信された端末要求の全部または一部を履歴格納部２０４に蓄積する。ここでは、履歴蓄積部２０９は、端末要求の一部と考えられる「（１，１，タッチ）」を履歴格納部２０４に蓄積する。
【０１８９】
次に、カレント情報更新部２１３は、図１５のカレント情報管理表において、端末装置識別子「１０１」に対応する画像ＩＤの値を「３」に変更する。
【０１９０】
次に、端末装置１の端末受信部１０７は、サーバ装置２からシナリオ「（キャラクタ，「ＩＤ＝３」のレコードの画像）、（音声再生，「ＩＤ＝３」のレコードの音声）」を受信する。
【０１９１】
次に、端末パーサ部１０８は、受信されたシナリオを解釈し、ドライバ識別子「キャラクタ」と「ＩＤ＝３」のレコードの画像、およびドライバ識別子「音声再生」と音声「やらしいわね」を取得する。
【０１９２】
次に、端末機能呼出部１０９は、ドライバ識別子「キャラクタ」に対応するドライバに対して、「ＩＤ＝３」のレコードの画像を与え、当該ドライバを起動する。また、端末機能呼出部１０９は、ドライバ識別子「音声再生」に対応するドライバに対して、音声「やらしいわね」を与え、当該ドライバを起動する。その結果、図２０のキャラクタ表示が図２１のように変わり、音声「やらしいわね」が出力される。なお、図２１のキャラクタは、胸を触られているが、好感度が「中」なので、胸を隠している画像である。
【０１９３】
以上、本具体例によれば、端末装置１とサーバ装置２とが通信しながら、端末装置１での処理が続けられる情報システムにおいて、端末装置１のユーザの操作の履歴に基づいて、端末装置１において異なる動作を実現できる。
【０１９４】
（具体例３）
具体例３は、端末装置１から送信された端末要求をサーバ装置２で解釈し、端末要求を送信した端末装置１以外の端末装置のドライバをサーバ装置２から送信するシナリオにより動作させる例である。さらに具体的には、具体例３は、一の端末装置１におけるユーザ操作に基づいて、他の端末装置１を操作できる動作の例である。また、端末装置１の状態に応じて、適用されるシナリオが変化することにより、異なる動作を行う例である。
【０１９５】
まず、端末装置識別子「１０１」で識別される端末装置１のユーザが、自分の端末装置１に向かって、「おばあちゃんを連れてきて」を音声で指示した、とする。
【０１９６】
次に、端末装置１の端末受付部１０４は、音声「おばあちゃんを連れてきて」を受け付ける。次に、端末要求構成部１０５は、端末受付部１０４が受け付けていた音声が途切れたことを検知し、端末受付部１０４が受け付けた指示等を用いて、端末要求を構成すると判断する。
【０１９７】
次に、端末要求構成部１０５は、音声「おばあちゃんを連れてきて」を音声認識し、文字列「おばあちゃんを連れてきて」を取得する。また、端末要求構成部１０５は、端末装置１が格納している端末識別子「１０１」を取得する。また、端末要求構成部１０５は、端末装置１が保持しているＧＰＳ受信機が取得した位置情報（Ｘｅ，Ｙｅ）を取得する。なお、ＧＰＳ受信機は、例えば、端末機能部１０１の一つである。また、端末要求構成部１０５は、図示しない時計や、外部の装置（例えば、ＮＴＰサーバ）から現在時刻「２０１２／１０／２８  １３：５９：５３」取得する。そして、端末要求構成部１０５は、端末要求「１０１，（Ｘｅ，Ｙｅ），２０１２／１０／２８  １３：５９：５３，"おばあちゃんを連れてきて"」を構成する。
【０１９８】
次に、端末送信部１０６は、構成された端末要求を、サーバ装置２に送信する。
【０１９９】
次に、サーバ装置２の受信部２０５は、端末装置１から端末要求「１０１，（Ｘｅ，Ｙｅ），２０１２／１０／２８  １３：５９：５３，"おばあちゃんを連れてきて"」を受信する。
【０２００】
次に、端末要求処理部２０６は、受信部２０５が受信した端末要求から指示内容情報「おばあちゃんを連れてきて」を取得する。
【０２０１】
次に、シナリオ生成部２０７は、指示内容情報「おばあちゃんを連れてきて」を用いて、図１０の対応情報管理表を検索する。そして、シナリオ生成部２０７は、指示内容情報が、対応情報管理表の「ＩＤ＝５」の端末要求「＄人．＊"連れてきて"」にマッチする、と判断する。そして、シナリオ生成部２０７は、対応情報管理表の「ＩＤ＝５」のシナリオ元情報を取得する。
【０２０２】
次に、シナリオ生成部２０７は、端末要求「＄人．＊"連れてきて"」の中に、変数が存在することを検知し、サーバ装置２が行うべき処理が存在すると判断する。なお、このサーバ装置２が行うべき第一の処理は、変数「＄人」を取得する処理である。
【０２０３】
次に、シナリオ生成部２０７は、指示内容情報「おばあちゃんを連れてきて」と端末要求「＄人．＊"連れてきて"」を用いて、変数「＄人」に対応する「おばあちゃん」を、指示内容情報から取得する。なお、ここで、「おばあちゃん」を取得する方法は問わない。例えば、シナリオ生成部２０７は、「おばあちゃんを連れてきて」を形態素解析し、単語「おばあちゃん」を取得し、変数「＄人」に対応すると判断する。
【０２０４】
次に、シナリオ生成部２０７は、対応情報管理表の「ＩＤ＝５」のシナリオ元情報を解釈する。つまり、シナリオ生成部２０７は、シナリオ元情報の「ｔｅｒｍｉｎａｌ＝ｓｅａｒｃｈ（＄端末識別子，＄人）」の変数「＄端末識別子」「人」に、「１０１」「おばあちゃん」を代入する。そして、シナリオ生成部２０７は、「ｔｅｒｍｉｎａｌ＝ｓｅａｒｃｈ（１０１，おばあちゃん）」を実行する。つまり、シナリオ生成部２０７は、図１８の関連ユーザ管理表の「端末識別子１＝１０１」かつ「関係＝おばあちゃん」に合致するレコードから、端末識別子２「１０３」を取得する。つまり、「ｔｅｒｍｉｎａｌ＝ｓｅａｒｃｈ（１０１，おばあちゃん）」の「ｔｅｒｍｉｎａｌ」が「１０３」である、として取得された。
【０２０５】
次に、シナリオ生成部２０７は、シナリオ元情報を解釈し、「ｔｅｒｍｉｎａｌ！＝ＮＵＬＬ」に合致すると判断する。そして、シナリオ生成部２０７は、図８の「ＩＤ＝５」のレコードから、「ｔｅｒｍｉｎａｌ！＝ＮＵＬＬ」に対応するシナリオ元情報を取得する。次に、シナリオ生成部２０７は、「ｉｆ（ｔｅｒｍｉｎａｌ．電源＝＝ＯＦＦ）」を解釈し、端末識別子「１０３」の端末装置１のカレント情報のうちの、属性値「電源＝０」を取得する。なお、ここでは、「電源＝０」は「ＯＦＦ」に該当し、「電源＝１」は「ＯＮ」に該当する。また、電源のＯＦＦとは、ここでは、電話機能は動作し、他の機能は停止していることである、とする。
【０２０６】
そして、シナリオ生成部２０７は、「ｉｆ（ｔｅｒｍｉｎａｌ．電源＝＝ＯＦＦ）」を真である、と判断し、シナリオ元情報「ｔｅｌ（ｔｅｒｍｉｎａｌ，"電源をＯＮにして下さい"）」を取得する。そして、シナリオ生成部２０７は、変数「ｔｅｒｍｉｎａｌ」に「１０３」を代入し、シナリオ「ｔｅｌ（１０３，"電源をＯＮにして下さい"）」を得る。
【０２０７】
次に、送信部２０８は、端末識別子「１０３」で識別される端末装置１（おばあちゃんの端末装置１）に、シナリオ「ｔｅｌ（１０３，"電源をＯＮにして下さい"）」を送信する。つまり、送信部２０８は、おばあちゃんの端末装置１に電話をかけ、「電源をＯＮにして下さい」を送信する。なお、送信部２０８は、端末装置識別子「１０３」に対応する電話番号を保持している、とする。
【０２０８】
次に、おばあちゃんの端末装置１の電話のドライバが起動され、おばあちゃんが受話器を取ると、「電源をＯＮにして下さい」が発声される。そして、おばあちゃんは、端末装置１の電源をＯＮにした（電話以外の機能も動作可能にした）、とする。
【０２０９】
次に、シナリオ生成部２０７は、シナリオ元情報「ｐｕｔ（＄位置情報，ｔｅｒｍｉｎａｌ）；ｓｔａｒｔ＿ｕｐ（ｎａｖｉ（））；ｓｅｔ＿ｄｅｓｔｉｎａｔｉｏｎ（＄位置情報）；ｒｏｕｔｅ＿ｓｅａｒｃｈ（＄現在位置，＄目的地）；」を取得する。
【０２１０】
次に、シナリオ生成部２０７は、「ｐｕｔ（＄位置情報，ｔｅｒｍｉｎａｌ）」に「位置情報＝（Ｘｅ，Ｙｅ）」「ｔｅｒｍｉｎａｌ＝１０３」を代入し、「ｐｕｔ（（Ｘｅ，Ｙｅ），１０３）」を構成する。
【０２１１】
次に、送信部２０８は、端末識別子「１０１」とおばあちゃんの端末装置の端末識別子「１０３」とが、グループ情報格納部２０３でグループとして管理されているか否かをチェックする。ここで、図１３のグループ情報管理表によれば、「１０１」と「１０３」とはグループとして管理されている。従って、送信部２０８は、おばあちゃんの端末装置１に、「ｐｕｔ（（Ｘｅ，Ｙｅ），１０３）」等のコマンドを送信しても良い、と判断する。そして、送信部２０８は、「１０３」の端末装置１に、「ｐｕｔ（（Ｘｅ，Ｙｅ），１０３）」を送信する。「ｐｕｔ（（Ｘｅ，Ｙｅ），１０３）」は、端末装置１の位置情報（Ｘｅ，Ｙｅ）を通知するコマンドである。
【０２１２】
そして、おばあちゃんの端末装置１は、端末装置１の位置情報（Ｘｅ，Ｙｅ）を受信し、一時蓄積する。なお、まず、おばあちゃんの端末装置１に、案内を行う処理を実施しても良いか否かを問い合わせる情報を出力し、おばあちゃんの端末装置１から「許可」を示す情報を受信した場合にも、以下に説明する案内を行う処理を進めることは好適である。
【０２１３】
次に、送信部２０８は、コマンド「ｓｔａｒｔ＿ｕｐ（ｎａｖｉ）（）；」を、「１０３」の端末装置１に送信する。
【０２１４】
次に、おばあちゃんの端末装置１は、コマンド「ｓｔａｒｔ＿ｕｐ（ｎａｖｉ（））；」を受信し、当該コマンドに従い、ｎａｖｉ（）を起動する。つまり、おばあちゃんの端末装置１では、ナビゲーションシステム（端末機能部の一つ）が起動される。なお、おばあちゃんの端末装置１は、シナリオ「ｓｔａｒｔ＿ｕｐ（ｎａｖｉ（））；」はナビゲーションシステムを起動することを示す情報が格納されている、とする。
【０２１５】
次に、送信部２０８は、コマンド「ｓｅｔ＿ｄｅｓｔｉｎａｔｉｏｎ（＄位置情報）；」を、「１０３」の端末装置に送信する。
【０２１６】
次に、おばあちゃんの端末装置１は、コマンド「ｓｅｔ＿ｄｅｓｔｉｎａｔｉｏｎ（＄位置情報）；」を受信し、当該コマンドに従い、位置情報（Ｘｅ，Ｙｅ）を目的地として、ナビゲーションシステムに設定する。なお、おばあちゃんの端末装置１は、シナリオ「ｓｅｔ＿ｄｅｓｔｉｎａｔｉｏｎ（＄位置情報）；」は、ナビゲーションシステムの目的地に、「＄位置情報」を設定することを示す情報が格納されている、とする。
【０２１７】
次に、送信部２０８は、コマンド「ｒｏｕｔｅ＿ｓｅａｒｃｈ（＄現在位置，＄目的地）；」を、「１０３」の端末装置１に送信する。
【０２１８】
次に、おばあちゃんの端末装置１は、コマンド「ｒｏｕｔｅ＿ｓｅａｒｃｈ（＄現在位置，＄目的地）；」の変数「＄現在位置」におばあちゃんの端末装置の現在位置を代入する。また、おばあちゃんの端末装置１は、変数「＄目的地」に位置情報（Ｘｅ，Ｙｅ）を代入する。なお、おばあちゃんの端末装置１はＧＰＳ受信機等の位置情報を取得する機能を有し、当該機能を用いて、「＄現在位置」を取得できる、とする。
【０２１９】
そして、おばあちゃんの端末装置１は、コマンド「ｒｏｕｔｅ＿ｓｅａｒｃｈ（（Ｘｆ，Ｙｆ），（Ｘｅ，Ｙｅ））；」を実行し、ナビゲーションのための経路探索を行う。そして、経路案内がおばあちゃんの端末装置１で行われる、とする。なお、経路案内における目的地は、「おばあちゃんを連れてきて」と音声入力したユーザが居る位置である。なお、おばあちゃんの端末装置１は、シナリオ「ｒｏｕｔｅ＿ｓｅａｒｃｈ（（Ｘｆ，Ｙｆ），（Ｘｅ，Ｙｅ））；」は、ナビゲーションシステムを用いて、２つの地点間の経路案内を行うことを示す情報が格納されている、とする。
【０２２０】
本具体例によれば、一の端末装置１におけるユーザ操作に基づいて、他の端末装置１を操作できる。また、本具体例によれば、一の端末装置１におけるユーザ操作に基づいて、グループ管理された他の端末装置１のみ操作ができる。
【０２２１】
（具体例４）
具体例４は、オブジェクトが端末間を移動できる情報システムである。さらに具体的には、端末装置１のユーザが、端末装置１に存在しているキャラクタを、別の端末装置に移動させる場合について説明する。なお、端末装置１のユーザは、ユーザ識別子「Ａ」で識別されるユーザである、とする。
【０２２２】
また、現在、ユーザ「Ａ」の端末装置１（端末識別子「１０１」）に、キャラクタ識別子「１」のキャラクタが存在し、かかること（ユーザ識別子：Ａ，端末識別子：１０１，キャラクタ識別子：１）が、図１５のカレント情報管理表に格納されている、とする。つまり、図１５の「ＩＤ＝１」のレコードの「オブジェクト識別子＝１」である、とする。
【０２２３】
かかる状況において、ユーザ「Ａ」は、端末識別子「５０１」で識別される端末装置１（以下、端末「５０１」）にユーザ識別子「Ａ」と、音声「ここに移動して」とを入力した、とする。
【０２２４】
次に、端末「５０１」の端末受付部１０４は、ユーザ識別子「Ａ」および音声「ここに移動して」を受け付ける。次に、端末要求構成部１０５は、受け付けたデータを用いて、端末要求を構成すると判断する。
【０２２５】
次に、端末「５０１」の端末要求構成部１０５は、ユーザ識別子「Ａ」、音声「ここに移動して」、端末「５０１」の端末識別子「５０１」を用いて、端末要求（５０１，Ａ，"ここに移動して"）を構成する。なお、端末要求構成部１０５は、音声認識機能を有し、音声「ここに移動して」を文字列「ここに移動して」に変換した、とする。なお、端末「５０１」は、端末識別子「５０１」を予め保持している、とする。
【０２２６】
次に、端末「５０１」の端末送信部１０６は、構成された端末要求（５０１，Ａ，"ここに移動して"）を、サーバ装置２に送信する。
【０２２７】
次に、サーバ装置２の受信部２０５は、端末装置１から端末要求（５０１，Ａ，"ここに移動して"）を受信する。
【０２２８】
次に、端末要求処理部２０６は、受信部２０５が受信した端末要求を解釈する。そして、端末要求処理部２０６は、端末要求の解釈結果を用いて、サーバ装置２が行うべき処理が存在すると判断する。つまり、端末要求処理部２０６は、"ここに移動して"を用いて、図１０の表の「ＩＤ＝４」のレコードに合致する、と判断する。そして、端末要求処理部２０６は、「ＩＤ＝４」のレコードのシナリオ元情報「ｃｈ＝ｇｅｔ＿ｃｈａｒ（＄ユーザ識別子，＄キャラクタ）；  ｄｅｌｅｔｅ（＄ユーザ識別子，＄キャラクタ）；  ｐｕｔ＿ｃｈａｒ（＄端末識別子，ｃｈ）」を得る。そして、得たシナリオ元情報の中に変数を含むので、端末要求処理部２０６は、サーバ装置２が行うべき処理が存在すると判断する。
【０２２９】
次に、端末要求処理部２０６は、「＄ユーザ識別子」に対応する「Ａ」を端末要求から取得する。また、端末要求処理部２０６は、「＄キャラクタ」に対応する「ＩＤ＝１」のキャラクタの情報を取得する。（ユーザ識別子：Ａ，端末識別子：１０１，キャラクタ識別子：１）から、端末要求処理部２０６は、ユーザ識別子「Ａ」に対応するキャラクタ識別子は「１」であると取得できる。また、端末要求処理部２０６は、「＄端末識別子」に対応する「５０１」を端末要求から取得する。
【０２３０】
次に、シナリオ生成部２０７は、「ｃｈ＝ｇｅｔ＿ｃｈａｒ（＄ユーザ識別子，＄キャラクタ）；」の変数に値を代入し、「ｃｈ＝ｇｅｔ＿ｃｈａｒ（Ａ，１）；」を得る。そして、シナリオ生成部２０７は、「ｃｈ＝ｇｅｔ＿ｃｈａｒ（Ａ，１）；」を実行し、変数「ｃｈ」にキャラクタの情報を代入する。次に、シナリオ生成部２０７は、「ｄｅｌｅｔｅ（＄ユーザ識別子，＄キャラクタ）；」の変数に値を代入し、「ｄｅｌｅｔｅ（Ａ，１）；」を得る。そして、シナリオ生成部２０７は、「ｄｅｌｅｔｅ（Ａ，１）；」を実行し、ユーザ識別子「Ａ」に対応するキャラクタの情報を、現在、キャラクタが存在する端末装置１の端末識別子「１０１」を取得する。なお、キャラクタの情報は、キャラクタの画像を含む。
【０２３１】
そして、送信部２０８は、端末識別子「１０１」で識別される端末装置１に、「ｄｅｌｅｔｅ（Ａ，１）；」を送信する。そして、端末識別子「１０１」で識別される端末装置１の端末受信部１０７は、シナリオ「ｄｅｌｅｔｅ（Ａ，１）；」を受信し、端末パーサ部１０８は当該シナリオを解釈する。そして、端末機能呼出部１０９は、ディスプレイから「ＩＤ＝１」のキャラクタを削除する。
【０２３２】
次に、シナリオ生成部２０７は、「ｐｕｔ＿ｃｈａｒ（＄端末識別子，ｃｈ）」の変数に値を代入し、「ｐｕｔ＿ｃｈａｒ（５０１，ｃｈ）」を得る。なお、変数「ｃｈ」には、キャラクタの情報が代入されている、とする。
【０２３３】
次に、送信部２０８は、「ｐｕｔ＿ｃｈａｒ（５０１，ｃｈ）」を端末識別子「５０１」で識別される端末「５０１」に送信する。
【０２３４】
次に、ユーザ管理情報変更部２１５は、端末要求または送信されたシナリオから、ユーザの指示が端末装置１の移動である、と判断する。そして、ユーザ管理情報変更部２１５は、図１６のユーザ管理情報管理表のユーザ識別子「Ａ」に対応する端末識別子を「１０１」から「５０１」に変更する。
【０２３５】
次に、カレント情報更新部２１３は、シナリオの端末装置１への送信に応じて、カレント情報を更新する。つまり、カレント情報更新部２１３は、図１５のカレント情報管理表において、端末装置識別子「１０１」に対応するオブジェクト識別子の属性値を「ＮＵＬＬ（−）」、画像ＩＤの属性値を画像ＩＤの値を「ＮＵＬＬ（−）」に変更する。また、カレント情報更新部２１３は、端末装置識別子「５０１」に対応するオブジェクト識別子の属性値を「１」、画像ＩＤの属性値を画像ＩＤの値を「１」に変更する。
【０２３６】
次に、端末「５０１」の端末受信部１０７は「ｐｕｔ＿ｃｈａｒ（５０１，ｃｈ）」を受信する。そして、端末パーサ部１０８は、「ｐｕｔ＿ｃｈａｒ（５０１，ｃｈ）」を解釈する。そして、端末「５０１」の端末機能呼出部１０９は、キャラクタのドライバに変数「ｃｈ」のデータ（キャラクタのデータ）を渡し、キャラクタのドライバを起動させる。そして、端末「５０１」のディスプレイには、キャラクタが表示される。
【０２３７】
以上、本具体例によれば、端末間のオブジェクトが移動できる。
【０２３８】
以上、本実施の形態によれば、ドライバにより駆動される１以上のハードウェアを具備し、かつ情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。
【０２３９】
また、本実施の形態によれば、サーバ装置で端末装置の現在の状況を管理することにより、情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。
【０２４０】
また、本実施の形態によれば、サーバ装置で端末装置のドライバを管理することにより、情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える。また、本実施の形態によれば、端末装置が具備するドライバの登録、管理が容易に行える。
【０２４１】
さらに、本実施の形態によれば、処理中に、処理を行う対象の端末装置を変更できる。
【０２４２】
なお、本実施の形態において、端末装置１から送信された端末要求を、サーバ装置２が解釈して、シナリオを端末装置１に返す、という処理を行っている。ただし、サーバ装置２は、端末装置１から端末要求を受信しない場合にでも、予め決められた条件を満たす場合、端末装置１にシナリオを送信しても良い。予め決められた条件とは、例えば、予め決められた時刻になったこと、サーバ装置２の状態が予め決められた条件を満たすこと等である。サーバ装置２の状態が予め決められた条件を満たすこととは、例えば、ＣＰＵ負荷が閾値以下であること、サーバ装置２が起動していること等である。
【０２４３】
また、本実施の形態において、例えば、サーバ装置２が、ダウンした場合、サーバ装置２がダウンから復帰するまで、サーバ装置２からの復帰した旨の情報の受信まで端末装置１は待機状態となり、端末装置１が本来持つ機能が動作する。また、かかる場合、通常、端末装置１は現在の状態を保持（退避）している。なお、端末装置１が本来持つ機能とは、例えば、ＯＳがユーザからの指示等を受け付ける状態である。また、サーバ装置２から復帰した旨の情報を受信した場合、端末装置１は、退避した状態を呼び出し、サーバ装置２とのやりとりを再開する。
【０２４４】
また、端末装置１で処理を行っている場合、通常、サーバ装置２と常時通信を行っている。そのため、サーバ装置２が、例えば、ダウンした場合、端末装置１の処理は停止しても良い。
【０２４５】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、本実施の形態における端末装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、前記１以上の端末機能部のドライバを識別する１以上のドライバ識別子を格納しており、コンピュータを、ユーザからの１以上の指示を受け付ける端末受付部と、前記１以上の指示に対応する要求である端末要求を構成する端末要求構成部と、前記端末要求を前記サーバ装置に送信する端末送信部と、前記端末要求の送信に対応して、前記サーバ装置からコマンドとデータとを有するシナリオを受信する端末受信部と、前記シナリオを解釈し、前記１以上のドライバ識別子、および当該１以上のドライバ識別子で識別される１以上の機能部に渡すデータであり、前記シナリオが有するデータを取得する端末パーサ部と、前記端末パーサ部が取得した前記１以上のドライバ識別子で識別される１以上の端末機能部に、前記端末パーサ部が取得したデータを渡し、前記１以上の端末機能部を呼び出す端末機能呼出部として機能させるためのプログラムである。
【０２４６】
また、上記プログラムにおいて、１以上のオブジェクトを格納し得る端末オブジェクト格納部と、前記１以上のオブジェクトを出力する端末オブジェクト出力部とをさらに具備し、前記シナリオは、オブジェクトの動作を示すコマンドである動作コマンドを有し、前記端末パーサ部は、前記シナリオを解釈し、当該シナリオから動作コマンドを取得し、前記端末オブジェクト出力部は、前記動作コマンドに従って、当該動作コマンドに対応するオブジェクトを動作させることは好適である。
【０２４７】
また、本実施の形態におけるサーバ装置２を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、端末要求を構成する情報とシナリオを構成する元になる情報であるシナリオ元情報との対応を示す１以上の対応情報を格納しており、かつ、端末装置の現在の状態を示す情報であるカレント情報を、端末装置ごとに格納しており、コンピュータを、端末装置から端末要求を受信する受信部と、前記受信部が受信した端末要求を解釈し、当該端末要求に対応するシナリオ元情報を、前記記憶媒体から取得し、かつ、前記受信部が受信した端末要求に対応する処理を行う端末要求処理部と、前記端末要求処理部が取得したシナリオ元情報と、前記端末要求処理部が処理を行って得た処理結果と、前記端末装置に対応するカレント情報とを用いて、シナリオを生成するシナリオ生成部と、前記シナリオ生成部が生成したシナリオを端末装置に送信する送信部と、前記シナリオの端末装置への送信に応じて、前記カレント情報を更新するカレント情報更新部として機能させるためのプログラムである。
【０２４８】
上記プログラムにおいて、前記記録媒体に、さらに、前記１または２以上の各端末装置が具備している端末機能部のドライバを識別する１以上のドライバ識別子を、端末装置ごとに格納しており、前記シナリオ生成部は、前記記録媒体に格納されている１以上のドライバ識別子に応じて、生成するシナリオが異なるものとして、コンピュータを機能させることは好適である。
【０２４９】
上記プログラムにおいて、前記記録媒体に、端末装置の種類を示す種類識別子と１以上のドライバ識別子とを対応付ける１以上の種類別ドライバ情報と、端末装置を識別する端末識別子と種類識別子とを対応付ける１以上の端末管理情報とを格納しており、前記シナリオ生成部は、前記記録媒体に格納されている１以上のドライバ識別子に応じて、生成するシナリオが異なるものとして、コンピュータを機能させることは好適である。
【０２５０】
上記プログラムにおいて、前記記録媒体に、さらに、端末装置のユーザを識別するユーザ識別子と端末識別子とを対応付ける１以上のユーザ管理情報を格納しており、前記端末要求が、処理を行う端末装置を移動する旨の要求である場合に、処理を行う端末装置が、現在処理を行っている端末装置である旧端末装置から新端末装置に変更になるように、ユーザ管理情報が有する端末識別子であり、前記端末要求を送信してきた端末装置のユーザのユーザ識別子に対応する端末識別子を、前記新端末装置の端末識別子に変更するユーザ管理情報変更部とをさらに具備し、前記シナリオ生成部は、前記旧端末装置のカレント情報を用いて、シナリオを生成し、前記送信部は、前記シナリオ生成部が生成したシナリオを新端末装置に送信するものとして、コンピュータを機能させることは好適である。
【０２５１】
また、図２２は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報システムを実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図２２は、このコンピュータシステム３００の概観図であり、図２３は、システム３００のブロック図である。
【０２５２】
図２２において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０２５３】
図２３において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＭＰＵ３０１３と、ＭＰＵ３０１３、ＣＤ−ＲＯＭドライブ３０１２に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＭＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０２５４】
コンピュータシステム３００に、上述した実施の形態の情報システムの機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０２５５】
プログラムは、コンピュータ３０１に、上述した実施の形態の情報システムの機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０２５６】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２５７】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２５８】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（端末情報送信部、端末情報受信部など）は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０２５９】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２６０】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２６１】
以上のように、本発明にかかる情報システムは、ドライバにより駆動される１以上のハードウェアを具備し、かつ情報処理能力が十分でない端末装置において、１以上のハードウェアを有効に利用しつつ、複雑な情報処理が行える、という効果を有し、情報システム等として有用である。
【符号の説明】
【０２６２】
１  端末装置
２  サーバ装置
１０１  端末機能部
１０２  端末ドライバ管理部
１０３  端末オブジェクト格納部
１０４  端末受付部
１０５  端末要求構成部
１０６  端末送信部
１０７  端末受信部
１０８  端末パーサ部
１０９  端末機能呼出部
１１０  端末オブジェクト出力部
２００  カレント情報格納部
２０１  対応情報格納部
２０２  サーバドライバ管理部
２０３  グループ情報格納部
２０４  履歴格納部
２０５  受信部
２０６  端末要求処理部
２０７  シナリオ生成部
２０８  送信部
２０９  履歴蓄積部
２１０  受付部
２１１  統計処理結果取得部
２１２  統計処理結果出力部
２１３  カレント情報更新部
２１４  ユーザ管理情報格納部
２１５  ユーザ管理情報変更部
２０２１  種類別ドライバ情報格納手段
２０２２  端末管理情報格納手段
【図１】
2014092893.tif 000003
【図２】
2014092893.tif 000004
【図３】
2014092893.tif 000005
【図４】
2014092893.tif 000006
【図５】
2014092893.tif 000007
【図６】
2014092893.tif 000008
【図７】
2014092893.tif 000009
【図８】
2014092893.tif 000010
【図１０】
2014092893.tif 000011
【図１１】
2014092893.tif 000012
【図１２】
2014092893.tif 000013
【図１３】
2014092893.tif 000014
【図１４】
2014092893.tif 000015
【図１５】
2014092893.tif 000016
【図１６】
2014092893.tif 000017
【図１８】
2014092893.tif 000018
【図２２】
2014092893.tif 000019
【図２３】
2014092893.tif 000020
【図９】
2014092893.tif 000021
【図１７】
2014092893.tif 000022
【図１９】
2014092893.tif 000023
【図２０】
2014092893.tif 000024
【図２１】
2014092893.tif 000025