説明

サーバー装置及びデータ取得方法

【課題】ネットワーク上での異なるサーバーで提供される複数のサービスを同時に利用でき、しかも、新規なプログラム作成のためのコストを低減することができるようにする。
【解決手段】機能の異なる複数の部品間の包含関係により構成されている部品の機能により、クライアントとなる携帯電話アプリケーション231は、あるWebサーバー装置(位置情報サービス141)及び別のWebサーバー装置(Webカメラサービス142,143)に対して同時にアクセス可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバー装置及びデータ取得方法に関する。
【背景技術】
【0002】
特許文献1には、ソフトウェア部品(以下、単に「部品」という)について開示されている。この部品は、プログラムやデータを、その機能を保ったまま部品化したもので、この部品は表示装置には所定の色や形の図形で表示される。この色や形の違いはその部品の(プログラムやデータの)機能の違いを表している。
【0003】
部品は複数のスロットというプログラムやデータの入出力口を備えている。表示装置上で部品を表す図形を移動させて、子となる部品を親となる部品の上に貼り付けると、親となる部品のスロットに子となる部品のスロットが結合して親子部品が形成され、スロットを介して親子部品間で機能やデータの受け渡しを行うことができる。
【0004】
このような部品を用いれば、ソフトウェアの知識に乏しい一般人でも容易にソフトウェアやコンテンツを作成することができる。
【特許文献1】特許第3660366号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、携帯電話においては、Webブラウザ機能を備え携帯電話上でWebページを閲覧し、様々なアプリケーションを利用することができる。
【0006】
しかしながら、携帯電話で動作するアプリケーションは、通常そのアプリケーションをダウンロードした単一のサーバーとの通信しか許されておらず、一度に複数のサーバーとの通信は不可能である。そのため異なるサーバーで提供される複数のサービスを利用するにはそれぞれ別々のアプリケーションを切り替えながら利用しなければならない。
【0007】
このように、携帯電話では同時に起動できるアプリケーションはひとつに限られるため、切り替える操作には手間がかかり、また異なるアプリケーション間でのデータの受け渡しや機能の連携は想定されておらず、あるアプリケーションで得たデータを別のアプリケーションの入力とするには、ユーザー自身が操作することで入力しなおす煩雑な作業が必要である。
【0008】
また、パーソナル・コンピュータ(PC)においても、複数のサービスを利用しようとするときはWebブラウザなどで複数のウィンドウやページを開き、これらを切り替えながらそれぞれの画面でユーザーが手動で入力操作を行う必要があり、やはり煩雑であるという不具合がある。
【0009】
これに対し、Webサービスとして、WSDL(Web Services
Description Language)が定義され公開されているサービスは、例えばアプリケーション・サーバーにおいてBPEL4WSなどを利用することで複数のサービスを連係させることが可能ではあるが、HTMLで記述された単なるWebページ内のテキストデータやCGI(Common Gateway Interface)を利用したWebアプリケーションを連係させ、あるいはこれらをWebサービスに変換することは困難である。通常、このようなデータやアプリケーションを連係させるには個別にプログラムを作成する必要があり、新しく別のアプリケーションを組み合わせて連係するためにはプログラムを修正しなければならないなど、その製造コストは大きい。
【0010】
そこで、本発明の目的は、ネットワーク上での異なるサーバーで提供される複数のサービスを同時に利用でき、しかも、新規なプログラム作成のためのコストを低減することができるようにすることである。
【課題を解決するための手段】
【0011】
本発明は、所定の機能をもつプログラムを1つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、部品間の包含関係を記憶する包含関係管理手段と、前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、機能の異なる複数の前記部品間の包含関係により、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第1ロケーションから取得し、この第1ロケーションから取得したデータに応じたデータをネットワーク上の第2ロケーションから取得し、……、ネットワーク上の所定の第(n−1)ロケーションから取得したデータに応じたデータをネットワーク上の第nロケーションから取得して(nは2以上の整数)、この第nロケーションから取得したデータを前記クライアントに送信する入出力手段と、を備えているサーバー装置である。
【0012】
別の面から見た本発明は、所定の機能をもつプログラムを1つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、部品間の包含関係を記憶する包含関係管理手段と、前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、を備えたサーバー装置で、機能の異なる複数の前記部品間の包含関係により実現される、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第1ロケーションから取得し、この第1ロケーションから取得したデータに応じたデータをネットワーク上の第2ロケーションから取得し、……、ネットワーク上の所定の第(n−1)ロケーションから取得したデータに応じたデータをネットワーク上の第nロケーションから取得して(nは2以上の整数)、この第nロケーションから取得したデータを前記クライアントに送信する処理を実行する入出力工程を、含んでなるデータ取得方法である。
【発明の効果】
【0013】
本発明によれば、クライアントの入力条件に応じたデータをネットワーク上の第1ロケーションから取得し、この第1ロケーションから取得したデータに応じたデータをネットワーク上の第2ロケーションから取得し、……、ネットワーク上の所定の第(n−1)ロケーションから取得したデータに応じたデータをネットワーク上の第nロケーションから取得して(nは2以上の整数)、この第nロケーションから取得したデータをクライアントに送信する処理を実行することができるので、ネットワーク上の複数のサーバー装置で提供される異なるサービスを、部品により連係させたひとつのアプリケーションを作成してひとつのサーバー装置上のサービスに集約することが可能となり、携帯電話などのクライアントにおいて複数のアプリケーションを切り替えて利用するだけでは困難なサービス間の連係を可能にし、煩雑なアプリケーションの切り替えを行う必要がなくなる。
【0014】
また、サービスの連係の定義をサーバー装置側で行うことでクライアント側では複雑な処理の必要が無くなり、クライアント側のプログラムを単純なデータの入出力と表示処理だけに簡略化できる。
【0015】
さらに、サービスの連携に本構成の部品を用いることで、異種のアプリケーションやサービスを動的に連係させ、また連係させるサービスの組み合わせの変更を容易にすることができる。
【0016】
なお、サーバー装置上で連係させたアプリケーションをWebサービスとして公開することにより汎用性の高いSOAPプロトコルでアクセスでき、携帯電話だけでなく様々なSOAPクライアントから利用することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明の一実施形態について説明する。
【0018】
以下の説明では、最初に本実施形態で使用しているソフトウェア部品について説明し、このソフトウェア部品を使用して構築される本実施形態のサーバー装置について説明する。
【0019】
[ソフトウェア部品について]
図1は、プログラミングシステムの原理構成を説明する機能ブロック図である。本プログラミングシステムは、キーボード、マウス等からなる入力装置12からオペレータの操作情報が入力され、LCD等からなる表示装置11へ画面情報が出力されるCPUとメモリ等からなる処理装置1において、処理装置1は、包含関係指示手段2、視覚化部品情報記憶手段3、データ構造変換手段4a、処理構造変換手段4b、処理単位記憶手段5、視覚化部品発生手段6、代表値変更手段7、データ連携手段8、イベント管理手段9および包含関係管理手段10から構成される。ここで、以下の説明において「部品」とは、当該部品を表す1つの「図形」と、この図形に対応した所定の機能を持つプログラムを特定するプログラム情報と、プログラム情報で特定されるプログラムの実行により得られるデータ情報とを含むソフトウェア部品の単位をいう。
【0020】
包含関係指示手段2は、オペレータによる操作入力を、入力装置12を介して受け、部品を複写、削除、合成、分解、等して編集を行い、表示装置11の画面上に描画された親の図形の上に子の図形を移動して載せる一連の操作により親の図形と子の図形との間に包含関係をもたせるように指示する手段である。ここで包含関係とは、表示装置の画面上に重ね合わせて描画された下側の図形を親、上側の図形を子として定義される親子関係をいう。
【0021】
図2は視覚化部品情報記憶手段3と処理単位記憶手段5の詳細説明図である。同図において表示装置11の画面上には台紙Aの部品の上にメータBの部品が表示され、スライダCの部品のカーソルがメータBの針と連動して移動する状態を示す。なお、包含関係管理手段10に格納されている情報は部品Bの親は部品Aであるという前述の包含関係の情報のみである。
【0022】
視覚化部品情報記憶手段3は、各部品に対する視覚化部品情報3a、データ構造情報3bおよび図形連動処理情報3cの3種類の情報を記憶する。視覚化部品情報3aには、各部品に対し、図形領域サイズ、図形連動処理、対応処理単位、対応データ構造、代表値データ識別子、およびデータ結合先データ識別子の各情報が格納され、データ構造情報3bには、各部品がもつ他の部品との入出力結合部であるスロットのデータ識別子とその値が格納され、図形連動処理情報3cには、各部品の図形を表示装置11の画面上に描画するための情報が格納される。
【0023】
次に、図形としての視覚的に操作できるライブラリ(演算処理またはRDB処理等の個々のプログラム)に対応する部品の作成方法について、以下に説明する。部品定義ファイルを、数値型と文字型のデータを貼り合わせてなる部品スロット定義ファイルと、ライブラリに対応する演算処理またはRDB処理等の個々のプログラムファイルとから自動生成する。自動生成した部品定義ファイルから言語プロセッサを介してオブジェクトファイルを作成し、使用する図形操作ライブラリと演算処理ライブラリおよびRDB処理ライブラリとをリンカによりリンクして計算機の実行形式のダイナミック・リブ・ライブラリを作成し、これを処理装置にロードすれば、視覚的に捕らえることのできる部品を表示装置の画面上に呼び出すことができる。このように部品を発生させる命令を部品ジェネレーション命令と呼ぶ。
【0024】
データ構造変換手段4aは、包含関係指示手段2と視覚化部品記憶手段3とから入力を受け、データ構造を変換して視覚化部品記憶手段3へ出力する。
【0025】
処理構造変換手段4bは、同様に包含関係指示手段2と視覚化部品記憶手段3とから入力を受け、処理構造を変換して視覚化部品記憶手段3へ出力する。
【0026】
処理単位記憶手段5は、各部品の処理機能を記述した命令列からなるプログラム情報と、そのプログラムを実行させて得られるデータ値であって、視覚化部品情報記憶手段3におけるデータ構造情報3bに格納されるデータ識別子に対応する値を更新するデータ値の情報とからなる。
【0027】
視覚化部品発生手段6は、予め部品の視覚化部品情報記憶手段3における視覚化部品情報3a、データ構造情報3b、図形連動処理情報3cの各情報を自動生成する手段である。なお、この手段に代えて部品の視覚化部品情報記憶手段3における前記各情報は、コーディングで入力してもよい。
【0028】
代表値変更手段7は、視覚化部品情報3aの代表値データ識別子に対応するデータ構造情報3bのデータ識別子の値を、部品のメインスロットから出力される値とする。代表値の変更は視覚化部品情報3aが更新されるときになされる。
【0029】
データ連携手段8は、包含関係管理手段10に格納された表示装置11の画面上に表示される部品間の親子関係の情報に基づいて、親子間のデータの受け渡しを処理する手段である。このデータ連携手段8により親子関係をもった部品間でデータを受け渡す際、統一されたインターフェイスを設けているので、全ての部品間で受け渡しができる。
【0030】
イベント管理手段9は、複数の表示装置間で共通の作業場としての部品をマスタ表示装置からスレーブ表示装置へ複写し、かつ各表示装置で発生したマウスの操作によるイベントまたは図形の変化によるイベントの情報をサーバ・アンド・クライアント形通信方式により共有させる。
【0031】
包含関係管理手段10は、表示装置11の画面上に表示される部品間の親子関係の情報を格納し、データ連携手段8により親子関係を有する部品間のメインスロットを介してデータを伝搬する。
【0032】
図3は視覚化部品発生手段6の処理のフローチャートである。以下に視覚化部品発生手段6の処理をステップ順に説明する。最初に、部品の視覚化部品情報を作成し、対応する処理単位のアドレスを設定し(ステップS1)、処理単位へ入出力されるデータ値の個数を後述するジェネレータの定義文から読み出し(ステップS2)、その個数分の視覚化部品情報に対応するデータ構造を作成し(ステップS3)、処理単位に書かれた全てのデータのデータ構造内のデータ識別子に順次データを書き込み(ステップS4)、データ結合先のデータ識別子をNilに設定し(ステップS5)、対応する図形連動処理のアドレスを設定して図形連動処理を生成し、すなわちジェネレータで書かれた図形を描かせるプログラミングが読み込まれ(ステップS6)、図形領域サイズを標準値または指定値に設定し(ステップS7)、図形連動処理を実行し、すなわち図形を表示させるプログラムを実行し、表示手段により図形を表示し(ステップS8)、終了する。
【0033】
図4はデータ連携手段8の処理の前半フローチャートであり、図5はデータ連携手段8の処理の後半フローチャートである。以下にデータ連携手段8の処理をステップ順に説明する。最初に、指定された部品を更新対称部品に設定し(ステップS1)、指定されたデータ識別子を更新データに設定し(ステップS2)、指定された値を更新値に設定し(ステップS3)、部品更新処理を実行し(ステップS4)、値の変化したデータ識別子リストは代表値のデータ識別子を含むか否か判別し、その判別結果がYESのときはステップS6へ進み、その判別結果がNOのときはステップS13へ移行し(ステップS5)、データ結合先のデータ識別子の値はNilでないか否か判別し、その判別結果がNilでないときはステップS7へ進み、その判別結果がNilのときはステップS13へ移行し(ステップS6)、包含関係管理情報から親部品を検索し(ステップS7)、親部品は包含関係管理情報内に有りか判別し、その判別結果が有りのときステップS9へ進み、その判別結果が無しのときステップS13へ移行し(ステップS8)、現部品のデータ結合先のデータ識別子を更新データに設定し(ステップS9)、親部品の代表値のデータを更新値に設定し(ステップS10)、親部品を更新代表部品に設定し(ステップS11)、親部品を現部品に設定し、ステップS4へ戻る(ステップS12)。
【0034】
ステップS5、S6またはS8終了後、包含関係管理情報から子部品を検索し、伝搬先部品リストに書き込み(ステップS13)、伝搬先部品リストが空か否かを判別し、その判別結果がYESのときは終了し、その判別結果がNOのときは、ステップS15へ進み(ステップS14)、伝搬先部品リストから1つの部品を取り出し、更新対象部品と設定し(ステップS15)、代表値のデータ識別子を更新データに設定し(ステップS16)、更新対象部品のデータ結合先のデータ識別子で示されるデータの値を更新値と設定し(ステップS17)、部品更新処理を実行し(ステップS18)、更新対象部品を現部品と設定し、ステップS13へ戻る(ステップS19)。
【0035】
図6はデータ連携手段8における部品更新処理の詳細フローチャートである。以下に部品更新処理をステップ順に説明する。最初に、更新対象部品のデータ識別子に対応する値を更新し(ステップS1)、対応する処理単位のデータ値を対応するデータ識別子の値に設定し、命令列を実行し(ステップS2)、命令列の実行後にデータ値の変化が有ったか否かを判別し、その判別結果がYESのときステップS4へ進み、その判別結果がNOのときは終了し(ステップS3)、データ識別子のデータを更新し(ステップS4)、図形連動処理を実行して表示し(ステップS5)、値の変化したデータ識別子を記憶し(ステップS6)、終了する。
【0036】
図7は描画時の図形連動処理のフローチャートである。以下にデータ構造内のデータ値が変化したときにデータ連携手段8からイベント管理手段9が呼び出され、図形を描画する図形連動処理をステップ順に説明する。最初に、図形の位置、大きさ、形状、色、等の属性をデータ値に基づき計算し(ステップS1)、図形の表示内容を変更する必要があるか否かを判別し、その判別結果がYESのときはステップS3へ進み、その判別結果がNOのときは終了し(ステップS2)、図形領域サイズを計算して視覚化部品情報に設定し(ステップS3)、図形を表示装置の画面上に描画し(ステップS4)、イベント管理手段を呼び出して図形の状態が変化したことを伝達し(ステップS5)、終了する。この図形連動処理により、例えばメータの針を動かす図形の編集プログラムが実行される。
【0037】
図8はイベント発生時の図形連動処理のフローチャートである。以下にイベントが発生したときに、イベント管理手段9から呼び出され、表示が変化したときにデータを書き換える図形連動処理をステップ順に説明する。最初に、図形の表示を変更する必要のあるイベントか否か判別し、その判別結果がYESのときはステップS2へ進み、その判別結果がNOのときはステップS5へ移行し(ステップS1)、イベントによる図形の位置、大きさ、形状、等の属性を計算し(ステップS2)、図形領域サイズを計算して視覚化部品情報に設定し(ステップS3)、図形を表示装置の画面上に描画し(ステップS4)、データ構造内のデータ値を変更する必要のあるイベントか否かを判別し、その判別結果がYESのときはステップS6へ進み、その判別結果がNOのときは終了し(ステップS5)、変更すべきデータのデータ識別子を決定して変更後の値を計算し(ステップS6)、データ連携手段を呼び出してその部品のデータ構造内のデータを指定した値に変更し(ステップS7)、終了する。
【0038】
図9は貼り合わせ構造から新規の処理構造を生成する処理のフローチャートである。以下に貼り合わせ構造から新規の処理構造を生成する処理をステップ順に説明する。最初に、空の処理単位をもつ部品Aを生成し(ステップS1)、最も上位の親を一時記憶部に登録し(ステップS2)、一時記憶部は空か否かを判別し、空と判別されたときは終了し、空でないと判別されたときはステップS4へ進み(ステップS3)、一時記憶部から部品Pを一つ選択し(ステップS4)、部品Pの対応する処理単位を部品Aの対応する処理単位に追加し(ステップS5)、部品Pを一時記憶部から削除し(ステップS6)、部品Pは子をもつか否かを判別し、子をもつと判別されたときはステップS8へ進み、子をもたないと判別されたときはステップS3へ戻り(ステップS7)、部品Pの子を全て一時記憶部に登録する(ステップS8)。
【0039】
図10は貼り合わせ構造から新規のデータ構造を生成する処理のフローチャートである。以下に貼り合わせ構造から新規のデータ構造を生成する処理をステップ順に説明する。最初に、空のデータ構造をもつ部品Aを生成し(ステップS1)、最も上位の親を一時記憶部に登録し(ステップS2)、一時記憶部は空か否かを判別し、空と判別されたときは終了し、空でないと判別されたときはステップS4へ進み(ステップS3)、一時記憶部から部品Pを一つ選択し(ステップS4)、部品Pの対応するデータ構造を部品Aの対応するデータ構造に追加し(ステップS5)、部品Pを一時記憶部から削除し(ステップS6)、部品Pは子をもつか否かを判別し、子をもつと判別されたときはステップS8へ進み、子をもたないと判別されたときはステップS3へ戻り(ステップS7)、部品Pの子を全て一時記憶部に登録する(ステップS8)。
【0040】
図11はイベント配送処理のフローチャートである。以下にイベント配送処理をステップ順に説明する。最初に、状態変化は領域内部で発生したか否かを判別し、その判別結果がYESのときはステップS2へ進み、その判別結果がNOのときは終了し(ステップS1)、領域を共有する相手が有るか否かを判別し、その判別結果がYESのときはステップS3へ進み、その判別結果がNOのときは終了し(ステップS2)、領域を共有する全ての相手にイベントを配送し(ステップS3)、終了する。
【0041】
以下では、より具体的な例をもって説明する。
【0042】
図12は第一の具体例を示す図である。表示手段30の画面上には、画面上部に、四則演算機能を有する部品31と入力機能を有する部品32と帯グラフで出力表示機能を有する部品33とイメージで出力表示する機能を有する部品34が表示される。これらの部品は前述のように本システム内に予め記憶した部品であり、画面上にメニューで示され、入力手段であるマウスの操作により画面上に表示できる。画面下部は、四則演算機能部品31が最初に移動され、その上に入力機能部品32と出力表示機能部品33とイメージ出力表示機能部品34とが移動により四則演算機能部品31上に貼られた状態を示す。入力機能部品32の上に書き込む数値データが四則演算機能部品31に入力され、四則演算機能部品の加算が代表値として選択されていたときは、加算が実行され、加算結果のデータが出力表示機能部品33とイメージ出力表示機能部品34に入力され、出力表示機能部品33の帯の状態が変化し、イメージ出力表示機能部品34は表示する画像の状態、例えば走っている状態または寝ている状態というように変化する。このように、代表値変更手段7によれば一つの部品のもつ複数の値(スロット)の中で最も頻繁に使用される値を代表値(メインスロット)として変更(設定)可能とすることにより、例えば四則演算機能部品の加算、減算、乗算または除算の何れか一つを代表値として選択することにより一つの部品を機能に応じて利用でき、部品の汎用性が高まる。また、同じ機能を持つ部品であっても利用される場面(状況または利用目的)によって最も変更の頻度が高いデータは異なるため、このような値(最も頻繁に使用されるスロット)を代表値変更手段7により代表値(メインスロット)として変更(設定)可能とすることで一つの部品を様々な用途で使用することが可能となる。この代表値が代表値変更手段7により変更(設定)可能となることは、本発明のような復号部品、すなわち親の図形と子の図形との間に包含関係をもたせた図形を扱う場合、それぞれの復号部品を様々な用途で使用可能とし、再利用性を高めるために特に有効である。なお、入力機能部品32と出力表示機能部品33は、GUI(Graphical User Interface)部品であり、GUIで標準化した図形も部品として活用できる点は注目すべきことである。何故ならば知的資産としてエンドユーザでも複雑なプログラミングを必要とせずに、視覚的に図形を操作するだけで、上述のような例えば演算処理が可能となるからである。また、このように作成された新たな図形を保存して新たな知的資産とすることもできる。
【0043】
図13は第二の具体例を示す図であり、(a)はRDB連携部品を示す図であり、(b)はグラフ表示部品とテーブル表示部品の貼り合わせを示す図である。本図は、RDB(関係データベース)のデータを読み取り、テーブルの行と列にデータを書き込み、グラフを描かせる例を示す。RDB連携部品はそのための機能を有する部品であり、RDB連携部品の上にグラフ表示部品とテーブル表示部品を貼り合わせると、自動的にRDBからデータが読み取られ、テーブル表示部品上のテーブルの行と列にデータが書き込まれ、グラフ表示部品上にグラフが描かれる。なおRDB連携部品の上にグラフ表示部品とテーブル表示部品を貼り合わせる時に、RDB連携部品の複数のスロット(貼り合わされた部品と結合するポート)の内、各表示部品に対応するスロットを決定する。またRDB連携部品はRDBからグラフ表示部品とテーブル表示部品に必要なデータを検索するためのスロットでRDBと結合されている。
【0044】
図14は第三の具体例を示す図である。本図は計算機A、B、C間で協調作業を行うときに各計算機間の協調作業場でイベントが共有される例を示す。各計算機A、B、Cの各表示手段の画面41、42、43上には、イベント共有される部品44の領域が表示される。各画面41、42、43上においてイベント共有される部品44が占める領域以外の領域は、各計算機A、B、Cが他の計算機から独立して固有の処理に使用できる。それゆえ、計算機Aを先生が操作し、計算機Bと計算機Cをそれぞれ生徒が操作すると仮定すると、生徒がイベント共有される部品44の領域以外の画面上の領域を使用して先生に知られないで自由に計算機の操作ができる。もちろん、イベント共有される部品44の領域で生徒がマウスの操作または画面上の図形の変化によるイベントを発生させたときは、先生は即座にそのイベントによるイベント共有される部品44の変化を知ることができる。
【0045】
図15は第四の具体例を示す図である。本図中、図形の表示手段51はその画面に表示される部品、部品の位置と表示形態、および他の部品間との包含関係を管理する。包含関係指示手段52は表示手段51の画面上に表示された部品間に包含関係をもたせる手段であり、視覚化部品情報記憶手段53は表示手段51の画面上に表示される部品に対応する機能に関する情報を主に記憶する手段である。構造変換手段54は部品のデータ構造または処理構造を変換して新規な構造を有する部品を作成する手段である。包含関係管理手段51’は、表示手段51の画面上に表示される部品間の包含関係(親子関係)を管理する。図示する包含関係管理手段51’は、表示手段51の画面上に表示される部品A、B、Cの包含関係は、AはBの親、BはCの親であることを示す。本図の視覚化部品情報記憶手段53に示す表は部品A、B、Cの関係を示し、部品Aは入力デバイスからの入力処理に、部品Bは入力されたデータを処理しその結果を出力するある種のフィルタ処理に、部品Cは出力デバイスへの出力処理に対応づけられていることを示す。構造変換手段54は部品を含む側(親)を入力とし、部品に含まれる側(子)を出力とするように処理を変換する。また対応づけの処理は、マウスの操作入力を受けた包含関係指示手段52により、部品Aの上に部品Bを載せ、部品Bの上に部品Cを載せるよう図形を移動する処理を実行すると共に、実行される。これにより入力デバイスからのデータをフィルタリングし、出力デバイスに出力する一連の処理が定義されたこととなる。
【0046】
図16は図形の操作例を示す図であり、(a)は図形の複写を示す図であり、(b)は図形の剥離を示す図である。図16の(a)は、部品A、B、Cを対応する図形A、B、Cで示し、部品A、B、Cからなり、AはBの親、BはCの親である部品61をマウスで右ボタンクリックし画面上に示されるメニューのCOPYを左ボタンクリックし、部品61に表示されるハンドルラバー60をマウスでポイントしドラッグして移動し、所望の位置で左ボタンクリックすることにより部品62が複写されることを示す。複写の結果、部品61と同一部品62が新たに作成され、以後部品61と部品62は独立して使用できる。図示する部品62は、部品61の複写直後の部品A、B、Cが独立の処理により部品A’、B’、C’に変化した状態を示す。図16の(b)の上部は部品Aと部品Bと部品Cからなる部品63から、部品Cをクリックしドラッグして移動し所望の位置でドロップすることにより部品Cを剥がして移動した状態を示す。部品63は入力のみ与えて処理のみ行う部品となる。図16の(b)の下部は部品A’と部品B’と部品C’からなる部品65から部品B’をクリックしドラッグして移動し所望の位置でドロップすることにより部品B’と部品C’をまとめて剥がして移動した状態を示す。部品66は処理をして出力のみ行う部品となる。
【0047】
図17は本発明による図形の貼り合わせを示す図であり、(a)は貼り合わせる前の図であり、(b)は貼り合わせた後の図である。図17の(a)は部品B’と部品C’からなる部品67を部品Aと部品Bからなる部品68に貼り合わせる前の図であり、図17の(b)は部品67を部品68に貼り合わせて部品69を作成した後の図である。部品69は部品Aへの入力データが部品Bと部品B’により二度繰り返して同一処理され、部品C’へ出力する部品となる。
【0048】
図18は本発明による分岐処理を実行する図形を作成する例を示す図であり、(a)は作成前の図であり、(b)は作成後の図である。分岐処理部品73は入力されたデータを判定し、その判定結果に応じて処理の実行を決定する。入力処理部品74は入力デバイスからの入力処理を実行し、出力処理部品75は出力デバイスへの出力処理を実行する。部品74をクリックしドラッグし部品73上のIFの右側の位置にドロップし、同様に部品75をクリックしドラッグし部品73上のTHENの右側の位置にドロップして部品74と部品75を部品73上に移動することにより、条件に応じて実行する部品を作成できる。
【0049】
図19は本発明によるデータ構造の異なる2つの図形を移動して異なるデータ構造をもつ1つの図形を作成する例を示す図であり、(a)は作成前の図であり、(b)は作成後の図である。図19の(a)は数値型データからなる部品77と文字型データからなる部品78を移動して空の部品79に貼り合わせる状態を示す。図19の(b)は部品77と部品78が部品79の上に貼り合わされて新たな部品79が作成された状態を示す。なお部品79はデータ構造を作成するための部品である。
【0050】
図20は異なるデータ構造をもつ1つの図形の複写を示す図である。数値型データからなる部品77と文字型データからなる部品78をディクショナリ部品の上に移動して作成した部品79を複写して同一部品83を作成した状態を示す。複写後は2つの同一部品79と部品83は独立して操作でき、部品83をなす部品81と部品82のデータは部品79と独立して変化できる。部品79、83はRDBのレコードに適用できる。
【0051】
図21は異なるデータ構造をもつ2つの同一図形をディクショナリ図形の上に貼り合わせた図形を示す図である。本図は部品79と部品83をディクショナリ部品84上に複写し、数値型データからなる部品77と文字型データからなる部品78および数値型データからなる部品81と文字型データからなる部品82を含む数値型データと文字型データが混在した部品84を作成できることを示す。同様に複雑なデータ構造を含む部品が作成されることが判る。なお部品84はRDBの復表に適用できる。
【0052】
[サーバー装置について]
次に、本発明の一実施形態であるサーバー装置について説明する。
【0053】
図22は、このサーバー装置201のネットワーク構成を説明するブロック図である。本実施形態のサーバー装置201は、インターネット202上のサーバー装置である。端末装置203は、携帯電話、PHS、通信機能を備えたPC、PDA(Personal Digital Assistant)などであり、移動体通信網204、ゲートウェイ205、インターネット202を介して、サーバー装置201と通信を行うことができる。サーバー装置201は、インターネット202を介して(場合によっては、さらにはイントラネットなどを介して)、他のサーバー装置(第1サーバー装置211、第2サーバー装置212、…、第nサーバー装置21n)と通信を行うことができる。
【0054】
図23は、サーバー装置201の電気的な接続のブロック図である。サーバー装置201は、各種演算を行い、各部を集中的に制御するCPU221と、各種のROM、RAMからなるメモリ222とがバス223で接続されている。バス223には、磁気記憶装置224、インターネット202と通信を行う通信制御装置225、入力装置226、表示装置227が所定のインターフェイスを介して接続されている。
【0055】
サーバー装置201には、アプリケーション228がセットアップされている。このアプリケーション228は、前述のソフトウェア部品を構築し、取り扱うことができるソフトウェアである。
【0056】
すなわち、アプリケーション228に基づいて、サーバー装置201は、所定の機能をもつプログラムを1つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置227の画面上に表示する(視覚化部品記憶手段)。また、この部品に対応する前述の機能のプログラムを記憶し、当該プログラムの実行により得られるデータを視覚化部品記憶手段に出力する(処理単位記憶手段)。さらに、入力装置226からの操作情報を受け、部品の複写、削除、合成、分解などの編集を行い、部品を表す図形と他の部品を表す図形との間で包含関係をもたせる(包含関係指示手段)。そして、部品間の包含関係を記憶する(包含関係管理手段)。さらに、包含関係管理手段に記憶された部品間の包含関係に基づいて部品間のデータの受け渡しをさせる(データ連携手段)。これらの機能の詳細については前述したとおりである。
【0057】
このような各機能により構築されるソフトウェア部品は、表示装置227上では可視化され画面上で操作できるオブジェクト(図形)である。部品は、例えば、Webページ内に表示されるテキストや画像を取得する部品、データベースから値を取得する部品、検索サービスなどのWebアプリケーションを利用する部品、など様々な機能のものが使用される。サーバー装置201を運営し、Web上でサービスを提供するプロバイダーは、予めそれら複数のサービス間のデータ入出力の関係を定義し、連係させたひとつのアプリケーション231を構築する。前述のように、部品はそれぞれ種類ごとにデータの保持と機能の呼び出しのためにスロットと呼ばれるインターフェイスを備えている。部品間の連係は、部品(を表す図形)同士を画面上で操作して貼り合わせることで親子関係を持たせ、子のスロットを親のスロットに結合することで定義される。
【0058】
このような親子部品として構築されたアプリケーション231により、サーバー装置201では、機能の異なる複数のソフトウェア部品間の包含関係により、サーバー装置201は次のような処理を行うことができる。図24は、このような処理を説明するタイミングチャートである。
【0059】
まず、クライアントである端末装置203から条件の入力があったときは(ステップS1のY)、その条件に応じた問い合わせをインターネット202(さらに、インターネット202に接続されたイントラネット等も含む。以下同じ)上の第1サーバー装置211(第1ロケーション)に行い(ステップS2)、この問い合わせに応じたデータを第1サーバー装置211から取得し、このデータの取得があったときは(ステップS3のY)、この取得したデータに応じた問い合わせをインターネット202上の第2サーバー装置212(第2ロケーション)に行って(ステップS4)、第2サーバー装置212から問い合わせに応じたデータを取得し(ステップS5のY)、……、インターネット202上の所定の第(n−1)ロケーションから取得したデータに応じたデータをインターネット202上の第nサーバー装置21n(第nロケーション)から取得したときは(nは2以上の整数)(ステップS6のY)、この第nサーバー装置21nから取得したデータを端末装置203に送信する(ステップS7)処理を行うものである。なお、第1ロケーション〜第nロケーションは、サーバー装置に限定されるものではなく、データベース、特定のアプリケーションなどであってもよい。
【0060】
また、各ロケーションのうち、第aロケーション(aは2以上、n以下の何れかの整数)を複数としてもよいし、第bロケーション(bは1以上、(n−1)以下の何れかの整数)を複数としてもよい。
【0061】
[システム構築例について]
次に、アプリケーション228により構築されたアプリケーション231によるシステム(以下、「部品システム」という)の具体例について説明する。
【0062】
本例では、前述の親子関係を持つ部品の間において3種類のメッセージが交換される。子から親へはSetメッセージとGimmeメッセージ、親から子へはUpdateメッセージが送られ、それによってデータの交換や機能の呼び出しが行われる。
【0063】
部品化されたデータやアプリケーションはすべてスロットとして統一されたインターフェイスを持つため、スロット間の結合を自由に変更することができる。このとき、部品は通常のプログラムのようにソースコードをコンパイルして新しいプログラムを作成する必要は無く、動作可能な状態のまま動的に結合を行い連係することができる。
【0064】
サービスを提供するサーバー装置201においては、部品システムを備えていて、前述のソフトウェア部品の技術により、連係の対象となるデータやサービス、例えば、Webページ、Webアプリケーション、Webサービス、データベースなどのプログラムを、それぞれ部品化している。
【0065】
サービスを部品化した部品は、ひとつの部品又は複数の部品を貼り合わせた合成部品から構成される。各部品はそれぞれ単体でも動作可能なものであり、他の部品と連係せずに単独のサービスとしても外部から利用可能なものである。
【0066】
サーバー装置201において複数のサービスを連係させる場合、各サービスに対応した部品を貼り合わせ、部品間のスロットを接続することで入出力のデータの関係を定義づける。複数の部品を連係させるとき、それぞれの部品を互いに貼り合わせるだけでなく、一方の部品において共有コピーを作成し、別の部品に貼り合わせスロットを結合することで連係させることができる。
【0067】
サーバー装置201で動作する部品システムにおいては、部品の情報を取得し、又は、部品のスロットを操作するWebサービスとして外部にインターフェイスを公開するオペレーションをWebサービス記述言語(WSDL)によって定義する。このWebサービスを、以下、「WS(Web Service)」と呼ぶ。
【0068】
スロットに関するWebサービスのオペレーションには、部品間のSetメッセージに対応するinvokeSet、Gimmeメッセージに対応するinvokeGimme、Updateメッセージに対応するinvokeUpdate、SetとGimmeをinvokeSetAndGimmeが定義される。
【0069】
部品のインスタンスを取得するオペレーションには、getPadList,getPadByName,getSubPadListが定義される。
【0070】
部品の情報を取得するオペレーションにはgetPadXmlが定義される。
【0071】
サーバー装置201では、http(HyperText Transfer
Protocol)によって通信を行うWebサーバーを動作させる。このWebサーバーは、さらにSOAP(Simple
Object Access Protocol)プロトコルを処理する機能を備えている。このサーバーを、以下では「SS(SOAP Server)」と呼ぶ。
【0072】
SSはSSをコントロールする部品(SS Control部品)から起動、停止を行うことができる。SSには外部に公開される部品のインスタンスをリストに登録する。SSに登録されていない部品のインスタンスは外部から操作することはできない。SSへの部品の登録は、ポップアップメニューから登録を選択する、又は、SS Control部品(を表す図形)へ部品(を表す図形)をドラッグアンドドロップすることで行われる。
【0073】
WSのオペレーションにおいて操作対象となる部品のインスタンスは、名前、クラス名、ID番号のいずれか、又はその組み合わせによって指定される。
【0074】
SSはSOAPプロトコルによって外部のクライアントからWSを利用可能とする。WSのクライアントは、端末装置203となるPC(で動作するプログラム)、携帯電話(で動作するプログラム)、PDA(で動作するプログラム)など、SOAPプロトコルで送受信できるすべてのデバイス(で動作するプログラム)を含む。
【0075】
SSはクライアントからSOAPプロトコルによってWSのオペレーションのリクエストを受信し、XML(eXtensible Markup Language)で記述されたリクエストの内容を解釈し、部品システムで動作している部品にメッセージを送信し、その実行結果を部品から受信し、クライアントに対してXML(eXtensible Markup Language)で記述されたレスポンスを送信する。
【0076】
クライアントはユーザーからの操作又はプログラムなどによりデータの入力を行い、SSにSOAPプロトコルによってWSのオペレーションのリクエストを送信する。WSはオペレーションの実行結果をレスポンスとしてクライアントに返信し、レスポンスを受信したクライアントはそのデータを解釈し、画面に表示を行ない、あるいは他のプログラムの実行を行う。
【0077】
WSには以下のオペレーションが定義される(()内はオペレーションの引数)。
【0078】
・getPadList(クラス名)クラス名で指定される部品のリストを返す。
【0079】
・getSubPadList(部品名またはクラス名+ID)引数で指定される部品の子部品のリストを返す。
【0080】
・getPadNameOf(部品名)引数で指定される部品を返す。
【0081】
・getPadXml(部品名またはクラス名+ID)引数で指定される部品のXMLフォーマットのデータを返す。
【0082】
・invokeSet(部品名またはクラス名+ID、スロット名、データ)引数で指定される部品にSetメッセージを送信し、実行結果を返す。
【0083】
・invokeGimme(部品名またはクラス名+ID、スロット名)引数で指定される部品にGimmeメッセージを送信し、その実行結果を返す。
【0084】
・invokeUpdate(部品名またはクラス名+ID)引数で指定される部品にUpdateメッセージを送信し、その実行結果を返す。
【0085】
・invokeSetAndGimme(部品名またはクラス名+ID、Setスロット名、データ、Gimmeスロット名)引数で指定される部品にSetメッセージを送信したのち、続けてGimmeメッセージを送信し、その実行結果を返す。
【0086】
次に、端末装置203が第1〜第nロケーションから所望のデータを抽出する具体的な手段について説明する。サーバー装置201でhttpによって通信を行う前述のWebサーバーとの通信を行う部品は、次のような手段により、その通信を行う。
【0087】
Webサーバーに対してクライアントとなるソフトウェア部品は、HTTPプロトコルによってリクエストを送信し、レスポンスとしてデータを受信する。データの種類は、例えばHTMLやXMLなどの形式のテキストデータ、JPEG形式の画像データなどである。受信されたデータは、部品の機能に応じて処理もしくは表示が行われる。例えば、ブラウザ部品はHTMLデータの表示を、イメージ部品は画像データの表示を、XMLビュー部品はXMLデータの構造の表示を、それぞれ行う等である。
【0088】
また、部品システムにおいては、HTMLやXMLなどの構造化されたテキストデータからその一部のデータを抽出し、スロットを介して処理する。
【0089】
HTMLデータは、例えばWebブラウザの内部などで処理されるとき、その構造はDOMツリーと呼ばれる木構造で表現される。またDOMツリーの部分構造を表すサブツリーを指定するときには、XPathと呼ばれる式で表現される。このHTMLデータに対するURLとXPath式の組み合わせにより、Webサーバーから取得されたHTMLデータ内の部分データを抽出することが出来る。
【0090】
前述のXPathの指定は、表示されたHTMLデータに対しユーザーの操作によって部分データを指定する特殊なクリッピング機能を持つクリッピング・ブラウザによって自動的に生成することができる。
【0091】
Webアプリケーションは、部品システムの部品によってソフトウェア部品化される。部品化された部品はオリジナルのWebアプリケーションに対してネットワークを通じてデータの入出力を行う。
【0092】
部品システムで、Webアプリケーションを部品化するとき、まずクリッピング・ブラウザによってWebページ内の入力フォームの一部分を指定してクリッピングを行い、部品化する。次に、クリッピング・ブラウザにおいてそのWebアプリケーションにリクエストを送信し、返信されたWebアプリケーションの実行結果を表示するWebページから出力結果を再びクリッピングを行い部品化する。クリッピングされた部品は他の部品と同様にスロットの結合によってデータの入出力を行うことができる。
【0093】
複数のWebアプリケーションを連携させるとき、各Webアプリケーションの入力と出力をそれぞれクリッピングして部品化し、一つのWebアプリケーションの出力を他のWebアプリケーションの入力に対して部品の貼り合わせとスロット結合によって連結する。これにより、一つのWebアプリケーションに対して入力を行うと、その出力が自動的に他のWebアプリケーションへの入力となり、複数のWebアプリケーションの連携が実現される。
【0094】
なお、“International Journal of
Human-Computer Studies 60 (2004) 489-526; Media architectures for re-editing
and redistributing intellectual assets over the Web; Yuzuru Tanaka, Kimihito
Ito, Daisuke Kurosaki; Meme Media Laboratory, Hokkaido University; 17 December
2003”も参照。
【0095】
[運用例について]
以下、以上のようなシステム構築例における具体的な運用例について説明する。
【0096】
図25を参照して、クライアントとなる端末装置203のアプリケーション134は、通常の携帯電話などのアプリケーションと同様の方法で開発することができる。開発言語にはJavaなどを用いることができる。このアプリケーション134により、端末装置203は、サーバー装置201と通信を行って、後述のとおり所定のデータを取得することが可能となる。
【0097】
アプリケーション134に渡されるパラメータとしては、SS135のURLが設定される。アプリケーション134は、SS135と同一のアドレスを持つサーバー装置201からWebサーバー133を介してダウンロードされる。端末装置203のアプリケーション134は、通常、それがダウンロードされたサーバー装置201のアドレスに対してのみ通信が許される制約があり、このアプリケーション134もダウンロードされたサーバー装置201のアドレスとのみ通信が可能である。
【0098】
図26は、本運用例のシステム全体の説明図である。端末装置203のアプリケーション134は、SS(SOAP Server)135を介して前述の親子部品であるアプリケーション231と通信を行い、アプリケーション231は、第1サーバー211である位置情報サービス141、第2サーバー212であるwebカメラサービス142,143と通信を行うことができる。
【0099】
この例は、サーバー装置201が、無線LAN端末位置情報サービスとWebカメラサービスとを連係させる事例である。すなわち、無線LANシステムにおいて、異なる部屋に配置されたアクセスポイントへの無線端末の接続情報を提供する位置情報サービス141と、各部屋に配置されたカメラの画像を、ネットワークを介して提供するwebカメラサービス142,143と、をサーバー装置201連係させる例である。
【0100】
無線LANの位置情報サービス141は、ひとつのWebサーバーにおいてWebアプリケーションとして実行される。CGIの引数には、端末名や部屋名、入室や退室などのイベントの種類などを入力引数とし、部屋名を指定すると、その部屋のアクセスポイントに接続を行った端末の名前やイベント名、時刻などが出力される(図27は、その画面表示の例である)。また端末名を指定するとその無線端末が接続を行ったアクセスポイントの部屋名、端末名、イベント種別、時刻などを含んだデータが出力される。出力されるデータはWebブラウザで表示されるHTMLデータ又はRSSフォーマットのXMLデータである。
【0101】
CGIに入力されるパラメータは、端末名(hostname)、部屋名(1F,2F,3F1,3F2,4F)、イベント種別(退室leave、入室enter、接続connect、切断lost)、表示アイテム数(limit)、である。
【0102】
位置情報サービス141にアクセスするための、アプリケーション231の一部である親子部品(位置情報サービス部品)は、図28に示すように、検索条件を設定してWebアプリケーションを利用するためのURL(Uniform Resource Locator)の文字列を生成する条件入力部品101、このURLの文字列によってサービスにアクセスし、RSSフォーマットのXMLデータを取得するRssClient部品102、XMLデータを処理してXPathで各要素を取り出すXmlView部品103、RSSデータのitemノードを処理して、子ノードの要素を取り出すRSSItem部品104などから構成される。
【0103】
条件入力部品101は、チェックボックスやポップアップメニューをユーザーが操作して条件を設定してURLの文字列をStringスロットに出力する。Stringスロットは、RSSクライアント部品のurlスロットに結合されている。Stringスロットの値が変更されると、結合されたurlスロットに対してSetメッセージが送信される。
【0104】
RSSClient部品102は、urlスロットに対してURLの文字列をSetメッセージにより受け取ると、そのURL文字列で特定される端末位置情報サービスのWebアプリケーションにアクセスして設定された条件に対するXMLデータを取得し、rssスロットにXmlDocumentオブジェクトを出力する。rssスロットは、XmlView部品103のbaseElementスロットに結合されている。rssスロットの値が変更されると、baseElementスロットに対してSetメッセージが送信される。
【0105】
XmlView部品103は、baseElementスロットに対してXmlDocumentオブジェクトをSetメッセージで受け取ると、その値を内部変数baseElementに保持する。また、XPathスロットに設定されたXPath文字列によってXmlDocumentオブジェクトからXmlNodeListオブジェクトを取り出して、内部変数SelectedNodeListに保持する。SelectedNodesスロットに対してGimmeメッセージを受け取ると、SelectedNodeListの値が返される。
【0106】
RSSItem部品104は、rssItemスロットに対してXmlNodeListオブジェクトを受け取ると、その先頭要素のXmlNodeオブジェクトを内部変数rssItemに保持する。また、XmlNodeオブジェクトの子ノードのノード名をスロットとして追加登録する。これにより、子ノードの要素の値を、スロットを介して取り出すことが可能となる。RSSのitemノードの場合、子ノードには少なくともtitle要素、link要素、description要素が含まれる。端末位置情報サービスでは、さらにdate要素が存在する。RSSItem部品104には、複数の文字列部品(図示せず)が貼り合わされ、titleスロット、linkスロット、descriptionスロットに結合され、その値を表示する。
【0107】
Webカメラサービス142,143は、一つあるいは部屋ごとに設置された第2ロケーションとなる複数のサーバー装置において実行されるWebアプリケーションである。部屋毎に設置されたサーバー装置にアクセスすると、その部屋の様子を写したカメラの画像が出力されることとなる(図29は、その画面表示の例である)。
【0108】
図30に示すように、Webカメラサービス142,143を利用する、アプリケーション231の一部である部品は、各部屋に応じたWebカメラサービス142,143のURLのリストを保持し、メニューには部屋名を表示するComboBox部品111と、urlスロットに入力されたURLに応じてWebカメラサービス142,143にアクセスし、画像を取得して内部変数bitmapに保持するImageView部品112とから構成される。ImageView部品112のjpegスロットにGimmeメッセージを送信すると、bitmapに保持される画像のJPEG形式のデータが返される。ComboBox部品111でメニューから一つの部屋名が指定されると、ImageView部品にSetメッセージによってURLが送信され、ImageView部品はURLに応じたWebカメラサービス142,143にアクセスして画像を取得し、表示する。
【0109】
図31に示すように、図28の位置情報サービス部品(符号122)と図30のWebカメラサービス部品(符号124)との連係は、次のように実施される。位置情報サービス部品122は、位置情報サービス141から得られたRSSから、SSItem部品104によって部屋名を、descriptionスロットを介して取り出して文字列部品121で表示する。そして、この文字列部品121の共有コピーが作成され(符号123)、Webカメラサービス部品124のComboBox部品111に貼り合わされ、SelectKeyスロットに結合される。位置情報サービス部品122による画面表示の例を図32に示す。
【0110】
位置情報サービス部品122に検索条件が入力されてスロットの値が変化すると、その検索結果である文字列部品121の値も変わり、共有コピーを介してWebカメラサービス部品124に貼られた文字列部品123の値が変わって、Setメッセージによって部屋名のデータとして伝播し、Webカメラサービス部品124はその部屋名の画像を表示するようになる。
【0111】
このようにして、サーバー装置201により、位置情報サービス部品122で検索して得られた部屋名は、自動的にWebカメラサービス部品124に入力され、その部屋の画像が位置情報サービス部品122の検索結果に応じて表示されるようになる。
【0112】
文字列部品121,123の共有コピーは、部品システムの中で部品が動作実行中の状態のまま生成され、また、位置情報サービス部品122やWebカメラサービス部品124への貼り合わせやスロット結合も、動的に行うことが出来る。通常のプログラミングのようにソースコードを書き換え、コンパイルを行って実行コードを生成し、実行するといった手順は必要としない。
【0113】
図25、図26を参照して、このような親子部品であるアプリケーション231の機能により、端末装置203でアプリケーション134を起動すると、起動初期画面が端末装置の画面に表示され、ユーザーは検索条件を入力することができる。ユーザーの入力操作で部屋名が指定され、所定の検索ボタンが押されると、アプリケーション134はURLのパラメータを設定し、SOAPリクエストを生成して、SS135に対してリクエスト(invokeSet)を送信することにより、位置情報サービス部品(部品145の中に含まれる)を構成するRSSClient部品102のURLスロットに値をセットする。RSSClient部品102は、位置情報サービス141にURLスロットにセットされた値に基づいてURLを用いてアクセスし、RSSフォーマットのXMLデータを取得する。RSSClient部品102は、取得したRSSデータをXMLView部品103にSetメッセージでBaseElementスロットにセットする。一連の処理が完了すると、リクエストに対するレスポンスがアプリケーション134に返される。
【0114】
次に、アプリケーション134は、XMLView部品103に対してRSSデータのitemノードからデータを取り出すためにXPath文字列を設定し、リクエスト(invokeSetAndGimme)を送信する。一つは先頭のitemノードのdate要素を指定するXPathをXMLView部品のXPathスロットにセットし、valueOfNodeスロットから値を取り出したものをレスポンスとして受け取る。同様にして先頭のitemノードのtitle要素を指定するXPathによってその値を取り出す。
【0115】
アプリケーション134は、レスポンスとして受信したdate要素とtitle要素を、入力として指定した部屋に接続した端末として端末装置203画面に表示を行う。
【0116】
携帯電話アプリケーション147は、続けて、Webカメラサービス142,143を利用するWebカメラサービス部品(部品145に含まれる)を構成するImageView部品112に対してリクエスト(invokeGimme)を送信し、Imageスロットから画像データを取得してそれを画面に表示する。
【0117】
従来は、例えば端末装置203上で2つのサービス(本例では、位置情報サービス141とwebカメラサービス142,143)を利用するときは、それぞれのサービスに対応したアプリケーションを個別に利用する必要があった。このような場合、それぞれのアプリケーションは連係していないので、位置情報サービス141から得られた情報は、Webカメラサービス142,143に対しては手動で入力操作を行う必要がある。入力条件を変更して繰り返し利用するときには、アプリケーションの切り替えが必要であり、操作が煩雑となる。
【0118】
これに対して、本実施形態の部品システムを用いた場合は、2つのサービスはSS135によって一つのサーバー装置上で動くサービスとして外部からアクセスすることが出来る。そのため、外部のクライアントからは、一つのサーバー装置上でサービスが行われているのと等価に扱うことが可能となる。
【図面の簡単な説明】
【0119】
【図1】部品システムの原理構成図である。
【図2】視覚化部品情報記憶手段と処理単位記憶手段との詳細説明図である。
【図3】視覚化部品発生手段の処理のフローチャートである。
【図4】データ連携手段の処理の前半のフローチャートである。
【図5】データ連携手段の処理の後半のフローチャートである。
【図6】データ連携手段における部品更新処理の詳細フローチャートである。
【図7】描画時の図形連動処理のフローチャートである。
【図8】イベント発生時の図形連動処理のフローチャートである。
【図9】貼り合わせ構造化から新規の処理構造を生成する処理のフローチャートである。
【図10】貼り合わせ構造化から新規のデータ構造を生成する処理のフローチャートである。
【図11】イベント配送処理のフローチャートである。
【図12】第一の具体例を示す説明図である。
【図13】第二の具体例を示す説明図である。
【図14】第三の具体例を示す説明図である。
【図15】第四の具体例を示す説明図である。
【図16】図形の操作例を示す図である。
【図17】図形の貼り合わせを示す図である。
【図18】分岐処理を実行する図形を作成する例を示す図である。
【図19】データ構造の異なる2つの図形を移動して異なるデータ構造をもつ1つの図形を作成する例を示す図である。
【図20】異なるデータ構造をもつ1つの図形の複写を示す図である。
【図21】異なるデータ構造をもつ2つの同一図形をディクショナリ図形の上に貼り合わせた図形を示す図である。
【図22】本発明の一実施形態のシステム構成のブロック図である。
【図23】サーバー装置の電気的な接続のブロック図である。
【図24】サーバー装置が実行する処理のフローチャートである。
【図25】端末装置へのアプリケーションのダウンロードとSSとの関係を説明する説明図である。
【図26】端末装置とサーバー装置との連携について説明する説明図である。
【図27】無線LANの端末位置情報サービスによる画面表示の例である。
【図28】位置情報サービス部品の機能ブロック図である。
【図29】Webカメラサービスによる画面表示の例である。
【図30】Webカメラサービス利用部品の機能ブロック図である。
【図31】位置情報サービス部品とWebカメラサービス部品との連携を説明する図である。
【図32】Webカメラサービスによる画面表示の例である。
【符号の説明】
【0120】
201 サーバー装置
203 端末装置
231 アプリケーション(親子部品)

【特許請求の範囲】
【請求項1】
所定の機能をもつプログラムを1つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、
前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、
前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、
部品間の包含関係を記憶する包含関係管理手段と、
前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、
機能の異なる複数の前記部品間の包含関係により、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第1ロケーションから取得し、この第1ロケーションから取得したデータに応じたデータをネットワーク上の第2ロケーションから取得し、……、ネットワーク上の所定の第(n−1)ロケーションから取得したデータに応じたデータをネットワーク上の第nロケーションから取得して(nは2以上の整数)、この第nロケーションから取得したデータを前記クライアントに送信する入出力手段と、
を備えているサーバー装置。
【請求項2】
前記入出力手段は、前記各ロケーションのうち第aロケーションを複数としている(aは2以上、n以下の何れかの整数)請求項1に記載のサーバー装置。
【請求項3】
前記入出力手段は、前記各ロケーションのうち第bロケーションを複数としている(bは1以上、(n−1)以下の何れかの整数)請求項1又は2に記載のサーバー装置。
【請求項4】
所定の機能をもつプログラムを1つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、
前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、
前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、
部品間の包含関係を記憶する包含関係管理手段と、
前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、
を備えたサーバー装置で、機能の異なる複数の前記部品間の包含関係により実現される、
ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第1ロケーションから取得し、この第1ロケーションから取得したデータに応じたデータをネットワーク上の第2ロケーションから取得し、……、ネットワーク上の所定の第(n−1)ロケーションから取得したデータに応じたデータをネットワーク上の第nロケーションから取得して(nは2以上の整数)、この第nロケーションから取得したデータを前記クライアントに送信する処理を実行する入出力工程を、
含んでなるデータ取得方法。
【請求項5】
前記入出力工程は、前記各ロケーションのうち第aロケーションを複数としている(aは2以上、n以下の整数)請求項4に記載のデータ取得方法。
【請求項6】
前記入出力工程は、前記各ロケーションのうち第bロケーションを複数としている(bは1以上、(n−1)以下の整数)請求項4又は5に記載のデータ取得方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate


【公開番号】特開2007−35021(P2007−35021A)
【公開日】平成19年2月8日(2007.2.8)
【国際特許分類】
【出願番号】特願2006−149651(P2006−149651)
【出願日】平成18年5月30日(2006.5.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(503360115)独立行政法人科学技術振興機構 (1,734)
【出願人】(504173471)国立大学法人 北海道大学 (971)
【Fターム(参考)】