(57)【要約】  本発明は、機能の追加や変更を、プログラムなどの再インストールを行なうことなく実現できる計算装置、計算プログラム及び計算方法などを提供する。このために、所定の属性関係にあるオブジェクトが相互にコミュニケーション可能な状態になるようにオブジェクトを複数保持し、保持されているオブジェクトが、コミュニケーション可能な他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことができるようにする。【特許請求の範囲】
【請求項１】
所定の属性関係にあるオブジェクトを相互にコミュニケーション可能な状態に複数保持可能な保持部と、
前記保持部に保持されている一のオブジェクトが、コミュニケーションが可能となる他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索するための検索部と、
を有し、
前記オブジェクトは、前記検索部による検索結果に基づいて他のオブジェクトとコミュニケーションをすることが可能な計算装置。
【請求項２】
一のオブジェクトは、他のオブジェクトの検索をするためのコールバックを有し、
前記検索部は、前記コールバックを利用して検索をする請求項１に記載の計算装置。
【請求項３】
他のオブジェクトの属性情報は、他のオブジェクトが提供するエントリポイントの名前である請求項１又は２に記載の計算装置。
【請求項４】
前記保持部に保持されるオブジェクトは、クラス定義を記述できるオブジェクト指向言語により記述され、
前記保持部は、
保持されるオブジェクトがクラスを定義するオブジェクトである場合には、そのクラスのインスタンスを生成してオブジェクトとして保持を行なうインスタンス生成手段
を有する請求項１から３のいずれか一に記載の計算装置。
【請求項５】
前記保持部は、
前記インスタンス生成手段によりインスタンスが生成されたことを、保持されている他のオブジェクトに通知するインスタンス生成通知手段
を有する請求項４に記載の計算装置。
【請求項６】
オブジェクトを供給源よりダウンロードするダウンロード部を有する請求項４または５に記載の計算装置。
【請求項７】
前記ダウンロード部は、
前記供給源に保持されるオブジェクトにより定義されるクラスである供給源クラスが、前記保持部に保持されているオブジェクトにより定義されるクラスである保持クラスを継承するかどうかを判断する継承判断手段と、
前記継承判断手段により、供給源クラスが保持クラスを継承すると判断された場合には、保持クラスのインスタンスを供給源クラスのインスタンスに更新するインスタンス更新手段と、
を有する請求項６に記載の計算装置。
【請求項８】
前記ダウンロード部は、
継承判断手段に、その判断を定期的又は非定期的に行なわせる継承判断実行手段を有する請求項７に記載の計算装置。
【請求項９】
前記保持部は、
それぞれのサーバ装置と通信を行ない、通信の結果に基づいて相互にコミュニケーションを行なって一連の処理を実現するための複数のオブジェクトを保持するための処理オブジェクト保持手段
を有する請求項１から８のいずれか一に記載の計算装置。
【請求項１０】
処理オブジェクト保持手段で保持されるオブジェクトによる一連の処理は、計算装置の利用者とのインタラクションに基づいて、複数の段階に分割され、処理オブジェクト保持手段で保持される各オブジェクトは、各段階の処理を実現する請求項９に記載の計算装置。
【請求項１１】
所定の属性関係にある他のオブジェクトとしてのプログラムと相互にコミュニケーションが可能なオブジェクトとしてのプログラムであって、
他のオブジェクトとしてのプログラムを検索する検索ステップと、
前記検索ステップの検索結果に基づいて、前記他のオブジェクトとしてのプログラムが自身と所定の属性関係にあるかどうかを判断する判断ステップと、
判断ステップにて、他のオブジェクトとしてのプログラムが自身と所定の属性関係にあると判断された場合に、前記他のオブジェクトとしてのプログラムと相互にコミュニケーションを行なうコミュニケーションステップと、
を計算機に実行させるためのオブジェクトとしてのプログラム。
【請求項１２】
前記コミュニケーションステップにより、コミュニケーションが可能な他のオブジェクトとしてのプログラムの状態を取得する状態取得ステップと、
前記状態取得ステップにより取得された状態に基づいて、情報を選択する選択ステップと、
前記選択ステップで選択された情報を出力する出力ステップと、
を計算機に実行させるための請求項１１に記載のオブジェクトとしてのプログラム。
【請求項１３】
前記選択ステップは、自身の内部に保持する情報が選択される内部情報選択ステップを有する請求項１２に記載のオブジェクトとしてのプログラム。
【請求項１４】
前記選択ステップは、自身の外部に保持される情報が選択される外部情報選択ステップを有する請求項１２または１３に記載のオブジェクトとしてのプログラム。
【請求項１５】
前記状態取得ステップにより取得される状態は、前記他のオブジェクトとしてのプログラムが動作する計算機の利用者の個人情報に関連し、
前記選択ステップで選択される情報は、広告を示す広告情報である請求項１２から１４のいずれか一に記載のオブジェクトとしてのプログラム。
【請求項１６】
前記状態取得ステップにより状態が取得される他のオブジェクトとしてのプログラムと同じ計算機で動作する請求項１２から１５のいずれか一に記載のオブジェクトとしてのプログラム。
【請求項１７】
所定の属性関係にあるオブジェクトを相互にコミュニケーション可能な状態に保持可能な保持ステップと、
前記保持ステップにより保持されている一のオブジェクトがコミュニケーション可能な他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索するための検索ステップと、
を計算機に実行させるための計算プログラムであって、
前記オブジェクトは、前記検索部による検索結果に基づいて他のオブジェクトとコミュニケーションをすることが可能となる計算プログラム。
【請求項１８】
所定の属性関係にあるオブジェクトを相互にコミュニケーション可能な状態に保持可能な保持ステップと、
前記保持ステップにより保持されている一のオブジェクトがコミュニケーション可能な他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索するための検索ステップと、
を含む計算機による計算方法であって、
前記オブジェクトは、前記検索部による検索結果に基づいて他のオブジェクトとコミュニケーションをすることが可能となる計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置、計算プログラム及び計算方法に関する。特に、機能の追加を容易に行なうことができる計算装置、計算プログラム及び計算方法に関する。
【背景技術】
【０００２】
プログラムの開発の思想として、「オブジェクト指向プログラミング」がある（例えば、非特許文献１参照。）。この思想によれば、プログラムを構成する単位であるオブジェクトが有するデータ（オブジェクトの状態などを表わす）及びメソッド（オブジェクトの機能などを表わす）を定義するクラスというオブジェクトの設計を基礎としてプログラムが作成される。オブジェクト指向プログラミングの思想に基づいて作成されたプログラムによれば、クラスのインスタンスが生成されることで、データ及びメソッドを有するオブジェクトが生成される。【０００３】
このオブジェクト指向プログラミングによればプログラムの開発効率が向上するという利点がある。これは、基礎となる機能を実現するプログラムが作成された後、既存のクラスの機能を継承した子クラスを定義することにより、クラスの改良を実現することができるからである。これにより、従来のようにバージョンアップに際してプログラム全体を再設計する必要がなくなり、プログラムの開発効率が向上する。
【非特許文献１】オブジェクト指向、＜インターネット：http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91＞、ウィキメディア財団、２００５年３月３日検索
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、プログラムを計算機にインストールして使用すると、そのプログラムに新たな機能を追加することや機能を変更することは、オブジェクト指向プログラミングにより機能がクラス単位にまとめられているとしても、困難であった。このため、新たな機能を追加したり機能を変更したりするためには、新たな機能を有するプログラムをインストールする必要がある。したがって、頻繁に機能の追加や変更があるプログラムでは、機能の追加や変更のあるたびにインストールを行なわなければならず、非常に不便である。【０００５】
図１は、プログラムの機能の追加や変更について説明する。プログラム１０１があり、機能Ａ、機能Ｂ、機能Ｃがあり、それらの機能を使用するための機能メニューがあるとする。もし、機能Ｂを変更し、新たな機能Ｄを追加しようとすると、プログラム１０１を削除して、機能Ａ、機能Ｂを変更した新機能Ｂ、機能Ｃ、そして新たな機能Ｄを有するプログラム１０２をインストールしなければならなかった。すなわち、従来のプログラムにおいては、図１の太線により示されるように、プログラムの内外は厳然として区別されていた。【０００６】
この問題を解決するための一つの方法としては、ウェブアプリケーションを用いる方法がある。すなわち、ウェブサーバにプログラムを置き、利用者は、ウェブブラウザを用いて、ウェブサーバに置かれたプログラムを利用する。これにより、プログラムの機能に変更や追加が発生したとしても、利用者は新たなプログラムをインストールする必要がなくなる。しかし、ウェブサーバの管理者がプログラムのインストールを行なわなければならなくなる。しかも、ウェブサーバの管理者によるプログラムのインストールが行なわれている間、ウェブサーバを介したプログラムの使用は不可能となる。また、ウェブアプリケーションは、データの参照を主な目的とするプログラムには好適であるが、大量のデータの入力が必要なプログラム、複雑な操作が必要なプログラム、セキュリティなどの観点からオフラインでの利用が前提となるプログラムをウェブアプリケーションとして利用することはできない。【０００７】
そこで、本発明は、プログラムの機能の追加や変更を、プログラム全体のインストールを行なうことなく実現できる計算装置、計算プログラム及び計算方法などを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために、本発明では、所定の属性関係にあるオブジェクトが相互にコミュニケーション可能な状態になるようオブジェクトを複数保持し、保持されているオブジェクトが、コミュニケーション可能な他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことができる計算装置を提供する。【０００９】
これにより、例えば、オブジェクトの有する機能を示す情報をオブジェクトの属性情報の一部又は全てとすることにより、オブジェクトが追加される場合に、その追加されたオブジェクトの有する機能を属性情報として検索可能とすることができ、機能の追加や変更を検出し、その機能を利用することができる。したがって、課題が解決される。また、従来技術では、プログラム内部に未定義の名前が存在すると、その未定義の名前の参照によってプログラムが停止してしまうが、本発明のように、属性情報に基づいて他のオブジェクトを検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことにより、未定義の名前を参照してしまうことを防止することができる。したがって、全ての名前が解決している必要がなく、プログラムや計算機システムの開発のスピードアップをもたらすことができる。【００１０】
なお、属性情報に基づいて他のオブジェクトを検索するには、コールバックを利用して検索を行なってもよい。また、属性情報は、他のオブジェクトが提供するエントリポイントの名前（例えば、関数の名前やメソッドの名前）であってもよい。【００１１】
また、オブジェクトを外部の供給源よりダウンロード可能としておき、外部の供給源に保持されるオブジェクトにより定義されるクラスが、計算装置により保持されているオブジェクトの定義するクラスの子クラスであれば、計算装置により保持されているオブジェクトであるインスタンスをその子クラスのインスタンスに変更するようにしてもよい。【００１２】
これにより、クラスを定義することにより実現されている機能の変更を行なうことができる。【００１３】
また、本発明によれば、会社などの組織ごとにカスタマイズされた計算装置を提供することも容易となる。図２は、会社などの組織ごとに、計算装置をカスタマイズする必要性を説明するための図である。例えば、α社、β社、γ社という組織があり、α社は、Ａ社とＣ社と取引があり、β社はＢ社とＣ社と取引があり、γ社はＡ社とＣ社と取引がある。取引のためのデータは電子データとしてプログラムなどを用いて交換され、Ａ社、Ｂ社、Ｃ社ごとに電子データの交換手順が定まっているとする。したがって、図２の場合には、電子データの交換パターンは３通り存在する。このため、一つの計算装置で、α社、β社、γ社とＡ社、Ｂ社、Ｃ社との電子データの交換を実現するためには、三つの機能が必要となる。一方、α社、β社、γ社それぞれにとっては、不要な機能がそれぞれ一つあることになる。このため、α社、β社、γ社は計算装置についての不要な費用を負担したり、不用な機能のプログラムなどを格納したりしなければならない。【００１４】
一方、本発明では、オブジェクトとして、Ａ社用の手順で電子データを交換するためのもの、Ｂ社用の手順で電子データを交換するためのもの、Ｃ社用の手順で電子データを交換するためのもの、の三つのオブジェクトを準備しておく。そして、図３に例示されるように、計算装置３０１に、オブジェクト３０２をダウンロードなどが可能なようにしておき、必要なオブジェクト３０３、３０４、３０５などを保持させておき、オブジェクトの属性情報に基づく検索結果に基づいてコミュニケーションを行なわせることができる。【００１５】
図４は、α社、β社、γ社の計算装置の構成を例示する。符号４０１は、α社の計算装置を指し示す。すなわち、Ａ社用の手順で電子データを交換するためのオブジェクト（Ａ社オブジェクト）と、Ｃ社用の手順で電子データを交換するためのオブジェクト（Ｃ社オブジェクト）と、が保持され、また、電子データを交換した結果の集計などを行なう集計オブジェクトも保持されている。集計オブジェクトは、他のオブジェクトの属性情報に基づく検索により、Ａ社オブジェクトとＣ社オブジェクトとの存在を検出し、それぞれのオブジェクトとコミュニケーションを行なう。あるいは、Ａ社オブジェクトが、他のオブジェクトの属性情報に基づく検索により、集計オブジェクトの存在を検出して、コミュニケーションを行なってもよい。【００１６】
同様に、符号４０２は、β社の計算装置を指し示す。β社の計算装置では、集計オブジェクトは、Ｂ社オブジェクト（Ｂ社用の手順で電子データを交換するためのオブジェクト）とＣ社オブジェクトの存在を検出し、それぞれのオブジェクトとコミュニケーションを行なう。また、符号４０３は、γ社の計算装置を指し示す。γ社の計算装置では、集計オブジェクトは、Ａ社オブジェクトとＣ社オブジェクトの存在を検出し、それぞれのオブジェクトとコミュニケーションを行なう。【００１７】
したがって、α社、β社、γ社ごとにカスタマイズされた計算装置を提供することができる。【００１８】
以上では、「電子データの交換」という抽象的な例を用いたが、具体例を挙げると、銀行の口座の残高照会の結果や取引明細を示す情報がある。図５は、各銀行が定めた手順で通信を行なうためのオブジェクト（図５では、「銀行Ａ口座照会オブジェクト」、「銀行Ｂ口座照会オブジェクト」というオブジェクトが示されている。）を計算装置が保持し、また、同時に保持される口座一覧閲覧オブジェクトが、銀行Ａ口座照会オブジェクトと、銀行Ｂ口座照会オブジェクトと、コミュニケーションを行ない、口座ごとの口座残高や取引明細などを統合して利用者に提供するようになっている。もし、利用者が銀行Ｃと取引を開始すると、銀行Ｃ口座参照オブジェクトを新たに計算装置に保持させることにより、口座一覧閲覧オブジェクトは、検索を行なうことにより、銀行Ｃ口座参照オブジェクトの存在を検知して、コミュニケーションを行なう。また、銀行Ｃ口座参照オブジェクトが保持されると、その旨が口座一覧閲覧オブジェクトに通知されるようになっていてもよい。これにより、口座一覧閲覧オブジェクトは、銀行Ｃの口座を新たに閲覧対象とすることができる。【００１９】
また、図６は、本発明で提供できる別のサービスの概要を示す。これは、「インテリジェンスを持った情報の配信」サービスの例である。計算装置に、例えば、銀行Ａ口座照会オブジェクトが保持されているとする。このとき、サーバ装置から、住宅ローンシミュレーションオブジェクトを計算装置にダウンロードしたとする。住宅ローンシミュレーションオブジェクトがインテリジェンスを持った情報である。すなわち、住宅ローンシミュレーションオブジェクトは、他のオブジェクトの属性情報の検索を行なうことにより、銀行Ａ口座照会オブジェクトが保持されていることを検出し、銀行Ａ口座照会オブジェクトとコミュニケーションを行なう。これにより、住宅ローンシミュレーションオブジェクトは、利用者の収入の状況などの情報を得て、利用者の状況に応じた住宅ローンの返済計画のシミュレーションの情報を提供する。また、利用者が複数の預金口座を有している場合には、全ての預金口座の入出金状況を取得して、住宅ローンシミュレーションを行なうことができる。【００２０】
従来技術においては住宅ローンの返済計画のシミュレーションを行なうためには、計算装置の外部のサーバ装置などに利用者の収入の状況などを示す情報を送信して、その外部のサーバ装置でシミュレーションを行なう必要がある。このため、利用者の年収などのプライバシー情報の漏洩の虞があった。しかし、本発明では、プライバシー情報の交換は、計算装置内のコミュニケーションにより行なわれるので、プライバシー情報の漏洩の虞が無くなる。
【発明の効果】
【００２１】
本発明では、一のオブジェクトが、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうので、複数のオブジェクトから構成されるプログラムの機能を追加したり変更したりすることを行なうことができるという効果がある。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を実施するための最良の形態について、図を用いて実施形態として説明する。なお、本発明は、これら実施形態に何ら限定されることなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。【００２３】
なお、以下に説明する実施形態と本願の請求項との対応関係を説明すると次のようになる。実施形態１は、主に請求項１乃至３、１７及び１８に対応する。実施形態２は、主に請求項４に対応する。実施形態３は、主に請求項１１乃至１６に対応する。実施形態４は、主に請求項５に対応する。実施形態５は、主に請求項６に対応する。実施形態６は、主に請求項７に対応する。実施形態７は、主に請求項８に対応する。実施形態８は、主に請求項９及び１０に対応する。【００２４】
（実施形態１）
本発明の実施形態１として、所定の属性関係にあるオブジェクトが相互にコミュニケーション可能な状態になるようにオブジェクトを複数保持し、保持されているオブジェクトが、コミュニケーション可能な他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことが可能な計算装置、プログラムなどについて説明する。【００２５】
（実施形態１：構成）
図７は、本発明の実施形態１に係る計算装置の機能ブロック図を例示する。計算装置７００は、保持部７０１と、検索部７０２と、を有する。【００２６】
なお、本明細書においては、機能ブロック図により表わされる構成は、ハードウェアとしては、任意の計算機のＣＰＵ、メモリ、その他のＬＳＩなどにより実現される。また、ソフトウェアとしては、メモリにロードされたプログラムなどにより実現される。また、ハードウェアとソフトウェアとの連携により実現することもできる。特にソフトウェアが用いられて実現される場合には、そのようなソフトウェアを構成するプログラムをフレキシブルディスクや光ディスクなどの媒体に記録することも可能である。【００２７】
「保持部」７０１は、所定の属性関係にあるオブジェクトを、相互にコミュニケーションが可能な状態に複数保持可能な部である。「属性」の例を挙げると、オブジェクトの有する状態や機能がある。例えば、オブジェクトの状態を格納する変数の名前、その変数に格納される値、オブジェクトの有する関数、手続、メソッドなどのエントリポイントの名前、などがある。「属性関係」とは、あるオブジェクトからみて、他のオブジェクトが所定の属性を有するかどうかにより決定される関係である。例えば、一のオブジェクトが呼び出すことができる名前を有する関数を他のオブジェクトが有しているという関係である。「コミュニケーション」とは、オブジェクト間の通信である。例えば、オブジェクト間でのメッセージパッシングを行なったり、あるオブジェクトが、他のオブジェクトの有するエントリポイントであるメソッドや関数などを呼び出したりすることを意味する。「相互にコミュニケーション」とは、あるオブジェクトと他のオブジェクトとの間で情報が行き来することを意味する。なお、メッセージパッシングの場合には、同種の情報が行き来することに限定はされない。例えば、あるオブジェクトがメッセージを他のオブジェクトにメッセージパッシングの過程の一部として渡すと、他のオブジェクトはメッセージ受け取った旨やメッセージを処理した結果をメッセージパッシングの過程の一部として返すので、情報の行き来があるとみなすことができる。メソッドや関数などの呼び出しなどについても同様のことが言える。なお、オブジェクト指向言語では、メソッドは、名前のみならずメソッドの引数の型やメソッドの返す値の型も考慮して特定される場合があるので、本発明でも属性には、メソッドの引数型やメソッドの返す値の型が含まれていてもよい。【００２８】
「検索部」７０２は、保持部７０１に保持されている一のオブジェクトが、コミュニケーションが可能となる他のオブジェクトを、他のオブジェクトの属性情報に基づいて検索するための部である。「コミュニケーションが可能となる」とは、一のオブジェクトと他のオブジェクトとに所定の属性関係が成立することにより、一のオブジェクトから他のオブジェクトへ、メッセージパッシングやメソッドや関数などの呼び出しなどが可能となることである。例えば、検索部７０２は、保持部７０１に保持されている一のオブジェクトより、「この名前を有するエントリポイントを持つオブジェクトを検索せよ」という旨の検索要求に対して、他のオブジェクトのエントリポイントの名前を調べることを通じて検索を行ない、その検索結果を一のオブジェクトに返す。これにより、一のオブジェクトは、特定の名前のエントリポイントを持つ他のオブジェクトの存在を知ることができ、その名前のエントリポイントを用いて、コミュニケーションが可能となる。【００２９】
なお、エントリポイントの名前は、例えば、オブジェクトの有するシンボルテーブルを参照することにより得ることができる。図１５は、シンボルテーブルを有するオブジェクトを例示する。例えば、０ｘ００３４８９Ｃ０というアドレスのエントリが、Ｆｕｎｃｔｉｏｎ＿Ａという名前の関数などに割り当てられていることが示されている。なお、アドレスは絶対アドレスでもよいし、オブジェクトの先頭アドレスなどからのオフセット値である相対アドレスであってもよい。【００３０】
検索部７０２は、保持部７０１に保持されているオブジェクトのデータベースを有していてもよい。そのデータベースには、オブジェクトの属性情報が格納されている。検索部７０２は、一のオブジェクトから検索の要求があると、そのデータベースを検索して、検索結果を返す。また、保持部７０１に新たなオブジェクトが保持されるようになると、そのデータベースに新たなオブジェクトの属性情報などを登録し、保持部７０１からオブジェクトが削除される場合には、そのデータベースより属性情報などを削除する。【００３１】
図８は、保持部７０１に保持される複数のオブジェクトと検索部７０２を実現する検索プログラムとがメモリ空間に保持されている様子を例示する。符号８０１は、オブジェクト１が保持されている領域を指し示し、符号８０２は、オブジェクト２が保持されている領域を指し示す。また、オブジェクトが保持される領域は複数の領域に分かれていてもよく、符号８０３が指し示す領域のように二つの領域にオブジェクト３が保持さている。符号８０４は、検索プログラムが保持されている領域を指し示す。したがって、図３において、保持部７０１は符号８０５が指し示す領域に相当し、検索部７０２は、符号８０６が指し示す領域に相当する。なお、複数のオブジェクトは同じメモリ空間に保持されている必要はなく、異なるメモリ空間に保持されるようになっていてもよい。【００３２】
なお、図８に例示されるメモリ空間は、図９のように模式的に表わされることがある。計算装置９００は、保持部と検索部とを有し、保持部の上部に、オブジェクト１、オブジェクト２、オブジェクト３が配置されている。【００３３】
図１０は、オブジェクト１００１が、検索部７０２を実現する検索プログラム１００２に検索要求１００３を出力し、検索結果１００４を取得する様子を示す。まず、オブジェクト１００１が、検索プログラム１００２の所定のエントリポイントを呼び出し、検索要求１００３を出力する（検索ステップ）。この検索要求１００３の中にコミュニケーションが可能となるべき他のオブジェクトの属性情報に関する条件である検索条件が含まれている。あるいは、検索条件は、識別子などにより識別され、その識別子が検索要求１００３に含まれることにより、検索条件が検索要求１００３と関連付けられていてもよい。すると、検索プログラムは、検索条件に基づいて他のオブジェクトの検索を行ない、検索結果１００４を返す。検索結果１００４の中には、検索条件を満たすオブジェクトのメモリ上でのアドレスなどが含まれる。オブジェクト１００１は、この検索結果１００４により、他のオブジェクトが自身と所定の関係にあるかどうかをさらに精査してもよい（判断ステップ）。そして、他のオブジェクトと相互にコミュニケーションを行なう（コミュニケーションステップ）。【００３４】
図１１は、より複雑な検索の実現例である。この検索では、オブジェクト１１０１がコールバック１１０４を有し、検索プログラム１１０３は、コールバック１１０４を用いて検索を行なう。「コールバック」とは、エンティティＡの要求により所定の操作がエンティティＢにより行なわれるときに、エンティティＢが要求された操作の処理の一部または全てとしてエンティティＡに委譲する処理を意味する。例えば、オブジェクト１１０１が検索要求１１１１を検索モジュールに出力すると仮定する。このとき、検索要求１１１１には、検索条件が含まれるなどするとともに、コールバック１１０４を示す情報が含まれると仮定する。検索プログラム１１０３は、検索のために、オブジェクト取得１１１２により、例えば、他のオブジェクト１１０２を取得したと仮定する。検索プログラム１１０３は、検索要求１１１１に含まれる情報にコールバック１１０４を示す情報を参照してコールバック１１０４を呼び出し、他のオブジェクト１１０２が検索条件を満たすかどうかについての判断の処理の一部又は全てを委譲する。検索プログラム１１０３は、コールバックからの応答を得て、検索結果１１１５をオブジェクト１１０１に取得させる。【００３５】
（実施形態１：処理の流れ）
図１２は、本実施形態に係る計算装置の処理の流れを説明するフローチャートである。このフローチャートの処理を実施する前提として、計算装置は、オブジェクトを保持する（保持ステップ）。このとき、所定の属性関係にあるオブジェクトを相互にコミュニケーション可能な状態に保持するための処理を行なってもよい。例えば、所定の属性関係にあるオブジェクト同士をメモリ空間の近い場所に配置したり、あるオブジェクトが、所定の属性関係にあるオブジェクトの内部のメモリを参照できるようにしたりする。【００３６】
ステップＳ１２０１において、一のオブジェクトの検索要求に従って、他オブジェクトの属性情報に基づいて他のオブジェクトを検索する（検索ステップ）。ステップＳ１２０１は、一のオブジェクトの立場に立てば、検索部に対して検索要求を出力するステップであると見ることができる。また、計算装置の立場に立てば、保持部に保持されている一のオブジェクトから出力された検索要求を検索部が取得して、検索を行ない、検索結果をその一のオブジェクトに取得させることであると見ることもできる。次にステップＳ１２０２において、検索結果が空であるかどうかを判断する。検索結果が空でなければ、ステップＳ１２０３へ処理を移行させ、一のオブジェクトが、検索結果に含まれるオブジェクトとコミュニケーション可能とする。例えば、一のオブジェクトの内部に、コミュニケーション可能なオブジェクトとして登録を行なわさせる。【００３７】
（実施形態１：実施例）
図１３と図１４とは、本発明の実施例を示す。図１３において、オブジェクト１３０１、１３０２、１３０３、１３０４が保持部により保持されているとして、検索部を実現する検索プログラム１３０５もメモリ空間に配置されているとする。例えば、オブジェクト１３０２、１３０３、１３０４は、例えば、オブジェクトが表わす会社（このような会社を「オブジェクトに対応する会社」といい、オブジェクトを「会社に対応するオブジェクト」という）などの売上情報を保持しており、オブジェクト１３０２は、売上情報として９５０万円を保持し、オブジェクト１３０３は１０６０万円を、オブジェクト１３０４は１６００万円を、保持すると仮定する。また、オブジェクト１３０２、１３０３、１３０４は、それらのオブジェクトに対応する会社が消費税の申告を行なう必要があるかどうかという情報も保持しているとする。【００３８】
いま、売上が１５００万円までであれば消費税の申告が不要であったところが、法改正などにより、申告免除の売上額が引き下げられ、売上が１０００万円までであれば消費税の申告が必要になったとする。このとき、オブジェクト１３０１は、法改正などを適用するオブジェクトであると仮定する。すなわち、オブジェクト１３０１は、売上が１０００万円から１５００万円までの今まで消費税の申告が不要であった会社に対応するオブジェクトの保持する消費税の申告の要否に関する情報を、消費税の申告を行なう必要があることを示す情報に変更することを行なうと仮定する。【００３９】
オブジェクト１３０１は、検索プログラム１３０５に対して、売上が１０００万円から１５００万円までの今まで消費税の申告が不要であった会社に対応するオブジェクトを検索するための検索要求１３０６を出力する。また、このとき、売上が１０００万円から１５００万円の範囲にあるかどうかを判断するためのコールバックの情報も出力してもよい。検索プログラムは、検索を行ない、オブジェクト１３０３を含む検索結果１３０７をオブジェクト１３０１に返す。オブジェクト１３０１は、検索結果１３０７に基づいて、オブジェクト１３０３と相互にコミュニケーションを行ない、オブジェクト１３０３の有する消費税の申告が不要であることを示す情報を、消費税の申告が必要であることを示す情報に変更する。例えば、消費税の申告の要否を示す情報を変更するオブジェクト１３０３の所定のエントリポイントをオブジェクト１３０１が呼び出すことにより、このような変更を行なう。その結果、図１４のような状態になる。すなわち、オブジェクト１３０３について、図１３においては、消費税申告不要という情報が保持されていたのに対して、図１４においては、消費税申告必要という情報が保持される。【００４０】
（実施形態１：主な効果）
本実施形態によれば、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことになっているので、複数のオブジェクトから構成されるプログラムの機能を追加したり変更したりすることを行なうことができる。【００４１】
（実施形態２）
本発明の実施形態２として、保持部がインスタンスを生成する手段を有する計算装置などについて説明する。【００４２】
（実施形態２：構成）
図１６は、本発明の実施形態２に係る計算装置の機能ブロック図を例示する。計算装置１６００は、実施形態１に係る計算装置のように、保持部７０１と、検索部７０２と、を有する。本実施形態では、保持部７０１が、インスタンス生成手段１６０１を有する構成となっている。【００４３】
本実施形態では、保持部に保持されるオブジェクトは、クラス定義を記述できるオブジェクト指向言語により記述されているとする。例えば、ＪＡＶＡ（登録商標）でオブジェクトが記述されているとする。【００４４】
「インスタンス生成手段」１６０１は、保持部７０１で保持されるオブジェクトがクラスを定義するオブジェクトである場合には、インスタンスを生成してオブジェクトとして保持を行なう。例えば、ＪＡＶＡ（登録商標）であれば、クラスを定義するオブジェクトに対してｎｅｗ演算子を実行することにより、クラスのインスタンスを生成し、生成されたインスタンスをオブジェクトとして保持する。【００４５】
図１７と図１８とは、インスタンスの生成の一例を示す。まず、図１７に示すように、メモリ空間に、インスタンス生成手段１７０１と、クラスを定義するオブジェクト１７０２と、が配置されていたとする。この状態において、インスタンス生成手段１７０１は、例えば他のオブジェクトの要求に従って、オブジェクト１７０２が定義するクラスのインスタンスを生成する。この生成されたインスタンスを、例えば、オブジェクト１８０１としてメモリ空間に保持する。なお、インスタンスは一つのクラスに対して複数生成することができる。例えば、図１３、図１４において、会社に対応するオブジェクト１３０２、１３０３、１３０４は、会社を表わすクラスのインスタンスであると考えることができる。【００４６】
また、図１９は、別の例を示し、インターネットなどの通信網を介して特定の銀行の預金口座の情報にアクセスし、預金残高や取引明細を得たり、預金口座から振込などの操作を行なったりするための預金口座アクセスクラス１９０１がオブジェクトとして保持されていたと仮定する。また、利用者がその特定の銀行に預金口座Ａと預金口座Ｂとの２つの預金口座を持っていたと仮定する。このとき、これらの２つの預金口座に対応して、預金口座アクセスクラス１９０１から２つのインスタンス、すなわち、預金口座Ａに対応する預金口座Ａアクセスインスタンス１９０２と、預金口座Ｂに対応する預金口座Ｂアクセスインスタンス１９０３とを、インスタンス生成手段を用いて生成し、保持する。これにより、異なる預金口座は、異なるインスタンスを用いてアクセスがされる。また、異なる銀行の預金口座をアクセスするための預金口座アクセスクラスもあり、その銀行の預金口座に対応するインスタンスも作られるようになっていてもよい。【００４７】
なお、インスタンス生成手段により生成され保持されたインスタンスの状態を示すデータなど（例えば、口座番号、パスワードなど）をシリアライズなどして、計算装置などの有する磁気ディスクなどの永続的な記憶領域に書き出すようになっていてもよい。このようにすることにより、インスタンスに保持されている情報が永続的に記憶され、計算装置の電源が再投入された場合に、電源が切断される前のインスタンスの内容を復元することができる。インスタンスとして保持されたオブジェクト以外のオブジェクトも、シリアライズなどが行なわれて、記憶領域に書き出されるようになっていてもよい。【００４８】
（実施形態２：主な効果）
本実施形態により、オブジェクト指向言語で記述されたオブジェクトを保持することができる。オブジェクト指向言語を用いることにより、複数のインスタンスの機能を一つのクラスに集中できるなどのことができ、開発工数の低減などを通じて開発期間の短縮などの効果を享受できる。【００４９】
（実施形態３）
本発明の実施形態３として、あるオブジェクトと所定の属性関係にあると判断された場合に、そのオブジェクトから状態を取得して、取得された状態に基づいて選択される情報を出力するプログラムとしてのオブジェクトについて説明する。すなわち、「インテリジェンスを持った情報の配信」サービスにおいて用いられるオブジェクトについて説明する。【００５０】
（実施形態３：構成）
図２０は、本発明の実施形態３に係るプログラムとしてのオブジェクトの処理の流れを説明するフローチャートを例示する。本実施形態に係るオブジェクトは、図２０のフローチャートの処理を実行する前提として、これまでの実施形態で説明されたように、検索部により検索を行ない、自身と所定の属性にあり、コミュニケーションが可能な他のオブジェクトを求めておく。【００５１】
ステップＳ２００１において、他のオブジェクトとのコミュニケーションにより、他のオブジェクトとしてのプログラムの状態を取得する（状態取得ステップ）。例えば、他のオブジェクトとしてのプログラムであるインスタンスに保持される変数の値などを取得する。【００５２】
次に、ステップＳ２００２において、ステップＳ２００１で取得された状態に基づいて情報を選択する（選択ステップ）。例えば、状態と選択されるべき情報とを関連付けた表などを参照して、情報を選択する。このような表は、本実施形態に係るプログラムとしてのオブジェクトがその内部に保持していてもよい（このようにオブジェクト内部に保持された表が用いられて情報が選択される場合の選択ステップを、「内部情報選択ステップ」という）。また、このような表は、計算装置の外部のサーバ装置などに保持されていて、本実施形態に係るプログラムとしてのオブジェクトは、その表を参照するための問い合わせなどを行ない、サーバ装置からの返答により、情報が選択されるようになっていてもよい（このようにオブジェクト外部に保持された表が用いられて情報が選択される場合の選択ステップを「外部情報選択ステップ」という）。【００５３】
ステップＳ２００３において、ステップＳ２００２で選択された情報を出力する。例えば、計算装置の利用者に対してディスプレイを介して表示などを行なう。【００５４】
（実施形態３：実施例）
図２１と図２２とは、本発明の実施例を示す。図２１において、預金口座アクセスクラス２１０１がオブジェクトとして保持されている。預金口座アクセスクラス２１０１のクラス定義に基づいて生成されたインスタンスとしてのオブジェクトが、預金口座Ａアクセスインスタンス２１０２であるとする。また、本実施形態に係るオブジェクトとしてのプログラムとして、商品広告オブジェクト２１０３が保持されているとする。【００５５】
商品広告オブジェクト２１０３は、検索部による検索結果により、自身と所定の関係にある預金口座Ａアクセスインスタンス２１０２が保持されていることを検出する。例えば、預金口座Ａアクセスインスタンス２１０２は、商品広告オブジェクト２１０３が他のオブジェクトに対して呼び出すことができる名前のメソッドを有していることが検索によって検出される。このとき、商品広告オブジェクトは、その名前のメソッドであって、預金口座Ａアクセスインスタンスの有するメソッドを呼び出すなどして、預金口座Ａの預金額を示す情報２１０４を、預金口座Ａアクセスインスタンスの情報として、取得する。【００５６】
商品広告オブジェクトは、預金口座Ａの預金額を示す情報２１０４に基づいて、計算装置の利用者に対して表示する広告を選択する。このとき、例えば、図２２に例示するように預金額に応じて広告を定める表を参照してもよい。例えば、預金額が１５０万円であれば、投資信託の広告を示す情報が選択される。なお、図２２に例示された表は、商品広告オブジェクトの内部に保持されていてもよいし、商品広告オブジェクトの外部―例えば外部のサーバ装置―に保持されていてもよい。【００５７】
商品広告オブジェクト２１０３が広告を示す情報を選択すると、情報を広告情報２１０５として、出力する。【００５８】
したがって、本実施例では、商品広告オブジェクトが状態取得ステップで取得する状態は、預金額という計算装置の利用者の個人情報に関連している。また、選択ステップで選択される情報は、広告を示す広告情報となっていることがわかる。【００５９】
また、本実施例では、商品広告オブジェクトは、同じメモリ空間に保持された預金口座Ａアクセスインスタンスより状態を取得している。したがって、通信網を介して状態が取得される必要がなく、通信網を情報が流れることによる情報の漏洩が発生しない。【００６０】
（実施形態３：主な効果）
本実施形態においては、保持部に保持されたオブジェクトの状態が、本実施形態に係るオブジェクトとしてのプログラムに取得され、広告などの情報を出力することができる。したがって、本実施形態に係るオブジェクトとしてのプログラムを、インテリジェンスを持った情報として配信することができ、様々なサービスを提供することができる。なお、本実施形態に係るオブジェクトとしてのプログラムは、通信網を介して配信するのみならず、光ディスクなどの記憶媒体に記録して配信することができることは言うまでもない。【００６１】
（実施形態４）
本発明の実施形態４として、実施形態２に係る計算装置などであって、インスタンスが生成されたことを他のオブジェクトに通知を行なう計算装置などについて説明する。【００６２】
（実施形態４：構成）
図２３は、本発明の実施形態４に係る計算装置の機能ブロック図を例示する。計算装置２３００は、実施形態２に係る計算装置のように、保持部７０１と、検索部７０２と、を有する。保持部７０１は、インスタンス生成手段１６０１を有し、本実施形態においては、さらにインスタンス生成通知手段２３０１を有している。【００６３】
「インスタンス生成通知手段」２３０１は、インスタンス生成手段１６０１によりインスタンスが生成されたことを、保持部７０１が保持する他のオブジェクトに通知する。例えば、インスタンス生成通知手段２３０１は、他のオブジェクトに対して、インスタンスが生成されたことを示すメッセージを他のオブジェクトに送信する。このメッセージの中には、生成されたインスタンスを識別する情報―例えば、インスタンスの開始アドレス―が含まれていてもよい。また、通知を受けたオブジェクトは、通知を識別する識別情報などを用いてインスタンス生成通知手段２３０１などに問い合わせを行ない、生成されたインスタンスに関する情報を取得するようになっていてもよい。【００６４】
図２４は、インスタンスが生成されたことの通知を利用する一例を示す。入出金管理オブジェクト２４０１があり、このオブジェクトは、保持部に保持された預金口座アクセスクラスの全てのインスタンスが表わす預金口座の入出金を一元的に管理すると仮定する。例えば、入金と出金を時系列に表示したりする。預金口座アクセスクラス２４０２があるとして、預金口座アクセスクラス２４０２のインスタンスとして、預金口座Ａをアクセスするための預金口座Ａアクセスインスタンスが生成されたとする。このとき、インスタンス生成通知手段２３０１は、入出金管理オブジェクトに対して、預金口座Ａアクセスインスタンスが生成されたという通知２４０４を出力する。この通知により、入出金管理オブジェクト２４０１は、入金と出金に関する情報を預金口座Ａアクセスインスタンスからも取得するべきことを知ることができる。結果として、保持部に保持された預金口座アクセスクラスの全てのインスタンスが表わす預金口座の入出金を一元的に管理することができる。【００６５】
（実施形態４：主な効果）
本実施形態によれば、オブジェクトは、インスタンスが生成されたことを検出することができ、特定の種類のインスタンス全ての情報を統合して管理することなどが可能となる。【００６６】
（実施形態５）
本発明の実施形態５として、オブジェクトをダウンロードする機能を有する計算装置などについて説明する。【００６７】
（実施形態５：構成）
図２５は、本発明の実施形態５に係る計算装置の機能ブロック図を例示する。計算装置２５００は、実施形態２または４に係る計算装置のように、保持部７０１と、検索部７０２と、を有し、保持部７０１は、インスタンス生成手段１６０１を有している（実施形態４のように、インスタンス生成通知手段をさらに有していてもよい）。本実施形態においては、計算装置２５００は、さらにダウンロード部２５０１を有している。【００６８】
「ダウンロード部」２５０１は、オブジェクトを供給源２５０２よりダウンロードする。供給源とは、オブジェクトを保持する存在であり、例えば、計算装置の外部に設置されたサーバ装置である。あるいは、供給源はオブジェクトを格納した媒体であってもよく、計算装置２５００がその媒体を読み取り可能な状態にすることにより―例えば、計算装置の媒体読取部に設置することにより、その媒体よりオブジェクトが読み込まれるようになっていてもよい。供給源２５０２が計算機の外部に設置されたサーバ装置などである場合には、計算装置２５００と供給源２５０２とは、インターネットなどの通信網を介して通信が可能になっており、この可能となった通信によりオブジェクトがダウンロードされる。【００６９】
例えば、計算装置が、供給源となる外部のサーバ装置に通信を行なって、サーバ装置に格納され、ダウンロード可能となっているオブジェクトの情報を取得する。そして、ブラウザなどの表示ウィンドウに、オブジェクトのアイコンなどの一覧が表示される。その一覧を見た計算装置の利用者が、オブジェクトのアイコンを、マウスポインタなどを用いて、ダウンロード部などの表示ウィンドウにドラッグアンドドロップすることにより、ダウンロードするべきオブジェクトが特定され、ダウンロード部によりダウンロードされる。【００７０】
また、オブジェクトには、オブジェクトの出所を示す認証情報が付加されていてもよい。また、オブジェクトの改ざんを検出するために署名などが付されていてもよい。なぜなら、実施形態３で説明したようにオブジェクトは他のオブジェクトの状態を得ることができ、不正なオブジェクトがダウンロードされてしまうと、情報の漏洩などが発生する虞があるからである。計算装置２５００は、認証情報や署名の正しさを確認した後、ダウンロード部２５０１でダウンロードされたオブジェクトを保持部１６０１に保持させるようになっていてもよい。【００７１】
（実施形態５：主な効果）
本実施形態においては、オブジェクトのダウンロードによって、新たな機能を追加したり、すでに存在する機能を修正したりすることができる。【００７２】
（実施形態６）
本発明の実施形態６として、供給源に保持されたオブジェクトと保持部に保持されたオブジェクトの継承関係を判断して、保持部に保持されたインスタンスとしてのオブジェクトを更新する計算装置などについて説明する。【００７３】
（実施形態６：構成）
図２６は、本発明の実施形態６に係る計算装置の機能ブロック図を例示する。計算装置２６００は、実施形態５に係る計算装置のように、保持部７０１と、検索部７０２と、ダウンロード部２５０１と、を有し、保持部７０１は、インスタンス生成手段１６０１を有している（実施形態４のように、インスタンス生成通知手段をさらに有していてもよい）。本実施形態においては、ダウンロード部２５０１が、継承判断手段２６０１と、インスタンス更新手段２６０２と、を有している。【００７４】
「継承判断手段」２６０１は、供給源クラスが保持クラスを継承するかどうかを判断する。ここに、「供給源クラス」とは、供給源２５０２に保持されているオブジェクトにより定義されるクラスである。また、「保持クラス」とは、保持部７０１に保持されているオブジェクトにより定義されるクラスである。「供給源クラスが保持クラスを継承する」とは、供給源クラスが保持クラスの子クラスあるいは子孫クラスとなっていることをいう。オブジェクト指向言語では、あるクラスの子クラスとして定義されるクラスの定義には、どのクラスを親クラスとするかの記述が含まれる。そこで、継承判断手段２６０１は、供給源クラスの親クラス、また、必要ならさらにその親クラスなどの先祖のクラスが何であるかを判断し、これらのクラスの中に保持クラスが入っているかどうかなどにより、供給源クラスが保持クラスを継承するかどうかを判断するようになっていてもよい。【００７５】
「インスタンス更新手段」２６０２は、継承判断手段２６０１により、供給源クラスが保持クラスを継承すると判断された場合には、保持クラスのインスタンスを供給源クラスのインスタンスに更新する。多くの場合には、供給源クラスには、親クラスや先祖クラスのインスタンスから供給源クラスのインスタンスを生成するためのメソッド（以下「更新メソッド」という）が定義されている。そこで、インスタンス更新手段２６０２は、供給源クラスの親クラスや先祖クラスとなる保持クラスのインスタンスを検索して、検索されたインスタンスを更新メソッドに渡し、供給源クラスのインスタンスを生成することにより、インスタンスの更新を行なうようになっていてもよい。なお、インスタンスの更新の内容としては、子クラスで新たに定義されたインスタンス変数の初期化、既に定義されているインスタンス変数の変更などがある。【００７６】
（実施形態６：インスタンスの更新の例）
図２７から図２９は、インスタンスの更新の例を示す。図２７において、まず、供給源２５０２よりクラスＡの定義を含むオブジェクト２７０１がダウンロードされ、保持部７０１にオブジェクト２７０２として保持され、また、そのインスタンスとしてオブジェクト２７０３が保持されているとする。【００７７】
次に、図２８に示すように、供給源２５０２に、クラスＡを継承するクラスＢの定義を含むオブジェクト２８０１が保持されたとする。この場合、ダウンロード部２５０１は、「クラスＢはクラスＡを継承する」ことを表わす情報などを得る。例えば、計算装置２７００の利用者が供給源に保持されているオブジェクトの属性などの一覧を取得することにより、この情報が得られる。継承判断手段２６０１は、このような情報を参照などして、供給源クラスが保持クラスを継承するようになったと判断する。【００７８】
そこで、図２９に示すように、ダウンロード部２５０１により、クラスＢの定義を含むオブジェクト２８０１が、供給源２５０２よりダウンロードされ、保持部７０１によりオブジェクト２９０１として保持される。次に、インスタンス更新手段２６０２により、インスタンス２７０３より、クラスＢのインスタンスであるオブジェクト２９０２が生成などされて、インスタンスの更新がされる。なお、情報などの重複を避けるために、オブジェクト２９０２が生成などされた後に、インスタンスＡであるオブジェクト２７０３は削除されてもよい。【００７９】
（実施形態６：処理の流れ）
図３０は、計算装置の本実施形態における処理の流れを説明するフローチャートである。ステップＳ３００１において、供給源クラスが保持クラスを継承するかどうかを判断する。この判断は、継承判断手段２６０１により行なわれる。もし、判断結果がＹＥＳであれば、処理をステップＳ３００２へ移行させる。ステップＳ３００２においては、供給源より供給源クラスの定義を含むオブジェクトをダウンロードする。この処理は、ダウンロード部２５０１により行なわれる。ステップＳ３００３においては、供給源クラスにより継承される保持クラスのインスタンスを、ステップＳ３００２でダウンロードされたオブジェクトにより定義されるクラスのインスタンスに更新する。【００８０】
（実施形態６：主な効果）
本実施形態においては、供給源クラスと保持クラスとの継承関係に基づいてインスタンスの更新が行なわれる。一般にオブジェクト指向言語では、あるクラスを継承するクラスを定義することにより、クラスの改良を実現することができるので、機能拡張の効率が向上する。【００８１】
（実施形態７）
本発明の実施形態７として、供給源に保持されたオブジェクトと保持部に保持されたオブジェクトの継承関係の判断を、定期的あるいは非定期的に実行する計算装置などについて説明する。【００８２】
（実施形態７：構成）
図３１は、本発明の実施形態７に係る計算装置の機能ブロック図を例示する。計算装置３１００は、実施形態６に係る計算装置のように、保持部７０１と、検索部７０２と、ダウンロード２５０１と、を有し、保持部７０１は、インスタンス生成手段１６０１を有し（実施形態４のように、インスタンス生成通知手段をさらに有していてもよい）、ダウンロード部２５０１が、継承判断手段２６０１と、インスタンス更新手段２６０２と、を有している。本実施形態では、ダウンロード部２５０１は、さらに継承判断実行手段３１０１を有している。【００８３】
「継承判断実行手段」３１０１は、継承判断手段２６０１に、その判断を定期的又は非定期的に行なわせる。例えば、継承判断実行手段３１０１は、継承判断手段２６０１に対して、供給源クラスの情報を、２４時間ごとに取得させて、供給源クラスが保持クラスを継承していないかどうかの判断を行なわせる。また、一定の時間ごとに判断を行なわせるのではなく、計算装置の電源が投入されるなどの所定の操作が行なわれる都度、判断を行なわせるようになっていてもよい。また、供給源より、供給源に新たなオブジェクトが追加されたなどの情報を取得して、その取得が行なわれる都度、継承判断手段２６０１に判断を行なわせてもよい。【００８４】
もし、供給源クラスが保持クラスを継承していると判断されると、供給源より供給源クラスの定義を含むオブジェクトがダウンロードされ、保持クラスのインスタンスの更新が行なわれる。【００８５】
（実施形態７：主な効果）
本実施形態によれば、継承判断実行手段により、供給源クラスが保持クラスを継承しているかどうかの判断が行なわれるので、機能の追加や変更の漏れを無くすことができる。【００８６】
（実施形態８）
本発明の実施形態８として、一連の処理を行なうための複数のオブジェクトが保持される計算装置などについて説明する。「一連の処理」とは、最終的な目的に向かって、複数の処理などが順次、あるいは並行して行なわれることを意味する。【００８７】
（実施形態８：構成）
図３２は、本発明の実施形態８に係る計算装置の機能ブロック図を例示する。実施形態１に係る図７、実施形態２に係る図１６、実施形態４に係る図２３、実施形態５に係る図２５、実施形態６に係る図２６、実施形態７に係る図３１と図３２とを比較すると、計算装置３２００は、その保持部７０１がさらに処理オブジェクト保持手段３２０１を有している。【００８８】
「処理オブジェクト保持手段」３２０１は、次の性質を有する複数のオブジェクトを保持するための手段である。すなわち、複数のオブジェクトは、（１）それぞれのサーバ装置と通信を行ない、（２）通信の結果に基づいて相互にコミュニケーションを行なって、（３）一連の処理を実現するためのオブジェクトである。【００８９】
「それぞれのサーバ装置」とは、オブジェクトごとに通信を行なうサーバ装置が定まっていることを意味する。「通信の結果に基づいて」とは、サーバ装置の通信の結果を利用して、別のオブジェクトなどとコミュニケーションを行なうことを意味する。【００９０】
図３３は、処理オブジェクト保持手段で保持されるオブジェクトの通信やコミュニケーションを説明するための図である。処理オブジェクト保持手段は、オブジェクト３３０１、オブジェクト３３０２、オブジェクト３３０３を保持している。オブジェクト３３０１は、サーバ装置３３０４と通信を行ない、オブジェクト３３０２は、サーバ装置３３０５と通信を行ない、オブジェクト３３０３は、サーバ装置３３０６と通信を行なう。なお、異なるオブジェクトが同じサーバ装置と通信することがあってもよい。その場合は、例えば、通信に使用するポート番号などが異なっており、通信を行なうサーバ装置は同じであっても、オブジェクトごとに異なるプロトコルや異なる内容の通信が行なわれるようになっていてもよい。【００９１】
オブジェクト３３０１はオブジェクト３３０２とコミュニケーションを行なう。例えば、オブジェクト３３０１は、検索部による検索により、オブジェクト３３０２と所定の属性関係にあることを検知し、コミュニケーションを行なう。【００９２】
例えば、オブジェクト３３０１がサーバ装置３３０４と通信を行ない、その通信の結果により、オブジェクト３３０２とコミュニケーションを行なう。例えば、サーバ装置３３０４との通信で得られた情報に対して加工を行なう。例えば、サーバ装置３３０４との通信で得られた情報を、オブジェクト３３０２により処理が可能なフォーマットに変形などする。そして、加工の結果得られた情報をオブジェクト３３０２に取得させる。【００９３】
図３４は、別の処理の態様を示す。図３３では、オブジェクトが線形に配置され、順次処理が行なわれるようになっていた。これに対して図３４では、例えば、オブジェクト３４０１がオブジェクト３４０２とオブジェクト３４０３とコミュニケーションを行なう。オブジェクト３４０２は、サーバ装置３４０５と通信を行ない、オブジェクト２４０３はサーバ装置３４０６と通信を行なうようになっている。オブジェクト３４０１は、オブジェクト３４０２とオブジェクト３４０３とにより並行して行なわれた処理の結果をコミュニケーションにより取得することができるようになっている。【００９４】
図３５は、処理オブジェクト保持手段で保持されるオブジェクトによる一連の処理が、計算装置の利用者とのインタラクションに基づいて、複数の段階に分割されている例である。そして、処理オブジェクト保持手段で保持される各オブジェクトは、各段階の処理を実現する。【００９５】
例えば、受注オブジェクトは、ショッピングサーバ装置と通信を行ない、商品に対する注文情報を取得する。受注オブジェクトは、取得した注文情報から注文された商品を識別する情報や個数などを示す情報である商品情報や、商品の配送先を示す情報である発送先情報など、を抽出し、受注があったことを利用者に表示などする。受注オブジェクトは、利用者からの承認などを得ると、商品情報と発送先情報を発送オブジェクトへ出力する。発送オブジェクトは、流通管理サーバ装置と通信を行ない、商品の配送のための要求である発送要求を行なう。また、発送オブジェクトは、流通管理サーバ装置からの応答を受信し、その応答の内容などを発送確認として利用者に表示などする。発送オブジェクトは、利用者が発送を確認したことを示す情報を取得すると、売上計上を行なうための情報を会計オブジェクトに出力する。会計オブジェクトは、会計管理を行なう会計管理サーバ装置に対して、売上計上要求を送信し、会計管理を行なわせ、返答として、売上合計などの情報を得る。会計オブジェクトは、利用者に売上計上されたことや、売上の合計などを出力する。【００９６】
この実施例においては、受注オブジェクト、発送オブジェクト、会計オブジェクトは、所定の属性関係にあるオブジェクトを検索して、コミュニケーションの相手の存在を検知するので、例えば、ショッピングサーバ装置を変更する場合には、受注オブジェクトの機能を変更するだけで済み、計算装置そのものやプログラム全体を交換する必要がない。また、さらに税務処理を行なうための税務オブジェクトを追加する場合には、税務オブジェクトが会計オブジェクトの存在を検知する（会計オブジェクトが税務オブジェクトの存在を検知してもよい）ので、機能拡張が容易に行なえる。また、オブジェクトごとに異なる会社などがオブジェクトを実装することができるので、一つの会社がプログラム全体を実装することになり、プログラムの開発や保守をその会社に大きく依存してしまうことを避けることができる。【００９７】
（実施形態８：主な効果）
本実施形態では、一連の処理が複数のオブジェクトにより実現され、また、本発明ではオブジェクトの独立性が高いので、処理の一部を変更したり、さらに処理を追加したりすることが容易に行なえる。
【産業上の利用可能性】
【００９８】
本発明の計算装置、計算プログラム及び計算方法によれば、他のオブジェクトの属性情報に基づいて検索し、その検索結果に基づいて他のオブジェクトとコミュニケーションを行なうことになっているので、複数のオブジェクトから構成されるプログラムの機能を追加したり変更したりすることを行なうことができ、本発明は産業上有用である。
【図面の簡単な説明】
【００９９】
【図１】従来技術におけるプログラムの機能の追加について説明するための図
【図２】電子データを交換する組織の関係を示す図
【図３】本発明による課題の解決手段を説明するための図
【図４】組織ごとにカスタマイズされた計算装置の一例図
【図５】本発明による課題の解決手段を説明するための具体図
【図６】本発明によるインテリジェンスを持った情報の配信の一例図
【図７】本発明の実施形態１に係る計算装置の機能ブロック図
【図８】メモリ空間の一例図
【図９】本発明の実施形態１に係る計算装置の構成の模式図
【図１０】オブジェクトと検索プログラムの関係の一例図
【図１１】オブジェクトと検索プログラムの関係の一例図
【図１２】計算装置の処理の流れを説明するフローチャート
【図１３】本発明の一実施例図
【図１４】本発明の一実施例図
【図１５】シンボルテーブルを有するオブジェクトの一例図
【図１６】本発明の実施形態２に係る計算装置の機能ブロック図
【図１７】インスタンスの生成を説明するためのメモリ空間の一例図
【図１８】インスタンスの生成を説明するためのメモリ空間の一例図
【図１９】インスタンスの生成を説明するためのメモリ空間の一例図
【図２０】本発明の実施形態３に係るプログラムとしてのオブジェクトによる処理のフローチャート
【図２１】状態の取得を説明するためのメモリ空間の一例図
【図２２】預金額に応じて広告を定める表の一例図
【図２３】本発明の実施形態４に係る計算装置の機能ブロック図
【図２４】インスタンス生成の通知を説明するためのメモリ空間の一例図
【図２５】本発明の実施形態５に係る計算装置の機能ブロック図
【図２６】本発明の実施形態６に係る計算装置の機能ブロック図
【図２７】インスタンスの更新を説明するための図
【図２８】インスタンスの更新を説明するための図
【図２９】インスタンスの更新を説明するための図
【図３０】計算装置の処理の流れを説明するフローチャート
【図３１】本発明の実施形態７に係る計算装置の機能ブロック図
【図３２】本発明の実施形態８に係る計算装置の機能ブロック図
【図３３】処理オブジェクト保持手段で保持されるオブジェクトの通信やコミュニケーションを説明するための図
【図３４】処理オブジェクト保持手段で保持されるオブジェクトの通信やコミュニケーションを説明するための図
【図３５】処理オブジェクト保持手段で保持されるオブジェクトの通信やコミュニケーションを説明するための図
【符号の説明】
【０１００】
７００  計算装置
７０１  保持部
７０２  検索部
【図１】
2006100772.tif 000002
【図２】
2006100772.tif 000003
【図３】
2006100772.tif 000004
【図４】
2006100772.tif 000005
【図５】
2006100772.tif 000006
【図６】
2006100772.tif 000007
【図７】
2006100772.tif 000008
【図８】
2006100772.tif 000009
【図９】
2006100772.tif 000010
【図１０】
2006100772.tif 000011
【図１１】
2006100772.tif 000012
【図１２】
2006100772.tif 000013
【図１３】
2006100772.tif 000014
【図１４】
2006100772.tif 000015
【図１５】
2006100772.tif 000016
【図１６】
2006100772.tif 000017
【図１７】
2006100772.tif 000018
【図１８】
2006100772.tif 000019
【図１９】
2006100772.tif 000020
【図２０】
2006100772.tif 000021
【図２１】
2006100772.tif 000022
【図２２】
2006100772.tif 000023
【図２３】
2006100772.tif 000024
【図２４】
2006100772.tif 000025
【図２５】
2006100772.tif 000026
【図２６】
2006100772.tif 000027
【図２７】
2006100772.tif 000028
【図２８】
2006100772.tif 000029
【図２９】
2006100772.tif 000030
【図３０】
2006100772.tif 000031
【図３１】
2006100772.tif 000032
【図３２】
2006100772.tif 000033
【図３３】
2006100772.tif 000034
【図３４】
2006100772.tif 000035
【図３５】
2006100772.tif 000036
【国際調査報告】
2006100772.tif 000037
2006100772.tif 000038
2006100772.tif 000039
2006100772.tif 000040
2006100772.tif 000041
2006100772.tif 000042
2006100772.tif 000043