(57)【要約】      （修正有）【課題】ネットワーク上での異なるサーバーで提供される複数のサービスを同時に利用でき、しかも、新規なプログラム作成のためのコストを低減することができるようにする。【解決手段】機能の異なる複数の部品間の包含関係により構成されている部品の機能により、クライアントとなる携帯電話アプリケーション２３１は、あるＷｅｂサーバー装置（位置情報サービス１４１）及び別のＷｅｂサーバー装置（Ｗｅｂカメラサービス１４２，１４３）に対して同時にアクセス可能である。【選択図】図２６
2007035021.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能をもつプログラムを１つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、
前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、
前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、
部品間の包含関係を記憶する包含関係管理手段と、
前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、
機能の異なる複数の前記部品間の包含関係により、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第１ロケーションから取得し、この第１ロケーションから取得したデータに応じたデータをネットワーク上の第２ロケーションから取得し、……、ネットワーク上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをネットワーク上の第ｎロケーションから取得して（ｎは２以上の整数）、この第ｎロケーションから取得したデータを前記クライアントに送信する入出力手段と、
を備えているサーバー装置。
【請求項２】
前記入出力手段は、前記各ロケーションのうち第ａロケーションを複数としている（ａは２以上、ｎ以下の何れかの整数）請求項１に記載のサーバー装置。
【請求項３】
前記入出力手段は、前記各ロケーションのうち第ｂロケーションを複数としている（ｂは１以上、（ｎ−１）以下の何れかの整数）請求項１又は２に記載のサーバー装置。
【請求項４】
所定の機能をもつプログラムを１つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、
前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、
前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、
部品間の包含関係を記憶する包含関係管理手段と、
前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、
を備えたサーバー装置で、機能の異なる複数の前記部品間の包含関係により実現される、
ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第１ロケーションから取得し、この第１ロケーションから取得したデータに応じたデータをネットワーク上の第２ロケーションから取得し、……、ネットワーク上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをネットワーク上の第ｎロケーションから取得して（ｎは２以上の整数）、この第ｎロケーションから取得したデータを前記クライアントに送信する処理を実行する入出力工程を、
含んでなるデータ取得方法。
【請求項５】
前記入出力工程は、前記各ロケーションのうち第ａロケーションを複数としている（ａは２以上、ｎ以下の整数）請求項４に記載のデータ取得方法。
【請求項６】
前記入出力工程は、前記各ロケーションのうち第ｂロケーションを複数としている（ｂは１以上、（ｎ−１）以下の整数）請求項４又は５に記載のデータ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバー装置及びデータ取得方法に関する。
【背景技術】
【０００２】
特許文献１には、ソフトウェア部品（以下、単に「部品」という）について開示されている。この部品は、プログラムやデータを、その機能を保ったまま部品化したもので、この部品は表示装置には所定の色や形の図形で表示される。この色や形の違いはその部品の（プログラムやデータの）機能の違いを表している。
【０００３】
部品は複数のスロットというプログラムやデータの入出力口を備えている。表示装置上で部品を表す図形を移動させて、子となる部品を親となる部品の上に貼り付けると、親となる部品のスロットに子となる部品のスロットが結合して親子部品が形成され、スロットを介して親子部品間で機能やデータの受け渡しを行うことができる。
【０００４】
このような部品を用いれば、ソフトウェアの知識に乏しい一般人でも容易にソフトウェアやコンテンツを作成することができる。
【特許文献１】特許第３６６０３６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、携帯電話においては、Ｗｅｂブラウザ機能を備え携帯電話上でＷｅｂページを閲覧し、様々なアプリケーションを利用することができる。
【０００６】
しかしながら、携帯電話で動作するアプリケーションは、通常そのアプリケーションをダウンロードした単一のサーバーとの通信しか許されておらず、一度に複数のサーバーとの通信は不可能である。そのため異なるサーバーで提供される複数のサービスを利用するにはそれぞれ別々のアプリケーションを切り替えながら利用しなければならない。
【０００７】
このように、携帯電話では同時に起動できるアプリケーションはひとつに限られるため、切り替える操作には手間がかかり、また異なるアプリケーション間でのデータの受け渡しや機能の連携は想定されておらず、あるアプリケーションで得たデータを別のアプリケーションの入力とするには、ユーザー自身が操作することで入力しなおす煩雑な作業が必要である。
【０００８】
また、パーソナル・コンピュータ（ＰＣ）においても、複数のサービスを利用しようとするときはＷｅｂブラウザなどで複数のウィンドウやページを開き、これらを切り替えながらそれぞれの画面でユーザーが手動で入力操作を行う必要があり、やはり煩雑であるという不具合がある。
【０００９】
これに対し、Ｗｅｂサービスとして、ＷＳＤＬ(Web Services
Description Language)が定義され公開されているサービスは、例えばアプリケーション・サーバーにおいてBPEL4WSなどを利用することで複数のサービスを連係させることが可能ではあるが、ＨＴＭＬで記述された単なるＷｅｂページ内のテキストデータやＣＧＩ（Common Gateway Interface）を利用したＷｅｂアプリケーションを連係させ、あるいはこれらをＷｅｂサービスに変換することは困難である。通常、このようなデータやアプリケーションを連係させるには個別にプログラムを作成する必要があり、新しく別のアプリケーションを組み合わせて連係するためにはプログラムを修正しなければならないなど、その製造コストは大きい。
【００１０】
そこで、本発明の目的は、ネットワーク上での異なるサーバーで提供される複数のサービスを同時に利用でき、しかも、新規なプログラム作成のためのコストを低減することができるようにすることである。
【課題を解決するための手段】
【００１１】
本発明は、所定の機能をもつプログラムを１つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、部品間の包含関係を記憶する包含関係管理手段と、前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、機能の異なる複数の前記部品間の包含関係により、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第１ロケーションから取得し、この第１ロケーションから取得したデータに応じたデータをネットワーク上の第２ロケーションから取得し、……、ネットワーク上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをネットワーク上の第ｎロケーションから取得して（ｎは２以上の整数）、この第ｎロケーションから取得したデータを前記クライアントに送信する入出力手段と、を備えているサーバー装置である。
【００１２】
別の面から見た本発明は、所定の機能をもつプログラムを１つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置の画面上に表示する視覚化部品記憶手段と、前記部品に対応する前記機能のプログラムを記憶し、当該プログラムの実行により得られるデータを前記視覚化部品記憶手段に出力する処理単位記憶手段と、前記表示装置の画面上における入力装置からの操作情報を受け、前記部品の複写、削除、合成、分解などの編集を行い、前記部品を表す図形と他の前記部品を表す図形との間で包含関係をもたせる包含関係指示手段と、部品間の包含関係を記憶する包含関係管理手段と、前記包含関係管理手段に記憶された前記部品間の包含関係に基づいて前記部品間のデータの受け渡しをさせるデータ連携手段と、を備えたサーバー装置で、機能の異なる複数の前記部品間の包含関係により実現される、ネットワークを介してクライアントから入力された条件に応じたデータをネットワーク上の第１ロケーションから取得し、この第１ロケーションから取得したデータに応じたデータをネットワーク上の第２ロケーションから取得し、……、ネットワーク上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをネットワーク上の第ｎロケーションから取得して（ｎは２以上の整数）、この第ｎロケーションから取得したデータを前記クライアントに送信する処理を実行する入出力工程を、含んでなるデータ取得方法である。
【発明の効果】
【００１３】
本発明によれば、クライアントの入力条件に応じたデータをネットワーク上の第１ロケーションから取得し、この第１ロケーションから取得したデータに応じたデータをネットワーク上の第２ロケーションから取得し、……、ネットワーク上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをネットワーク上の第ｎロケーションから取得して（ｎは２以上の整数）、この第ｎロケーションから取得したデータをクライアントに送信する処理を実行することができるので、ネットワーク上の複数のサーバー装置で提供される異なるサービスを、部品により連係させたひとつのアプリケーションを作成してひとつのサーバー装置上のサービスに集約することが可能となり、携帯電話などのクライアントにおいて複数のアプリケーションを切り替えて利用するだけでは困難なサービス間の連係を可能にし、煩雑なアプリケーションの切り替えを行う必要がなくなる。
【００１４】
また、サービスの連係の定義をサーバー装置側で行うことでクライアント側では複雑な処理の必要が無くなり、クライアント側のプログラムを単純なデータの入出力と表示処理だけに簡略化できる。
【００１５】
さらに、サービスの連携に本構成の部品を用いることで、異種のアプリケーションやサービスを動的に連係させ、また連係させるサービスの組み合わせの変更を容易にすることができる。
【００１６】
なお、サーバー装置上で連係させたアプリケーションをＷｅｂサービスとして公開することにより汎用性の高いＳＯＡＰプロトコルでアクセスでき、携帯電話だけでなく様々なＳＯＡＰクライアントから利用することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態について説明する。
【００１８】
以下の説明では、最初に本実施形態で使用しているソフトウェア部品について説明し、このソフトウェア部品を使用して構築される本実施形態のサーバー装置について説明する。
【００１９】
［ソフトウェア部品について］
図１は、プログラミングシステムの原理構成を説明する機能ブロック図である。本プログラミングシステムは、キーボード、マウス等からなる入力装置１２からオペレータの操作情報が入力され、ＬＣＤ等からなる表示装置１１へ画面情報が出力されるＣＰＵとメモリ等からなる処理装置１において、処理装置１は、包含関係指示手段２、視覚化部品情報記憶手段３、データ構造変換手段４ａ、処理構造変換手段４ｂ、処理単位記憶手段５、視覚化部品発生手段６、代表値変更手段７、データ連携手段８、イベント管理手段９および包含関係管理手段１０から構成される。ここで、以下の説明において「部品」とは、当該部品を表す１つの「図形」と、この図形に対応した所定の機能を持つプログラムを特定するプログラム情報と、プログラム情報で特定されるプログラムの実行により得られるデータ情報とを含むソフトウェア部品の単位をいう。
【００２０】
包含関係指示手段２は、オペレータによる操作入力を、入力装置１２を介して受け、部品を複写、削除、合成、分解、等して編集を行い、表示装置１１の画面上に描画された親の図形の上に子の図形を移動して載せる一連の操作により親の図形と子の図形との間に包含関係をもたせるように指示する手段である。ここで包含関係とは、表示装置の画面上に重ね合わせて描画された下側の図形を親、上側の図形を子として定義される親子関係をいう。
【００２１】
図２は視覚化部品情報記憶手段３と処理単位記憶手段５の詳細説明図である。同図において表示装置１１の画面上には台紙Ａの部品の上にメータＢの部品が表示され、スライダＣの部品のカーソルがメータＢの針と連動して移動する状態を示す。なお、包含関係管理手段１０に格納されている情報は部品Ｂの親は部品Ａであるという前述の包含関係の情報のみである。
【００２２】
視覚化部品情報記憶手段３は、各部品に対する視覚化部品情報３ａ、データ構造情報３ｂおよび図形連動処理情報３ｃの３種類の情報を記憶する。視覚化部品情報３ａには、各部品に対し、図形領域サイズ、図形連動処理、対応処理単位、対応データ構造、代表値データ識別子、およびデータ結合先データ識別子の各情報が格納され、データ構造情報３ｂには、各部品がもつ他の部品との入出力結合部であるスロットのデータ識別子とその値が格納され、図形連動処理情報３ｃには、各部品の図形を表示装置１１の画面上に描画するための情報が格納される。
【００２３】
次に、図形としての視覚的に操作できるライブラリ（演算処理またはＲＤＢ処理等の個々のプログラム）に対応する部品の作成方法について、以下に説明する。部品定義ファイルを、数値型と文字型のデータを貼り合わせてなる部品スロット定義ファイルと、ライブラリに対応する演算処理またはＲＤＢ処理等の個々のプログラムファイルとから自動生成する。自動生成した部品定義ファイルから言語プロセッサを介してオブジェクトファイルを作成し、使用する図形操作ライブラリと演算処理ライブラリおよびＲＤＢ処理ライブラリとをリンカによりリンクして計算機の実行形式のダイナミック・リブ・ライブラリを作成し、これを処理装置にロードすれば、視覚的に捕らえることのできる部品を表示装置の画面上に呼び出すことができる。このように部品を発生させる命令を部品ジェネレーション命令と呼ぶ。
【００２４】
データ構造変換手段４ａは、包含関係指示手段２と視覚化部品記憶手段３とから入力を受け、データ構造を変換して視覚化部品記憶手段３へ出力する。
【００２５】
処理構造変換手段４ｂは、同様に包含関係指示手段２と視覚化部品記憶手段３とから入力を受け、処理構造を変換して視覚化部品記憶手段３へ出力する。
【００２６】
処理単位記憶手段５は、各部品の処理機能を記述した命令列からなるプログラム情報と、そのプログラムを実行させて得られるデータ値であって、視覚化部品情報記憶手段３におけるデータ構造情報３ｂに格納されるデータ識別子に対応する値を更新するデータ値の情報とからなる。
【００２７】
視覚化部品発生手段６は、予め部品の視覚化部品情報記憶手段３における視覚化部品情報３ａ、データ構造情報３ｂ、図形連動処理情報３ｃの各情報を自動生成する手段である。なお、この手段に代えて部品の視覚化部品情報記憶手段３における前記各情報は、コーディングで入力してもよい。
【００２８】
代表値変更手段７は、視覚化部品情報３ａの代表値データ識別子に対応するデータ構造情報３ｂのデータ識別子の値を、部品のメインスロットから出力される値とする。代表値の変更は視覚化部品情報３ａが更新されるときになされる。
【００２９】
データ連携手段８は、包含関係管理手段１０に格納された表示装置１１の画面上に表示される部品間の親子関係の情報に基づいて、親子間のデータの受け渡しを処理する手段である。このデータ連携手段８により親子関係をもった部品間でデータを受け渡す際、統一されたインターフェイスを設けているので、全ての部品間で受け渡しができる。
【００３０】
イベント管理手段９は、複数の表示装置間で共通の作業場としての部品をマスタ表示装置からスレーブ表示装置へ複写し、かつ各表示装置で発生したマウスの操作によるイベントまたは図形の変化によるイベントの情報をサーバ・アンド・クライアント形通信方式により共有させる。
【００３１】
包含関係管理手段１０は、表示装置１１の画面上に表示される部品間の親子関係の情報を格納し、データ連携手段８により親子関係を有する部品間のメインスロットを介してデータを伝搬する。
【００３２】
図３は視覚化部品発生手段６の処理のフローチャートである。以下に視覚化部品発生手段６の処理をステップ順に説明する。最初に、部品の視覚化部品情報を作成し、対応する処理単位のアドレスを設定し（ステップＳ１）、処理単位へ入出力されるデータ値の個数を後述するジェネレータの定義文から読み出し（ステップＳ２）、その個数分の視覚化部品情報に対応するデータ構造を作成し（ステップＳ３）、処理単位に書かれた全てのデータのデータ構造内のデータ識別子に順次データを書き込み（ステップＳ４）、データ結合先のデータ識別子をＮｉｌに設定し（ステップＳ５）、対応する図形連動処理のアドレスを設定して図形連動処理を生成し、すなわちジェネレータで書かれた図形を描かせるプログラミングが読み込まれ（ステップＳ６）、図形領域サイズを標準値または指定値に設定し（ステップＳ７）、図形連動処理を実行し、すなわち図形を表示させるプログラムを実行し、表示手段により図形を表示し（ステップＳ８）、終了する。
【００３３】
図４はデータ連携手段８の処理の前半フローチャートであり、図５はデータ連携手段８の処理の後半フローチャートである。以下にデータ連携手段８の処理をステップ順に説明する。最初に、指定された部品を更新対称部品に設定し（ステップＳ１）、指定されたデータ識別子を更新データに設定し（ステップＳ２）、指定された値を更新値に設定し（ステップＳ３）、部品更新処理を実行し（ステップＳ４）、値の変化したデータ識別子リストは代表値のデータ識別子を含むか否か判別し、その判別結果がＹＥＳのときはステップＳ６へ進み、その判別結果がＮＯのときはステップＳ１３へ移行し（ステップＳ５）、データ結合先のデータ識別子の値はＮｉｌでないか否か判別し、その判別結果がＮｉｌでないときはステップＳ７へ進み、その判別結果がＮｉｌのときはステップＳ１３へ移行し（ステップＳ６）、包含関係管理情報から親部品を検索し（ステップＳ７）、親部品は包含関係管理情報内に有りか判別し、その判別結果が有りのときステップＳ９へ進み、その判別結果が無しのときステップＳ１３へ移行し（ステップＳ８）、現部品のデータ結合先のデータ識別子を更新データに設定し（ステップＳ９）、親部品の代表値のデータを更新値に設定し（ステップＳ１０）、親部品を更新代表部品に設定し（ステップＳ１１）、親部品を現部品に設定し、ステップＳ４へ戻る（ステップＳ１２）。
【００３４】
ステップＳ５、Ｓ６またはＳ８終了後、包含関係管理情報から子部品を検索し、伝搬先部品リストに書き込み（ステップＳ１３）、伝搬先部品リストが空か否かを判別し、その判別結果がＹＥＳのときは終了し、その判別結果がＮＯのときは、ステップＳ１５へ進み（ステップＳ１４）、伝搬先部品リストから１つの部品を取り出し、更新対象部品と設定し（ステップＳ１５）、代表値のデータ識別子を更新データに設定し（ステップＳ１６）、更新対象部品のデータ結合先のデータ識別子で示されるデータの値を更新値と設定し（ステップＳ１７）、部品更新処理を実行し（ステップＳ１８）、更新対象部品を現部品と設定し、ステップＳ１３へ戻る（ステップＳ１９）。
【００３５】
図６はデータ連携手段８における部品更新処理の詳細フローチャートである。以下に部品更新処理をステップ順に説明する。最初に、更新対象部品のデータ識別子に対応する値を更新し（ステップＳ１）、対応する処理単位のデータ値を対応するデータ識別子の値に設定し、命令列を実行し（ステップＳ２）、命令列の実行後にデータ値の変化が有ったか否かを判別し、その判別結果がＹＥＳのときステップＳ４へ進み、その判別結果がＮＯのときは終了し（ステップＳ３）、データ識別子のデータを更新し（ステップＳ４）、図形連動処理を実行して表示し（ステップＳ５）、値の変化したデータ識別子を記憶し（ステップＳ６）、終了する。
【００３６】
図７は描画時の図形連動処理のフローチャートである。以下にデータ構造内のデータ値が変化したときにデータ連携手段８からイベント管理手段９が呼び出され、図形を描画する図形連動処理をステップ順に説明する。最初に、図形の位置、大きさ、形状、色、等の属性をデータ値に基づき計算し（ステップＳ１）、図形の表示内容を変更する必要があるか否かを判別し、その判別結果がＹＥＳのときはステップＳ３へ進み、その判別結果がＮＯのときは終了し（ステップＳ２）、図形領域サイズを計算して視覚化部品情報に設定し（ステップＳ３）、図形を表示装置の画面上に描画し（ステップＳ４）、イベント管理手段を呼び出して図形の状態が変化したことを伝達し（ステップＳ５）、終了する。この図形連動処理により、例えばメータの針を動かす図形の編集プログラムが実行される。
【００３７】
図８はイベント発生時の図形連動処理のフローチャートである。以下にイベントが発生したときに、イベント管理手段９から呼び出され、表示が変化したときにデータを書き換える図形連動処理をステップ順に説明する。最初に、図形の表示を変更する必要のあるイベントか否か判別し、その判別結果がＹＥＳのときはステップＳ２へ進み、その判別結果がＮＯのときはステップＳ５へ移行し（ステップＳ１）、イベントによる図形の位置、大きさ、形状、等の属性を計算し（ステップＳ２）、図形領域サイズを計算して視覚化部品情報に設定し（ステップＳ３）、図形を表示装置の画面上に描画し（ステップＳ４）、データ構造内のデータ値を変更する必要のあるイベントか否かを判別し、その判別結果がＹＥＳのときはステップＳ６へ進み、その判別結果がＮＯのときは終了し（ステップＳ５）、変更すべきデータのデータ識別子を決定して変更後の値を計算し（ステップＳ６）、データ連携手段を呼び出してその部品のデータ構造内のデータを指定した値に変更し（ステップＳ７）、終了する。
【００３８】
図９は貼り合わせ構造から新規の処理構造を生成する処理のフローチャートである。以下に貼り合わせ構造から新規の処理構造を生成する処理をステップ順に説明する。最初に、空の処理単位をもつ部品Ａを生成し（ステップＳ１）、最も上位の親を一時記憶部に登録し（ステップＳ２）、一時記憶部は空か否かを判別し、空と判別されたときは終了し、空でないと判別されたときはステップＳ４へ進み（ステップＳ３）、一時記憶部から部品Ｐを一つ選択し（ステップＳ４）、部品Ｐの対応する処理単位を部品Ａの対応する処理単位に追加し（ステップＳ５）、部品Ｐを一時記憶部から削除し（ステップＳ６）、部品Ｐは子をもつか否かを判別し、子をもつと判別されたときはステップＳ８へ進み、子をもたないと判別されたときはステップＳ３へ戻り（ステップＳ７）、部品Ｐの子を全て一時記憶部に登録する（ステップＳ８）。
【００３９】
図１０は貼り合わせ構造から新規のデータ構造を生成する処理のフローチャートである。以下に貼り合わせ構造から新規のデータ構造を生成する処理をステップ順に説明する。最初に、空のデータ構造をもつ部品Ａを生成し（ステップＳ１）、最も上位の親を一時記憶部に登録し（ステップＳ２）、一時記憶部は空か否かを判別し、空と判別されたときは終了し、空でないと判別されたときはステップＳ４へ進み（ステップＳ３）、一時記憶部から部品Ｐを一つ選択し（ステップＳ４）、部品Ｐの対応するデータ構造を部品Ａの対応するデータ構造に追加し（ステップＳ５）、部品Ｐを一時記憶部から削除し（ステップＳ６）、部品Ｐは子をもつか否かを判別し、子をもつと判別されたときはステップＳ８へ進み、子をもたないと判別されたときはステップＳ３へ戻り（ステップＳ７）、部品Ｐの子を全て一時記憶部に登録する（ステップＳ８）。
【００４０】
図１１はイベント配送処理のフローチャートである。以下にイベント配送処理をステップ順に説明する。最初に、状態変化は領域内部で発生したか否かを判別し、その判別結果がＹＥＳのときはステップＳ２へ進み、その判別結果がＮＯのときは終了し（ステップＳ１）、領域を共有する相手が有るか否かを判別し、その判別結果がＹＥＳのときはステップＳ３へ進み、その判別結果がＮＯのときは終了し（ステップＳ２）、領域を共有する全ての相手にイベントを配送し（ステップＳ３）、終了する。
【００４１】
以下では、より具体的な例をもって説明する。
【００４２】
図１２は第一の具体例を示す図である。表示手段３０の画面上には、画面上部に、四則演算機能を有する部品３１と入力機能を有する部品３２と帯グラフで出力表示機能を有する部品３３とイメージで出力表示する機能を有する部品３４が表示される。これらの部品は前述のように本システム内に予め記憶した部品であり、画面上にメニューで示され、入力手段であるマウスの操作により画面上に表示できる。画面下部は、四則演算機能部品３１が最初に移動され、その上に入力機能部品３２と出力表示機能部品３３とイメージ出力表示機能部品３４とが移動により四則演算機能部品３１上に貼られた状態を示す。入力機能部品３２の上に書き込む数値データが四則演算機能部品３１に入力され、四則演算機能部品の加算が代表値として選択されていたときは、加算が実行され、加算結果のデータが出力表示機能部品３３とイメージ出力表示機能部品３４に入力され、出力表示機能部品３３の帯の状態が変化し、イメージ出力表示機能部品３４は表示する画像の状態、例えば走っている状態または寝ている状態というように変化する。このように、代表値変更手段７によれば一つの部品のもつ複数の値（スロット）の中で最も頻繁に使用される値を代表値（メインスロット）として変更（設定）可能とすることにより、例えば四則演算機能部品の加算、減算、乗算または除算の何れか一つを代表値として選択することにより一つの部品を機能に応じて利用でき、部品の汎用性が高まる。また、同じ機能を持つ部品であっても利用される場面（状況または利用目的）によって最も変更の頻度が高いデータは異なるため、このような値（最も頻繁に使用されるスロット）を代表値変更手段７により代表値（メインスロット）として変更（設定）可能とすることで一つの部品を様々な用途で使用することが可能となる。この代表値が代表値変更手段７により変更（設定）可能となることは、本発明のような復号部品、すなわち親の図形と子の図形との間に包含関係をもたせた図形を扱う場合、それぞれの復号部品を様々な用途で使用可能とし、再利用性を高めるために特に有効である。なお、入力機能部品３２と出力表示機能部品３３は、ＧＵＩ（Graphical User Interface）部品であり、ＧＵＩで標準化した図形も部品として活用できる点は注目すべきことである。何故ならば知的資産としてエンドユーザでも複雑なプログラミングを必要とせずに、視覚的に図形を操作するだけで、上述のような例えば演算処理が可能となるからである。また、このように作成された新たな図形を保存して新たな知的資産とすることもできる。
【００４３】
図１３は第二の具体例を示す図であり、（ａ）はＲＤＢ連携部品を示す図であり、（ｂ）はグラフ表示部品とテーブル表示部品の貼り合わせを示す図である。本図は、ＲＤＢ（関係データベース）のデータを読み取り、テーブルの行と列にデータを書き込み、グラフを描かせる例を示す。ＲＤＢ連携部品はそのための機能を有する部品であり、ＲＤＢ連携部品の上にグラフ表示部品とテーブル表示部品を貼り合わせると、自動的にＲＤＢからデータが読み取られ、テーブル表示部品上のテーブルの行と列にデータが書き込まれ、グラフ表示部品上にグラフが描かれる。なおＲＤＢ連携部品の上にグラフ表示部品とテーブル表示部品を貼り合わせる時に、ＲＤＢ連携部品の複数のスロット（貼り合わされた部品と結合するポート）の内、各表示部品に対応するスロットを決定する。またＲＤＢ連携部品はＲＤＢからグラフ表示部品とテーブル表示部品に必要なデータを検索するためのスロットでＲＤＢと結合されている。
【００４４】
図１４は第三の具体例を示す図である。本図は計算機Ａ、Ｂ、Ｃ間で協調作業を行うときに各計算機間の協調作業場でイベントが共有される例を示す。各計算機Ａ、Ｂ、Ｃの各表示手段の画面４１、４２、４３上には、イベント共有される部品４４の領域が表示される。各画面４１、４２、４３上においてイベント共有される部品４４が占める領域以外の領域は、各計算機Ａ、Ｂ、Ｃが他の計算機から独立して固有の処理に使用できる。それゆえ、計算機Ａを先生が操作し、計算機Ｂと計算機Ｃをそれぞれ生徒が操作すると仮定すると、生徒がイベント共有される部品４４の領域以外の画面上の領域を使用して先生に知られないで自由に計算機の操作ができる。もちろん、イベント共有される部品４４の領域で生徒がマウスの操作または画面上の図形の変化によるイベントを発生させたときは、先生は即座にそのイベントによるイベント共有される部品４４の変化を知ることができる。
【００４５】
図１５は第四の具体例を示す図である。本図中、図形の表示手段５１はその画面に表示される部品、部品の位置と表示形態、および他の部品間との包含関係を管理する。包含関係指示手段５２は表示手段５１の画面上に表示された部品間に包含関係をもたせる手段であり、視覚化部品情報記憶手段５３は表示手段５１の画面上に表示される部品に対応する機能に関する情報を主に記憶する手段である。構造変換手段５４は部品のデータ構造または処理構造を変換して新規な構造を有する部品を作成する手段である。包含関係管理手段５１’は、表示手段５１の画面上に表示される部品間の包含関係（親子関係）を管理する。図示する包含関係管理手段５１’は、表示手段５１の画面上に表示される部品Ａ、Ｂ、Ｃの包含関係は、ＡはＢの親、ＢはＣの親であることを示す。本図の視覚化部品情報記憶手段５３に示す表は部品Ａ、Ｂ、Ｃの関係を示し、部品Ａは入力デバイスからの入力処理に、部品Ｂは入力されたデータを処理しその結果を出力するある種のフィルタ処理に、部品Ｃは出力デバイスへの出力処理に対応づけられていることを示す。構造変換手段５４は部品を含む側（親）を入力とし、部品に含まれる側（子）を出力とするように処理を変換する。また対応づけの処理は、マウスの操作入力を受けた包含関係指示手段５２により、部品Ａの上に部品Ｂを載せ、部品Ｂの上に部品Ｃを載せるよう図形を移動する処理を実行すると共に、実行される。これにより入力デバイスからのデータをフィルタリングし、出力デバイスに出力する一連の処理が定義されたこととなる。
【００４６】
図１６は図形の操作例を示す図であり、（ａ）は図形の複写を示す図であり、（ｂ）は図形の剥離を示す図である。図１６の（ａ）は、部品Ａ、Ｂ、Ｃを対応する図形Ａ、Ｂ、Ｃで示し、部品Ａ、Ｂ、Ｃからなり、ＡはＢの親、ＢはＣの親である部品６１をマウスで右ボタンクリックし画面上に示されるメニューのＣＯＰＹを左ボタンクリックし、部品６１に表示されるハンドルラバー６０をマウスでポイントしドラッグして移動し、所望の位置で左ボタンクリックすることにより部品６２が複写されることを示す。複写の結果、部品６１と同一部品６２が新たに作成され、以後部品６１と部品６２は独立して使用できる。図示する部品６２は、部品６１の複写直後の部品Ａ、Ｂ、Ｃが独立の処理により部品Ａ’、Ｂ’、Ｃ’に変化した状態を示す。図１６の（ｂ）の上部は部品Ａと部品Ｂと部品Ｃからなる部品６３から、部品Ｃをクリックしドラッグして移動し所望の位置でドロップすることにより部品Ｃを剥がして移動した状態を示す。部品６３は入力のみ与えて処理のみ行う部品となる。図１６の（ｂ）の下部は部品Ａ’と部品Ｂ’と部品Ｃ’からなる部品６５から部品Ｂ’をクリックしドラッグして移動し所望の位置でドロップすることにより部品Ｂ’と部品Ｃ’をまとめて剥がして移動した状態を示す。部品６６は処理をして出力のみ行う部品となる。
【００４７】
図１７は本発明による図形の貼り合わせを示す図であり、（ａ）は貼り合わせる前の図であり、（ｂ）は貼り合わせた後の図である。図１７の（ａ）は部品Ｂ’と部品Ｃ’からなる部品６７を部品Ａと部品Ｂからなる部品６８に貼り合わせる前の図であり、図１７の（ｂ）は部品６７を部品６８に貼り合わせて部品６９を作成した後の図である。部品６９は部品Ａへの入力データが部品Ｂと部品Ｂ’により二度繰り返して同一処理され、部品Ｃ’へ出力する部品となる。
【００４８】
図１８は本発明による分岐処理を実行する図形を作成する例を示す図であり、（ａ）は作成前の図であり、（ｂ）は作成後の図である。分岐処理部品７３は入力されたデータを判定し、その判定結果に応じて処理の実行を決定する。入力処理部品７４は入力デバイスからの入力処理を実行し、出力処理部品７５は出力デバイスへの出力処理を実行する。部品７４をクリックしドラッグし部品７３上のＩＦの右側の位置にドロップし、同様に部品７５をクリックしドラッグし部品７３上のＴＨＥＮの右側の位置にドロップして部品７４と部品７５を部品７３上に移動することにより、条件に応じて実行する部品を作成できる。
【００４９】
図１９は本発明によるデータ構造の異なる２つの図形を移動して異なるデータ構造をもつ１つの図形を作成する例を示す図であり、（ａ）は作成前の図であり、（ｂ）は作成後の図である。図１９の（ａ）は数値型データからなる部品７７と文字型データからなる部品７８を移動して空の部品７９に貼り合わせる状態を示す。図１９の（ｂ）は部品７７と部品７８が部品７９の上に貼り合わされて新たな部品７９が作成された状態を示す。なお部品７９はデータ構造を作成するための部品である。
【００５０】
図２０は異なるデータ構造をもつ１つの図形の複写を示す図である。数値型データからなる部品７７と文字型データからなる部品７８をディクショナリ部品の上に移動して作成した部品７９を複写して同一部品８３を作成した状態を示す。複写後は２つの同一部品７９と部品８３は独立して操作でき、部品８３をなす部品８１と部品８２のデータは部品７９と独立して変化できる。部品７９、８３はＲＤＢのレコードに適用できる。
【００５１】
図２１は異なるデータ構造をもつ２つの同一図形をディクショナリ図形の上に貼り合わせた図形を示す図である。本図は部品７９と部品８３をディクショナリ部品８４上に複写し、数値型データからなる部品７７と文字型データからなる部品７８および数値型データからなる部品８１と文字型データからなる部品８２を含む数値型データと文字型データが混在した部品８４を作成できることを示す。同様に複雑なデータ構造を含む部品が作成されることが判る。なお部品８４はＲＤＢの復表に適用できる。
【００５２】
［サーバー装置について］
次に、本発明の一実施形態であるサーバー装置について説明する。
【００５３】
図２２は、このサーバー装置２０１のネットワーク構成を説明するブロック図である。本実施形態のサーバー装置２０１は、インターネット２０２上のサーバー装置である。端末装置２０３は、携帯電話、ＰＨＳ、通信機能を備えたＰＣ、ＰＤＡ（Personal Digital Assistant）などであり、移動体通信網２０４、ゲートウェイ２０５、インターネット２０２を介して、サーバー装置２０１と通信を行うことができる。サーバー装置２０１は、インターネット２０２を介して（場合によっては、さらにはイントラネットなどを介して）、他のサーバー装置（第１サーバー装置２１１、第２サーバー装置２１２、…、第ｎサーバー装置２１ｎ）と通信を行うことができる。
【００５４】
図２３は、サーバー装置２０１の電気的な接続のブロック図である。サーバー装置２０１は、各種演算を行い、各部を集中的に制御するＣＰＵ２２１と、各種のＲＯＭ、ＲＡＭからなるメモリ２２２とがバス２２３で接続されている。バス２２３には、磁気記憶装置２２４、インターネット２０２と通信を行う通信制御装置２２５、入力装置２２６、表示装置２２７が所定のインターフェイスを介して接続されている。
【００５５】
サーバー装置２０１には、アプリケーション２２８がセットアップされている。このアプリケーション２２８は、前述のソフトウェア部品を構築し、取り扱うことができるソフトウェアである。
【００５６】
すなわち、アプリケーション２２８に基づいて、サーバー装置２０１は、所定の機能をもつプログラムを１つの図形に対応させた部品の情報を記憶し、当該部品の情報を表示装置２２７の画面上に表示する（視覚化部品記憶手段）。また、この部品に対応する前述の機能のプログラムを記憶し、当該プログラムの実行により得られるデータを視覚化部品記憶手段に出力する（処理単位記憶手段）。さらに、入力装置２２６からの操作情報を受け、部品の複写、削除、合成、分解などの編集を行い、部品を表す図形と他の部品を表す図形との間で包含関係をもたせる（包含関係指示手段）。そして、部品間の包含関係を記憶する（包含関係管理手段）。さらに、包含関係管理手段に記憶された部品間の包含関係に基づいて部品間のデータの受け渡しをさせる（データ連携手段）。これらの機能の詳細については前述したとおりである。
【００５７】
このような各機能により構築されるソフトウェア部品は、表示装置２２７上では可視化され画面上で操作できるオブジェクト（図形）である。部品は、例えば、Ｗｅｂページ内に表示されるテキストや画像を取得する部品、データベースから値を取得する部品、検索サービスなどのＷｅｂアプリケーションを利用する部品、など様々な機能のものが使用される。サーバー装置２０１を運営し、Ｗｅｂ上でサービスを提供するプロバイダーは、予めそれら複数のサービス間のデータ入出力の関係を定義し、連係させたひとつのアプリケーション２３１を構築する。前述のように、部品はそれぞれ種類ごとにデータの保持と機能の呼び出しのためにスロットと呼ばれるインターフェイスを備えている。部品間の連係は、部品（を表す図形）同士を画面上で操作して貼り合わせることで親子関係を持たせ、子のスロットを親のスロットに結合することで定義される。
【００５８】
このような親子部品として構築されたアプリケーション２３１により、サーバー装置２０１では、機能の異なる複数のソフトウェア部品間の包含関係により、サーバー装置２０１は次のような処理を行うことができる。図２４は、このような処理を説明するタイミングチャートである。
【００５９】
まず、クライアントである端末装置２０３から条件の入力があったときは（ステップＳ１のＹ）、その条件に応じた問い合わせをインターネット２０２（さらに、インターネット２０２に接続されたイントラネット等も含む。以下同じ）上の第１サーバー装置２１１（第１ロケーション）に行い（ステップＳ２）、この問い合わせに応じたデータを第１サーバー装置２１１から取得し、このデータの取得があったときは（ステップＳ３のＹ）、この取得したデータに応じた問い合わせをインターネット２０２上の第２サーバー装置２１２（第２ロケーション）に行って（ステップＳ４）、第２サーバー装置２１２から問い合わせに応じたデータを取得し（ステップＳ５のＹ）、……、インターネット２０２上の所定の第（ｎ−１）ロケーションから取得したデータに応じたデータをインターネット２０２上の第ｎサーバー装置２１ｎ（第ｎロケーション）から取得したときは（ｎは２以上の整数）（ステップＳ６のＹ）、この第ｎサーバー装置２１ｎから取得したデータを端末装置２０３に送信する（ステップＳ７）処理を行うものである。なお、第１ロケーション〜第ｎロケーションは、サーバー装置に限定されるものではなく、データベース、特定のアプリケーションなどであってもよい。
【００６０】
また、各ロケーションのうち、第ａロケーション（ａは２以上、ｎ以下の何れかの整数）を複数としてもよいし、第ｂロケーション（ｂは１以上、（ｎ−１）以下の何れかの整数）を複数としてもよい。
【００６１】
［システム構築例について］
次に、アプリケーション２２８により構築されたアプリケーション２３１によるシステム（以下、「部品システム」という）の具体例について説明する。
【００６２】
本例では、前述の親子関係を持つ部品の間において３種類のメッセージが交換される。子から親へはSetメッセージとGimmeメッセージ、親から子へはUpdateメッセージが送られ、それによってデータの交換や機能の呼び出しが行われる。
【００６３】
部品化されたデータやアプリケーションはすべてスロットとして統一されたインターフェイスを持つため、スロット間の結合を自由に変更することができる。このとき、部品は通常のプログラムのようにソースコードをコンパイルして新しいプログラムを作成する必要は無く、動作可能な状態のまま動的に結合を行い連係することができる。
【００６４】
サービスを提供するサーバー装置２０１においては、部品システムを備えていて、前述のソフトウェア部品の技術により、連係の対象となるデータやサービス、例えば、Ｗｅｂページ、Ｗｅｂアプリケーション、Ｗｅｂサービス、データベースなどのプログラムを、それぞれ部品化している。
【００６５】
サービスを部品化した部品は、ひとつの部品又は複数の部品を貼り合わせた合成部品から構成される。各部品はそれぞれ単体でも動作可能なものであり、他の部品と連係せずに単独のサービスとしても外部から利用可能なものである。
【００６６】
サーバー装置２０１において複数のサービスを連係させる場合、各サービスに対応した部品を貼り合わせ、部品間のスロットを接続することで入出力のデータの関係を定義づける。複数の部品を連係させるとき、それぞれの部品を互いに貼り合わせるだけでなく、一方の部品において共有コピーを作成し、別の部品に貼り合わせスロットを結合することで連係させることができる。
【００６７】
サーバー装置２０１で動作する部品システムにおいては、部品の情報を取得し、又は、部品のスロットを操作するＷｅｂサービスとして外部にインターフェイスを公開するオペレーションをＷｅｂサービス記述言語（ＷＳＤＬ）によって定義する。このＷｅｂサービスを、以下、「ＷＳ（Web Service）」と呼ぶ。
【００６８】
スロットに関するＷｅｂサービスのオペレーションには、部品間のSetメッセージに対応するinvokeSet、Gimmeメッセージに対応するinvokeGimme、Updateメッセージに対応するinvokeUpdate、SetとGimmeをinvokeSetAndGimmeが定義される。
【００６９】
部品のインスタンスを取得するオペレーションには、getPadList，getPadByName，getSubPadListが定義される。
【００７０】
部品の情報を取得するオペレーションにはgetPadXmlが定義される。
【００７１】
サーバー装置２０１では、ｈｔｔｐ（HyperText Transfer
Protocol）によって通信を行うＷｅｂサーバーを動作させる。このＷｅｂサーバーは、さらにＳＯＡＰ（Simple
Object Access Protocol）プロトコルを処理する機能を備えている。このサーバーを、以下では「ＳＳ（SOAP Server）」と呼ぶ。
【００７２】
ＳＳはＳＳをコントロールする部品（SS Control部品）から起動、停止を行うことができる。ＳＳには外部に公開される部品のインスタンスをリストに登録する。ＳＳに登録されていない部品のインスタンスは外部から操作することはできない。ＳＳへの部品の登録は、ポップアップメニューから登録を選択する、又は、SS Control部品（を表す図形）へ部品（を表す図形）をドラッグアンドドロップすることで行われる。
【００７３】
ＷＳのオペレーションにおいて操作対象となる部品のインスタンスは、名前、クラス名、ＩＤ番号のいずれか、又はその組み合わせによって指定される。
【００７４】
ＳＳはＳＯＡＰプロトコルによって外部のクライアントからＷＳを利用可能とする。ＷＳのクライアントは、端末装置２０３となるＰＣ（で動作するプログラム）、携帯電話（で動作するプログラム）、ＰＤＡ（で動作するプログラム）など、ＳＯＡＰプロトコルで送受信できるすべてのデバイス（で動作するプログラム）を含む。
【００７５】
ＳＳはクライアントからＳＯＡＰプロトコルによってＷＳのオペレーションのリクエストを受信し、ＸＭＬ（eXtensible Markup Language）で記述されたリクエストの内容を解釈し、部品システムで動作している部品にメッセージを送信し、その実行結果を部品から受信し、クライアントに対してＸＭＬ（eXtensible Markup Language）で記述されたレスポンスを送信する。
【００７６】
クライアントはユーザーからの操作又はプログラムなどによりデータの入力を行い、ＳＳにＳＯＡＰプロトコルによってＷＳのオペレーションのリクエストを送信する。ＷＳはオペレーションの実行結果をレスポンスとしてクライアントに返信し、レスポンスを受信したクライアントはそのデータを解釈し、画面に表示を行ない、あるいは他のプログラムの実行を行う。
【００７７】
ＷＳには以下のオペレーションが定義される（（）内はオペレーションの引数）。
【００７８】
・getPadList（クラス名）クラス名で指定される部品のリストを返す。
【００７９】
・getSubPadList（部品名またはクラス名＋ＩＤ）引数で指定される部品の子部品のリストを返す。
【００８０】
・getPadNameOf（部品名）引数で指定される部品を返す。
【００８１】
・getPadXml（部品名またはクラス名＋ＩＤ）引数で指定される部品のＸＭＬフォーマットのデータを返す。
【００８２】
・invokeSet（部品名またはクラス名＋ＩＤ、スロット名、データ）引数で指定される部品にSetメッセージを送信し、実行結果を返す。
【００８３】
・invokeGimme（部品名またはクラス名＋ＩＤ、スロット名）引数で指定される部品にGimmeメッセージを送信し、その実行結果を返す。
【００８４】
・invokeUpdate（部品名またはクラス名＋ＩＤ）引数で指定される部品にUpdateメッセージを送信し、その実行結果を返す。
【００８５】
・invokeSetAndGimme（部品名またはクラス名＋ＩＤ、Setスロット名、データ、Gimmeスロット名）引数で指定される部品にSetメッセージを送信したのち、続けてGimmeメッセージを送信し、その実行結果を返す。
【００８６】
次に、端末装置２０３が第１〜第ｎロケーションから所望のデータを抽出する具体的な手段について説明する。サーバー装置２０１でｈｔｔｐによって通信を行う前述のＷｅｂサーバーとの通信を行う部品は、次のような手段により、その通信を行う。
【００８７】
Ｗｅｂサーバーに対してクライアントとなるソフトウェア部品は、HTTPプロトコルによってリクエストを送信し、レスポンスとしてデータを受信する。データの種類は、例えばＨＴＭＬやＸＭＬなどの形式のテキストデータ、JPEG形式の画像データなどである。受信されたデータは、部品の機能に応じて処理もしくは表示が行われる。例えば、ブラウザ部品はＨＴＭＬデータの表示を、イメージ部品は画像データの表示を、ＸＭＬビュー部品はＸＭＬデータの構造の表示を、それぞれ行う等である。
【００８８】
また、部品システムにおいては、ＨＴＭＬやＸＭＬなどの構造化されたテキストデータからその一部のデータを抽出し、スロットを介して処理する。
【００８９】
ＨＴＭＬデータは、例えばＷｅｂブラウザの内部などで処理されるとき、その構造はＤＯＭツリーと呼ばれる木構造で表現される。またＤＯＭツリーの部分構造を表すサブツリーを指定するときには、XPathと呼ばれる式で表現される。このＨＴＭＬデータに対するＵＲＬとXPath式の組み合わせにより、Ｗｅｂサーバーから取得されたＨＴＭＬデータ内の部分データを抽出することが出来る。
【００９０】
前述のXPathの指定は、表示されたＨＴＭＬデータに対しユーザーの操作によって部分データを指定する特殊なクリッピング機能を持つクリッピング・ブラウザによって自動的に生成することができる。
【００９１】
Ｗｅｂアプリケーションは、部品システムの部品によってソフトウェア部品化される。部品化された部品はオリジナルのＷｅｂアプリケーションに対してネットワークを通じてデータの入出力を行う。
【００９２】
部品システムで、Ｗｅｂアプリケーションを部品化するとき、まずクリッピング・ブラウザによってＷｅｂページ内の入力フォームの一部分を指定してクリッピングを行い、部品化する。次に、クリッピング・ブラウザにおいてそのＷｅｂアプリケーションにリクエストを送信し、返信されたＷｅｂアプリケーションの実行結果を表示するＷｅｂページから出力結果を再びクリッピングを行い部品化する。クリッピングされた部品は他の部品と同様にスロットの結合によってデータの入出力を行うことができる。
【００９３】
複数のＷｅｂアプリケーションを連携させるとき、各Ｗｅｂアプリケーションの入力と出力をそれぞれクリッピングして部品化し、一つのＷｅｂアプリケーションの出力を他のＷｅｂアプリケーションの入力に対して部品の貼り合わせとスロット結合によって連結する。これにより、一つのＷｅｂアプリケーションに対して入力を行うと、その出力が自動的に他のＷｅｂアプリケーションへの入力となり、複数のＷｅｂアプリケーションの連携が実現される。
【００９４】
なお、“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”も参照。
【００９５】
［運用例について］
以下、以上のようなシステム構築例における具体的な運用例について説明する。
【００９６】
図２５を参照して、クライアントとなる端末装置２０３のアプリケーション１３４は、通常の携帯電話などのアプリケーションと同様の方法で開発することができる。開発言語にはJavaなどを用いることができる。このアプリケーション１３４により、端末装置２０３は、サーバー装置２０１と通信を行って、後述のとおり所定のデータを取得することが可能となる。
【００９７】
アプリケーション１３４に渡されるパラメータとしては、ＳＳ１３５のＵＲＬが設定される。アプリケーション１３４は、ＳＳ１３５と同一のアドレスを持つサーバー装置２０１からＷｅｂサーバー１３３を介してダウンロードされる。端末装置２０３のアプリケーション１３４は、通常、それがダウンロードされたサーバー装置２０１のアドレスに対してのみ通信が許される制約があり、このアプリケーション１３４もダウンロードされたサーバー装置２０１のアドレスとのみ通信が可能である。
【００９８】
図２６は、本運用例のシステム全体の説明図である。端末装置２０３のアプリケーション１３４は、ＳＳ（SOAP Server）１３５を介して前述の親子部品であるアプリケーション２３１と通信を行い、アプリケーション２３１は、第１サーバー２１１である位置情報サービス１４１、第２サーバー２１２であるｗｅｂカメラサービス１４２，１４３と通信を行うことができる。
【００９９】
この例は、サーバー装置２０１が、無線ＬＡＮ端末位置情報サービスとＷｅｂカメラサービスとを連係させる事例である。すなわち、無線ＬＡＮシステムにおいて、異なる部屋に配置されたアクセスポイントへの無線端末の接続情報を提供する位置情報サービス１４１と、各部屋に配置されたカメラの画像を、ネットワークを介して提供するｗｅｂカメラサービス１４２，１４３と、をサーバー装置２０１連係させる例である。
【０１００】
無線ＬＡＮの位置情報サービス１４１は、ひとつのＷｅｂサーバーにおいてＷｅｂアプリケーションとして実行される。ＣＧＩの引数には、端末名や部屋名、入室や退室などのイベントの種類などを入力引数とし、部屋名を指定すると、その部屋のアクセスポイントに接続を行った端末の名前やイベント名、時刻などが出力される（図２７は、その画面表示の例である）。また端末名を指定するとその無線端末が接続を行ったアクセスポイントの部屋名、端末名、イベント種別、時刻などを含んだデータが出力される。出力されるデータはＷｅｂブラウザで表示されるＨＴＭＬデータ又はＲＳＳフォーマットのＸＭＬデータである。
【０１０１】
ＣＧＩに入力されるパラメータは、端末名（hostname）、部屋名（1F，2F，3F1，3F2，4F）、イベント種別（退室leave、入室enter、接続connect、切断lost）、表示アイテム数(limit)、である。
【０１０２】
位置情報サービス１４１にアクセスするための、アプリケーション２３１の一部である親子部品（位置情報サービス部品）は、図２８に示すように、検索条件を設定してＷｅｂアプリケーションを利用するためのＵＲＬ（Uniform Resource Locator）の文字列を生成する条件入力部品１０１、このＵＲＬの文字列によってサービスにアクセスし、ＲＳＳフォーマットのＸＭＬデータを取得するRssClient部品１０２、ＸＭＬデータを処理してXPathで各要素を取り出すXmlView部品１０３、RSSデータのitemノードを処理して、子ノードの要素を取り出すRSSItem部品１０４などから構成される。
【０１０３】
条件入力部品１０１は、チェックボックスやポップアップメニューをユーザーが操作して条件を設定してＵＲＬの文字列をStringスロットに出力する。Stringスロットは、RSSクライアント部品のurlスロットに結合されている。Stringスロットの値が変更されると、結合されたurlスロットに対してSetメッセージが送信される。
【０１０４】
RSSClient部品１０２は、urlスロットに対してＵＲＬの文字列をSetメッセージにより受け取ると、そのＵＲＬ文字列で特定される端末位置情報サービスのＷｅｂアプリケーションにアクセスして設定された条件に対するＸＭＬデータを取得し、rssスロットにXmlDocumentオブジェクトを出力する。rssスロットは、XmlView部品１０３のbaseElementスロットに結合されている。rssスロットの値が変更されると、baseElementスロットに対してSetメッセージが送信される。
【０１０５】
XmlView部品１０３は、baseElementスロットに対してXmlDocumentオブジェクトをSetメッセージで受け取ると、その値を内部変数baseElementに保持する。また、XPathスロットに設定されたXPath文字列によってXmlDocumentオブジェクトからXmlNodeListオブジェクトを取り出して、内部変数SelectedNodeListに保持する。SelectedNodesスロットに対してGimmeメッセージを受け取ると、SelectedNodeListの値が返される。
【０１０６】
RSSItem部品１０４は、rssItemスロットに対してXmlNodeListオブジェクトを受け取ると、その先頭要素のXmlNodeオブジェクトを内部変数rssItemに保持する。また、XmlNodeオブジェクトの子ノードのノード名をスロットとして追加登録する。これにより、子ノードの要素の値を、スロットを介して取り出すことが可能となる。RSSのitemノードの場合、子ノードには少なくともtitle要素、link要素、description要素が含まれる。端末位置情報サービスでは、さらにdate要素が存在する。RSSItem部品１０４には、複数の文字列部品（図示せず）が貼り合わされ、titleスロット、linkスロット、descriptionスロットに結合され、その値を表示する。
【０１０７】
Ｗｅｂカメラサービス１４２，１４３は、一つあるいは部屋ごとに設置された第２ロケーションとなる複数のサーバー装置において実行されるＷｅｂアプリケーションである。部屋毎に設置されたサーバー装置にアクセスすると、その部屋の様子を写したカメラの画像が出力されることとなる（図２９は、その画面表示の例である）。
【０１０８】
図３０に示すように、Ｗｅｂカメラサービス１４２，１４３を利用する、アプリケーション２３１の一部である部品は、各部屋に応じたＷｅｂカメラサービス１４２，１４３のＵＲＬのリストを保持し、メニューには部屋名を表示するComboBox部品１１１と、urlスロットに入力されたＵＲＬに応じてＷｅｂカメラサービス１４２，１４３にアクセスし、画像を取得して内部変数bitmapに保持するImageView部品１１２とから構成される。ImageView部品１１２のjpegスロットにGimmeメッセージを送信すると、bitmapに保持される画像のJPEG形式のデータが返される。ComboBox部品１１１でメニューから一つの部屋名が指定されると、ImageView部品にSetメッセージによってURLが送信され、ImageView部品はURLに応じたＷｅｂカメラサービス１４２，１４３にアクセスして画像を取得し、表示する。
【０１０９】
図３１に示すように、図２８の位置情報サービス部品（符号１２２）と図３０のＷｅｂカメラサービス部品（符号１２４）との連係は、次のように実施される。位置情報サービス部品１２２は、位置情報サービス１４１から得られたRSSから、SSItem部品１０４によって部屋名を、descriptionスロットを介して取り出して文字列部品１２１で表示する。そして、この文字列部品１２１の共有コピーが作成され（符号１２３）、Ｗｅｂカメラサービス部品１２４のComboBox部品１１１に貼り合わされ、SelectKeyスロットに結合される。位置情報サービス部品１２２による画面表示の例を図３２に示す。
【０１１０】
位置情報サービス部品１２２に検索条件が入力されてスロットの値が変化すると、その検索結果である文字列部品１２１の値も変わり、共有コピーを介してＷｅｂカメラサービス部品１２４に貼られた文字列部品１２３の値が変わって、Setメッセージによって部屋名のデータとして伝播し、Ｗｅｂカメラサービス部品１２４はその部屋名の画像を表示するようになる。
【０１１１】
このようにして、サーバー装置２０１により、位置情報サービス部品１２２で検索して得られた部屋名は、自動的にＷｅｂカメラサービス部品１２４に入力され、その部屋の画像が位置情報サービス部品１２２の検索結果に応じて表示されるようになる。
【０１１２】
文字列部品１２１，１２３の共有コピーは、部品システムの中で部品が動作実行中の状態のまま生成され、また、位置情報サービス部品１２２やＷｅｂカメラサービス部品１２４への貼り合わせやスロット結合も、動的に行うことが出来る。通常のプログラミングのようにソースコードを書き換え、コンパイルを行って実行コードを生成し、実行するといった手順は必要としない。
【０１１３】
図２５、図２６を参照して、このような親子部品であるアプリケーション２３１の機能により、端末装置２０３でアプリケーション１３４を起動すると、起動初期画面が端末装置の画面に表示され、ユーザーは検索条件を入力することができる。ユーザーの入力操作で部屋名が指定され、所定の検索ボタンが押されると、アプリケーション１３４はＵＲＬのパラメータを設定し、ＳＯＡＰリクエストを生成して、ＳＳ１３５に対してリクエスト(invokeSet)を送信することにより、位置情報サービス部品（部品１４５の中に含まれる）を構成するRSSClient部品１０２のＵＲＬスロットに値をセットする。RSSClient部品１０２は、位置情報サービス１４１にＵＲＬスロットにセットされた値に基づいてＵＲＬを用いてアクセスし、RSSフォーマットのＸＭＬデータを取得する。RSSClient部品１０２は、取得したRSSデータをXMLView部品１０３にSetメッセージでBaseElementスロットにセットする。一連の処理が完了すると、リクエストに対するレスポンスがアプリケーション１３４に返される。
【０１１４】
次に、アプリケーション１３４は、XMLView部品１０３に対してRSSデータのitemノードからデータを取り出すためにXPath文字列を設定し、リクエスト(invokeSetAndGimme)を送信する。一つは先頭のitemノードのdate要素を指定するXPathをXMLView部品のXPathスロットにセットし、valueOfNodeスロットから値を取り出したものをレスポンスとして受け取る。同様にして先頭のitemノードのtitle要素を指定するXPathによってその値を取り出す。
【０１１５】
アプリケーション１３４は、レスポンスとして受信したdate要素とtitle要素を、入力として指定した部屋に接続した端末として端末装置２０３画面に表示を行う。
【０１１６】
携帯電話アプリケーション１４７は、続けて、Ｗｅｂカメラサービス１４２，１４３を利用するＷｅｂカメラサービス部品（部品１４５に含まれる）を構成するImageView部品１１２に対してリクエスト(invokeGimme)を送信し、Imageスロットから画像データを取得してそれを画面に表示する。
【０１１７】
従来は、例えば端末装置２０３上で２つのサービス（本例では、位置情報サービス１４１とｗｅｂカメラサービス１４２，１４３）を利用するときは、それぞれのサービスに対応したアプリケーションを個別に利用する必要があった。このような場合、それぞれのアプリケーションは連係していないので、位置情報サービス１４１から得られた情報は、Ｗｅｂカメラサービス１４２，１４３に対しては手動で入力操作を行う必要がある。入力条件を変更して繰り返し利用するときには、アプリケーションの切り替えが必要であり、操作が煩雑となる。
【０１１８】
これに対して、本実施形態の部品システムを用いた場合は、２つのサービスはＳＳ１３５によって一つのサーバー装置上で動くサービスとして外部からアクセスすることが出来る。そのため、外部のクライアントからは、一つのサーバー装置上でサービスが行われているのと等価に扱うことが可能となる。
【図面の簡単な説明】
【０１１９】
【図１】部品システムの原理構成図である。
【図２】視覚化部品情報記憶手段と処理単位記憶手段との詳細説明図である。
【図３】視覚化部品発生手段の処理のフローチャートである。
【図４】データ連携手段の処理の前半のフローチャートである。
【図５】データ連携手段の処理の後半のフローチャートである。
【図６】データ連携手段における部品更新処理の詳細フローチャートである。
【図７】描画時の図形連動処理のフローチャートである。
【図８】イベント発生時の図形連動処理のフローチャートである。
【図９】貼り合わせ構造化から新規の処理構造を生成する処理のフローチャートである。
【図１０】貼り合わせ構造化から新規のデータ構造を生成する処理のフローチャートである。
【図１１】イベント配送処理のフローチャートである。
【図１２】第一の具体例を示す説明図である。
【図１３】第二の具体例を示す説明図である。
【図１４】第三の具体例を示す説明図である。
【図１５】第四の具体例を示す説明図である。
【図１６】図形の操作例を示す図である。
【図１７】図形の貼り合わせを示す図である。
【図１８】分岐処理を実行する図形を作成する例を示す図である。
【図１９】データ構造の異なる２つの図形を移動して異なるデータ構造をもつ１つの図形を作成する例を示す図である。
【図２０】異なるデータ構造をもつ１つの図形の複写を示す図である。
【図２１】異なるデータ構造をもつ２つの同一図形をディクショナリ図形の上に貼り合わせた図形を示す図である。
【図２２】本発明の一実施形態のシステム構成のブロック図である。
【図２３】サーバー装置の電気的な接続のブロック図である。
【図２４】サーバー装置が実行する処理のフローチャートである。
【図２５】端末装置へのアプリケーションのダウンロードとＳＳとの関係を説明する説明図である。
【図２６】端末装置とサーバー装置との連携について説明する説明図である。
【図２７】無線ＬＡＮの端末位置情報サービスによる画面表示の例である。
【図２８】位置情報サービス部品の機能ブロック図である。
【図２９】Ｗｅｂカメラサービスによる画面表示の例である。
【図３０】Ｗｅｂカメラサービス利用部品の機能ブロック図である。
【図３１】位置情報サービス部品とＷｅｂカメラサービス部品との連携を説明する図である。
【図３２】Ｗｅｂカメラサービスによる画面表示の例である。
【符号の説明】
【０１２０】
２０１  サーバー装置
２０３  端末装置
２３１  アプリケーション（親子部品）
【図１】
2007035021.tif 000003
【図２】
2007035021.tif 000004
【図３】
2007035021.tif 000005
【図４】
2007035021.tif 000006
【図５】
2007035021.tif 000007
【図６】
2007035021.tif 000008
【図７】
2007035021.tif 000009
【図８】
2007035021.tif 000010
【図９】
2007035021.tif 000011
【図１０】
2007035021.tif 000012
【図１１】
2007035021.tif 000013
【図１２】
2007035021.tif 000014
【図１３】
2007035021.tif 000015
【図１４】
2007035021.tif 000016
【図１５】
2007035021.tif 000017
【図１６】
2007035021.tif 000018
【図１７】
2007035021.tif 000019
【図１８】
2007035021.tif 000020
【図１９】
2007035021.tif 000021
【図２０】
2007035021.tif 000022
【図２１】
2007035021.tif 000023
【図２２】
2007035021.tif 000024
【図２３】
2007035021.tif 000025
【図２４】
2007035021.tif 000026
【図２５】
2007035021.tif 000027
【図２６】
2007035021.tif 000028
【図２７】
2007035021.tif 000029
【図２８】
2007035021.tif 000030
【図２９】
2007035021.tif 000031
【図３０】
2007035021.tif 000032
【図３１】
2007035021.tif 000033
【図３２】
2007035021.tif 000034