以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本実施の形態におけるサービス提供システムの構成の具体例を示す図である。本実施の形態におけるサービス提供システムは、本発明にかかるサービス利用端末と、サービス利用端末に対して機能を提供するサービス提供サーバとを含んで構成される。
図1を参照して、本実施の形態におけるサービス利用端末であるサービス利用パーソナルコンピュータ(以下、PCという)100aは、ネットワーク200を介してサービス利用端末に対して機能を提供するサービス提供サーバ210に接続される。
また、ネットワーク200には、携帯電話網230、ホームネットワーク260、およびコネクタ提供サーバ280がさらに接続される。そして、本実施の形態におけるサービス利用端末であるサービス利用テレビ100bは、いわゆるホームネットワーク260、およびネットワーク200を介してサービス提供サーバ210に接続される。
さらに、ネットワーク200に接続される携帯電話網230には携帯電話基地局240が接続される。そして、本実施の形態におけるサービス利用端末であるサービス利用携帯電話100cは、携帯電話基地局240、携帯電話網230、およびネットワーク200を介してサービス提供サーバ210に接続される。
なお、本実施の形態において、サービス利用端末は、ネットワーク200を介してサービス提供サーバ210にアクセスしてサービス提供サーバ210が提供する機能を利用するサービス利用PC100a、サービス利用テレビ100b、およびサービス利用携帯電話100cであるものとし、これらの装置を総称してサービス利用端末100とするが、本発明のサービス利用端末はこれらの装置に限定されず、ネットワークを介してサービス提供サーバ210の提供する機能を利用することのできるその他の端末であってもよい。
たとえば、PDA(Personal Digital Assistants:携帯情報端末)や、ビデオレコーダ、DVD(Digital Video Disc)レコーダ、ハードディスクビデオレコーダなどのPVR(Personal Video Recorder)、デジタル放送チューナ、ホームサーバなどの情報家電機器や、冷蔵庫、洗濯機、電子レンジなどのいわゆる白物家電機器などであっても、ネットワークサービスを利用可能な端末であれば、すべて、本発明のサービス利用端末とみなすことが可能である。
サービス提供サーバ210は、サービス利用端末100から利用できる機能を提供するサーバである。サービス提供サーバ210がサービス利用端末100に対して提供するサービスは、アプリケーションを含む機能であって、具体的には、プログラム等のアプリケーションや、サービス利用端末100においてアプリケーションを実行するために必要となる機能(文字表示機能、文字装飾機能、画像取得機能、アニメーション作成機能等)が該当する。
また、コネクタ提供サーバ280は、サービス利用端末100からサービス提供サーバ210の提供する機能を利用するために必要となるコネクタをサービス利用端末100へ提供するサーバである。コネクタ提供サーバ280がサービス利用端末100に対して提供するコネクタとは、サービス利用端末100においてアプリケーションを実行する際に必要となる機能を特定するための情報である。なお、コネクタについては、後に具体例を挙げて説明する。
次に、図2に、本実施の形態におけるサービス利用端末100のハードウェア構成の具体例を示す。図2を参照して、本実施の形態におけるサービス利用端末100は、CPU(Central Processing Unit)等から構成されて、このサービス利用端末100全体を制
御する制御部12と、他の装置と通信するための通信部11と、ROM(Read Only Memory)やRAM(Random Access Memory)などから構成されて、制御部12において実行されるプログラムや、そのプログラムの中間データおよび他のコンピュータから受信したデータ等を記憶する記憶部13と、入出力部14とを含んで構成される。
さらに上述の入出力部14は、「1」、「2」などの数字ボタンおよび「R」、「L」などの方向ボタンなどを含む操作部141と、ユーザに情報を表示するLCD(Liquid Crystal Display)などの表示部142と、音声を入力するマイクロフォンなどの音声入力部143と、音声を出力するスピーカなどの音声出力部144とを含んで構成される。
また、上述の記憶部13は、一般のユーザの操作により記憶内容を変更可能な領域である一般ユーザ変更可能領域131と、一般のユーザの操作によってその記憶内容を変更することができない領域である一般ユーザ変更不可領域132とを含んで構成される。一般ユーザ変更不可領域132には、当該サービス利用端末100が携帯電話である場合には電話番号などの、当該サービス利用端末100固有の識別子や、後述するアプリケーションやコネクタを取得するためのサーバのアドレスといった、一般のユーザにより変更されてはならないデータが主に記憶される。ただし、一般ユーザ変更不可領域132に記憶されたデータを変更することを認められたサービスの提供者や端末のメンテナンス実行者およびプログラム等により、一般ユーザ変更不可領域132に対するデータの追加・削除、およびデータの変更が行なわれるための手段が存在してもよい。
なお、図2に示されるハードウェア構成は、一般的な携帯電話のハードウェア構成であって、本発明にかかるサービス利用端末100のハードウェア構成は、図2に示されるハードウェア構成に限定されるものではない。
次に、図3に、本実施の形態におけるサービス利用端末100の機能構成の具体例を示す。図3を参照して、本実施の形態におけるサービス利用端末100は、アプリケーション管理部110、コネクタ管理部120、外部機能管理部130、内部機能管理部140、通信制御部150、および記憶領域160を含んで構成される。これらの機能は、制御部12が、記憶部13に記憶されるプログラムを読出し、そのプログラムを実行して図2に示されるハードウェア構成の各部を制御することによって発揮される。
記憶領域160は、上述の記憶部13の一般ユーザ変更不可領域132を含んで構成される領域であって、上述の如く、サービス提供サーバ210へのアクセス情報(アドレス)や、コネクタ提供サーバ280へのアクセス情報(アドレス)や、当該サービス利用端末100の識別情報などが記憶されている。
アプリケーション管理部110は、サービス利用端末100においてアプリケーションを実行する際に、アプリケーションデータを解析して必要とするコネクタを決定する。そして、コネクタ管理部120に対して、コネクタを要求する。なお、アプリケーション管理部110については、後にさらに詳細に説明する。
コネクタ管理部120は、アプリケーション管理部110から要求されたコネクタを取得する。その際、要求されたコネクタが当該サービス利用端末100に含まれない場合には、記憶領域160に記憶されているコネクタ提供サーバ280へのアクセス情報を読出し、そのアクセス情報にしたがってコネクタ提供サーバ280へアクセスして要求されたコネクタを取得する。なお、コネクタ提供サーバ280へのアクセス情報はアプリケーション内の記述に含まれてもよい。通信制御部150は、その際の、サービス利用端末100とコネクタ提供サーバ280との通信を制御する。
そして、コネクタ管理部120は、取得したコネクタデータを解析して、当該アプリケーションを実行する際に必要とする機能とその存在場所とを決定する。必要とする機能がサービス提供サーバ210に存在する機能である場合、すなわち、サービス提供サーバ210が提供する機能である場合には、コネクタ管理部120は、外部機能管理部130に対してその機能を要求する。また、必要とする機能が当該サービス利用端末100に含まれる機能である場合には、コネクタ管理部120は、内部機能管理部140に対してその機能を要求する。なお、コネクタ管理部120については、後にさらに詳細に説明する。
外部機能管理部130は、記憶領域160に記憶されているサービス提供サーバ210へのアクセス情報を読出し、そのアクセス情報にしたがってサービス提供サーバ210へアクセスする。そして、コネクタ管理部120から要求された機能を利用する。通信制御部150は、その際の、サービス利用端末100とサービス提供サーバ210との通信を制御する。
内部機能管理部140は、当該サービス利用端末100に含まれる機能であって、コネクタ管理部120から要求された機能を利用する。
次に、図4に、アプリケーション管理部110の構成の具体例を示す。図4を参照して、アプリケーション管理部110は、アプリケーションデータ保存領域300とアプリケーションデータ管理部320とを含んで構成される。
アプリケーションデータ保存領域300は、アプリケーションデータ310を保存する。ここでアプリケーションデータ310は、コンピュータにより実行可能なプログラムであってもよいし、スクリプト解釈装置により解釈され実行されるスクリプトファイルであってもよい。
アプリケーションデータ管理部320は、アプリケーションデータ310の追加、削除、およびネットワークからのダウンロードなどのアプリケーションデータ保存領域300と、アプリケーションの実行、および停止などのアプリケーションデータ310の動作とを管理する。
さらに、図5に、アプリケーションデータ310の具体例を示す。図5を参照して、アプリケーションデータ310は、アプリケーション名401、当該アプリケーションに固有の情報であるアプリケーション識別子402、当該アプリケーションを実行可能な期限を示す有効期限403、当該アプリケーションを実行可能な回数を示す最大利用回数404、およびアプリケーション405を含んで構成される。アプリケーション405は、実行可能なプログラムであってもよいし、スクリプト解釈装置により解釈され実行されるスクリプトファイルであってもよい。
図6は、図5に示されたアプリケーションデータ310のうち、アプリケーション名401、アプリケーション識別子402、有効期限403、および最大利用回数404の具体例を示す図である。図6に示される具体例においては、アプリケーション名401は「Multimedia Message」と設定されている。また、アプリケーション識別子402は「提供元が“AAA Corp.”、一意に割当てられた番号が“HG3490S2345”」と設定されている。また、有効期限403は「2004年4月1日まで有効」と設定されている。また、最大利用回数404は「100回有効」と設定されている。
さらに、アプリケーション405がスクリプトにより記述されている場合のアプリケーション405の具体例を図7に示す。図7に示される具体例は、アプリケーション405が拡張されたSMIL(Synchronized Multimedia Integration Language)により記述されている場合の具体例であるが、アプリケーション405は他の書式によって記述されていても構わない。
図7を参照して、記述601はアプリケーションの画面表示を設定する記述であって、具体的には、「幅150、高さ100で、左から25、上から10の位置に表示する」Image領域についての表示設定と、同様にText領域についての表示設定と、「幅40、高さ30で左から10、上から160の位置に表示する」TextArtボタンについての表示設定と、同様にCameraボタンについての表示設定と、同様にFileボタンについての表示設定と、同様にSendボタンについての表示設定とを行なっている。
また、記述602はアクションの動作を設定する記述であって、具体的には、「検索範囲を“Terminal(サービス利用端末100内部)”として検索されたTextArtという名前のコネクタを利用し、該当する機能にはText領域の値を渡し、その機能から受取った結果をText領域に表示する」TextArtというアクションの動作と、「検索範囲を“Terminal”として検索されたCameraという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果はImage領域に表示する」Cameraというアクションの動作と、「検索範囲を“Terminal”として検索されたFileという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果はImage領域に表示する」Fileというアクションの動作と、「検索範囲を“Terminal”として検索されたSendという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果は画面表示を更新しない」Sendというアクションの動作とを設定している。なお、図7には図示されていないが、コネクタの検索範囲をコネクタ提供サーバ280とするときや、コネクタの検索範囲をサービス利用端末100内部およびコネクタ提供サーバ280(“Server”)とするときには、記述602にその旨を示す記述が含まれる。
また、記述603はボタンが押された時の動作を設定する記述であって、具体的には、「TextArtというアクションが実行される」というTextArtボタンが押された場合の動作と、「Cameraというアクションが実行される」というCameraボタンが押された場合の動作と、「Fileというアクションが実行される」というFileボタンが押された場合の動作と、「Sendというアクションが実行される」というSendボタンが押された場合の動作とを設定している。
なお、図7に示されるアプリケーション405がサービス利用端末100において実行された際の画面表示については、後に具体例を挙げて説明する。
次に、図8に、図3に示されるサービス利用端末100のコネクタ管理部120の構成の具体例を示す。図8を参照して、コネクタ管理部120は、コネクタデータ保存領域700とコネクタデータ管理部720とを含んで構成される。
コネクタデータ保存領域700は、コネクタデータ710を保存する。
コネクタデータ管理部720は、コネクタデータ710の追加、削除、およびネットワークからのダウンロードなどのコネクタデータ保存領域700の管理を行なう。また、コネクタデータ710の記述内容にしたがって、外部機能管理部130および内部機能管理部140の機能を利用する。
さらに、図9に、コネクタデータ710の具体例を示す。図9を参照して、コネクタデータ710は、当該コネクタ自身の情報であるコネクタ名801、当該コネクタに固有の情報であるコネクタ識別子802、当該コネクタを利用可能な期限を示す有効期限803、および当該コネクタを利用可能な回数を示す最大利用回数804と、当該コネクタが決定する機能に対するデータの受け渡しを定義する入出力定義805とを含んで構成される。
図10は、図9に示されたコネクタデータ710のうち、コネクタ名801、コネクタ識別子802、有効期限803、および最大利用回数804の具体例を示す図である。図10に示される具体例においては、コネクタ名801は「TextArt」と設定されている。また、コネクタ識別子802は「提供元が“AAA Corp.”、このコネクタを使えるアプリケーションの提供元が“AAA Corp.”、一意に割当てられた番号が“LS4369P3550”」と設定されている。また、有効期限803は「2004年4月1日まで有効」と設定されている。また、最大利用回数804は「100回有効」と設定されている。
図10に示されるコネクタデータ710は、そのコネクタ識別子802において当該コネクタを利用可能なアプリケーションの提供元を設定することで、当該コネクタを利用可能なアプリケーションを制限していることを特徴としている。
同様に、図11に、コネクタデータ710のうち、コネクタ名801、コネクタ識別子802、有効期限803、および最大利用回数804の他の具体例を示す。図11を参照して、コネクタ名801は「Camera」と設定されている。また、コネクタ識別子802は「提供元が“AAA Corp.”、このコネクタを使えるアプリケーションの提供元は指定なし(どのアプリケーションからも利用可能)、一意に割当てられた番号が“RE6589P8112”」と設定されている。また、有効期限803は「指定なし(常に利用可能)」と設定されている。また、最大利用回数804は「指定なし(何度でも利用可能)」と設定されている。
さらに、コネクタデータ710に含まれる入出力定義805の具体例を図12に示す。図12に具体例が示される入出力定義805aは、サービス利用端末100においてアプリケーションを実行する際に、当該端末100以外の他の装置に含まれる機能、すなわち、サービス提供サーバ210の提供する機能を利用するための、当該機能に対するデータの受け渡しを定義するものである。すなわち、図12を参照して、記述2501は当該機能で利用するデータの型を定義しており、具体的には、“TextArtリクエスト”という名前で型が文字列であるデータと、“TextArtレスポンス”という名前で型がJpeg画像であるデータとを定義している。
また、記述2502は当該機能について、機能の名前と当該機能が受取る入力データおよび当該機能が返す出力データの型とを定義しており、具体的には、機能の名前を“TextArt”、入力値として“TextArtリクエスト”という名前の型のデータを受取り、出力値として“TextArtレスポンス”という名前の型のデータを返すと定義している。
また、記述2503は、当該機能が提供されている際の名前、当該機能の存在場所へのアクセス情報、およびそこで利用可能な機能を定義しており、具体的には、サービスの名前を“TextArtサービス”、当該機能の存在場所であるサービス提供サーバ210のアドレスをhttp://exapmle.url/TextArt、および利用できる機能を“TextArt”と定義している。
入出力定義805aが上述の記述2501〜2503を含むことで、サービス利用端末100のコネクタデータ管理部720は、http://exapmle.url/TextArtというアドレスでサービス提供サーバ210にアクセスし、サービス提供サーバ210に含まれるTextArtという機能に対して、TextArtリクエスト型のデータを渡すことにより、サービス提供サーバ210からTextArtレスポンス型のデータを得られることを認識できる。
なお、入出力定義805aは上述の記述を含むものに限定されず、一般的によく用いられるWebサービスの入出力定義のための書式WSDL(Web Service Description Language)を用いた記述を含むものであってもよい。また、アクセス情報は、URLで示される形態に限定されず、サービス提供サーバ210へのアクセスに関する情報であるURI(Uniform Resource Identifier)であれば、他の形態であってもよい。
さらに図13に、入出力定義805の他の具体例を示す。図13に具体例が示される入出力定義805bは、サービス利用端末100においてアプリケーションを実行する際に、当該端末に含まれる機能を利用するための、当該機能に対するデータの受け渡しを定義するものである。すなわち、図13を参照して、記述2601は当該機能で利用するデータの型を定義しており、具体的には“Cameraレスポンス”という名前で型がJpeg画像であるデータを定義している。
また、記述2602は当該機能について、機能の名前と機能が受取る入力データおよび機能が返す出力データの型とを定義しており、具体的には、機能の名前を“Camera”、入力値を“Null”と設定しており、これは入力値を受取らないことを意味し、出力値として“Cameraレスポンス”という名前の型のデータを返すと定義している。
図13に示される入出力定義805bは、図12に示された記述2503を含まない。すなわち、図13に示される入出力定義805bが、上述の記述2601,2602を含むことで、サービス利用端末100のコネクタデータ管理部720は、当該サービス利用端末100に含まれるCameraという機能から、Cameraレスポンス型のデータを得られることを認識できる。言うまでもなく、当該サービス利用端末100に含まれる機能を利用するための入出力定義805bも、図12に示される入出力定義805aと同様に、機能が提供されている際の名前、機能の存在場所へのアクセス情報、およびそこで利用可能な機能を定義する記述2503を含んでもよい。その場合、記述2503に含まれる機能の存在場所へのアクセス情報として、サービス利用端末100自身へのアクセスを示す“Local”などの記載があることが好ましい。
なお、サービス利用端末100に含まれる機能に対するデータの受け渡しを定義する入出力定義805bもまた上述の記述を含むものに限定されず、一般的によく用いられるWebサービスの入出力定義のための書式WSDLを用いた記述を含むものであってもよい。
さらに、コネクタデータ710は図9に示されるデータ構成に限定されず、たとえば、図43に示されるように、入出力定義805には複数の入出力定義1,2が含まれていてもよい。これは、コネクタが、同様の働きを行なう機能に対して異なる個数の引数をサポートしている場合に該当する。たとえば、画像の合成処理を実行する機能を特定するコネクタで、2つの画像入力も、3つの画像入力も、または、3つ以上の画像入力もサポートしている場合がある。図43に示されるように入出力定義805が複数定義されている場合、1つのコネクタでこのような複数の入力パターンに対応することができる。
さらに図43に示されるように、コネクタデータ710は図9に示されるデータ構成に加えて、最大待ち時間806や、転送許可数807や、処理負荷係数808や、利用金額809などを含んでもよい。
コネクタデータ710が図43に示されるように最大待ち時間806を含むことで、サービス利用端末100がコネクタデータ710に特定されるサービス利用端末100の機能を利用する場合、またはネットワーク上のサービス提供サーバ210にアクセスして機能をダウンロードする場合、サービス利用端末100は、コネクタデータ710に含まれる最大待ち時間806を参考にして前記機能を利用する際の例外的な処理を行なうことができる。なお、コネクタデータ710に含まれる最大待ち時間806はあくまで参考の値であり、実装はサービス利用端末100、またはアプリケーション405に依存する。
また、コネクタの中には、サービス利用端末間で一定の回数だけ転送を許可されたものも存在する。転送許可数807は、許可された転送回数を規定している。コネクタデータ710が図43に示されるように転送許可数807を含むことで、サービス利用端末100は所持しているコネクタデータ710が、転送可能なのか、不可能なのかを判断することができる。
また、サービス利用端末100がコネクタデータ710に特定されるサービス利用端末100の機能を利用する場合、またはネットワーク上のサービス提供データ210にアクセスして機能をダウンロードする場合、サービス利用端末100が各々同様の機能を特定する複数のコネクタデータを所持しているとき、そのアプリケーションを実行する際にいずれの機能を利用してもよい場合がある。このようなとき、コネクタデータ710が図43に示されるように処理負荷係数808を含むことで、サービスの処理時間や自端末に必要となる負荷の指標となるこの処理負荷係数808を参考にして最適なコネクタを選択することができる。
また、サービスの利用に応じて課金が発生する種類のコネクタも存在する。コネクタデータ710が図43に示されるように利用金額809を含むことで、サービス利用端末100において課金情報を把握することができる。サービス利用端末100の利用者は、搭載されているコネクタの課金情報を閲覧することができ、不要となった有料コネクタを破棄する判断に利用することができる。
次に、図14に、図3に示されるサービス利用端末100の外部機能管理部130の構成の具体例を示す。図14を参照して、外部機能管理部130は、外部機能呼出部1101と外部機能結果解析部1102とを含んで構成される。
外部機能呼出部1101は、サービス利用端末100の外部の他の装置、すなわちサービス提供サーバ210に存在する機能(以下、外部機能という)をRPCにより呼出す。RPCによる外部機能の呼出しには、SOAPなどの一般的なプロトコルを用いることができる。
外部機能結果解析部1102は、外部機能より得られた結果を解析する。外部機能より返却される結果は、前述のSOAP等、一般的なプロトコルにしたがった形式で受取ることができる。
次に、図15に、図3に示されるサービス利用端末100の内部機能管理部140の構成の具体例を示す。図15を参照して、内部機能管理部140は、内部機能呼出部1201と内部機能結果解析部1202とを含んで構成される。
内部機能呼出部1201は、当該サービス利用端末100内に保持される機能(プログラム、データへのアクセス)を呼出す。また、内部機能結果解析部1202は、当該サービス利用端末100内に保持される機能を実行した結果を受取り、その結果を解析する。
次に、図40に、本実施の形態におけるコネクタ提供サーバ280のハードウェア構成の具体例を示す。図40を参照して、本実施の形態におけるコネクタ提供サーバ280は、CPU等のデバイスから構成され、このコネクタ提供サーバ280全体を制御する制御部22と、他の装置と通信するための通信部21と、ROMやRAMなどのメモリデバイスや、HDD等のディスクドライブなどから構成され、プログラムや、プログラムの実行に必要となる各種データの保存を行なう記憶部23と、外部から当該端末に対してデータを入力するためのA〜Zや各種数字、記号のキーを備えたキーボードから構成される操作部24と、各種出力結果や操作内容の表示を行なうために、ディスプレイ装置を活用した表示部25とを含んで構成される。
さらに上述の記憶部23は、主にプログラム等の固定データを保存するためのプログラム記憶領域231と、プログラムの中間データや他のコンピュータとのやり取りに必要となるデータの保存を行なうデータ記憶領域232とを含んで構成される。
なお、図40に示されるハードウェア構成は、一般的なパソコンやワークステーション等のハードウェア構成であって、本発明にかかるコネクタ提供サーバ280のハードウェア構成は、図40に示されるハードウェア構成に限定されるものではない。たとえば、本実施の形態におけるコネクタ提供サーバ280の運用時には、操作部24と表示部25とが装備されていなくてもよい。
次に、図41に、本実施の形態におけるコネクタ提供サーバ280の機能構成の具体例を示す。図41を参照して、本実施の形態におけるコネクタ提供サーバ280は、端末管理部510、コネクタ管理部520、通信制御部530、および記憶領域540を含んで構成される。これらの機能は、制御部22が、記憶部23のプログラム領域231に記憶されるプログラムを読出し、読出したプログラムに従って図40に記載の通信部21、記憶部23、および記憶部23のデータ領域232を制御することによって発揮される。
記憶領域540は各種データを記憶部している場所であり、図40に記載の記憶部23にて構成される。
端末管理部510は、サービス利用端末100からコネクタ提供サーバ280に対してコネクタ提供の要求があった際に、要求があったサービス利用端末100の端末情報の管理を行なう。具体的には、現在、接続中のサービス利用端末100を一意に識別するための識別情報等を、記憶部23のデータ領域231から構成される記憶領域540に格納しておき、前記識別情報に基づいて、通信制御部530に依頼を行ない、任意のサービス利用端末とのやり取りを実現する。
コネクタ管理部520は、コネクタ提供サーバ280が提供可能なコネクタの管理を行なう。サービス利用端末100からの要求に応じて要求されているコネクタの判別、確認、および抽出を行なった後、通信部21と制御部22とを含んで構成される通信制御部530に送信すべきコネクタを送る。
図42を用いて、コネクタ提供サーバ280のコネクタ管理部520についてさらに具体例を示す。図42を参照して、コネクタ管理部520は、コネクタデータ保存領域900とコネクタデータ管理部920とを含んで構成される。
コネクタデータ保存領域900は、サービス利用端末100に提供するべきコネクタの実体であるコネクタデータ910を保存する。
コネクタデータ管理部920は、コネクタデータ910の追加、削除、検索、および読込を行なう。コネクタデータ管理部920は、本実施の形態におけるコネクタ提供サーバ280がサービス利用端末100よりコネクタの要求を受けると、コネクタデータ保存領域900を検索して該当するコネクタを抽出する。該当コネクタデータ910を発見した場合は、前記コネクタデータ910に対して必要事項を読込み、さらに必要に応じてコネクタデータ910のデータを編集して、通信制御部530に前記サービス利用端末100に対して前記コネクタデータ910の送信を依頼する。
コネクタ提供サーバ280は、ネットワーク200を介して接続されたサービス提供サーバ210よりコネクタを取得してコネクタデータ保存領域900に保存する。その際の、コネクタ提供サーバ280におけるコネクタの受信処理について、図44のフローチャートを用いて説明する。
図44を参照して、コネクタ提供サーバ280はステップS510において、サービス提供サーバ210より送信されるコネクタデータ910を受信する。
ステップS510の受信が完了すると、続いて、ステップS511において、受信が正常に完了したかを判断する。受信が正常終了した場合(S511でYES)、ステップS512に進む。すなわち、受信が正常終了した場合には、受信したコネクタデータ910をコネクタデータ保存領域900に保存し、ステップS513に進む。
ステップS513において、コネクタ提供サーバ280は、コネクタデータ910の提供元であるサービス提供サーバ210の各種情報をサービス提供サーバ情報テーブルとしてコネクタデータ管理部920に保存する。ステップS513でコネクタデータ管理部920に保存されるサービス提供サーバ情報テーブルの具体例を図45に示す。図45を参照して、サービス提供サーバ情報テーブルにおいては、会社名“AAA Corp.”より、ID“LS4369P3550”で名前“TextArt”のコネクタデータが取得されたことが示されている。また、入手日は2003年4月1日であり、当該コネクタ提供サーバ280は、残り100回、当該コネクタデータを配布してもいいことが示されている。
ステップS513においてサービス提供サーバ210の情報の追加が完了すると、サービス提供サーバ210とコネクタ提供サーバ280との通信を終了し、同時に、コネクタ受信処理を終了する。
一方、ステップS511においてコネクタデータの受信が異常終了した場合(S511でNO)、ステップS514において、受信データの消去やサービス提供サーバ210への受信失敗通知等のエラー処理を行ない、コネクタ受信処理を終了する。
このようなコネクタデータ受信処理を実行して、コネクタ提供サーバ280は、サービス提供サーバ210から提供されるサービスにアクセス可能なコネクタデータをコネクタデータ管理部920に新たに保持することになる。
なお、本実施の形態においては、サービス提供サーバ210からコネクタ提供サーバ280に直接通信を行なうことによってコネクタの転送を行なっているが、これは1つの具体例であり、他の方法として、通信を介さずにCD−ROM(Compact Disc-ROM)やメモリカード等の外部メモリメディアを利用して転送を行なってもよい。また、コネクタの提供元はサービス提供サーバ210に限定されず、提供するコネクタの作成を行なった図1には示されていない他の装置であってもよい。
なお、コネクタデータ910の構成は、図9〜図13、および図43に具体例が示されるコネクタデータ710の構成と同様であるため、ここでの説明を繰返さない。
次に、本実施の形態におけるサービス利用端末100において当該サービス利用端末100に含まれるアプリケーションを実行する際に、コネクタを介して当該サービス利用端末100外の機能および当該サービス利用端末100内の機能を利用する場合の処理について説明する。ここでは、説明のために図1に示されたサービス提供システムの構成を簡略化し、図16に示される構成であるものとする。すなわち、図16を参照して、本具体例において、サービス利用端末1301は、画面を表示するディスプレイ1302と、サービス利用端末1301内の機能として、Camera機能1303と、File機能1304と、Send機能1305とを備える。また、サービス利用端末1301は、ネットワーク200を介してコネクタ提供サーバ1307と接続し、コネクタ提供サーバ1307が提供するコネクタを取得する。また、サービス利用端末1301は、ネットワーク200を介してサービス提供サーバ1306と接続し、サービス提供サーバ1306の提供するサービス利用端末1301外の機能であるTextArt機能を利用する。
図17に、サービス利用端末1301においてアプリケーションを実行する際の処理の流れをフローチャートで示す。図17のフローチャートに示される処理は、サービス利用端末1301においてアプリケーションを実行する際に、制御部12が記憶部13に記憶されるプログラムを読出して実行することで、図3に示される各部が制御されて実現される。なお、以降の説明においては、図6に示されるアプリケーションデータ310および図7に示されるアプリケーション405が実行されるものとして具体的に説明する。
図17を参照して、始めに、ステップS101でアプリケーションが起動される。次にステップS102で、ディスプレイ1302に図18に具体例が示される入力画面が表示される。すなわち、ステップS102で制御部12は、図7に示されるアプリケーション405の記述601に設定される画面表示を実行する。
図18を参照して、ステップS102でディスプレイ1302に表示される入力画面は、画像が表示されるImage領域l701と、文字が表示されるText領域1702と、TextArt機能を利用するためのTextArtボタン1703と、Camera機能1303を利用するためのCameraボタン1704と、File機能1304を利用するためのFileボタン1705と、Send機能1305を利用するためのSendボタン1706とを含んで構成され、それぞれの表示位置は、アプリケーション405の記述601に設定された位置である。
ステップS102では、図18に示されるような入力画面においてユーザからの入力を受付け、その入力を判定する。そして、ステップS102での判定の結果、ユーザによる入力が当該サービス利用端末1301内外の機能を利用するものであれば(ステップS102で「機能利用」)ステップS1041に処理を進め、それ以外であれば(ステップS102で「機能利用以外」)ステップS103に処理を進める。
ステップS102における判定方法としては、次のような方法が採用できる。すなわち、図7に示されたアプリケーション405において、ユーザの入力が記述603で設定されるevent要素のいずれかに対応し、そのevent要素が記述602で設定されるaction要素において各機能に対応付けられているかを解析することにより判定する。より具体的には、ステップS102では、図7に示されたアプリケーション405の場合、図18に表示されたボタン1703〜1706のいずれかがユーザにより押下された場合、サービス利用端末1301内外の機能を利用する場合と判定する。
次に、ステップS102での判定の結果、ユーザによる入力が当該サービス利用端末1301内外の機能を利用するもの以外である場合(S102で「機能利用以外」)、ステップS103では、端末内外の機能を利用しない場合のユーザの入力を処理してステップS102に処理を戻す。なお、ここでの処理は端末固有の処理など本発明において限定されない一般的な処理であって本発明の本質には関わらない処理であるため、ここでの説明は行なわない。
一方、ステップS102での判定の結果、ユーザによる入力が当該サービス利用端末1301内外の機能を利用するものである場合(S102で「機能利用」)、さらにステップS1041で、ユーザの利用したい機能に対応するコネクタを検索する範囲を判定し、その中から所定のコネクタを検索する。ステップS1041の処理は、実行しているアプリケーション405に含まれる機能の動作を設定する記述に基づいて行なわれる。具体的には、実行しているアプリケーション405が図7に示されるものである場合、記述602のScope属性値を参照して、必要となるコネクタを規定される検索範囲から検索する。ここでは、「scope=“Terminal”」と記述されているため、サービス利用端末1301内部よりfunc=“ ”で指定される条件に合致するコネクタを検索する。なお、ステップS1041での検索の結果、指定される条件に合致するコネクタが複数ある場合には(S1042でYES)、図示しない選択画面をディスプレイ1302に表示するなどして、ユーザから利用するコネクタの選択を受付けることが好ましい(S1043)。
ステップS1041での検索の結果、指定される条件に合致するコネクタがサービス利用端末1301内にある場合には(S1044でYES)、処理をステップS1052に進め、サービス利用端末1301内部のコネクタデータ保存領域700から該当するコネクタデータを取得する。そして、処理をステップS108に進める。
一方、ステップS1041での検索の結果、指定される条件に合致するコネクタがサービス利用端末1301内にない場合には(S1044でNO)、処理をステップS1051に進める。ステップS1051では、コネクタ提供サーバ1307に接続して必要なコネクタを検索し、サービス利用端末1301にダウンロードしてステップS106に処理を進める。
ステップS106では、コネクタ提供サーバ1307からコネクタを正しくダウンロードできたか否かを判定する。正しくダウンロードできた場合には(S106でYES)処理をステップS108に進め、ダウンロードに失敗した場合は(S106でNO)処理をステップS107へ進め、エラーメッセージを生成して処理をステップS111にさらに進める。
ステップS108においては、ステップS1052でサービス利用端末1301内から取得したコネクタ、またはステップS1051でコネクタ提供サーバ1307からダウンロードしたコネクタを解析し、利用する機能がサービス利用端末1301内の機能であるか、サービス利用端末1301外の機能であるかを判定する。ステップS108での判定方法としては、コネクタデータ710の入出力定義805に基づいて判定する方法が挙げられる。より具体的には、コネクタデータ710の入出力定義805が図12に示される入出力定義805aである場合には、ステップS108において記述2503で設定されているその機能へのアクセス情報としてのアドレスURLより、その機能がサービス利用端末1301外の機能であると判定する(S108で「端末外の機能」)。一方、コネクタデータ710の入出力定義805が図12に示される入出力定義805bである場合には入出力定義805bにその機能へのアクセス情報としてアドレスURLを設定する記述2503が含まれないため、ステップS108においては、その機能がサービス利用端末1301内の機能であると判定する(S108で「端末内の機能」)。なお、上述のように、入出力定義805bにその機能へのアクセス情報として“Local”などを設定する記述2503が含まれている場合には、ステップS108においては、その記述2503に基づいてその機能がサービス利用端末1301内の機能であると判定する。
そして、ステップS108での判定の結果、ユーザの利用したい機能がサービス利用端末1301外の機能である場合、すなわちサービス提供サーバ1306の提供する機能である場合は(S108で「端末外の機能」)、処理をステップS109に進め端末外機能利用処理を実行する。また、サービス利用端末1301内の機能である場合は(S108で「端末内の機能」)、処理をステップS110に進め端末内機能利用処理を実行する。なお、ステップS109における端末外機能利用処理、およびステップS110における端末内機能利用処理については、後にサブルーチンを挙げて詳細に説明する。
そして、ステップS109またはステップS110の処理を終了すると、処理をステップS111に進める。すなわち、ステップS111では、ステップS109またはステップS110の処理の結果に応じてディスプレイ1302の画面表示を更新する。あるいは、ステップS107で生成されたエラーメッセージをディスプレイ1302へ表示する。そしてその後、処理をステップS102に戻して上述の処理を繰返す。
さらに、図19に、上述のステップS109における端末外機能利用処理をフローチャートで示す。すなわち、図19を参照して、サービス利用端末1301においてサービス利用端末1301外の機能を利用する場合、すなわち、サービス提供サーバ1306の提供する機能を利用する場合、まずステップS201において、実行中のアプリケーションから、利用しようとしているサービス利用端末1301外の機能が利用可能であるかどうかを判定する。ステップS201での判定は、コネクタに設定された識別子と、アプリケーションに設定された識別子とを比較することにより行なわれる。具体的には、図10に具体例が示されたコネクタデータ710には、コネクタ識別子802において、vendorLimitという要素にAAA Corp.という値が設定されており、また図6に具体例が示されたアプリケーションデータ310には、アプリケーション識別子402において、vendorという要素にAAA Corp.という値が設定されている。ステップS201においては、これらが一致するため、図6に示されたアプリケーションから図10に示されたコネクタに設定された端末外の機能が利用可能であると判定される。
このように、ステップS201において、実行しているアプリケーションから外部機能が利用可能と判定された場合は(S201でYES)処理をステップS202に進め、利用できないと判定された場合は(S201でNO)処理をステップS206に進める。
ステップS202では、コネクタの有効期限と最大利用回数とをチェックして、そのコネクタがまだ利用可能であるかどうかを判定する。サービス利用端末1301において対象となるコネクタがそれまで何度利用されたかは記憶領域160に記憶されているものとし、現在の日時はサービス利用端末1301より取得できるとする。ステップS202において、コネクタの有効期限および最大利用回数は、図9に示すコネクタデータ710の有効期限803および最大利用回数804に設定されている値を参照することにより取得できる。
ステップS202における判定の結果、コネクタの有効期限が切れておらず、かつこれまでの利用回数が最大利用回数に達していない場合は(S202でYES)、処理をステップS204に進め、有効期限が切れている、またはこれまでの利用回数が最大利用回数に達している場合は(S202でNO)、処理をステップS203に進める。
ステップS203では、そのコネクタの利用ができない旨をディスプレイ1302に表示し、その後処理をメインルーチンのステップS1051に戻して、新たにコネクタをダウンロードする。
一方、ステップS204では、サービス提供サーバ1306に接続して結果を得る。すなわち、ステップS204においては、外部機能管理部130の外部機能呼出部1101が、サービス提供サーバ1306に入出力定義805で定義されている必要なデータを引渡して接続する。そして、外部機能結果解析部1102がサービス提供サーバ1306から結果を受取り、実行しているアプリケーション405に引渡す。その後、ステップS204の処理が終了すると、処理をステップS205に進める。
ステップS205では、サービス提供サーバ1306より正しい結果が得られたかどうかを判定する。ここでの判定は、たとえば、サービス提供サーバ1306より得たデータが入出力定義805で定義されている型のデータであるか否かを判定する、などの方法が挙げられる。また、そして、入出力定義805で定義されているアクセス情報でサービス提供サーバ1306に接続できたか否かを判定する方法も挙げられる。サービス提供サーバ1306に接続できない場合や、得られた結果が正しくない場合などは(S205でNO)処理をステップS206に進め、その旨を示すエラーメッセージを生成して本サブルーチンを終了し、処理を図17のメインルーチンへ戻す。また、正しく結果が得られた場合(S205でYES)は、その後本サブルーチンを終了して、処理を図17のメインルーチンへ戻す。
以下、図20および図21に示される画面表示の具体例を用いて、外部機能を利用した際のサービス利用端末1301のディスプレイ1302に表示される画面遷移を説明する。
図20に示される表示画面が表示されている状態において、サービス利用端末1301のText領域1702に「こんにちは」と入力され、TextArtボタン1703が押下されると「こんにちは」という文字列がTextArt機能を提供するサービス提供サーバ1306に渡される。そして、サービス提供サーバ1306より、当該TextArt機能を用いて装飾を施された「こんにちは」の文字列を得る。
図21は、上記の処理により得られた、装飾された「こんにちは」の文字列がText領域1702に表示された状態を示す。これは、当該サービス利用端末1301において、図7に具体例が示されるアプリケーション405が実行されている場合、アプリケーション405の記述602に含まれる<setMedia func=“name:TextArt”・・・scope=“Terminal”/>の記述に基づいて図12に示される入出力定義805aを含むコネクタデータ710がコネクタデータ保存領域700から取得され、その入出力定義805aに、TextArt機能の存在場所としてサービス提供サーバ1306のアドレスを示す記述2503が含まれるためである。すなわち、サービス利用端末1301において実行されているアプリケーション405に含まれる機能に対応したコネクタデータ710の入出力定義805に、サービス提供サーバ1306のTextArt機能にはサービス利用端末1301のText領域に入力された文字列(ここでは「こんにちは」)を渡し、TextArt機能によって得られた結果をText領域1702に表示する旨が設定されているからである。
次に、図22を用いて、図17のステップS110における端末内機能利用処理の詳細を説明する。
図22を参照して、サービス利用端末1301において当該端末内の機能を利用する場合、まずステップS302において、実行中のアプリケーションから、利用しようとしているサービス利用端末1301内の機能が利用可能であるかどうかを判定する。ステップS302での判定は、コネクタに設定された識別子と、アプリケーションに設定された識別子とを比較することにより行なわれる。具体的には、図11に具体例が示されたコネクタデータ710には、コネクタ識別子802において、vendorLimitという要素にNoneという値が設定されているが、これはどのアプリケーションからもこのコネクタの機能を利用可能である、ということを意味する。したがって、この場合には、ステップS302においては、図6に示されたアプリケーションから図11に示されたコネクタに設定された端末内の機能が利用可能であると判定される。
このように、ステップS302において、実行しているアプリケーションからサービス利用端末1301内部の機能が利用可能と判定された場合は(S302でYES)処理をステップS303に進め、利用できないと判定された場合は(S302でNO)処理をステップS306に進める。
ステップS303では、コネクタの有効期限と最大利用回数とをチェックして、そのコネクタがまだ利用可能であるかどうかを判定する。当該サービス利用端末1301において対象となるコネクタがそれまで何度利用されたかは記憶領域160に記憶されているものとし、現在の日時はサービス利用端末1301より取得できるとする。ステップS303において、コネクタの有効期限および最大利用回数は、図9に示すコネクタ710の有効期限803および最大利用回数804に設定されている値を参照することにより取得できる。
ステップS303における判定の結果、コネクタの有効期限が切れておらず、かつこれまでの利用回数が最大利用回数に達していない場合は(S303でYES)、処理をステップS304に進め、有効期限が切れている、またはこれまでの利用回数が最大利用回数に達している場合は(S303でNO)、処理をステップS306に進める。具体的には、図11に具体例が示されるコネクタデータ710の場合、有効期限803にはexpireDateがNoneと設定されており、これは有効期限が未設定すなわち常に利用可能を意味する。また、有効利用回数804にはexpireNumberがNoneと設定されており、これは最大利用回数が未設定すなわち何度でも利用可能であることを意味する。
ステップS304では、サービス利用端末1301の備える内部機能を起動して結果を得る。すなわち、ステップS304においては、内部機能管理部140の内部機能呼出部1201が、サービス提供サーバ1306に入出力定義805で定義されているサービス利用端末1301内部の機能に必要なデータを引渡して起動させる。そして、内部機能結果解析部1202が内部機能からの結果を受取り、実行しているアプリケーション405に引渡す。その後、ステップS304の処理が終了すると、処理をステップS305に進める。
ステップS305では、起動したサービス利用端末1301内部の機能より正しい結果が得られたかどうかを判定する。ここでの判定は、たとえば、サービス利用端末1301内部の機能より得たデータが入出力定義805で定義されている型のデータであるか否かを判定する、などの方法が挙げられる。判定の結果、得られた結果が正しくない場合などは(S305でNO)処理をステップS306に進め、その旨を示すエラーメッセージを生成して本サブルーチンを終了し、処理を図17のメインルーチンへ戻す。また、正しく結果が得られた場合は(S305でYES)は、その後本サブルーチンを終了して、処理を図17のメインルーチンへ戻す。
以下、図21,図23〜図27に示される画面表示の具体例を用いて、内部機能を利用した際のサービス利用端末1301のディスプレイ1302に表示される画面遷移を説明する。
図21に示される表示画面が表示されている状態において、サービス利用端末1301のCameraボタン1704が押下されると、当該端末内のCamera機能1303が起動される。
図23は、Camera機能1303が起動した状態のサービス利用端末1301のディスプレイ1302に表示される撮影画面の具体例を示す図である。図23を参照して、撮影画面は、図示しないカメラレンズの捕らえている画像が表示される領域2001と、シャッタボタン2002とを含む。
図23に示される撮影画面が表示されている状態においてシャッタボタン2002が押下されると、ディスプレイ1302に表示される画面は図24に示される合成画面に遷移する。図24を参照して、合成画面のImage領域1701にはCamera機能1303により撮影された画像が表示されている。これは、サービス利用端末1301において、たとえば図7に示されるアプリケーション405が実行されている場合、アプリケーション405の記述602に含まれる<setMedia func=“name:Camera”・・・scope=“Terminal”/>の記述に基づいて図13に示される入出力定義805bを含むコネクタデータ710がコネクタデータ保存領域700から取得され、その入出力定義805bに、サービス提供サーバ1306内部のCamera機能1303により撮影された画像をImage領域1701に表示する旨が設定されているからである。
さらに図24に示される合成画面が表示されている状態においてFileボタン1705が押下されると、サービス利用端末1301内のFile機能1304が起動し、ディスプレイ1302に表示される画面は図25に示されるファイル選択画面に遷移する。図25を参照して、ファイル選択画面は、当該端末の記憶領域160に記憶されているファイルリストが表示されるFile領域2201と、OKボタン2202とを含む。
図25に示されるファイル選択画面が表示されている状態においてFile領域2201から所定のファイルが選択されOKボタン2002が押下されると、記憶領域160から選択されたファイルが読出され、ディスプレイ1302に表示される画面は図26に示されるファイル表示画面に遷移する。
図26を参照して、ファイル表示画面のImage領域1701にはFile機能1304により選択された画像が表示されている。これは、当該サービス利用端末1301において、たとえば図7に示されるアプリケーション405が実行されている場合、アプリケーション405の記述602に含まれる<setMedia func=“name:File”・・・scope=“Terminal”/>の記述に基づいて、その入出力定義805に、File機能の存在場所としてサービス提供サーバ1306のアドレスを示す記述2503が含まれていない、または当該サービス利用端末1301を示す記述2503が含まれているコネクタデータ710がコネクタデータ保存領域700から取得され、そのその入出力定義805に、サービス利用端末1301のFile機能1304により選択された画像をImage領域1701に表示する旨が設定されているからである。
さらに図26に示されるファイル表示画面が表示されている状態においてSendボタン1706が押下されると、サービス利用端末1301内のSend機能1305が起動される。Send機能1305が起動されることで、これまでの説明により作成されたコンテンツ(ImageおよびText)が予め指定されていた宛先に送信される。図27には、送信が完了したときにディスプレイ1302に表示される送信完了画面の具体例であって、送信が完了した旨を表わす画面の具体例である。図27に示されるように、Send機能1305が起動されて作成されたメッセージが送信されると、その旨を示す送信完了表示2203がディスプレイ1302に表示される。
このように、本発明にかかるサービス利用端末は図28に示されるようなサービス利用処理を実行してコネクタを介して機能を利用することによって、サービスの提供を享受することができる。すなわち、図28を参照して、携帯電話などのサービス利用端末において、ユーザ入力を受付けてアプリケーションを実行する際に、アプリケーションに必要な機能をコネクタを介して利用する。この際、必要に応じて、コネクタをコネクタ提供サーバに要求して取得する。このようにすることで、サービス利用端末の内部の機能と当該端末の外部のサービス提供サーバが提供する機能とを同一の方法でアプリケーションにおいて利用することが可能になる。すなわち、アプリケーションを利用するユーザは、そのアプリケーションに必要な機能がそのサービス利用端末が備えられているか否かを意識することなく利用することができ、ユーザの利便性を高めることができる。
さらに、特定の機能がアプリケーションから利用可能であるか否かを、コネクタの識別子と実行しているアプリケーションの識別子とを比較(マッチング)して判断することによって、サービス利用端末内外の機能を利用できるアプリケーションを制限することが可能になる。また、サービス提供サーバの提供する機能をコネクタを介して利用することにより、コネクタの提供されていないサービス提供サーバの提供する機能の利用を制限することが可能になる。すなわち、アプリケーション作成者の意図しない機能が用いられることを防止することができる。具体的には、アプリケーション実行時に、その機能を利用するためにアプリケーション作成者が意図していないコネクタが用いられるという事態を防止することができる。その結果、アプリケーション作成者が意図していない機能がアプリケーションの実行に用いられるという事態を防止することができ、サービス利用端末においてアプリケーション作成者の意図する実行が行なわれる。また、たとえばサービス利用端末に有害な機能がサービス利用端末において実行されてしまうという事態を防止することもできる。このため、Webサービスを利用するユーザの安全性を高めることができる。
さらに、アプリケーションを実行する際に必要な機能の存在場所をコネクタで設定することによって、アプリケーション作成者は、必要な機能がサービス利用端末に備えられているか否か、また、サービス提供サーバに備えられているか否かを意識することなく、コネクタを設定することで意図する機能が実行されるアプリケーションを作成することができる。そのため、アプリケーションを実行する際に必要な機能の存在場所やバージョンなど、その機能の情報が変更された場合であっても、その変更をアプリケーションに反映する必要がなく、コネクタを書換える、またはコネクタを置換えるだけでその変更をアプリケーションに反映することが可能であるため、アプリケーションの作成が容易になる。
[変形例1]
第1の変形例として、アプリケーション405の他の具体例を図29に示す。第1の変形例においては、アプリケーション405において、実行時に用いられる機能に対応したコネクタが、記述6021のような検索条件で設定されることを特徴としている。すなわち、図29を参照して、具体的に第1の変形例においてアプリケーション405は、TextArtというアクションの動作を、「検索範囲を“Terminal+Sever(サービス利用端末100およびコネクタ提供サーバ280)”として検索された、入力するデータの型が文字列で、出力するデータの型がJpeg画像であるコネクタを利用し、該当する機能にはText領域の値を渡し、その機能から受取った結果をText領域に表示する」と設定している。
図29に示されるようなアプリケーション405をサービス利用端末1301において実行する際、上述のステップS104においては、コネクタの検索範囲をサービス利用端末1301内外の両方と判定し、ステップS1051および/あるいはステップS1052において該当するコネクタを取得する。具体的には、図12に示されるようなコネクタデータ710の入出力定義805の記述2501および記述2502を参照して、そのコネクタに対応している機能に対して入力するデータの型が文字列であって、そのコネクタに対応している機能が出力するデータの型がJpeg画像であるコネクタを検索する。
なお、ステップS1051および/あるいはステップS1052において該当するコネクタが複数得られた場合、ステップS108の処理に先だって、図30に示されるようなコネクタ選択画面2204をディスプレイ1302に表示し、利用するコネクタを選択することが好ましい。
アプリケーションにおいてこのような検索条件でコネクタを設定することで、アプリケーション作成者がコネクタの存在場所を知らない場合であっても、意図する機能を実行させるためのコネクタを設定することが可能である。
また、サービス利用端末においてこのようなアプリケーションを実行する際には、検索された複数のコネクタの中から、最適なコネクタを選択してそのコネクタに対応した機能を実行することができる。
[変形例2]
第2の変形例として、アプリケーション405のさらに他の具体例を図31に示す。第2の変形例においては、アプリケーション405において、実行時に用いられる機能に対応したコネクタが、記述6022のような検索条件で設定されることを特徴としている。すなわち、図31を参照して、具体的に第2の変形例においてアプリケーション405は、TextArtというアクションの動作を、「検索範囲を“Terminal+Sever(サービス利用端末100およびコネクタ提供サーバ280)”として検索された、サービスの記述が“文字列装飾”であるコネクタを利用し、該当する機能にはText領域の値を渡し、その機能から受取った結果をText領域に表示する」と設定している。
図31に示されるようなアプリケーション405をサービス利用端末1301において実行する際、上述のステップS104においては、コネクタの検索範囲をサービス利用端末1301内外の両方と判定し、ステップS1051および/あるいはステップS1052において該当するコネクタを取得する。具体的には、図12に示されるようなコネクタデータ710の入出力定義805の記述2503などを参照して、(図12には図示されていない)サービスの記述に該当する記載のあるコネクタを検索する。
なお、ステップS1051および/あるいはステップS1052において該当するコネクタが複数得られた場合、ステップS108の処理に先だって、図32に示されるようなコネクタ選択画面2205をディスプレイ1302に表示し、利用するコネクタを選択することが好ましい。
アプリケーションにおいてこのような検索条件でコネクタを設定することでも、第1の変形例と同様に、アプリケーション作成者がコネクタの存在場所を知らない場合であっても、意図する機能を実行させるためのコネクタを設定することが可能である。
また、サービス利用端末においてこのようなアプリケーションを実行する際には、検索された複数のコネクタの中から、最適なコネクタを選択してそのコネクタに対応した機能を実行することができる。
[変形例3]
第3の変形例として、コネクタデータ710の他の具体例を図33に示す。第3の変形例においては、コネクタデータ710において、対応する機能で扱うデータの種類を考慮して、記述800のようにアクセスの制限が設定されることを特徴としている。すなわち、図33を参照して、具体的に第3の変形例においてコネクタデータ710は、File機能が扱うデータのうち、システムデータは読取専用のデータであって表示せず、住所録データは読取専用のデータであって表示し、一般データは読書可能のデータであって表示する、と設定している。
サービス利用端末1301において図33に示されるようなコネクタデータ710を介してFile機能を実行する際、ステップS111における結果表示では、図34に示すようなファイル選択画面を表示する。すなわち、図34を参照して、File領域2206にはFile機能で扱うデータとしてSample1.jpg、Sample2.jpg、およびSample3.jpgを[RW]と表示し、読書き(削除)が可能なデータである旨を示している。また、住所録1.add、および住所録2.addを[RO]と表示し、閲覧のみが可能であって内容の変更や削除ができないデータである旨を示している。さらに、porp=“Hidden”と表示を制限されているファイル(図示せず)を表示していない。
このように、コネクタに対応する機能が扱うデータへのアクセスを制限することによって、よりセキュリティの高いサービスの提供を行なうことができる。
なお、言うまでもなく、このような対応する機能が扱うデータへのアクセスの制限はコネクタに設定される場合に限定されず、コネクタに対応している機能によって実現されてもよい。
[変形例4]
第4の変形例におけるサービス提供システムの、簡略化した構成の具体例を図35に示す。図35に示されるように、第4の変形例においては、サービス利用端末100において、サービス提供サーバ210から当該サービス利用端末100に応じてカスタマイズされた機能であるアプリケーションの提供、また、コネクタ提供サーバ280から当該サービス利用端末100に応じてカスタマイズされたコネクタの提供を享受することを特徴とする。
具体的には、サービス利用端末100がサービス提供サーバ210に対して特定の機能を要求したとき、サービス提供サーバ210においてその機能がそのサービス利用端末100に応じてカスタマイズされ、アプリケーションデータ310に図36に示されるようなサービス利用端末100に応じたアプリケーション識別子402が付与される。
また、サービス利用端末100がコネクタ提供サーバ280に対して特定のコネクタを要求したとき、コネクタ提供サーバ280においてそのコネクタがそのサービス利用端末100に応じてカスタマイズされ、コネクタデータ710に図37に示されるようなサービス利用端末100に応じたコネクタ識別子802が付与される。
このようなアプリケーション識別子402およびコネクタ識別子802は、サービス利用端末100から要求を受付けたサービス提供サーバ210およびコネクタ提供サーバ280において一意に割振られるものであって、サービス利用端末100の記憶部13の一般ユーザ変更不可領域132に記憶されている固有情報などを用いた識別子である。このようなサービス利用端末100の固有情報は、要求と共にサービス利用端末100から自動的に送られてくるものであってもよいし、要求を受けたサービス提供サーバ210およびコネクタ提供サーバ280が当該サービス利用端末100などから取得するものであってもよい。また、サービス提供サーバ210およびコネクタ提供サーバ280がアクセス可能なデータベース(図示せず)に予め格納されている情報であってもよい。
このような場合、サービス利用端末100においては、図38に示されるような端末外機能利用処理が実行される。すなわち、ステップS401において図19のステップS201と同様の処理が実行されて、実行しているアプリケーションから外部機能が利用可能と判定された場合(S401でYES)、処理をステップS412に進めて、そのアプリケーションの識別子402とコネクタの識別子802とを比較し、当該サービス利用端末100においてそのアプリケーション405を実行する際にそのコネクタ710を介して対応付けられている機能を利用できるか否かを判定する。ステップS412では、識別子402,802が共に、サービス利用端末100に応じてカスタマイズされた識別子であることを確認する。具体的には、ステップS412では、両識別子402,802に当該サービス利用端末100を示す情報が含まれているか否か、などを確認する。
ステップS412での比較の結果、アプリケーションの識別子402とコネクタの識別子802とがサービス利用端末100に応じてカスタマイズされた識別子であることが確認された場合には(S412でYES)、処理をステップS402へ進める。ステップS402以降の処理は、上述のステップS202以降の処理と同様であるため、ここでの説明は繰返さない。
一方、ステップS412での比較の結果、アプリケーションの識別子402とコネクタの識別子802との少なくとも一方がサービス利用端末100に応じてカスタマイズされた識別子でないことが確認された場合には(S412でNO)、ステップS406へ処理を進め、エラーメッセージを生成して本処理を終了する。そして、処理を図17のメインルーチンへ戻す。
このように、第4の変形例におけるサービス利用端末では、サービス利用端末に応じてカスタマイズされたアプリケーションとコネクタとを用いてアプリケーションを実行することを特徴とする。このことによって、サービス利用端末において実行されるアプリケーションとコネクタとのセキュリティが確実に保たれる。また、アプリケーションとコネクタとのマッチングが不成功の場合には、そのアプリケーションにおいて対応しないコネクタを用いることができないため、サービス利用端末においてアプリケーション作成者の意図する機能を実行することができる。
ところで、上述の図17に示されるサービス利用端末1301での処理において、実行しているアプリケーション405が図46に示されるものである場合、ステップS1041では、記述6023のScope属性値を参照して、必要となるコネクタを規定される検索範囲から検索する。ここでは、「scope=“Server”」と記述されているため、ステップS1044でコネクタ提供サーバ1307に接続して必要となるコネクタをダウンロードして取得するものと判断する。または、アプリケーション405のScope属性値が「scope=“Terminal+Server”」と記述されている場合には、サービス利用端末1301は、必要となるコネクタを、まず自端末のコネクタデータ保存領域700から検索し、そこで得られなかった場合に、次に、コネクタ提供サーバ1307に接続して必要となるコネクタをダウンロードして取得するものと判断する。または、Scope属性値に関わらず、コネクタが必要となるたびにコネクタ提供サーバ1307に接続してダウンロードしてもよいし、コネクタ提供サーバ1307が提供するコネクタと自端末のコネクタデータ保存領域700に保持するコネクタとを比較して、コネクタ提供サーバ1307が提供するコネクタが更新されている場合にコネクタ提供サーバ1307に接続して必要となるコネクタをダウンロードして取得してもよい。
ステップS1051では、コネクタ提供サーバ1307に対して必要とするコネクタを要求する。なお、上述の図46は、アプリケーション405が拡張されたSMILにより記述されている場合の具体例であるが、アプリケーション405は、Java(R)言語やC言語を始めとする他のプログラムでの実装や、または、他の書式によって表現されていてもかまわない。
この場合の、コネクタ提供サーバ1307におけるコネクタ送信処理について、図47のフローチャートを用いて説明する。図47のフローチャートに示される処理は、コネクタ提供サーバ1307においてコネクタをサービス利用端末1301に提供するサービスを実行する際に、制御部22が記憶部23に記憶されるプログラムを読出して実行することで、図41に示される各部が制御されて実現される。
図47を参照して、始めに、ステップS601でサービスが起動される。次にステップS602で、サービス利用端末1301からコネクタの要求があると(S602でYES)、ステップS603でコネクタデータ管理部920において要求元のサービス利用端末1301の情報を取得して確認する。
ステップS603では、コネクタ要求を示す依頼情報自体に含まれる端末IDをサービス利用端末情報として取得してサービス利用端末1301を確認してもよいし、また、サービス利用者端末1301のユーザID情報をサービス利用端末情報として利用してもよい。また、サービス利用端末情報として、サービス利用端末情報に基づいてそのコネクタの提供が許可されているか否かを判断できる他のいずれの情報を利用してもよい。また、さらに詳しい情報を取得するために、ステップS603において、コネクタ提供サーバ1307は、要求のあったサービス利用端末1301に対して、端末自身の情報や当該端末を利用しているユーザ情報の問い合わせを行なってもよい。
次に、ステップS604では、ステップS603で取得したサービス利用端末情報に基づいて、サービス利用端末1301に対してコネクタを提供するか否かを判断する。ステップS604においてコネクタを提供しないと判断した場合はステップS610に進む。また、ステップS604における判断結果においてコネクタを提供すると判断した場合は、ステップS605に進む。
ステップS604における判断は、ステップS603で取得したサービス利用端末情報に基づいて行なわれてもよい。より具体的には、予め端末管理部510に記憶されているコネクタ提供が可能な端末の情報を参照して、ステップS603で取得したサービス利用端末情報に基づいて判断してもよい。また、ステップS603で取得したサービス利用端末情報に基づいて他の認証サーバへの問合わせを行なった結果に基づいて行なわれてもよい。
なお、コネクタ提供サーバ1307において、サービス利用端末1301のいずれのサービス利用端末情報も利用しない場合は、前述のステップS603を省いてステップS604に進んでもよい。この場合、ステップS604では、サービス利用端末1301からの情報を利用せずに、コネクタ提供サーバ1307自体の状態に応じてコネクタを提供するか否かが判断される。また、コネクタ提供サーバ1307において、いずれのアクセス制限も行なわない場合は、前述のステップS604を省いて、ステップS605に進んでもよい。
ステップS605では、コネクタ管理部920において、要求されたコネクタがコネクタデータ保存領域900に保持されているかどうかの確認を行なう。要求されたコネクタがコネクタデータ保存領域900に保持されているか否かは、コネクタデータ管理部920において、該当するコネクタがあるか否かコネクタデータ保存領域900の検索を行なうことによって判断される。
コネクタ提供サーバ1307が該当するコネクタを所有していない場合(S605でNO)、ステップS610のエラー通知処理に進む。一方、コネクタ提供サーバ1307が該当するコネクタを所有している場合(S605でYES)、ステップS606に進み、コネクタデータ管理部920において必要に応じて所有しているコネクタデータ910のデータの一部を編集した後ステップS607に進み、通信制御部530にて、サービス利用端末1301に向けて該当コネクタデータ910を送信する。
ステップS606でのコネクタの編集の1つの具体例としては、ステップS603において取得したサービス利用端末1301の端末情報に応じてコネクタデータ910を編集する方法が挙げられる。
より具体的には、サービス利用端末1301の端末情報を参照することにより、サービス利用端末1301が課金済みのアプリケーションを起動していることを検知した場合、ステップS606でコネクタデータ管理部920はコネクタデータ910の最大利用回数を指定しない編集、または有効期限を無期限に指定する編集を行なう。このような編集を行なうことにより、サービス利用端末1301上で当該アプリケーションを実行する際、前述コネクタデータ910で特定される機能を無制限に利用することができる。
またより具体的には、サービス利用端末1301の端末情報を参照することにより、サービス利用端末1301が「体験版」の状態でアプリケーションを起動していることを検知した場合、ステップS606でコネクタデータ管理部920はコネクタデータ910の最大利用回数を10回に指定する編集、または有効期限をリクエストのあった日から1週間後までの日付に指定する編集を行なう。このような編集を行なうことにより、サービス利用端末1301上で当該アプリケーションを実行する際、前述コネクタデータ910で特定される機能の利用回数や利用期間を制限することができる。
またより具体的には、ステップS603において取得したサービス利用端末1301の端末情報よりサービス利用端末1301の機種や契約している通信キャリアなどを特定し、ステップS606でコネクタデータ管理部920はそれらに応じてコネクタデータ910の編集を行なう。たとえば、特定されたサービス利用端末1301の機種が備える表示装置の解像度や、表示可能な色調や、特定されたサービス利用端末1301の通信キャリアにおいて通信可能なデータ容量などに応じて、コネクタデータ910で特定される機能から出力されるデータ形式を変更するなどの編集を行なうことが好ましい。
また、コネクタの編集の他の具体例としては、サービス提供サーバ1306の形態に応じてコネクタデータ910を編集する方法が挙げられる。より具体的には、図48に示されるように、ある同一の機能を提供するサービス提供サーバ1306が複数台(Server1〜Server3)存在する場合がある。これは、複数のサービス利用端末から同時にアクセスされた場合でも十分に対応できるように、同様の機能を提供するサービス提供サーバを複数台稼動させて、サービス利用端末からのリクエストごとに異なるサービス提供サーバが動作するような枠組みが導入された場合の一般的なシステム構成である。この場合、ステップS606でコネクタデータ管理部920は上記複数のサーバにランダムに、または所定のアルゴリズムに従ってコネクタデータ910に記載されるサービス提供サーバ名(サービス提供サーバへのアクセス情報)を変更する編集を行なう。具体的には、コネクタデータ910のサービス定義を図49の入出力定義の具体例である入出力定義805cの行2703のように編集する。このような編集を行なうことにより、サービス提供サーバにアクセスを分散させる仕組みを導入することなく、サービス利用端末1301から特定のサービス提供サーバにアクセスが集中することを防ぎ、アクセスを分散させることができる。
また、サービス提供サーバ1306の形態に応じてコネクタデータ910を編集する方法として次のような他の具体例が挙げられる。すなわち、図50に示されるように、サービス提供システムがサービス利用端末1301とサービス提供サーバ1306との間で機能の提供を中継する中継サーバ(プロキシサーバとも言われる)1308を含み、サービス提供サーバ1306が中継サーバ1308を介してサービスを提供する形態である場合、ステップS606でコネクタデータ管理部920は、実際にサービスを提供しているサービス提供サーバ1306へのアクセス情報を、サービス中継サーバ1308へのアクセス情報に変更する編集を行なう。具体的には、コネクタデータ910のサービス定義を図51の入出力定義の具体例である入出力定義805dの行2803のように編集する。このような編集がされたコネクタを受信したサービス利用端末1301ではコネクタの記述に従って、サービス中継サーバ1308をサービス提供サーバ1306と仮定して機能の提供を要求する。一般的に、セキュリティ確保の観点より、携帯電話などのサービス利用端末において1つのアプリケーションを実行している際には、そのアプリケーションの実行においてアクセスできるサーバは1つに限定されている場合が多い。しかし、サービス提供サーバで提供される機能は複数のサーバから提供されている場合や、他のサーバが提供している同様の機能であってよりよい機能を利用したい場合もある。そのような場合に、コネクタの記述に従ってサービス中継サーバ1308をサービス提供サーバ1306と仮定してアクセスすることで、サービス利用端末1301では、サービス提供サーバへのアクセスの制限に関わらずに最適な機能を利用することができる。
そして、ステップS608において送信処理が正常に終了した場合(S608でYES)、ステップS609で端末管理情報の更新処理を行なう。ステップS609では、端末情報管理部210において、ステップS603にて取得したコネクタを送信したサービス利用端末1301の情報と、当該端末に対してコネクタを送信した旨とが記録される。本処理においては、単にサービス利用端末1301の情報を記憶しておくだけでなく、図示しない他の課金サーバと連携して、コネクタ送信の記録と共にコネクタ発行に対する課金処理を行なってもよい。また、更新処理を不要とする場合は、ステップS608を省略して次に進んでもよい。
一方、ステップS608において送信処理が異常終了したことが判断された場合(S608でNO)、ステップS610のエラー通知処理に進む。
ステップS610では通信制御部530において、コネクタを要求したサービス利用端末1301に対して、コネクタの要求手続きが異常終了したことの通知を行なう。ステップS610では、サービス利用端末1301自身がタイムアウト処理機能や通信エラー検知機能を備える場合にはエラー通知処理を省略して、コネクタ提供サーバ1307自身のエラー処理のみを行なってもよい。その後、処理をステップS602に戻し、次のコネクタ要求があるまで待機する。
上述の処理を実行したコネクタ提供サーバ1307より要求するコネクタを受信したサービス利用端末1301は、受信したコネクタに記載されているアクセス情報を参照してサービス提供サーバ1306へアクセスし、サービス提供サーバ1306の提供する機能を利用できる。
[変形例5]
第5の変形例として、上述の図50に示されるようなサービス提供システムにおいて、コネクタ提供サーバ1307が中継サーバ1308の機能を備えて、コネクタ提供サーバ1307と中継サーバ1308とが一体の構成となっていてもよい。
その場合のコネクタ提供サーバ1307で実行されるサービス中継処理について図52のフローチャートを用いて説明する。図52のフローチャートに示される処理は、中継サーバとして機能するコネクタ提供サーバ1307がサービス利用端末1301からサービス提供サーバ1306に替わってサービスの提供の要求を受付けた際に制御部22が記憶部23に記憶されるプログラムを読出して実行することで、図41に示される各部が制御されて実現される。
図52を参照して、始めに、ステップS700でサービス利用端末1301からのサービス提供の要求を受信したコネクタ提供サーバ1307は、ステップS701において、要求されたサービス(機能)が中継処理を行なう対象であるかの検索を行なう。ステップS701では、コネクタデータ管理部920は、サービス提供サーバ1306へのアクセス情報(アドレス)を中継サーバ1308として機能するコネクタ提供サーバ1307自身へのアクセス情報に書換える編集を行なったコネクタデータ910をサービス利用端末1301に提供したか否かを、コネクタデータ保存領域900に格納されているコネクタデータ910を検索して判定する。
ステップS701での検索の結果、コネクタ提供サーバ1307自身へのアクセス情報に編集したコネクタデータ910をサービス利用端末1301に提供していた場合は、そのコネクタに記載されているサービス名を参照してコネクタデータ保存領域900を検索して、編集したコネクタデータ910に対応するオリジナルのコネクタデータを検索する。そして、コネクタデータ保存領域900よりオリジナルのコネクタデータを検出した場合は、サービス提供の要求を中継可能だと判断し(S702でYES)、ステップS703に進む。
ステップS703では、サービス利用端末1301から受取ったサービス提供の要求を、オリジナルのコネクタデータに記載されているアクセス情報に基づいて該当するサービス提供サーバ1306に送る。続いて、ステップS704にて、サービス提供サーバ1306からのサービス応答を待つ。
サービス提供サーバ1306から正常に結果が返ってきた場合(S704でYES)、ステップS705に進んで結果をサービス利用端末1301に送信し、サービス中継処理を終了する。
一方、ステップS704でサービス提供サーバ1306から応答がなかった場合(S704でNO)や、ステップS702で要求されたサービス(機能)が中継処理を行なう対象でないと判断した場合(S702でNO)は、ステップS707に進んで受信データや一時保存データを破棄し、サービス提供を要求したサービス利用端末1301に対して、当該サービが利用できない旨の通知を行なう等のエラー処理を行なう。
さらに、ステップS702において、予めサービス提供サーバ1306がそのサービスの提供ができないことがわかっておりその旨をコネクタ提供サーバ1307に通知していた場合は、コネクタ提供サーバ1307は当該サービスが利用できない予約がされていると判断し(S702で「処理の予約がされている場合」)、ステップS706で、予め設定されている(固定の)サービスが利用できない旨を示す情報をサービス利用端末1301に対して送信する。具体的には、サービス提供サーバがメンテナンス作業のため一定期間、サービスの提供ができない場合、一般的には、サービスの利用者に前もってサービスが停止する旨を通知したり、または、同じサービスを提供可能な代替サービス提供サーバを同じアドレスで立ち上げたりする必要があったが、本変形例では、前述の対応をとることなく、コネクタ提供サーバに代替サービス提供サーバの働きをさせることができるため、サービス提供サーバの構成が簡単になる。
以上で、第5の変形例のコネクタ提供サーバにおけるサービス中継処理が終了する。
[変形例6]
第6の変形例にかかるアプリケーション405の具体例を図53に示す。第6の変形例にかかるアプリケーション405ではevent要素に対して複数のaction要素が関連付けられており、ユーザの単一の入力操作により複数の機能を同時に実行することを特徴とする。
具体的には、図53の記述5301において、「auto−fill」ボタンを押された場合に実行される“auto−fill”というアクションには3つの動作が割当てられており、それぞれ「検索範囲を“Terminal”として検索されたgetAddressという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果は“Text:1”領域に表示する」、「検索範囲を“Terminal”として検索されたgetCompanyという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果は“Text:2”領域に表示する」、および「検索範囲を“Terminal”として検索されたgetNameという名前のコネクタを利用し、該当する機能には値を渡す必要はなく、その機能から受取った結果は“Text:3”領域に表示する」という動作を設定している。
本具体例にかかるアプリケーションにおいてこのようにコネクタを利用することで、図54に示される入力画面のような、たとえば、住所、会社名、および名前など一連の個人情報を入力する必要がある場合に、その情報が端末内または端末外のどちらにあるかに関わらず、「auto−fill」ボタンを押すという単一の操作により図55に示されるようにそれらの情報が自動的に入力される。このため、ユーザの手間を省くことができる。
[変形例7]
第7の変形例にかかるアプリケーション405の具体例を図56に示す。第7の変形例にかかるアプリケーション405では、文字列を表示するtext要素が、複数の要素から条件に合致した要素を選出すswitch要素の対象となっており、この条件がコネクタから受取った結果に基づいているものであることを特徴とする。
具体的には、図56の記述5601においてswitch要素には2つのtext要素が割当てられており、それぞれ、「検索範囲を“Terminal”として検索されたgetRoleという名前のコネクタを利用し、その機能から受取った結果が“chief”もしくは“director”の場合に、“Text”領域にファイル“secret.txt”の内容を表示する」、および「検索範囲を“Terminal”として検索されたgetRoleという名前のコネクタを利用し、その機能から受取った結果が空文字の場合に、“Text”領域にファイル“public.txt”の内容を表示する」という動作を設定している。
本具体例にかかるアプリケーションにおいてこのようにコネクタを利用することで、たとえば企業向けのワークフローなどを想定した場合に、同じアプリケーションでも重要な情報を見る権限を持つ社員に対しては図57に示されるように表示し、一般の社員に対しては図58に示されるように表示するといったように、権限によって情報の見せ方を変える、つまり表示の範囲を所定の条件に応じて変化させるということが可能である。
また、図59に示されるアプリケーション405のように、ボタン表示の部分に同様なswitch要素を割当てることにより、図60および図61に示されるように、ボタン(「approve」ボタン)そのものを表示・非表示することができ、たとえば決裁権限を持つ社員にのみ決裁書に「決裁」ボタンを表示するといった表示方法を行なうことが可能である。
[変形例8]
第8の変形例にかかるコネクタデータの保存方法および管理方法の具体例を図62に示す。第8の変形例においては、図62に示されるように、コネクタデータ保存領域およびコネクタデータ管理部がネットワークによって接続されたサーバに保持されて、サービス利用端末1031内のコネクタ管理部120には、該サーバに保持されるコネクタデータ保存領域およびコネクタデータ管理部の存在場所のみが保持されることを特徴とする。
この場合、上述のステップS1044においては、サーバに保持されたコネクタデータ保存領域が検索されて、該コネクタデータ保存領域に該当するコネクタデータが存在すれば、ステップS1052にてコネクタデータ保存領域より該当するコネクタが取得される。
一方、該当するコネクタデータが見つからない場合は、ステップS1051にてコネクタ提供サーバ280より該当するコネクタがダウンロードされ、サービス利用端末1031のコネクタデータ保存領域に保存される。複数のサービス利用端末についてのコネクタデータ保存領域およびコネクタデータ管理部を保持するサーバは、サービス利用端末ごとのコネクタデータ保存領域およびコネクタデータ管理部を当該サービス利用端末に関連付けて保持する。
本具体例においては、以上のような構成により、各サービス利用端末でのコネクタの利用実態をサーバで把握することができ、各機能利用時に発生する課金処理や認証処理をサーバ側で一括して行なうことが可能となる。
[変形例9]
アプリケーションのユーザインタフェースに沿って入力された値を、コネクタを利用して所定のサービス提供サーバ210にアクセスして処理する際に、実際にサービス提供サーバ210においては、所定の関数であるメソッドが利用されて、入力された値の処理が実行される。そこで、その場合の処理について、第9の変形例として説明する。
図63は、第9の変形例にかかる端末6300の構成の具体例を示す図である。
図63を参照して、端末6300は、アプリケーションデータ保存領域300とアプリケーションデータ管理部320とを含んで構成されるアプリケーション管理部110を含む。アプリケーションデータ保存領域300には占いアプリケーション6310が保存されているものとする。
また端末6300は、コネクタデータ保存領域700とコネクタデータ管理部720とを含んで構成されるコネクタ管理部120を含む。コネクタデータ保存領域700には、コネクタデータ6320が保存されているものとする。さらに、コネクタデータ6320には端末外部の占いWebサービス6340を利用するための情報が記述されているものとする。占いWebサービス6340は占い用のメソッドを提供するサービスであるものとする。
図64は、占いアプリケーション6310の詳細の具体例を示す図である。
図64を参照して、占いアプリケーション6310は、占いを行なうための占いインタフェース6410と、占いの結果を表示するための占い結果画面6420との、2つの画面を含んで構成される。
占いインタフェース6410には、占いWebサービスを利用するために送信するデータを入力するフォーム6411〜6414が用意されている。本実施例では、名前を入力するためのフォームであるNAME6411、誕生日を入力するためのフォームであるBIRTHDAY6412、血液型を入力するためのフォームであるBLOOD6413、および出身地を入力するためのフォームであるHOMETOWN6414がそれぞれ用意されており、「占う」ボタン6415が押されると、これらのフォームに入力されたデータがコネクタを介して占いWebサービスに送られる。また、メニューボタン6416が押されると、様々なメニューが選択可能に表示される。
占い結果画面6420には、結果を表示するための領域RESULT6421と、占いインタフェースに戻るための「戻る」ボタン6422とが用意されている。
図65は、占いアプリケーション6310から占いWebサービス6340を利用する場合の処理を説明する図である。図65においては、占いアプリケーション6310から占いWebサービス6340を利用するために、占いWebサービス6340の提供するメソッド6510が示されている。すなわち、占いWebサービス6340の提供するメソッド6510の名前はHoroscopeであり、メソッドの第1引数の型は文字列で名前がnameであり、メソッドの第2引数の型は整数で名前がbirthdayであり、メソッドの戻り値はビットマップ画像であることが示されている。
図65を参照して、占いインタフェース6410において、フォームであるNAME6411に値「鈴木二郎」、BIRTHDAY6412に値「1973年3月13日」、BLOOD6413に値「AB型」、HOMETOWN6414に値「広島県」と入力された状態で「占う」ボタン6415が押下されると、占いWebサービス6340を利用するためのコネクタデータ6320が呼出される。
コネクタデータ6320には、占いWebサービス6340の存在場所を示すURLや、そこで提供されるメソッドのAPI(アプリケーション)の仕様等が記述されているものとする。コネクタデータ6320にはさらに、占いインタフェース6410から入力されるデータを占いWebサービス6340の提供する占いメソッド6510に引渡すための変換規則、および占いメソッド6510からの戻り値を占い結果画面6420に表示するための変換規則が記述されている。つまり、本変形例においては、コネクタデータに、当該コネクタが決定する機能に対するデータの受け渡しを定義する入出力定義に替えて、当該コネクタが決定する機能を用いるために利用される関数であるメソッドに対するデータの受け渡しを定義する入出力定義が含まれる。
具体的なコネクタデータ6320に記述されている、占いメソッド6510を利用するための占いインタフェース6410から入力されるデータを変換する変換規則は以下のとおりである。
規則1)フォームNAME6411に入力された値を文字列に変換して、名前がHoroscopeであるメソッド6510の第1引数とする。
規則2)フォームBIRTHDAY6412に入力された値を整数に変換して、名前がHoroscopeであるメソッド6510の第2引数とする。
規則3)名前がHoroscopeであるメソッド6510からの戻り値のビットマップ画像をJpeg画像に変換して、領域RESULT6421に表示する。
上述の規則1により、コネクタデータ管理部720に含まれる図63においては示されていない外部機能管理部においては、占いインタフェース6410のフォームNAME6411に入力された値「鈴木二郎」は文字列に変換され、占いWebサービス6340のHoroscopeメソッドの第1引数として、図63においては示されていない外部機能呼出部において呼出された占いWebサービス6340に渡される。また、規則2により、占いインタフェース6410のフォームBIRTHDAY6412に入力された値「1973年3月13日」は整数に変換され、占いWebサービス6340のHoroscopeメソッドの第2引数として占いWebサービス6340に渡される。また、規則3により、占いWebサービス6340のHoroscopeメソッドからの戻り値であるビットマップ画像はJpeg画像に変換され、占い結果画面6420の領域RESULT6421に表示される。
上記変換規則1〜3をXMLにより記述した場合のコネクタデータ6320の一部の具体例を図66に示す。
図66を参照して、記述<convert method=“Horoscope“>において、本記述が、Horoscopeメソッドに対する変換規則であることが宣言される。
また、記述<paramConv fromApp=“NAME“ fromType=“String“ toService=“name“ toType=“String“ />において、アプリケーションから名前NAMEで文字列(String)として渡されるデータを文字列(String)に変換して、サービス側の名前nameの引数に渡すことが宣言される。なお、この場合はどちらも文字列なので、実際の変換は不要となっている。
また、記述<paramConv fromApp=“BIRTHDAY“ fromType=“String“ toService=“birthday“ toType=“int“ />において、アプリケーションから名前BIRTHDAYで文字列(String)として渡されるデータを整数(int)に変換して、サービス側の名前birthdayの引数に渡すことが宣言される。
また、記述<returnConv fromService=“ReturnValue“ fromType=“bitmap“ toApp=“RESULT“ toType=“jpeg”/>において、サービス側からの戻り値であるビットマップ画像(bitmap)をJpeg画像(jpeg)に変換して、アプリケーション側の領域RESULTにおいて表示することが宣言される。
また、記述</convert>において、Horoscopeメソッドに対する変換規則の定義が終了することが宣言される。
図66に示される記述にしたがってコネクタデータ6320において占いインタフェース6410から入力されるデータが変換されて占いメソッド6510が利用されると、占いWebサービス6340からの戻り値であるビットマップ画像はJpeg画像に変換され、図65に示されるように占い結果画面6420の領域RESULT6421に表示される。
このように、コネクタデータに、当該コネクタが決定する機能に対するデータの受け渡しを定義する入出力定義に替えて、当該コネクタが決定する機能を用いるために利用される関数であるメソッドに対するデータの受け渡しを定義する入出力定義が含まれることで、アプリケーションにおいて入力される値をメソッドの引数に応じた値にする必要がない。そのため、アプリケーションのインタフェースを、利用されるメソッドを考慮して作成する必要がなく、アプリケーションの作成が容易になる。
さらに、このようなコネクタデータの構成とすることで、1つのアプリケーションから複数の異なるWebサービスを利用することも可能になる。
1つのアプリケーションから複数の異なるWebサービスを利用する場合の、端末6300の構成の具体例を図67に示す。
図67を参照して、この場合も、図63に示された場合と同様に、端末6300は、アプリケーションデータ保存領域300とアプリケーションデータ管理部320とを含んで構成されるアプリケーション管理部110を含む。アプリケーションデータ保存領域300には占いアプリケーション6310が保存されているものとする。
また端末6300は、コネクタデータ保存領域700とコネクタデータ管理部720とを含んで構成されるコネクタ管理部120を含む。コネクタデータ保存領域700には、コネクタデータ1(6320)とコネクタデータ2(6330)とが保存されているものとする。コネクタデータ1(6320)には端末外部の占いWebサービス1(6340)を利用するための情報が記述され、コネクタデータ2(6330)には端末外部の占いWebサービス2(6350)を利用するための情報が記述されているものとする。
占いアプリケーション1(6320)から占いWebサービス1(6340)を利用する場合の処理については、先に図65を用いて説明されている。同様に、占いアプリケーション2(6330)から占いWebサービス2(6350)を利用する場合の処理を、図68を用いて説明する。図68においては、占いアプリケーション2(6330)から占いWebサービス2(6350)を利用するために、Webサービス2(6350)の提供するメソッド6610が示されている。すなわち、Webサービス2(6350)の提供するメソッドの名前はHomeFortuneであり、メソッドの第1引数に型は文字列で名前がnameであり、メソッドの第2引数の型は文字列で名前がcityであり、メソッドの戻り値はHTML文書であることが示されている。
図68を参照して、占いインタフェース6410において、フォームであるNAME6411に値「鈴木二郎」、BIRTHDAY6412に値「1973年3月13日」、BLOOD6413に値「AB型」、HOMETOWN6414に値「広島県」と入力された状態で「占う」ボタン6415が押下されると、占いWebサービス2(6350)を利用するためのコネクタデータ2(6330)が呼出される。
コネクタデータ2(6330)にも、コネクタデータ1(6320)と同様に、占いWebサービス2(6350)の存在場所を示すURLや、そこで提供されるメソッドのAPIの仕様等が記述されているものとする。コネクタデータ2(6330)にはさらに、占いインタフェース6410から入力されるデータを占いWebサービス2(6350)の提供する占いメソッド6610に引渡すための変換規則、および占いメソッド6610からの戻り値を占い結果画面6420に表示するための変換規則が記述されている。
具体的なコネクタデータ2(6330)に記述されている、占いメソッド6610を利用するための占いインタフェース6410から入力されるデータを変換する変換規則は以下のとおりである。
規則1)フォームNAME6411に入力された値を文字列に変換して、名前がHomeFortuneであるメソッド6610の第1引数とする。
規則2)フォームHOMETOWN6414に入力された値を文字列に変換して、名前がHomeFortuneであるメソッド6610の第2引数とする。
規則3)名前がHomeFortuneであるメソッド6610からの戻り値のHTML文章を、そのまま領域RESULT6421に表示する。
上述の規則1により、コネクタデータ管理部720に含まれる図67においては示されていない外部機能管理部においては、占いインタフェース6410のフォームNAME6411に入力された値「鈴木二郎」は文字列に変換され、占いWebサービス2(6350)のHomeFortuneメソッドの第1引数として、図67においては示されていない外部機能呼出部において呼出された占いWebサービス6340に渡される。また、規則2により、占いインタフェース6410のフォームHOMETOWN6414に入力された値「広島県」は文字列に変換され、占いWebサービス2(6350)のHomeFortuneメソッドの第2引数として占いWebサービス6340に渡される。また、規則3により、占いWebサービス2(6350)のHomeFortuneメソッドからの戻り値であるHTML文書は、そのまま占い結果画面6420の領域RESULT6421に表示される。
上記変換規則1〜3をXMLにより記述した場合のコネクタデータ2(6330)の一部の具体例を図69に示す。
図69を参照して、記述<convert method=”HomeFortune”>において、本記述が、HomeFortuneメソッドに対する変換規則であることが宣言される。
また、記述<paramConv fromApp=”NAME” fromType=”String” toService=”name” toType=”String” />において、アプリケーションから名前NAMEで文字列(String)として渡されるデータを文字列(String)に変換して、サービス側の名前nameの引数に渡すことが宣言される。なお、この場合はどちらも文字列なので、実際の変換は不要となっている。
また、記述<paramConv fromApp=”HOMETOWN” fromType=”String” toService=”city” toType=”String” />において、アプリケーションから名前HOMETOWNで文字列(String)として渡されるデータを文字列(String)に変換して、サービス側の名前cityの引数に渡すことが宣言される。なお、この場合にもどちらも文字列なので、実際の変換は不要となっている。
また、記述<returnConv fromService=”ReturnValue” fromType=”html” toApp=”RESULT” toType=”HTML”/>において、サービス側からの戻り値であるHTML文書(html)をHTML文書(html)に変換して、アプリケーション側の領域RESULTにおいて表示することが宣言される。なお、この場合にもどちらもHTML文書なので、実際の変換は不要となっている。
また、記述</convert>において、HomeFortuneメソッドに対する変換規則の定義が終了することを宣言される。
図69に示される記述にしたがって、コネクタデータ2(6330)占いインタフェース6410から入力されるデータが変換されて占いメソッド6610が利用されると、占いWebサービス2(6350)からの戻り値であるHTML文章は、図68に示されるように占い結果画面6420の領域RESULT6421に表示される。
このように、1つのアプリケーション6310から2つのWebサービス6340,6350が利用可能な場合、図70および図71に示されるように、接続先であるWebサービス6340,6350を切替える操作が行なわれる。図70、図71は、アプリケーション6310から利用する占いWebサービス6340,6350の接続先を変更する方法の具体例を説明する図であって、図70は、2つの占いWebサービス6340,6350が利用可能な占いアプリケーション6310の、占いインタフェース6410の表示の具体例を示す図である。具体的には、図70に示される占いインタフェース6410の表示は、図64に示される占いインタフェース6410においてメニューボタン6416が押されたときの表示の具体例を示しており、メニューリスト6920が表示されている。
図70に示される状態において、さらに、メニューリスト6920に表示された選択項目である接続先変更6930が選択されると、占いインタフェース6410の表示は図71に示される表示に遷移する。すなわち、図70に示される占いインタフェース6410の表示において接続先変更6930が選択されると、図71に示されるように、選択可能な接続先として選択項目がリスト表示された占いインタフェース6410が表示される。本変形例においては、選択項目として占いサービス1(星占い)7010と、占いサービス2(出身地占い)7020との2つがリスト表示される。
図71に示される占いインタフェース6410の表示において、接続先を占いサービス1(7010)と占いサービス2(7020)との中から選択して変更ボタン7030を押下することで、接続先が変更される。つまり、図71に示される占いインタフェース6410の表示において接続先が選択されることで、占いアプリケーション6310において占いWebサービス1(6340)または占いWebサービス2(6350)を利用するために呼出すコネクタデータとしてコネクタデータ1(6320)またはコネクタデータ1(6330)が決定され、コネクタデータ管理部720において、決定されたコネクタデータの記述内容にしたがってここでは図示されていない外部機能管理部の機能が利用されて占いWebサービス1(6340)または占いWebサービス2(6350)の機能が呼出される。
このように、第9の変形例においては、端末630においてアプリケーションデータとコネクタデータとが分割されて各々別個に管理されているため、単一のアプリケーションデータから複数の異なるWebサービスを利用することが可能になる。そのため、アプリケーションの形態がWebサービスに関わらず、アプリケーションの作成が容易になる。また、その場合に、いずれのWebサービスを利用する場合であっても、同じユーザインタフェースにおいてデータ入力を行なうことができるため、ユーザの操作が容易になる。
さらに、上述のサービス利用端末におけるサービス利用方法やコネクタ提供サーバにおけるコネクタ提供処理を、プログラムとして提供することもできる。このようなプログラムは、フレキシブルディスク、CD−ROM、ROM、RAMおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
11 サービス利用端末の通信部、12 サービス利用端末の制御部、13 サービス利用端末の記憶部、14 入出力部、21 コネクタ提供サーバの通信部、22 コネクタ提供サーバの制御部、23 コネクタ提供サーバの記憶部、24 コネクタ提供サーバの操作部、25 コネクタ提供サーバの表示部、100,1031,1301 サービス利用端末、131 一般ユーザ変更可能領域、132 一般ユーザ変更不可領域、141 サービス利用端末の操作部、142 サービス利用端末の表示部、143 音声入力部、144 音声出力部、110 アプリケーション管理部、120 サービス利用端末のコネクタ管理部、130 外部機能管理部、140 内部機能管理部、150 サービス利用端末の通信制御部、160 サービス利用端末の記憶領域、200 ネットワーク、210,1306 サービス提供サーバ、230 携帯電話網、231 プログラム領域、232 データ領域、240 携帯電話基地局、260 ホームネットワーク、280,1307 コネクタ提供サーバ、300 アプリケーションデータ保存領域、310 アプリケーションデータ、320 アプリケーションデータ管理部、401 アプリケーション名、402 アプリケーション識別子、403,803 有効期限、404,804 最大利用回数、405 アプリケーション、510 端末管理部、520 コネクタ提供サーバのコネクタ管理部、530 コネクタ提供サーバの通信制御部、540 コネクタ提供サーバの記憶領域、700 サービス利用端末のコネクタデータ保存領域、710,910 コネクタデータ、720 サービス利用端末のコネクタデータ管理部、801 コネクタ名、802 コネクタ識別子、805 入出力定義、900 コネクタ提供サーバのコネクタデータ保存領域、920 コネクタ提供サーバのコネクタデータ管理部、1101 外部機能呼出部、1102 外部機能結果解析部、1201 内部機能呼出部、1202 内部機能結果解析部、1302 ディスプレイ、1303〜1305 機能、1308 中継サーバ、6310 占いアプリケーション、6320,6330 コネクタデータ、6340,6350 占いWebサービス、6410 占いインタフェース、6411〜6414 フォーム、6415,6416,6422,7030 ボタン、6420 占い結果画面、6421 領域、6510,6610 メソッド、6920 メニューリスト、6930,7010,7020 選択項目。