(57)【特許請求の範囲】
【請求項１】
クライアントから発信される、データを処理するメソッドを起動するリクエストを受信するメソッド起動方式において、
メソッドを起動するサーバと、
上記クライアントからのリクエストを受信し、受信したリクエストを上記サーバへ発信するオブジェクト実行環境部とを備え、
上記リクエストは、起動するメソッドを特定するメソッド情報を含み、
上記オブジェクト実行環境部は、メソッド情報と当該メソッド情報を含む複数のリクエストをまとめて処理する条件を規定する複数処理条件とを含むクラスポリシィを複数記憶するクラスポリシィリポジトリを備え、
上記サーバは、上記オブジェクト実行環境部から発信されたリクエストを受信するとともに、上記クラスポリシィリポジトリを検索して、受信したリクエストと同じメソッド情報を含むクラスポリシィを特定し、特定したクラスポリシィに含まれる複数処理条件を取得するリクエストキュー管理部と、上記リクエストキュー管理部により受信されたリクエストを蓄積するリクエストキューテーブルと、上記リクエストキューテーブルに蓄積されたリクエストの内、上記リクエストキュー管理部により受信されたリクエストと同じメソッド情報を含むリクエストの数を示すリクエスト蓄積状況を、上記リクエストキュー管理部により取得された複数処理条件と対応付けて記憶するメソッド呼び出しテーブルと、上記リクエストキューテーブルに蓄積されたリクエストを第１のリクエストとして取得し、上記第１のリクエストに含まれるメソッド情報で特定されるメソッドを起動して、当該メソッドの処理結果を、上記第１のリクエストを発信したクライアントへ返信するとともに、上記第１のリクエストと同じメソッド情報を含み且つリクエスト蓄積状況が上記メソッド呼び出しテーブルに当該リクエスト蓄積状況と対応付けて記憶された複数処理条件を満たしているリクエストを第２のリクエストとして上記リクエストキューテーブルから検出し、上記処理結果を、上記第２のリクエストを発信したクライアントへ返信することにより、上記第１のリクエストと上記第２のリクエストとを含む複数のリクエストをまとめて処理するリクエストディスパッチ部とを備え、
上記リクエストキューテーブルは、上記リクエストディスパッチ部によりまとめて処理された複数のリクエストを削除することを特徴とするメソッド起動方式。
【請求項２】
上記複数処理条件は、上記リクエストディスパッチ部が上記複数のリクエストをまとめて処理する場合のリクエスト蓄積状況の境界値を定める境界蓄積数を含み、
上記リクエストディスパッチ部は、上記複数のリクエストのリクエスト蓄積状況が上記境界蓄積数以上である場合に上記複数のリクエストをまとめて処理することを特徴とする請求項１記載のメソッド起動方式。
【請求項３】
クライアントから発信される、データを処理するメソッドを起動するリクエストを受信するメソッド起動方式において、
メソッドを起動するサーバと、
上記クライアントからのリクエストを受信し、受信したリクエストを上記サーバへ発信するオブジェクト実行環境部とを備え、
上記リクエストは、起動するメソッドを特定するメソッド情報を含み、
上記オブジェクト実行環境部は、メソッド情報と当該メソッド情報を含む複数のリクエストをまとめて処理する条件を規定する複数処理条件とを含むクラスポリシィを複数記憶するクラスポリシィリポジトリを備え、
上記サーバは、上記オブジェクト実行環境部から発信されたリクエストを受信するとともに、上記クラスポリシィリポジトリを検索して、受信したリクエストと同じメソッド情報を含むクラスポリシィを特定し、特定したクラスポリシィに含まれる複数処理条件を取得するリクエストキュー管理部と、上記リクエストキュー管理部により受信されたリクエストを蓄積するとともに、当該リクエストが受信された時間を登録時間として記憶するリクエストキューテーブルと、上記リクエストキュー管理部により受信されたリクエストに含まれるメソッド情報を、上記リクエストキュー管理部により取得された複数処理条件と対応付けて記憶するメソッド呼び出しテーブルと、上記リクエストキューテーブルに蓄積されたリクエストを第１のリクエストとして取得し、上記第１のリクエストに含まれるメソッド情報で特定されるメソッドを起動して、当該メソッドの処理結果を、上記第１のリクエストを発信したクライアントへ返信するとともに、上記第１のリクエストと同じメソッド情報を含み且つ登録時間が上記メソッド呼び出しテーブルに当該メソッド情報と対応付けて記憶された複数処理条件を満たしているリクエストを第２のリクエストとして上記リクエストキューテーブルから検出し、上記処理結果を、上記第２のリクエストを発信したクライアントへ返信することにより、上記第１のリクエストと上記第２のリクエストとを含む複数のリクエストをまとめて処理するリクエストディスパッチ部とを備え、
上記リクエストキューテーブルは、上記リクエストディスパッチ部によりまとめて処理された複数のリクエストを削除することを特徴とするメソッド起動方式。
【請求項４】
上記複数処理条件は、上記オブジェクト実行環境部から発信されたリクエストが上記リクエストキュー管理部により受信されてから当該リクエストが処理されるまでの限界の時間を示す限界時間を含み、
上記リクエストディスパッチ部は、上記第１のリクエストと同じメソッド情報を含み且つ登録時間から上記限界時間が経過しているリクエストを上記リクエストキューテーブルから検出することを特徴とする請求項３記載のメソッド起動方式。
【請求項５】
上記メソッド起動方式は、さらに、上記クラスポリシィを入力するクラスポリシィ入力インタフェースを備え、
上記オブジェクト実行環境部は、入力されたクラスポリシィを受信し、受信したクラスポリシィを上記クラスポリシィリポジトリへ書き込むクラスポリシィ管理部を備えたことを特徴とする請求項１から４のいずれか記載のメソッド起動方式。
【請求項６】
上記メソッド情報は、メソッドの処理内容を特定するメソッド種別と上記クライアントがメソッドに受け渡すパラメータとを含むことを特徴とする請求項１から４のいずれか記載のメソッド起動方式。
【請求項７】
上記リクエストディスパッチ部は、上記複数のリクエストの内、上記リクエストキュー管理部により最後に受信されたリクエストに含まれるメソッド情報に含まれるパラメータを使用してメソッドを起動することを特徴とする請求項６記載のメソッド起動方式。
【請求項８】
上記リクエストディスパッチ部は、上記リクエストキューテーブルに蓄積されたリクエストを、上記リクエストキュー管理部が当該リクエストを受信した順番に取得することを特徴とする請求項１から４のいずれか記載のメソッド起動方式。
【請求項９】
上記リクエストディスパッチ部は、上記リクエストキューテーブルに蓄積されたリクエストの内、同じメソッド情報を含み且つリクエスト蓄積状況が上記メソッド呼び出しテーブルに当該リクエスト蓄積状況と対応付けて記憶された複数処理条件を満たしているリクエストを検索して、検索したリクエストを上記第１のリクエストとして取得することを特徴とする請求項１記載のメソッド起動方式。
【請求項１０】
上記オブジェクト実行環境部は、さらに、クラスポリシィ入力インタフェースから入力されたクラスポリシィを上記クラスポリシィ管理部から受信し、受信したクラスポリシィに含まれる複数処理条件を更新情報として上記サーバのリクエストキュー管理部に配信するクラスポリシィ更新情報配信部を備え、
上記リクエストキュー管理部は、上記クラスポリシィ更新情報配信部から配信された複数処理条件を受信し、受信した複数処理条件により上記メソッド呼び出しテーブルに記憶された複数処理条件を書き換えることを特徴とする請求項５記載のメソッド起動方式。
【請求項１１】
上記複数処理条件は、上記リクエストディスパッチ部が上記複数のリクエストをまとめて処理する場合のリクエスト蓄積状況の下限値を定める最小蓄積数を含み、
上記リクエストキュー管理部は、上記メソッド呼び出しテーブルを検索して、リクエスト蓄積状況が上記最小蓄積数以上になったリクエストを検出し、検出したリクエストを上記リクエストディスパッチ部へ通知し、
上記リクエストディスパッチ部は、上記リクエストキュー管理部から通知を受けたリクエストを取得することを特徴とする請求項１記載のメソッド起動方式。
【請求項１２】
上記メソッド起動方式は、複数のサーバを備え、
上記リクエストディスパッチ部は、起動したメソッドの処理結果を記憶し、
上記サーバは、さらに、自己が起動するメソッドとメソッド情報が同じメソッドを起動する他のサーバを比較して検索し、検索したサーバへ上記リクエストディスパッチ部が記憶した処理結果を配信するリクエスト比較部を備えたことを特徴とする請求項１から４のいずれか記載のメソッド起動方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データとメソッドをカプセル化した単位であるオブジェクトを備えたサーバに対してオブジェクト実行環境部がクライアントにて行われたアプリケーションインタフェース呼び出し情報をメッセージ通信によりサーバへ伝達し、この情報を受信したサーバでは、一旦リクエストをキューに蓄積した後、キューイングされたリクエストを、例えば、登録時間の古いものから順番に分析し、この結果から該当するオブジェクトのメソッド起動を行い、このメソッドの処理結果をクライアントのプログラミング呼び出しの結果として返す、クライアント／サーバ型のアプリケーションを実現する分散オブジェクト指向システムのメソッド起動方式に関するものである。
【０００２】
【従来の技術】
従来例の構成を説明する。
図２９は、特開平４−２３０５４３「オブジェクト指向システムに於いて使用するデータ構造」に示される一般的なオブジェクト指向システム構成の一例を示す図である。
図２９に一例として示すシステムは、ＲＡＭ（３００９）とＣＰＵ（３０１０）と入出力インタフェース（３０１１）を内蔵し、端末装置（３０１３）とデータ記憶装置（３０１８）とプリンタ（３０２１）などの外部装置を収容している計算機システムである。この計算機システムでは、これらのハードウェアをプログラマブルに制御するためのマイクロ命令コード（３００７）とオペレーティングシステム（３００６）とデータ管理装置（３００５）によるプラットフォーム（３００２）を隠蔽するために、オブジェクト指向プログラミングシステム（３００４）を備える。これにより、アプリケーションプログラム（３００３）をオブジェクト指向の考えに基づき構築できるようにした分散オブジェクト指向システムを実現構成している。
【０００３】
また、オブジェクト指向の考えに基づくアプリケーション構築のために、図３０に一例として示すメッセンジャシステムの構成により、オブジェクトはクラスにより一つ以上に分類され、オブジェクトの作用としてメソッドを起動するために、メッセンジャ（３１３０）によりメッセージが送られる。
【０００４】
オブジェクトを識別するデータ構造は、図３１に一例として示すように、独自のオブジェクト識別子を有する固定的な部分としてのオブジェクト識別欄（３０１２）と、データ記憶装置（３０１８）内のデータフレーム内のアクセスアドレス（３１０３）であるインスタンスデータフレームアドレス（３１０９）により構成される非固定的な部分により構成されており、この従来例では状況に応じてメッセージ送信先を最適に決定できるように設定することができる。
【０００５】
この従来例では、図２９のように、コンピュータプログラム（３００１）は、アプリケーションプログラムとオブジェクト指向プログラミングシステムが一体となった構成となっている。図３０に一例として示すメッセンジャ（３１３０）及び図３１に一例として示すオブジェクト管理表を使用して、複数のアプリケーションプログラム（３００３）の間でメソッド起動を要求する場合を考える。一のアプリケーションプログラム（要求側）（３００３）が、他のアプリケーションプログラム（３００３）に対してメッセージ通信により処理を要求する場合、要求側アプリケーションプログラム（３００３）は、そのシステムのオブジェクト指向プログラミングシステム（３００４）を介して、メッセージを送ることになる。この時のメッセージは、図３０に示すメッセンジャ（３１３０）によりメッセージを送る。ここでメッセンジャ（３１３０）は、図３１に示すオブジェクト管理表（３１２３）を参照する事により、要求先アプリケーションプログラム（３００１）を該当するクラス識別子（３１０５）、インスタンス識別子（３１０６）等から特定したアプリケーションプログラム（３００１）へメッセージを伝える。
このような構成ではアプリケーションプログラム（３００３）間で行われるメソッド起動を、オブジェクト指向プログラミングシステム（３００４）にて集中的に管理しており、この結果メッセージにて要求されるオブジェクト管理表（３１２３）の情報から一意にメソッドとしてのオブジェクトを識別するように構成しているため、クライアントからの複数のメッセージの蓄積数や登録時間などの情報を考慮した処理を実現する事が出来ない。
【０００６】
【発明が解決しようとする課題】
従来のオブジェクト指向システムのメソッド起動方式は、以上のように構成されている。このため、リクエストは個別に蓄積されている。従って、各リクエストの内容を比較することなく、メソッド起動を独立に実行すると、次のような不具合がある。例えば、同一リクエストが複数存在する場合には、その存在するリクエストの数分の同一メソッド起動を実行することになる。このため、時間、メモリ、ＣＰＵなど計算機資源を浪費し、他のリクエストによるメソッド起動の待ち状態が発生する。クライアントは、サーバへ要求した処理結果を期待するリアルタイムに取得できないという問題点があった。
【０００７】
また、リクエストスケジューリングにおいて、あるクライアントが発行したリクエストに対する処理が、それ以前にリクエストを蓄積するリクエストキューに蓄積されたリクエストによる予測不可能なメソッド動作時間の間ブロック（処理されずに、待ち状態になっていること）されてしまうため、リクエストがリクエストキューに蓄積されてから実行されるまでの時間に制約を加えることができず、クライアントはメソッド処理結果を適切なタイミングで得られないという問題点があった。
【０００８】
クラス毎にリクエストスケジューリングのリアルタイム性能を規定するクラスポリシィについて、各クラス間の比較を行い規定しなければならず、実際にサーバにて実行されているリクエストの傾向に対応した適切な値の定義が難しいという問題点があった。
【０００９】
同一のクラスの同一のメソッドに対して計算を依頼するリクエストに対して、このリクエストがキューに蓄積されている時間内に発生する状況の変化により、改めて異なるパラメータによる計算を依頼するリクエストを再発行する場合、先に発行したパラメータによるリクエストによるメソッド起動を無駄に実行することに加え、新たな状況に対応したパラメータによるメソッド起動を行うリクエストの処理がブロックされるという問題点があった。
【００１０】
あるクラスのメソッドに対する計算の依頼が集中した場合、この集中によるメソッド起動の重要度を考慮せず、リクエストがキューに蓄積された時間によるリクエストスケジューリングが行われるため、多くのクライアントが要求している計算を迅速に処理できず、かつ、リクエスト数分の同一計算を実行することによる資源の無駄が発生するという問題点があった。
【００１１】
あるクラスのメソッドに対する計算をキューにリクエストに蓄積されている回数分実行することにより、計算機資源の無駄が発生するという問題点があった。
【００１２】
クラスポリシィが更新された場合に、その情報が既に動作しているサーバのリクエストスケジューリングに反映されないという問題点があった。
【００１３】
複数のサーバに対して同一のリクエストが要求された場合に、これらのサーバの間で同一のメソッド処理結果を共有することができないため、各サーバで計算機資源の無駄が発生するという問題点があった。
【００１４】
この発明は、上記のような問題点を解決するために、１のリクエストを処理して処理結果を取得する際に、複数の同じリクエストへ取得した処理結果を返信することによって複数のリクエストを処理するメソッド起動方式を実現させることを目的とする。
【００１５】
【課題を解決するための手段】
この発明に係るメソッド起動方式は、クライアントから発信される、データを処理するメソッドを起動するリクエストを受信するメソッド起動方式において、
メソッドを起動するサーバと、
上記クライアントからのリクエストを受信し、受信したリクエストをサーバへ発信するオブジェクト実行環境部とを備え、
上記オブジェクト実行環境部は、さらに、メソッドを特定するメソッド情報と、複数のリクエストをまとめて処理する条件を規定する複数処理条件とをクラスポリシィとして、複数のクラスポリシィを記憶するクラスポリシィリポジトリを備え、
上記サーバは、さらに、上記クラスポリシィリポジトリを検索して、受信したリクエストが所属するクラスポリシィをメソッド情報に基づいて特定し、特定したクラスポリシィの複数処理条件と、リクエストを受信した状況としてのリクエスト蓄積状況とを管理するリクエストキュー管理部と、
リクエストキュー管理部によって管理される複数処理条件とリクエスト蓄積状況とを記憶するメソッド呼び出しテーブルと、
メソッドを起動して処理結果を取得するとともに、上記メソッド呼び出しテーブルを参照し、リクエストが属するクラスポリシィのリクエスト蓄積状況が複数処理条件を満たしている場合には、上記処理結果を、リクエストを発信した複数のクライアントそれぞれへ返信して複数のリクエストをまとめて処理するリクエストディスパッチ部とを備えたことを特徴とする。
【００１６】
上記メソッド起動方式は、さらに、上記クラスポリシィを入力するクラスポリシィ入力インタフェースを備え、
上記オブジェクト実行環境部は、入力されたクラスポリシィを受信し、受信したクラスポリシィを上記クラスポリシィリポジトリへ書き込むクラスポリシィ管理部を備えたことを特徴とする。
【００１７】
上記リクエスト蓄積状況は、受信したリクエストの蓄積数であり、
上記複数処理条件は、上記リクエストディスパッチ部が複数のリクエストをまとめて処理する場合のリクエスト蓄積数の境界値を定める境界蓄積数を含み、
上記リクエストディスパッチ部は、上記リクエスト蓄積数が上記境界蓄積数以上である場合に複数のリクエストを処理することを特徴とする。
【００１８】
上記複数処理条件は、リクエストがリクエストキュー管理部に受信されてからリクエストが処理されるまでの限界の時間を示す限界時間を含み、
上記サーバは、さらに、リクエストを受信した順番にリクエストを登録するリクエストキューテーブルを備え、
上記リクエストキュー管理部は、上記リクエストキューテーブルに、受信したリクエストを登録するとともに、リクエストを受信した時間を登録時間として登録し、
上記メソッド呼び出しテーブルは、複数処理条件として上記限界時間を記憶し、
上記リクエストディスパッチ部は、リクエストの属するクラスポリシィの限界時間をメソッド呼び出しテーブルから取得し、起動するメソッドのメソッド情報と同じメソッド情報を有するメソッドを起動するリクエストを上記リクエストキューテーブルから検出し、検出したリクエストの登録時間より上記限界時間を超えたリクエストを抽出し、抽出したリクエストを発信したクライアントへ上記処理結果を返信することを特徴とする。
【００１９】
上記オブジェクト実行環境部は、上記メソッド呼び出しテーブルから、クラスポリシィ毎のリクエスト蓄積状況を読み込み、読み込んだリクエスト蓄積状況を解析することによって、上記複数処理条件を変更するクラスポリシィ統計処理部を備えたことを特徴とする。
【００２０】
上記メソッド情報は、メソッドの処理内容を特定するメソッド種別と、クライアントがメソッドに受け渡すパラメータとを含むこと特徴とする。
【００２１】
上記メソッド情報は、メソッドの処理内容を特定するメソッド種別を含み、
上記リクエストディスパッチ部は、上記メソッド情報が同じリクエストの内、メッセージ管理部によって最後に受信されたリクエストによって指定されているメソッドに受け渡すパラメータを使用してメソッドを起動すること特徴とする。
【００２２】
上記リクエストディスパッチ部は、上記リクエストキュー管理部がリクエストを受信した順番にリクエストを処理し、処理するリクエストの蓄積数が上記境界蓄積数に達している場合に、複数のリクエストを処理することを特徴とする。
【００２３】
上記リクエストディスパッチ部は、クラスポリシィ毎に蓄積されたリクエストの蓄積数を検索して、リクエストの蓄積数が上記境界蓄積数以上蓄積しているクラスポリシィを検出し、検出したクラスポリシィに属するリクエストを処理することを特徴とする。
【００２４】
上記オブジェクト実行環境部は、さらに、クラスポリシィ入力インタフェースから入力されたクラスポリシィを上記クラスポリシィ管理部から受信し、受信したクラスポリシィの複数処理条件を更新情報としてサーバのリクエストキュー管理部に配信するクラスポリシィ更新情報配信部を備え、
上記リクエストキュー管理部は、受信した複数処理条件をメソッド呼び出しテーブルに書き込むことを特徴とする。
【００２５】
上記リクエスト蓄積状況は、受信したリクエストの蓄積数であり、
上記複数処理条件は、上記リクエストディスパッチ部が複数のリクエストをまとめて処理する場合のリクエスト蓄積数の下限値を定める最小蓄積数を含み、
上記リクエストキュー管理部は、メソッド呼び出しテーブルを検索して上記リクエスト蓄積数が上記最小蓄積数以上になったリクエストを検出し、検出したリクエストを上記リクエストディスパッチ部へ通知し、
上記リクエストディスパッチ部は、上記リクエストキュー管理部から通知を受けたリクエストについて、複数のリクエストを処理することを特徴とする。
【００２６】
上記メソッド起動方式は、複数のサーバを備え、
リクエストディスパッチ部は、メソッドを起動した処理結果を記憶し、
サーバは、さらに、自己が起動するメソッドとメソッド情報が同じメソッドを起動する他のサーバを比較して検索し、検索したサーバへ記憶した処理結果を配信するリクエスト比較部を備えたことを特徴とする。
【００２７】
この発明に係る記録媒体は、クライアントから発信される、データを処理するメソッドを起動するリクエストを受信するメソッド起動方式としてコンピュータに動作させるためのプログラムを記録したコンピュータ読取可能な記録媒体において、
メソッドを起動するサーバと、
上記クライアントからのリクエストを受信し、受信したリクエストをサーバへ発信するオブジェクト実行環境部とを備え、
上記オブジェクト実行環境部は、さらに、メソッドを特定するメソッド情報と、複数のリクエストをまとめて処理する条件を規定する複数処理条件とをクラスポリシィとして、複数のクラスポリシィを記憶するクラスポリシィリポジトリを備え、
上記サーバは、さらに、上記クラスポリシィリポジトリを検索して、受信したリクエストが所属するクラスポリシィをメソッド情報に基づいて特定し、特定したクラスポリシィの複数処理条件と、リクエストを受信した状況としてのリクエスト蓄積状況とを管理するリクエストキュー管理部と、
リクエストキュー管理部によって管理される複数処理条件とリクエスト蓄積状況とを記憶するメソッド呼び出しテーブルと、
メソッドを起動して処理結果を取得するとともに、上記メソッド呼び出しテーブルを参照し、リクエストが属するクラスポリシィのリクエスト蓄積状況が複数処理条件を満たしている場合には、上記処理結果を、リクエストを発信した複数のクライアントそれぞれへ返信して複数のリクエストをまとめて処理するリクエストディスパッチ部とを備えたメソッド起動方式としてコンピュータに動作させるためのプログラムを記録したコンピュータ読取可能な記録媒体を備えたことを特徴とする。
【００２８】
【発明の実施の形態】
実施の形態１．
この実施の形態は、予めクラス毎に同一のメソッド起動を要求するリクエストが、同時にキューイングされる最大数をクラスポリシィとして規定し、規定したクラスポリシィを利用してメソッド起動を実施することを特徴とする。また、以下の実施の形態では、オブジェクト指向システムで実現する例を一例として説明する。
【００２９】
図１は、この実施の形態で一例として説明するこの発明のメソッド起動方式を実現するオブジェクト指向システムを示している。
このオブジェクト指向システムは、クライアント／サーバモデルに基づく分散オブジェクト指向によるアプリケーション構成を実現するオブジェクト実行環境部（１）と、クラスポリシィを入力するインタフェース機能を備えたクラスポリシィ入力インタフェース（２）と、クライアントとして動作し、メソッドを起動するリクエストを発信するクライアント（３）と、サーバとして動作するサーバ（４）により構成される。
【００３０】
オブジェクト実行環境部（１）は、以下の構成要素を備える。
オブジェクト管理部（１０１）は、サーバの状態や存在する位置などを管理する。
クラスポリシィ管理部（１０２）は、クラスポリシィを管理する。
クラスポリシィリポジトリ（１０３）は、メソッドを特定するメソッド情報と、複数のリクエストをまとめて処理する条件を規定する複数処理条件とをクラスポリシィとして、複数のクラスポリシィを記憶する。
従って、クラスポリシィは、予め、クライアントがクラス毎に期待するリクエストスケジューリングによるメソッド起動方法を定めることになる。
メッセージ通信管理部（１０４）は、クライアントとサーバ間のメッセージ通信を管理する。
また、リクエストとはメソッド起動の要求であり、リクエスト情報とはリクエストによって起動を要求するメソッドを特定し、起動条件を特定する情報をいう。従って、１つのリクエストにはそれぞれリクエスト情報が特定されている。この明細書では、リクエストにはリクエスト情報を含むものとする。
【００３１】
クライアント（３）は、以下の構成要素を備える。
クライアントロジック部（３０１）は、クライアントとして動作するアプリケーションである。
クライアントメッセージ通信管理部（３０２）は、クライアントロジック部（３０１）にて呼び出されるプログラミングインタフェース情報をメッセージ通信にてオブジェクト実行管理部（１）へ伝える。
【００３２】
サーバ（４）は、以下の構成要素を備える。
サーバロジック部（４０１）は、サーバとして動作するアプリケーションである。
リクエストキュー管理部（４０２）は、上記クラスポリシィリポジトリ（１０３）を検索して、受信したリクエストが所属するクラスポリシィをメソッド情報に基づいて特定し、特定したクラスポリシィの複数処理条件と、リクエストを受信した状況としてのリクエスト蓄積状況とを管理し、リクエストを受信した状況としてのリクエスト蓄積状況とを後述するメソッド呼び出しテーブルへ登録する。さらに、受信したリクエストを後述するリクエストキューテーブル（４０３）へ登録する。この実施の形態では、複数処理条件として、クラスポリシィ毎のリクエストの蓄積数の境界値を境界蓄積数として設定している。
リクエストキューテーブル（４０３）は、実際にリクエストを格納するデータベースである。
リクエストディスパッチ部（４０４）は、メソッドを起動して処理結果を取得するとともに、メソッド呼び出しテーブル（４０６）を参照し、リクエストが属するクラスポリシィのリクエスト蓄積状況が複数処理条件を満たしている場合には、上記処理結果を、リクエストを発信した複数のクライアントそれぞれへ返信して複数のリクエストをまとめて処理する。
なお、以降の説明では、メソッドを起動して得た結果を「処理結果」又は「実行結果」ということがあるが、同じ意味で用いている。
メソッド呼び出しテーブル（４０６）は、リクエストキュー管理部（４０２）によって管理される複数処理条件とリクエスト蓄積状況とを記憶する。クラスポリシィとメソッド種別との対応づけを行っている。
【００３３】
また、以下に説明するこの発明に係るメソッド起動方式は、コンピュータに動作させるためのプログラムによって実現される。従って、このメソッド起動方式を実現するためのプログラムは、コンピュータで読取可能な記録媒体に記録することができるものである。
サーバ（４）のサーバロジック部（４０１）は、クラスより生成されたインスタンスであるオブジェクト部（４０１２）を備える。さらに、オブジェクト部（４０１２）は、クラスにて規定されるメソッド（４０１１）を備える。
【００３４】
図２は、リクエストキューテーブル（４０３）の一例を示している。
リクエストキューテーブル（４０３）は、一のサーバ（４）に蓄積されるリクエストを登録するデータベースである。また、登録された時間が古いリクエストから順番に蓄積番号（Ｔ０１０１）が振られ、各リクエスト情報として起動するメソッドの特定に必要なメソッド特定情報と、メソッドの起動に必要な起動情報を記憶する。メソッド特定情報として、オブジェクト種別（Ｔ０１０２）とメソッド種別（Ｔ０１０３）を含み、リクエストにより起動されるメソッドを特定する。また、メソッド毎のメソッド情報として、パラメータ１情報（Ｔ０１０４）、パラメータ２情報（Ｔ１０１５）及びリターン情報（Ｔ０１０６）を含む。また、以下では、パラメータ１情報（Ｔ０１０４）とパラメータ２情報（Ｔ１０１５）とをパラメータ情報（Ｔ０１０４，Ｔ０１０５）として表わすこともある。
【００３５】
図３は、クラスポリシィリポジトリ（１０３）の一例を示す図である。
クラスポリシィリポジトリ（１０３）は、メソッドを特定するメソッド情報と、複数のリクエストをまとめて処理する条件を規定する複数処理条件とをクラスポリシィとして記憶する。
この実施の形態では、メソッド情報は、メソッド特定情報と、メソッド起動情報とからなる。メソッド特定情報として、クラス種別（Ｔ０２０１）とクラス毎に規定されるメソッド種別（Ｔ０２０２）とを含む。さらに、メソッド毎のメソッド起動情報として、パラメータ１情報（Ｔ０２０３）、パラメータ２情報（Ｔ０２０４）及びリターン情報（Ｔ０２０５）とを含む。また、以下では、パラメータ１情報（Ｔ０２０３）とパラメータ２情報（Ｔ０２０４）とをパラメータ情報（Ｔ０２０３，Ｔ０２０４）として表わすこともある。
クラス種別は、オブジェクトの型を決めるためのメソッドと変数を定義するひな形である。
メソッド種別は、メソッドの種類を特定する。
また、複数処理条件は、一のサーバ（４）のメッセージキューテーブル（４０１）に同時に登録されることが許される最大リクエスト数である境界蓄積数（Ｔ０２０６）とする場合を説明する。
【００３６】
図４は、メソッド呼び出しテーブル（４０６）の一例を示す図である。
一のサーバ（４）に蓄積されているリクエスト種別と、クラスポリシィにより規定されるこのリクエストにより起動されるメソッドに許された同時蓄積するの関係を管理するデータベースである。
この実施の形態では、オブジェクト種別（Ｔ０３０１）と、メソッド情報（Ｔ０３０２〜Ｔ０３０５）と、複数処理条件として、複数のリクエストをまとめて処理することを判断する境界となる蓄積数である境界蓄積数（Ｔ０３０６）と、リクエストを受信した状況としてのリクエスト蓄積状況として、リクエストキュー管理部が受信したリクエストの蓄積数（Ｔ０３０６）とを記憶する。
オブジェクト種別は、クラス種別とメソッド種別とから、サーバにおいて特定される。
メソッド呼び出しテーブル（４０６）は、Ｔ０３０２〜Ｔ０３０５に基づいて、リクエストを上記クラスポリシィリポジトリ（１０３）毎に分類して記憶しており、さらに、サーバ（４）のサーバロジック部（４０１）において、メソッドを管理する単位であるオブジェクト種別（Ｔ０３０１）と、上記クラスポリシィとを関連付けて記憶している。
上記で説明した情報は、リクエストキュー管理部（４０２）によって、登録される。
このように、この実施の形態のメソッド呼び出しテーブルは、リクエスト蓄積状況として、リクエストをカウントして蓄積数を記憶することより、メソッド呼び出しカウントテーブルとも呼ぶ。
【００３７】
次に、この実施の形態におけるオブジェクト指向システムの動作を説明する。まず、このオブジェクト指向システムを動作させるにあたっては、クラスポリシィをクラスポリシィリポジトリ（１０３）へ登録する「クラスポリシィ登録処理」が実行されていることが前提となる。
そこで、まず、「クラスポリシィ登録処理」の動作について説明する。次に、この発明の特徴となる、「リクエストカウンタ登録処理」及び「メソッド呼び出しカウンタ処理」について説明する。
「リクエストカウンタ登録処理」とは、サーバ（４）がオブジェクト実行環境部（１）のクラスポリシィリポジトリ（１０３）に登録されているクラスポリシィを取得し、内部のメソッド呼び出しテーブル（４０６）に登録する処理をいう。
「メソッド呼び出しカウンタ処理」とは、クラスポリシィリポジトリ（１０３）からメソッド呼び出しテーブル（４０６）を生成する処理をいう。これは、リクエストキュー管理部（４０２）によって実施される。
次に、クライアント（３）がメソッドを起動するリクエストを発信してからサーバ（４）によって、メソッドを起動するまでの処理を「通常のメソッド起動処理」と「同一リクエストによるメソッド起動処理」とに分けて説明する。
なお、以下の図５〜図１０の説明では、各構成要素間の情報の伝達は、メッセージを用いている場合を説明する。メッセージは、Ｍｘｘｘｘ（ｘｘｘｘは番号）で表わしている。
【００３８】
まず、図５を用いて「クラスポリシィ登録処理」の動作について説明する。
クラスポリシィは、システム管理者が指定する。システム管理者は、クラスポリシィ入力インタフェース（２）からクラスポリシィを入力する。入力されたクラスポリシィは、メッセージＭ０１０１（以下、「メッセージ」は省略する）によりオブジェクト実行環境部（１）のクラスポリシィ管理部（１０２）へ伝えられる。Ｍ０１０１を受信したクラスポリシィ管理部（１０２）は、クラスポリシィ登録処理として、Ｍ０１０１によって受信した、登録することを要求されたクラスポリシィをクラスポリシィリポジトリ（１０３）に格納することにより動作を終了する。
【００３９】
次に、図６を用いて「リクエストカウンタ登録処理」の動作について説明する。
「リクエストカウンタ登録処理」は、以下に説明する「リクエストカウンタ分析処理」と、「クラスポリシィ検索処理」と、「メソッド呼び出しテーブル生成処理」とを含む。この「リクエストカウンタ登録処理」は、この発明の特徴となるクラスポリシィに基づいて、クライアント（３）からオブジェクト実行環境部（１）を介してサーバ（４）へ送信されたリクエストを登録する工程である。
サーバ（４）のサーバメッセージ通信管理部（１０４）は、受信したリクエストをリクエストキュー管理部（４０２）へ渡す。リクエストキュー管理部（４０２）は、リクエストを解析して、リクエストカウンタ登録処理を実施する。
サーバ（４）は、リクエストを受信すると、まず、「リクエストカウンタ分析処理」を行う。「リクエストカウンタ分析処理」は、メソッド呼び出しテーブル（４０６）に基づいて、受信したリクエストと同一リクエストが存在するかどうかの分析を行う。この実施の形態における同一のリクエストとは、リクエストが同一オブジェクト種別、同一メソッド種別であり、さらに、同一パラメータ情報と同一リターン情報にてメソッド起動を要求しているリクエストをさす。
この分析により、既に同一リクエストがメソッド呼び出しテーブル（４０６）に存在する場合は、メソッド呼び出しテーブル（４０６）の該当するテーブルの蓄積数（Ｔ０３０７）（図４）をインクリメントする。同一リクエストが存在しない場合は、以下に説明する「クラスポリシィ検索処理」及び「メソッド呼び出しテーブル生成処理」を実行する。
【００４０】
次に、「リクエストカウンタ分析処理」の結果、同一リクエストが存在しない場合の動作を図６を用いて説明する。
リクエストカウンタテーブル（４０６）は、サーバ内に実装されているオブジェクトに対応したクラスポリシィをオブジェクト実行環境部（１）から取得するために、サーバメッセージ通信管理部（４０５）へクラスポリシィを特定する情報をＭ０２０１によって送る。この実施の形態では、クラスポリシィを特定する情報は、メソッド情報と複数処理条件とが該当するが、これに限られるわけではない。
Ｍ０２０１を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０２０１によって受信したクラスポリシィを特定する情報を、Ｍ０２０２によってオブジェクト実行環境部（１）のメッセージ通信管理部（１０４）へ送る。
Ｍ０２０２を受信したメッセージ通信管理部（１０４）は、Ｍ０２０２の情報をＭ０２０３によって、クラスポリシィ管理部（１０２）へ送る。
Ｍ０２０３を受信したクラスポリシィ管理部（１０２）は、Ｍ０２０３によって伝えられたクラスポリシィを特定する情報からクラスポリシィを取得するために、「クラスポリシィ検索処理」を実行する。
「クラスポリシィ検索処理」は、クラスポリシィリポジトリ（１０３）から、クラスポリシィを特定する情報によって要求されたクラスに該当するクラスポリシィを検索する。
検索されたクラスポリシィは、Ｍ０２０４によってクラスポリシィ管理部（１０２）からメッセージ通信管理部（１０４）へ送られる。
Ｍ０２０４を受信したメッセージ通信管理部（１０４）は、Ｍ０２０４の情報をＭ０２０５によって、サーバ（４）のサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０２０５を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０２０５の情報をＭ０２０６によってメソッド呼び出しテーブル（４０６）へ送る。
この結果、メソッド呼び出しテーブル（４０６）は、Ｍ０２０６によって該当するクラスポリシィを取得し、次に、「メソッド呼び出しカウンタ生成処理」を実行する。
【００４１】
続いて、図３と図４を用いて「メソッド呼び出しカウンタ生成処理」の動作を説明する。
取得したクラスポリシィの構造は、図３に示すように、クラス種別（Ｔ０２０１）毎に、そのクラスに規定されている１つ以上のメソッドメソッド情報であるメソッド種別（Ｔ０２０２）、及びパラメータ情報（Ｔ０２０３，Ｔ０２０４）、リターン情報（Ｔ０２０５）、さらに、そのメソッド毎に１つのサーバ（４）のリクエストキューテーブル（４０３）に蓄積されるリクエストを複数まとめて処理することを判断する境界となる境界蓄積数（Ｔ０２０６）により構成されている。この情報の中で受信したリクエストによって要求されているメソッドメソッド情報が特定され、図４に示すメソッド呼び出しテーブル構成の１つのテーブルに展開される。例えば、リクエストによりクラス種別がクラス＿１から生成されたオブジェクト“Ｏｂｊｅｃｔ＿１”のメソッド“ｍｅｔｈｏｄ＿１”に対して、パラメータが“ｉｎ  ｉｎｔ  １０００”，“ｉｎ  ｉｎｔ  １０”，．．．、及びリターン情報が“ｉｎｔ”により返される要求を行った場合、図３に示すクラス種別（Ｔ０２０１）がクラス＿１のテーブルがクラスポリシィとして取得され、この情報から図４に示す１番目のテーブルが作成される。
なお、メソッド呼び出しテーブル（４０６）の境界蓄積数（Ｔ０３０６）が空欄の場合（取得したクラスポリシィの境界蓄積数（Ｔ０２０６）が空欄であること）は、境界蓄積数が無限であることを意味している。
【００４２】
次に、図７と図８と図２を用いて、「通常のメソッド起動処理」の動作を説明する。
通常のメソッド起動処理の動作は、最も基本的な動作をいい、クライアントがリクエストを発行し、該当するサーバのメソッドの処理結果を得るまでの動作である。
また、後述する同一リクエストによるメソッド起動処理の動作では、複数のリクエストをまとめて処理する場合を説明する。
【００４３】
クライアント（３）のクライアントロジック部（３０１）は、予め用意されているアプリケーションインタフェースを呼び出し、このアプリケーションインタフェースを用いてリクエストを発行する。この際、リクエストに関するリクエスト情報も生成される。このリクエストは、リクエスト情報とともにＭ０３０１によりクライアントメッセージ通信管理部（３０２）へ送られる。
Ｍ０３０１を受信したクライアントメッセージ通信管理部（３０２）は、この情報をメッセージによって送信できる形式に変換し、Ｍ０３０２にてオブジェクト実行環境部（１）のメッセージ通信管理部（１０４）へ送る。
Ｍ０３０２を受信したメッセージ通信管理部は、Ｍ０３０２の情報をＭ０３０３にてオブジェクト管理部（１０１）へ送る。
【００４４】
Ｍ０３０３を受信したオブジェクト管理部（１０１）は、Ｍ０３０３にて受け取ったリクエスト情報から、「サーバ分析処理」としてサーバ（４）の存在する場所と動作状態を分析し、該当サーバ（４）がリクエストを受け取ることができる状態であることを確認した後、リクエスト情報を該当サーバ（４）へ送信するために、Ｍ０３０４にてメッセージ通信管理部（１０４）へ情報を送る。
Ｍ０３０４を受信したメッセージ通信管理部（１０４）は、Ｍ０３０４の情報をＭ０３０５にて、該当サーバ（４）のサーバメッセージ通信管理部（４０５）へ送る。
【００４５】
Ｍ０３０５を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０３０５の情報をＭ０３０６にてリクエストキュー管理部（４０２）へ送る。
Ｍ０３０６を受信したリクエストキュー管理部（４０２）は、Ｍ０３０６の情報をＭ０３０７にてメソッド呼び出しテーブル（４０６）へ送る。
Ｍ０３０７を受信したメソッド呼び出しテーブル（４０６）では、リクエストキュー管理部（４０２）の指示によって、「リクエストカウンタ登録処理」が実行される。「リクエストカウンタ登録処理」の詳細は前述したので、ここでは説明を省略する。
メソッド呼び出しテーブル（４０６）は、リクエストカウンタ登録処理が実施された後に、処理の完了をＭ０３０８にてリクエストキュー管理部（４０２）へ送る。
【００４６】
Ｍ０３０８を受信したリクエストキュー管理部（４０２）は、メソッド呼び出しテーブル（４０６）に対して「リクエスト登録処理」の実行を指示する。
「リクエスト登録処理」は、Ｍ０３０６にて伝えられたリクエスト情報をリクエストキューテーブルに登録する。
【００４７】
「リクエスト登録処理」の操作を、図２を用いて説明する。
図２は、リクエストキューテーブル（４０３）の構造を示しており、新たに登録するリクエスト情報は蓄積番号（Ｔ０１０１）として既に登録されている番号から連続した値を割り当てられる。そして、オブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）、パラメータ情報（Ｔ０１０４，Ｔ０１０５等）、リターン情報（Ｔ０１０６）にリクエスト情報が展開されることにより登録が完了する。
以上のリクエスト登録処理の完了により、サーバ（４）に対してリクエストの登録が完了し、クライアント（３）はリクエスト応答待ち状態となる（図７）。
【００４８】
リクエスト応答待ち状態になると、サーバ（４）のリクエストディスパッチ部（４０４）は、「リクエストディスパッチ処理」を実施する（図７）。
「リクエストディスパッチ処理」は、リクエストディスパッチ部（４０４）がＭ０３０９をリクエストキュー管理部（４０２）へ送ることによって、次に処理すべきリクエストを取得する。
Ｍ０３０９を受信したリクエストキュー管理部（４０２）では、「該当リクエスト分析処理」によって、次に処理すべきリクエストの検索を行う。
「該当リクエスト分析処理」は、リクエストキューテーブル（４０３）から蓄積番号（Ｔ０１０１）が１を示すリクエストを取り出し、取り出したリクエストを同じリクエストがメソッド呼び出しテーブルに存在するか否かを分析する。具体的には、「該当リクエスト分析処理」は、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“１”のリクエストを取得し、このリクエスト情報のオブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）、パラメータ情報（Ｔ０１０４，Ｔ０１０５）及びリターン情報（Ｔ０１０６）が、メソッド呼び出しテーブル（４０６）のオブジェクト種別（Ｔ０３０１）、メソッド種別（Ｔ０３０２）、パラメータ情報（Ｔ０３０４，Ｔ０３０５）及びリターン情報（Ｔ０３０６）の全てが一致する場合に、その蓄積数（Ｔ０３０７）が境界蓄積数（Ｔ０３０６）に達しているかどうかを判断し、境界蓄積数（Ｔ０３０６）に達していない場合は「通常のメソッド起動」と判断し、境界蓄積数（Ｔ０３０６）に達している場合には「同一リクエストによるメソッド起動」と判断する。
【００４９】
Ｍ０３１０を受信したメソッド呼び出しテーブル（４０６）では、メソッド呼び出しテーブル（４０６）とリクエストキューテーブルの比較を行い、この結果をＭ０３１１にてリクエストキュー管理部（４０２）へ送る。
以上により、「該当リクエスト分析処理」が終了する。「該当リクエスト分析処理」の結果が「通常のメソッド起動」の場合を以降に説明し、「同一リクエストによるメソッド起動」の場合の動作を後の「同一リクエストによるメソッド起動の動作」にて説明する。
【００５０】
「該当リクエスト分析処理」により「通常のメソッド起動」を判断したリクエストキュー管理部（４０２）は、次に処理されるリクエストが「通常のメソッド起動」であることと、次に処理すべきリクエストの情報をＭ０３１２にてリクエストディスパッチ部（４０４）へ送る。
Ｍ０３１２を受信したリクエストディスパッチ部（４０４）は、次に処理すべきリクエストの情報から起動するメソッドを特定し、メソッド起動をＭ０３１３にてサーバロジック部（４０１）へ指示する。
Ｍ０３１３にてメソッド起動を指示されたサーバロジック部（４０１）は、指定されたオブジェクト（４０１２）のメソッド（４０１１）のメソッド起動を指示し、その処理結果をＭ０３１４にてリクエストディスパッチ部（４０４）へ送る。
Ｍ０３１４を受信したリクエストディスパッチ部（４０４）は、Ｍ０３１４の情報をＭ０３１５にてリクエストキュー管理部（４０２）へ送る。
Ｍ０３１５を受信したリクエストキュー管理部（４０２）は、Ｍ０３１６によりメソッド呼び出しテーブル（４０６）に対して、処理を実施したメソッド呼び出しカウンタの蓄積数（Ｔ０３０７）のデクリメントを行う「リクエストカウンタ削除処理」を指示する。
Ｍ０３１６を受信したメソッド呼び出しテーブル（４０６）では、リクエストカウンタ削除処理を実行する。ここでデクリメントした蓄積数（Ｔ０３０７）が“０”の場合は、そのクラスポリシィのデータを削除する。
Ｍ０３１６を送信したリクエストキュー管理部（４０２）は、処理が終了したリクエストキューテーブル（４０３）の蓄積番号（Ｔ１０１０）が“１”のリクエストを削除し、残りのリクエストに割り当てられている蓄積番号（Ｔ０１０１）をすべてデクリメントする。
続いて、リクエストキュー管理部（４０２）は、Ｍ０３１５の情報をＭ０３１７にてサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０３１７を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０３１７の情報をＭ０３１８にてオブジェクト実行管理部（１）のメッセージ通信管理部（１０４）へ送る。
Ｍ０３１８を受信したメッセージ通信管理部は、Ｍ０３１８の情報をＭ０３１９にてオブジェクト管理部（１０１）へ送る。
Ｍ０３１９を受信したオブジェクト管理部は、Ｍ０３１９の情報をＭ０３２０にて、メッセージ通信管理部（１０４）へ送る。
【００５１】
Ｍ０３２０を受信したメッセージ通信管理部（１０４）は、Ｍ０３２０の情報Ｍ０３２１にてクライアント（３）のクライアントメッセージ通信管理部（３０２）へ送る。
Ｍ０３２１を受信したクライアントメッセージ通信管理部（３０２）は、Ｍ０３２１にて受け取ったメソッド処理結果をメッセージからプログラミングインタフェースへ変換し、Ｍ０３２２にてクライアントロジック部へ送る。
以上の処理の結果、クライアントロジック部は、プログラミングインタフェースにより要求したリクエストの結果を取得する処理が完了する。
【００５２】
図９と図１０と図１１を用いて「同一リクエストによるメソッド起動」の動作について説明する。
この動作は、「通常のメソッド起動」と同様に、「該当リクエスト分析処理」が実行され、この結果が「同一リクエストによるメソッド起動」を判断した場合の動作であり、この判断以前の動作は既に説明した「通常のメソッド起動」の動作と同様である。従って、図９は、図７に表わした「リクエスト応答待ち状態」になるまでの動作を省略して表わしている。
【００５３】
該当リクエスト分析処理の結果が「同一リクエストによるメソッド起動」と判断したリクエストキュー管理部（４０２）は、「同一リクエストによるメソッド起動」であることと、次に処理されるリクエストの情報とを、Ｍ０４０２にてリクエストディスパッチ部（４０４）へ送る（図９）。
Ｍ０４０２を受信したリクエストディスパッチ部（４０４）は、次に処理すべきリクエストの情報から起動するメソッドを特定し、メソッド起動をＭ０４０３にてサーバロジック部（４０１）へ指示する。
Ｍ０４０３にてメソッド起動を指示されたサーバロジック部（４０１）は、指定されたオブジェクト（４０１２）のメソッド（４０１１）のメソッド起動を指示し、その処理結果をＭ０４０４にてリクエストディスパッチ部（４０４）へ送る。
Ｍ０４０４によりメソッド処理結果を取得したリクエストディスパッチ部（４０４）は、この結果を同一リクエストを発行した全てのクライアント（３）へ返送を判断する。
【００５４】
以降のメソッド処理結果の返送の動作は、一例として、図１０に示すクライアントＡとクライアントＢへ応答を返送する場合について説明する。
図１０の例では、クライアントＡ（３）の方がクライアントＢ（３）よりもリクエストを発行した時間が古いとする。
Ｍ０４０４を受信したリクエストディスパッチ部（４０４）は、同一リクエストを発行したクライアントＡ（３）とクライアントＢ（３）へ、Ｍ０４０４の情報をそれぞれＭ０４０５，Ｍ０４１０にてリクエストキュー管理部（４０２）へ送る。
【００５５】
以下に、計算結果を送信する場合の動作の詳細を説明する。
初めに、クライアントＡ（３）へメソッド処理結果を送信する場合の動作を説明する。
リクエストキュー管理部（４０２）は、最も古い時間に登録されたリクエストとしてリクエストキューテーブル（４０３）の蓄積番号（Ｔ０１０１）が“１”に該当するリクエストが属するクラスポリシィのメソッド呼び出しテーブル（４０６）の蓄積数（Ｔ０３０７）をデクリメントするリクエストカウンタ削除処理をＭ０４０６にてメソッド呼び出しテーブル（４０６）へ指示する。
Ｍ０４０６を受信したメソッド呼び出しテーブル（４０６）では、リクエストカウンタ削除処理を実行する。
リクエストカウンタ削除処理では、メソッド呼び出しテーブル（４０６）の該当するテーブルの蓄積数（Ｔ０３０７）をデクリメントする。この説明の例では、デクリメントの結果は“１”となる。
【００５６】
リクエストキュー管理部（４０２）では、Ｍ０４０６を送信した後、受信したＭ０４０５の情報をクライアントＡへ伝えるために、Ｍ０４０７にてサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０４０７を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０４０７の情報オブジェクト実行環境部（１）を介して、Ｍ０４０８にてクライアントＡ（３）のクライアントメッセージ通信管理部（３０２）へ送る。
この間のオブジェクト実行環境部（１）の動作は、「通常のメソッド起動」の場合と全く同じであるため、説明を省略する。
【００５７】
Ｍ０４０８を受信したクライアントメッセージ通信管理部（３０２）は、Ｍ０４０８にて受け取ったメソッド処理結果をメッセージからプログラミングインタフェースへ変換し、Ｍ０４０９にてクライアントロジック部へ送る。
以上の処理の結果、クライアントＡ（３）のクライアントロジック部は、プログラミングインタフェースにより要求したリクエストの結果を取得するメソッド実行結果取得が完了する。
【００５８】
引き続き同一リクエストを発行したクライアントＢ（３）がメソッド処理結果を取得する動作を説明する。
Ｍ０４１０によりメソッド処理結果を取得したリクエストキュー管理部（４０２）は、リクエストキューテーブル（４０３）の蓄積番号（Ｔ０１０１）が最も古いリクエストが属するクラスポリシィのメソッド呼び出しテーブル（４０６）の蓄積数（Ｔ０３０７）をデクリメントするリクエストカウンタ削除処理をＭ０４１１にてメソッド呼び出しテーブル（４０６）へ指示する。
Ｍ０４１１を受信したメソッド呼び出しテーブル（４０６）では、リクエストカウンタ削除処理を実行する。
リクエストカウンタ削除処理では、メソッド呼び出しテーブル（４０６）の該当するテーブルの蓄積数（Ｔ０３０７）をデクリメントする。この説明の例ではデクリメントの結果は“０”となるはずであり、この場合は、該当するクラスポリシィのデータ全体を削除する。
【００５９】
リクエストキュー管理部（４０２）では、Ｍ０４１１を送信した後、Ｍ０４１２の情報をクライアントＢへ伝えるために、Ｍ０４１２にてサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０４１２を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０４１２の情報オブジェクト実行環境部（１）を介して、Ｍ０４１３にてクライアントＢ（３）のクライアントメッセージ通信管理部（３０２）へ送る。
この間のオブジェクト実行環境部（１）の動作は、「通常のメソッド起動」の場合と全く同じであるため、説明を省略する。
【００６０】
Ｍ０４１３を受信したクライアントメッセージ通信管理部（３０２）は、Ｍ０４１３にて受け取ったメソッド処理結果をメッセージからプログラミングインタフェースへ変換し、Ｍ０４１４にてクライアントロジック部へ送る。
以上の処理の結果、クライアントＡ（３）のクライアントロジック部は、プログラミングインタフェースにより要求したリクエストの結果を取得するメソッド実行結果取得が完了する。
【００６１】
図１１を用いて同一リクエストによるメソッド起動により、クラスポリシィにて設定されたリアルタイムメソッド起動が保証される動作をリクエストキューテーブル（４０３）の動きを中心に説明する。
リクエストキューテーブル（４０３）には、クライアント（３）から発信されたリクエストに蓄積番号が振られて蓄積される。これに対して、リクエストキュー管理部（４０２）は、蓄積番号（Ｔ０１０１）が“１”から順番に取り出しメソッド起動を実施する。
この場合、図１１の例のように、蓄積番号２，３，７が全く同じ要求を実施した場合において、同一の要求が蓄積される最大数をクラスポリシィにより規定し、この限界に達した場合には、１つのリクエスト起動にて蓄積番号２，３，７へメソッド処理結果を返送する処理を同一リクエストによりメソッド起動として実現している。
【００６２】
以上のように、サーバのキューに蓄積された各リクエストが期待するメソッド起動を監視し、キューイングされた同一リクエストがクラスポリシィにて規定した数に達した場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断されたタイミングで、該当リクエストに対応して実施されたメソッドの処理結果を他の同一リクエストを行った全てのクライアントが取得する事により、アプリケーションソフトウェアとは独立に規定するクラスポリシィに基づいて、クライアントとサーバから透過にメソッド起動を実現することができる。
【００６３】
このようにして、予めクラス毎に期待するリクエストスケジューリングによるメソッド起動方法をクラスポリシィとしてクライアント（３）とサーバ（４）とは無関係に管理するオブジェクト実行環境部（１）と、サーバ（４）のリクエストスケジューリングにおいて、サーバ（４）のリクエストキュー管理部（４０２）は、リクエストキューテーブル（４０３）に蓄積されているリクエストと、クラスポリシィとを比較し、クラスポリシィに基づいた方法に従って、メソッド起動をリクエストディスパッチ部（４０４）へ指示することにより、クラス毎に異なるリアルタイム性を保証したメソッド起動を実現する。
【００６４】
また、このようにして、リクエストスケジューリングにおいて、同一リクエストの中で最もキューへの登録時間が古いものが処理されるタイミングでメソッド起動を行い、この結果を同一リクエストを発行した全てのクライアントへ応答として返送するという、同一のメソッドの実行回数を最低限に押さえることによるリクエストスケジューリング時に発生する不必要な計算機資源浪費の回避により、他のメソッド呼び出しのブロックを最低限に押さえたメソッド起動を、クラスポリシィに基づいてクライアントのクライアントロジックとサーバのサーバロジックから透過に実現することを特徴とするリアルタイムメソッド起動方式を実現する。
【００６５】
実施の形態２．
図１２は、実施の形態１におけるこの発明のメソッド起動方式を実現するオブジェクト指向システム構成図に対して、メソッド呼び出しテーブルを構成する項目を変えている。この実施の形態では、メソッド呼び出しテーブルをメソッド呼び出し限界時間テーブル（４０７）として説明する。
【００６６】
図１３は、この実施の形態のリクエストキューテーブルの一例を示している。図１３は、実施の形態１におけるリクエストキューテーブル構成に対して、各リクエスト毎の登録時間（Ｔ０１０７）を追加した構成である。
図１４は、この実施の形態のクラスポリシィリポジトリの一例を示している。図１４は、実施の形態１におけるクラスポリシィリポジトリ構成に対して、境界蓄積数を削除し、限界時間（Ｔ０２０７）を追加した構成である。
図１５は、この実施の形態のメソッド呼び出し限界時間テーブル（４０７）の一例を示している。
図１５は、サーバにおいて、リクエストにより要求されているメソッド起動種別毎にキューイングされる限界時間を登録したテーブルであり、クラス種別（Ｔ０４０１）、メソッド種別（Ｔ０４０２）、限界時間（Ｔ０４０３）を含む構成となっている。
【００６７】
次に、実施の形態２の動作を説明する。
実施の形態２の動作は、実施の形態１の動作に対して、リクエストカウンタ登録処理の代わりとなるリクエスト限界時間登録処理の動作を説明し、続いてメソッド呼び出し生成処理の代わりとなるメソッド呼び出し限界時間生成処理の動作を説明し、続いて実施の形態２の場合のリクエストディスパッチ処理の動作を説明する。
【００６８】
実施の形態２のリクエスト限界時間登録処理の処理フローは、実施の形態１のリクエストカウンタ登録処理場合に対して、サーバ（４）のメソッド呼び出しテーブル（４０６）の代わりにメソッド呼び出し限界時間テーブル（４０７）を置き、メソッド呼び出しカウンタ生成処理の代わりにメソッド呼び出し限界時間生成処理を置く以外は全く同じである。このため、以降では実施の形態２独自の動作について説明する。
【００６９】
リクエスト限界時間登録処理は、サーバ（４）がリクエストを受信すると、「リクエストカウンタ分析処理」として、メソッド呼び出し限界時間テーブル（４０７）により、既に同一リクエストが存在するかどうかの判断を行う。この実施の形態の同一リクエストとは、実施の形態１とは異なり同じオブジェクトの同じメソッドに対してメソッド起動を要求しているリクエストとして判断する。この分析により既に同一リクエストが存在しない場合には、オブジェクト実行環境のクラスポリシィリポジトリに登録されているクラスポリシィを取得し、メソッド呼び出し限界時間テーブル（４０７）の該当するテーブルを作成する。
【００７０】
図１３と図１４を用いてメソッド呼び出し限界時間生成処理の動作を説明する。
取得したクラスポリシィの構造は、図１４に示すように、クラス種別（Ｔ０２０１）毎に、そのクラスに規定されている１つ以上のメソッドメソッド情報であるメソッド種別（Ｔ０２０２）及びパラメータ情報（Ｔ０２０３，Ｔ０２０４）、リターン情報（Ｔ０２０５）、さらに、そのメソッドが通常のメソッド起動にて処理される最大時間である限界時間（Ｔ０２０７）により構成されている。この情報の中で受信したリクエストにて要求されているメソッドメソッド情報が特定され、図１５に示すメソッド呼び出し限界時間テーブルに展開される。例えば、リクエストによりクラス種別がクラス＿１から生成されたオブジェクトＯｂｊｅｃｔ＿１のメソッドｍｅｔｈｏｄ＿１に対して、パラメータが“ｉｎ  ｉｎｔ１０００”，“ｉｎ  ｉｎｔ  １０”，．．．及びリターン情報が“ｉｎｔ”により返される要求を行った場合、図１４に示すクラス種別（Ｔ０２０１）がクラス＿１のテーブルがクラスポリシィとして取得され、この情報から図１５に示す１番目のテーブルが作成される。
なお、メソッド呼び出し限界時間テーブル（４０７）の限界時間（Ｔ０２０７）が空欄の場合は、通常のメソッド起動しか行われないことを意味している。
【００７１】
実施の形態２の該当リクエスト分析処理の動作について説明する。
リクエストキュー管理部（４０２）が実行する該当リクエスト分析処理では、初めに、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“１”のリクエストを取得し、このリクエスト情報のオブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）とメソッド呼び出し限界時間テーブル（４０７）のクラス種別（Ｔ０４０１）、メソッド種別（Ｔ０４０２）の全てが一致する場合を検索し、該当する限界時間（Ｔ０４０３）を取得する。次にリクエストキューテーブル（４０３）の各テーブルを検索し、蓄積番号“１”のリクエストを取得し、リクエスト情報のオブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）、パラメータ情報（Ｔ０１０４，Ｔ０１０５）及びリターン情報（Ｔ０１０６）の全てが一致する場合のリクエストについて、各登録時間（Ｔ０１０７）を参照し、取得した該当限界時間を過ぎているものを「同一リクエストによるメソッド起動」と判断する。該当限界時間を過ぎているものが１つ（蓄積番号“１”のリクエスト）、あるいは全く無い場合には、「通常のメソッド起動」と判断して処理を続行する。
【００７２】
以上のように、サーバのキューに蓄積されたリクエストを監視し、同一リクエストがクラスポリシィにて規定された時間以上にキューイングされ実行待ちの状態にある場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断された時に、該当リクエストに対応して実施されたメソッドの処理結果を他の同一リクエストを行った全てのクライアントへ返送することにより、クライアントからのリクエストがキューイングされている時間に制約を加えたメソッド起動ができる。
【００７３】
実施の形態３．
図１６は、実施の形態１におけるこの発明のメソッド起動方式を実現するオブジェクト指向システム構成のオブジェクト実行へクラスポリシィ統計処理を追加した構成の一例である。
１０５は、メソッド呼び出しテーブル（４０６）から、クラスポリシィ毎のリクエスト蓄積状況を読み込み、読み込んだリクエスト蓄積状況を解析することによって、上記複数処理条件を変更するクラスポリシィ統計処理部（１０５）である。
この実施の形態では、リクエスト蓄積状況は、リクエストの蓄積数である場合を一例として説明する。
【００７４】
次に、図１７を用いて実施の形態３の動作を説明する。
初めに、クラスポリシィリポジトリ（１０３）を周期的に更新するクラスポリシィ定期更新処理の動作を説明する。
続いて、クラスポリシィを実際に行われているリクエストの数から統計的に計算するために、各サーバからリクエストにより行われるメソッドメソッド情報を収集するクラスポリシィ統計処理の動作を説明する。
【００７５】
図１７を用いて、クラスポリシィ統計処理の動作を説明する。
この動作は、実施の形態１における通常のメソッド起動動作において、サーバ（４）によってリクエスト登録処理が実行され、リクエスト応答待ち状態になる前に実行される処理である。
【００７６】
リクエストキュー管理部（４０２）がリクエスト登録処理を実行した後に、登録したリクエストに基づいて起動するオブジェクトのメソッドの元となるクラスとメソッド情報をＭ０５０１にてサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０５０１を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０５０１の情報をＭ０５０２にてオブジェクト実行環境部（１）のメッセージ通信管理部（１０４）へ送る。
Ｍ０５０２を受信したメッセージ通信管理部（１０４）では、Ｍ０５０２の情報をＭ０５０３にてクラスポリシィ統計処理部（１０５）へ送る。
Ｍ０５０３を受信したクラスポリシィ統計処理部（１０５）は、受信したクラスとメソッド情報を蓄積する。
【００７７】
クラスポリシィ定期更新処理の動作について説明する。
オブジェクト指向システム全体にて要求されるメソッド起動のためのクラスとメソッド情報を収集しているクラスポリシィ統計処理部（１０５）では、予め規定された周期毎に収集している情報から適切なクラスポリシィの境界蓄積数を計算し、クラスポリシィ管理部（１０２）へクラスポリシィリポジトリの更新を指示する。この指示を受けたクラスポリシィ管理部（１０２）では、クラスポリシィリポジトリ（１０３）の内容を更新する。
【００７８】
以上のように、クラス毎にメソッド起動のリアルタイム性を規定するクラスポリシィを、実際にオブジェクト指向システム内で実行されているクライアントからサーバに対するリクエスト状況を監視し一定時間周期に統計的に計算することにより、常に最新の状況に応じたクラスポリシィを自動的に設定することができる。
【００７９】
また、サーバに対して送信されるリクエスト送信の状況を反映したクラスポリシィの値を一定時間毎に自動的に更新することができる。
【００８０】
実施の形態４．
図１８は、実施の形態１におけるこの発明のメソッド起動方式を実現するオブジェクト指向システム構成へメソッド呼び出しテーブル（４０６）を構成する項目を変えている。この実施の形態では、メソッド呼び出しテーブル（４０６）をメソッド呼び出し集計テーブル（４０８）として説明する。
図１９は、メソッド呼び出し集計テーブル（４０８）の構成を示しており、クラス種別（Ｔ０５０１）、メソッド種別（Ｔ０５０２）、蓄積数（Ｔ０５０３）により構成されている。
【００８１】
次に、実施の形態４の動作を説明する。
初めに、実施の形態１のリクエストカウンタ登録処理の代わりに実行されるリクエスト集計登録処理の動作を説明する。
続いて、実施の形態１のメソッド呼び出し集計生成処理の代わりに実行されるメソッド呼び出し集計処理の動作を説明し、続いてリクエストディスパッチ処理と同一リクエストによるメソッド起動処理の動作を説明する。
【００８２】
実施の形態４のリクエスト集計登録処理の処理フローは実施の形態１によるリクエストカウンタ登録処理とほぼ同じであるが、以下の動作が異なる。
リクエスト集計登録処理は、サーバ（４）がリクエストを受信すると、「リクエスト集計分析処理」として、メソッド呼び出し集計テーブル（４０８）により、既に同一リクエストが存在するかどうかの判断が行われる。この実施の形態の同一リクエストとは、実施の形態１とは異なり同じオブジェクトの同じメソッドに対してメソッド起動を要求しているリクエストとして判断する。具体的には、メソッド呼び出し集計テーブル（４０８）のクラス種別（Ｔ０５０１）とメソッド種別（Ｔ０５０２）とが同一の場合をいう。この分析により、既に同一リクエストが存在する場合には、メソッド呼び出し集計テーブル（４０８）の該当するテーブルの蓄積数（Ｔ０５０３）をインクリメントし、存在しない場合にはオブジェクト実行環境部のクラスポリシィリポジトリに登録されているクラスポリシィを取得し、「メソッド呼び出し集計テーブル生成処理」による動作が起動される。
【００８３】
この実施の形態のメソッド起動方式は、クライアント（３）が、リクエストによって要求したメソッド起動の処理結果を、最新のパラメータによってメソッドが処理した処理結果を取得したい場合に適用できる。従って、パラメータがリクエストを発信したときと同一でなければならないリクエストの場合は、実施の形態１のメソッド起動方式を適用する必要がある。
【００８４】
図３と図１９を用いて、メソッド呼び出し集計生成処理の動作を説明する。
取得したクラスポリシィの構造は、図３に示すように、クラス種別（Ｔ０２０１）毎に、そのクラスに規定されている１つ以上のメソッドメソッド情報であるメソッド種別（Ｔ０２０２）及びパラメータ情報（Ｔ０２０３，Ｔ０２０４）、リターン情報（Ｔ０２０５）、さらに、そのメソッドが通常のメソッド起動にて処理される最大キューイング数である境界蓄積数（Ｔ０２０６）により構成されている。この情報の中で受信したリクエストにて要求されているメソッドメソッド情報が特定され、図１９に示すメソッド呼び出し集計テーブル構成の１つのテーブルに展開される。例えば、リクエストによりクラス種別がクラス＿１から生成されたオブジェクトＯｂｊｅｃｔ＿１のメソッドｍｅｔｈｏｄ＿１に対して、パラメータが“ｉｎ  ｉｎｔ  １０００”，“ｉｎ  ｉｎｔ  １０”，．．．及びリターン情報が“ｉｎｔ”により返される要求を行った場合、図１９に示すクラス種別（Ｔ０２０１）がクラス＿１、メソッド種別（Ｔ０５０２）がｍｅｔｈｏｄ＿１のテーブルがクラスポリシィとして取得され、この情報から図１９に示す１番目のテーブルが作成される。
【００８５】
実施の形態４の該当リクエスト分析処理の動作について説明する。
リクエストキュー管理部（４０２）が実行する該当リクエスト分析処理では、初めに、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“１”のリクエストを取得し、このリクエスト情報のオブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）と呼び出し集計テーブル（４０８）のクラス種別（Ｔ０５０１）、メソッド種別（Ｔ０５０２）の全てが一致する場合を検索し、該当する蓄積数（Ｔ０５０３）を取得する。この蓄積数（Ｔ０５０３）が“１”の場合は、「通常のメソッド起動」と判断する。蓄積数（Ｔ０５０３）が“１”では無い場合はリクエストキューテーブル（４０３）の各テーブルを検索し、蓄積番号“１”と同一のリクエストを検索する。同一のリクエストとは、リクエスト情報のオブジェクト種別（Ｔ０１０２）、メソッド種別（Ｔ０１０３）及びリターン情報（Ｔ０３０５）が一致する場合を同一リクエストとして「同一リクエストによるメソッド起動」を判断する。
【００８６】
この実施の形態による同一リクエストによるメソッド起動処理の動作は、実施の形態１による同一リクエストによるメソッド起動処理の動作とほぼ同様である。しかし、以下に説明するメソッドを起動する処理が異なる。
該当リクエスト分析処理の結果が「同一リクエストによるメソッド起動」と判断したリクエストキュー管理部（４０２）は、「同一リクエストによるメソッド起動」であることと、次に処理されるリクエストの情報をＭ４０２にてリクエストディスパッチ部（４０４）へ送る。ただし、次に処理されるリクエストの情報は、リクエストキューテーブル（４０３）の蓄積番号（Ｔ０１０１）が最も大きなリクエストのパラメータ情報（Ｔ０１０４，Ｔ０１０５）とリターン情報（Ｔ０１０６）を用いる。
【００８７】
以上のように、サーバのキューに蓄積されたリクエストを監視し、蓄積された同一オブジェクトの同一メソッドに対するリクエストがクラスポリシィにて規定する数に達した場合は、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が実行されるタイミングで、同一リクエストの中で最新のパラメータ情報とリターン情報からメソッド計算を指示することにより、クライアントは常に最新のメソッド計算の結果を得ることができる。
【００８８】
実施の形態５．
図２０は、この実施の形態５における該当リクエスト分析処理フロー図である。
次に、図２０を用いて実施の形態５の該当リクエスト分析処理の動作を説明する。
実施の形態５では、実施の形態１の動作に対して該当リクエスト分析処理の動作が異なる。
以下に、図１，図３，図２０を用いて動作を説明する。
リクエストキュー管理部（４０２）にて起動される該当リクエスト分析処理では、リクエストキューテーブル（４０３）に登録されている蓄積番号（Ｔ０１０１）が“１”のリクエストの情報を、Ｍ０６０１にてメソッド呼び出しテーブル（４０６）へ送る。
Ｍ０６０１を受信したメソッド呼び出しテーブル（４０６）では、受信したリクエストの情報のクラス種別とメソッド種別とパラメータ情報とリターン情報がそれぞれ、メソッド呼び出しテーブル（４０６）のオブジェクト種別（Ｔ０３０１）とメソッド種別（Ｔ０３０２）とパラメータ情報（Ｔ０３０３，Ｔ０３０４）とリターン情報（Ｔ０３０５）が全く同じテーブルを検索し、該当するテーブルの蓄積数（Ｔ０３０７）が境界蓄積数（Ｔ０３０６）に達しているものがあるかどうかを分析し、達していれば「同一リクエスト」と判断し、達していなければ「同一リクエストでは無い」と判断し、この結果をＭ０６０２にてリクエストキュー管理部（４０２）へ返送する。
【００８９】
Ｍ０６０２を受信したリクエストキュー管理部（４０２）では、同一リクエストが通知された場合は、そのリクエストに対して同一リクエストによるメソッド起動処理が行われる。
同一リクエストではないことが通知された場合は、リクエストキューテーブル（４０３）の次の蓄積番号（Ｔ０１０１）について同様に、Ｍ０６０１とＭ０６０２による判断が行われ、Ｍ０６０２により同一リクエストでは無いとの通知を受けた場合は、さらに処理を継続する。
以上の処理によりリクエストキューテーブル（４０３）の全てのリクエストが同一リクエストでは無いと判断された場合には、蓄積番号“１”のリクエストについて、通常のメソッド起動の処理が行われる。
【００９０】
以上のように、サーバのキューに蓄積されたリクエストを監視し、同一リクエストの数がクラスポリシィにて規定する数に達した場合は、この登録の後の最初のリクエストスケジューリングのタイミングで、優先して同一リクエストの中で最も登録時間の古いリクエストに対応したメソッド起動を実行し、この結果を同一リクエストを発行した全てのクライアントへ返送することにより、同一の要求が多いことによる重要度に従ったメソッド起動ができる。
【００９１】
また、このようにして、クライアントがリクエストを発行した時間に捕らわれないクラスポリシィに従ったメソッド起動を実現する。
【００９２】
実施の形態６．
図２１は、この実施の形態６におけるクラスポリシィリポジトリの構成図である。
図２２は、この実施の形態６におけるメソッド呼び出しテーブル構成図である。
図２１は、この実施の形態６におけるクラスポリシィリポジトリの一例を示す図である。図２１は、実施の形態１におけるクラスポリシィリポジトリに対して、境界蓄積数（Ｔ０２０６）に代わって、最小蓄積数（Ｔ０２０８）を追加した構成である。
図２２は、この実施の形態６におけるメソッド呼び出しテーブルの一例を示す図である。図２２は、実施の形態１におけるメソッド呼び出しテーブルに対して、境界蓄積数（Ｔ０３０６）に代わって、最小蓄積数（Ｔ０３０８）を追加した構成である。
【００９３】
次に、実施の形態６における動作を説明する。
初めに、実施の形態１と異なるメソッド呼び出しカウンタ生成処理の動作について説明し、続いて、実施の形態１と異なるリクエストディスパッチ処理の動作を説明する。
【００９４】
図２１と図２２を用いて、メソッド呼び出しカウンタ生成処理の動作を説明する。
取得したクラスポリシィの構造は、図２１に示すように、クラス種別（Ｔ０２０１）毎に、そのクラスに規定されている１つ以上のメソッドメソッド情報であるメソッド種別（Ｔ０２０２）及びパラメータ情報（Ｔ０２０３，Ｔ０２０４）、リターン情報（Ｔ０２０５）、さらに、そのメソッドが通常のメソッド起動にて処理される最低限の蓄積数である最小蓄積数（Ｔ０２０８）により構成されている。この情報の中で受信したリクエストにて要求されているメソッドメソッド情報が特定され、図２２に示すメソッド呼び出しテーブル構成の１つのテーブルに展開される。例えば、リクエストによりクラス種別がクラス＿１から生成されたオブジェクトＯｂｊｅｃｔ＿１のメソッドｍｅｔｈｏｄ＿１に対して、パラメータが“ｉｎ  ｉｎｔ  １０００”，“ｉｎ  ｉｎｔ  １０”，．．．及びリターン情報が“ｉｎｔ”により返される要求を行った場合、図２２に示すクラス種別（Ｔ０２０１）がクラス＿１のテーブルがクラスポリシィとして取得され、この情報から図２２に示す１番目のテーブルが作成される。
なお、メソッド呼び出しテーブル（４０７）の最小蓄積数（Ｔ０３０８）が空欄の場合は、通常のメソッド起動しか行われないことを意味している。
【００９５】
実施の形態６の該当リクエスト分析処理の動作について説明する。
リクエストキュー管理部（４０２）が実行する該当リクエスト分析処理では、初めに、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“１”のリクエストを取得し、このリクエスト情報のオブジェクト種別（Ｔ０１０２）とメソッド種別（Ｔ０１０３）とパラメータ情報（Ｔ０１０４，Ｔ０１０５）とリターン情報（Ｔ０１０６）のそれぞれが、メソッド呼び出しテーブル（４０６）のオブジェクト情報メソッド呼び出しテーブルのオブジェクト種別（Ｔ０３０１）とメソッド種別（Ｔ０３０２）とパラメータ種別（Ｔ０３０３，Ｔ０３０４）とリターン情報（Ｔ０３０５）と一致する場合を検索する。該当するテーブルが存在すれば、そのテーブルの蓄積数（Ｔ０３０７）が最小蓄積数（Ｔ０３０８）に達しているかどうかを判断し、達している場合は「同一リクエストによるメソッド起動」と判断する。また、該当するテーブルが存在しない場合には、「通常のメソッド起動」と判断する。該当するテーブルが存在するがそのテーブルの蓄積数（Ｔ０３０７）が最小蓄積数（Ｔ０３０８）に達していない場合は、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“２”のリクエストを取得し、同様に、「通常のメソッド起動」か「同一リクエストによるメソッド起動」かの判断を行い、決定できない場合は、さらに、次の蓄積番号（Ｔ０１０１）のリクエストについて分析を続ける。
上記では、メソッドの同一を判断する場合に、パラメータ情報も一致する場合を説明したが、パラメータが同一でない場合を、同一のメソッドであると判断する実施の形態も考えられる。
また、上記では、複数処理条件としてリクエスト蓄積数を採用したが、さらに、実施の形態２で説明した、限界時間を複数処理条件として追加して設定することも考えられる。
【００９６】
以上のように、サーバのキューに蓄積されたリクエストを監視し、キューイングされた同一リクエストがクラスポリシィに規定する数に達しない場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断された場合にもメソッド起動を保留し、規定する数に達した場合に同一リクエストの中で最も登録時間の古いリクエストに対応したメソッド起動を実行し、この結果を同一リクエストを発行した全てのクライアントへ返送することにより、リクエストに対応して実行するメソッド起動の数を最低限に押さえることができる。
【００９７】
実施の形態７．
図２３は、実施の形態１におけるオブジェクト指向システムに対してオブジェクト実行環境部にクラスポリシィ更新情報配信部（１０６）を追加した構成の一例である。
次に、図２４を用いて実施の形態７におけるクラスポリシィ更新情報配信処理の動作について説明する。
クラスポリシィ更新情報配信処理は、実施の形態１にて説明したクラスポリシィ登録処理の動作において、オブジェクト実行環境部（１）のクラスポリシィ管理部（１０２）がＭ０１０１を受信し、クラスポリシィリポジトリ登録処理を実行する際に、クラスポリシィの更新情報を関連するサーバ（４）へ配信する処理である。
【００９８】
クラスポリシィ管理部（１０２）では、クラスポリシィリポジトリ登録処理を実行した後に、更新クラスポリシィ情報をＭ０７０１にてクラスポリシィ更新情報配信部（１０６）へ通知する。
Ｍ０７０１を受信したクラスポリシィリポジトリ更新情報配信部（１０６）では、更新クラスポリシィ情報を関連するサーバ（４）へ配信する目的で起動中のサーバ（４）の検索を、Ｍ０７０２にてオブジェクト管理部（１０１）へ問い合わせる。
Ｍ０７０２を受信したオブジェクト管理部（１０１）では、動作中のサーバ（４）の情報をＭ０７０３にてクラスポリシィ更新情報配信部（１０６）へ返送する。
Ｍ０７０３を受信したクラスポリシィ更新情報配信部（１０６）では、取得した動作中のサーバ（４）全てに対して更新クラスポリシィ情報を通知する。
【００９９】
以降の説明では、１つのサーバ（４）に対して更新クラスポリシィ情報を通知する動作について説明する。
クラスポリシィ更新情報配信部（１０６）は、更新クラスポリシィ情報をＭ０７０４にて、メッセージ通信管理部（１０４）へ送る。
Ｍ０７０４を受信したメッセージ通信管理部は、Ｍ０７０４の情報をＭ０７０５にてサーバ（４）のサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０７０５を受信したサーバメッセージ通信管理部（４０５）では、Ｍ０７０５の情報をＭ０７０６にてリクエストキュー管理部（４０２）へ送る。
Ｍ０７０５を受信したリクエストキュー管理部（４０２）では、メソッド呼び出しテーブル（４０６）を参照し、更新クラスポリシィ情報のオブジェクト種別（Ｔ０１０２）とメソッド種別（Ｔ０１０３）とパラメータ情報（Ｔ０１０４，Ｔ０１０５）とリターン情報（Ｔ０１０６）の全てが一致するテーブルが存在すれば、そのテーブルの境界蓄積数（Ｔ０３０６）を更新クラスポリシィ情報の値に更新する。
【０１００】
以上のように、クラスポリシィが更新された時に、オブジェクト指向システム内で既に実行されているサーバへ更新情報を配信することにより、常に最新のクラスポリシィに基づくメソッド起動を行うことができる。
【０１０１】
実施の形態８．
図２５は、実施の形態１のオブジェクト指向システムのサーバにリクエスト比較部（４０９）を追加した構成である。
リクエスト比較部（４０９）は、自己が起動するメソッドとメソッド情報が同じメソッドを起動する他のサーバを比較して検索し、検索したサーバへ記憶した処理結果を配信する。
図２６は、実施の形態１のリクエストキューテーブル（４０３）に対して、処理結果（Ｔ０１０８）を追加した構成である。
この実施の形態では、一例として、リクエストディスパッチ部（４０４）によって、リクエストキューテーブル（４０３）へ処理結果を記憶する場合を説明する。
【０１０２】
次に、実施の形態８の動作を説明する。
実施の形態８では、実施の形態１にて説明した処理により、サーバ（４）においてメソッド実行が行われ、この結果がＭ０３１４とＭ０３１５にてリクエストキュー管理部（４０２）に伝えられた以降に、サーバ（４）に同一リクエストを発行しているクライアント（３）と、同一のリクエストがキューイングされている他のサーバにメソッド実行結果を登録する。
このため、初めに、図２８を用いてメソッド実行を行ったサーバ（４）Ａが動作中の他のサーバを検索する処理を動作サーバ検索処理として説明する。
続いて、図２７を用いてこの中の１つのサーバ（４）Ｂへメソッド実行結果を登録する同一リクエスト比較処理の動作を説明する。
次に、サーバ（４）Ｂにおける該当リクエスト分析処理と、実際にメソッド起動処理を行う動作を説明する。
【０１０３】
図２８を用いてサーバ（４）がオブジェクト実行環境部（１）のオブジェクト管理部（１０１）に、動作中の他のサーバを検査する動作を説明する。
サーバ（４）のリクエスト比較部（４０９）では、Ｍ０９０１にてサーバメッセージ通信管理部（４０５）に対して、動作サーバ検索を依頼する。
Ｍ０９０１を受信したサーバメッセージ通信管理部（４０５）では、Ｍ０９０１の情報をＭ０９０２にてオブジェクト実行環境部（１）のメッセージ通信管理部（１０４）へ送る。
Ｍ０９０２を受信したメッセージ通信管理部（１０４）では、Ｍ０９０２の情報を、Ｍ０９０３にてオブジェクト管理部（１０１）へ送る。
Ｍ０９０３を受信したオブジェクト管理部（１０１）では、動作中のサーバ一覧情報をＭ０９０４にてメッセージ通信管理部（１０４）へ送る。
Ｍ０９０４を受信したメッセージ通信管理部は、Ｍ０９０４の情報を、Ｍ０９０５にてサーバ（４）のサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０９０５を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０９０５の情報を、Ｍ０９０６にてリクエスト比較部（４０９）へ送る。
【０１０４】
図２７を用いて、同一リクエスト比較処理の動作を説明する。
この処理は、実施の形態１においてメソッド実行が行われ、メソッド実行結果がＭ０４０５にてサーバ（４）Ａに通知された以降、この情報を他の動作中サーバへ送信する処理である。
サーバ（４）Ａのリクエストキュー管理部（４０２）は、Ｍ０８０１にてメソッドメソッド情報とメソッド実行結果をリクエスト比較部（４０９）へ送る。
Ｍ０８０１を受信したリクエスト比較部（４０９）では、動作サーバ検索処理を実行し、既に説明した動作により動作中の他のサーバを検索する。以降では、動作サーバ検索処理の結果から、サーバ（４）Ｂへメソッドメソッド情報とメソッド実行結果を通知する動作を説明する。
【０１０５】
サーバ（４）Ｂに対するメソッド実行結果の通知を判断したリクエスト比較部（４０９）は、Ｍ０８０１にて受信した情報を、Ｍ０８０２にてサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０８０２を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０８０２の情報をＭ０８０３にてサーバ（４）Ｂのサーバメッセージ通信管理部（４０５）へ送る。
Ｍ０８０３を受信したサーバメッセージ通信管理部（４０５）は、Ｍ０８０３の情報をＭ０８０４にて、リクエスト比較部（４０９）へ送る。
Ｍ０８０４を受信したリクエスト比較部（４０）は、Ｍ０８０４の情報をＭ０８０５にてリクエストキュー管理部（４０２）へ送る。
Ｍ０８０５を受信したリクエストキュー管理部（４０２）は、処理結果登録処理を実行する。
処理結果登録処理は、リクエストキューテーブル（４０３）を検索し、０８０５にて受信したメソッドメソッド情報のオブジェクト種別とメソッド種別とパラメータ情報とリターン情報のそれぞれのが、オブジェクト種別（Ｔ０１０２）とメソッド種別（Ｔ０１０３）とパラメータ情報（Ｔ０１０４，Ｔ０１０５）とリターン情報（Ｔ０１０６）が一致するテーブルがあれば、そのテーブルの処理結果（Ｔ０１０８）にメソッド実行結果を登録する。
【０１０６】
実施の形態８の該当リクエスト分析処理の動作について説明する。
リクエストキュー管理部（４０２）が実行する該当リクエスト分析処理では、初めに、リクエストキューテーブル（４０３）のテーブルの中から蓄積番号（Ｔ０１０１）が“１”のリクエストを取得し、このリクエスト情報の処理結果（Ｔ０１０８）にメソッド実行結果が登録されているかどうかを参照し、登録されている場合には「メソッド実行結果登録済み」と判断し、登録されていない場合には「メソッド実行結果登録無し」と判断する。次に、リクエストキューテーブル（４０３）の各テーブルを検索し、実施の形態１の場合と同様に、「同一リクエストによるメソッド起動」あるいは「通常のメソッド起動」を判断する。
【０１０７】
Ｍ０３１０を受信したメソッド呼び出しテーブル（４０６）では、メソッド呼び出しテーブル（４０６）とリクエストキューテーブルの比較を行い、この結果をＭ０３１１にてリクエストキュー管理部（４０２）へ送る。
以上により、該当リクエスト分析処理が終了する。この結果が「メソッド実行結果登録無し」の場合は、実施の形態１の場合と同様に処理が続けられるが、「メソッド実行結果登録済み」の場合には、オブジェクト実行方法が異なるため、以下に異なる処理を説明する。
【０１０８】
該当リクエスト分析処理により「メソッド実行結果登録済み」を判断したリクエストキュー管理部（４０２）は、次に処理されるリクエストが「メソッド実行結果登録済み」であることと、リクエストキューテーブル（４０３）の該当テーブルの処理結果（Ｔ０１０８）をメソッド実行結果としてＭ０３１２にてリクエストディスパッチ部（４０４）へ送る。
Ｍ０３１２を受信したリクエストディスパッチ部（４０４）は、次に処理すべきリクエストの結果が、メソッド実行結果であるとして、この情報を処理結果としてＭ０３１４にてリクエストディスパッチ部（４０４）へ送る。以降は、実施の形態１と同様の処理を行う。
【０１０９】
以上のように、サーバのキューに蓄積されたリクエストを監視し、同一リクエストが境界蓄積数に達した場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断されたタイミングで、該当リクエストに対応して実施されたメソッドの処理結果を他の同一リクエストを行ったクライアントへ返送するだけでなく、他のサーバの中で同一リクエストが蓄積されている場合に、そのサーバ内のリクエストスケジューリングにおいて、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断された場合にはメソッド起動を行わずに、既に取得されているメソッド実行結果を送信することにより、異なるサーバ間で同一のメソッド起動の数を最低限に押さえることができる。
【０１１０】
実施の形態９．
上記の実施の形態では、複数処理条件として、境界蓄積数、限界時間、及び最小蓄積数を一例として説明したが、これに限られるわけではない。上記以外の所定の複数処理条件を設定して、この発明に係るメソッド起動方式を実現することは可能であることは言うまでもない。
また、上記の実施の形態では、クライアント及びサーバは、それぞれ複数あってもかまわないし、一つでもかまわない。
また、この発明に係るメソッド起動方式を、一例としてオブジェクト指向システムにおいて実現する場合を説明したが、これに限られるわけではない。オブジェクト指向システム以外のシステムであって、データを処理するメソッドを起動するシステムに適用することも可能である。
【０１１１】
【発明の効果】
以上のように、本発明に係るメソッド起動方式によれば、サーバのキューに蓄積された各リクエストがクラスポリシィにて規定した数に達した場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動による処理結果を同一リクエストを行った全てのクライアント間で共有することが可能であるため、アプリケーションソフトウェアとは独立に規定するクラスポリシィに基づいて、アプリケーションソフトウェアの自由度を妨げること無く、計算機資源の有効的な利用によるリアルタイムなメソッド起動を実現できるという効果がある。
【０１１２】
以上のように、本発明によれば、同一リクエストがクラスポリシィにて規定された時間以上にキューイングされ実行待ちの状態にある場合には、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が判断された時に、該当リクエストに対応して実施されたメソッドの処理結果を他の同一リクエストを行ったクライアント間で共有することが可能であるため、クライアントからのリクエストの予測できないキューイング時間に対してクラスポリシィに基づいて制約を加えることができるという効果がある。
【０１１３】
以上のように、本発明によれば、クラス毎にメソッド起動のリアルタイム性を規定するクラスポリシィを実際にオブジェクト指向システム内で実行されているクライアントからサーバに対するリクエスト状況から動的に計算することが可能であるため、常に最新の状況を反映したクラスポリシィに基いてメソッド起動を行えるという効果がある。
【０１１４】
以上のように、本発明によれば、同一オブジェクトの同一メソッドに対するリクエストがクラスポリシィにて規定する数に達した場合は、次に同一リクエストの中で最も古いリクエストに対するメソッド起動が実行されるタイミングで、最新のリクエストのパラメータ情報とリターン情報からのメソッド計算を実行し、その結果をクライアント間で共有することが可能であるため、クライアントはリクエスト送信のタイミングに関係なく、常に最新メソッド処理結果を取得できるという効果がある。
【０１１５】
以上のように、本発明によれば、同一リクエストの数がクラスポリシィにて規定する数に達した場合は、この登録の後の最初のリクエストスケジューリングのタイミングでキューイングされている時間的な順番に関係なく、優先してメソッド起動を実行する事が可能なため、リクエストを発行した時間だけでなく同一の要求が集中する状況に応じてメソッド起動の優先処理を行えるという効果がある。
【０１１６】
以上のように、本発明によれば、キューイングされた同一リクエストの数がクラスポリシィの規定数に達した段階でメソッド起動を行うことが可能であるため、メソッド起動の実行回数を最低限に押さえたリクエストスケジューリングが行えるという効果がある。
【０１１７】
以上のように、本発明によれば、クラスポリシィの更新情報を、オブジェクト指向システム内で既に実行されているサーバへ配信することが可能であるため、常に最新のクラスポリシィを反映したメソッド起動を行えるという効果がある。
【０１１８】
以上のように、本発明によれば、同一リクエストによるメソッド起動の制限を複数のサーバ間で共有することが可能であるため、クラスポリシィに基づくメソッド起動を複数のサーバに適用することが可能であるため、分散オブジェクト指向システム全体でメソッド起動を最低限に押さえた計算機資源の有功利用によるリアルタイムなメソッド起動方式を行えるという効果がある。
【図面の簡単な説明】
【図１】  実施の形態１におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図２】  実施の形態１におけるリクエストキューテーブル構成図である。
【図３】  実施の形態１におけるクラスポリシィリポジトリ構成図である。
【図４】  実施の形態１におけるメソッド呼び出しテーブル構成図である。
【図５】  実施の形態１におけるクラスポリシィ登録処理フロー図である。
【図６】  実施の形態１におけるリクエストカウンタ登録処理フロー図である。
【図７】  実施の形態１における通常のメソッド起動処理フロー図である。
【図８】  実施の形態１における通常のメソッド起動処理フロー図である。
【図９】  実施の形態１における同一リクエストによるメソッド起動処理フロー図である。
【図１０】  実施の形態１における同一リクエストによるメソッド起動処理フロー図である。
【図１１】  実施の形態１における該当リクエスト分析処理である。
【図１２】  実施の形態２におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図１３】  実施の形態２におけるリクエストキューテーブル構成図である。
【図１４】  実施の形態２におけるクラスポリシィリポジトリ構成図である。
【図１５】  実施の形態２におけるメソッド呼び出し限界時間テーブル構成図である。
【図１６】  実施の形態３におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図１７】  実施の形態３におけるクラスポリシィ統計処理フロー図である。
【図１８】  実施の形態４におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図１９】  実施の形態４におけるメソッド呼び出し集計テーブル構成の一例を示す図である。
【図２０】  実施の形態５における該当リクエスト分析処理フロー図である。
【図２１】  実施の形態６におけるクラスポリシィリポジトリ構成の一例を示す図である。
【図２２】  実施の形態６におけるメソッド呼び出しテーブル構成図である。
【図２３】  実施の形態７におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図２４】  実施の形態７におけるクラスポリシィリポジトリ更新情報配信処理フロー図である。
【図２５】  実施の形態８におけるこの発明に係るメソッド起動方式を実施するオブジェクト指向システム構成の一例を示す図である。
【図２６】  実施の形態８におけるリクエストキューテーブル構成の一例を示す図である。
【図２７】  実施の形態８における同一リクエスト比較処理フローである。
【図２８】  実施の形態８における同一サーバ検索処理フロー図である。
【図２９】  従来例のシステム構成図である。
【図３０】  従来例のメッセージシステムを示す図である。
【図３１】  従来例のデータ構造を示す図である。
【符号の説明】
１  オブジェクト実行環境部、２  クラスポリシィ入力インタフェース、３  クライアント、４  サーバ、１０１  オブジェクト管理部、１０２  クラスポリシィ管理部、１０３  クラスポリシィリポジトリ、１０４  メッセージ通信管理部、１０５  クラスポリシィ統計処理部、１０６  クラスポリシィ更新情報配信部、３０１  クライアントロジック部、３０２  クライアントメッセージ通信管理部、４０１  サーバロジック部、４０２  リクエストキュー管理部、４０３  リクエストキューテーブル、４０４  リクエストディスパッチ部、４０５  サーバメッセージ通信管理部、４０６  メソッド呼び出しテーブル、４０７  メソッド呼び出し限界時間テーブル、４０８  メソッド呼び出し集計テーブル、４０９リクエスト比較部、４０１１  メソッド、４０１２  オブジェクト部、Ｔ０１０１  蓄積番号、Ｔ０１０２  オブジェクト種別、Ｔ０１０３  メソッド種別、Ｔ０１０４  パラメータ１情報、Ｔ０１０５  パラメータ２情報、Ｔ０１０６  リターン情報、Ｔ０１０７  登録時間、Ｔ０１０８  処理結果、Ｔ０２０１  クラス種別、Ｔ０２０２  メソッド種別、Ｔ０２０３  パラメータ１情報、Ｔ０２０４  パラメータ２情報、Ｔ０２０５  リターン情報、Ｔ０２０６  境界蓄積数、Ｔ０２０７  限界時間、Ｔ０２０８  最小蓄積数、Ｔ０３０１  オブジェクト種別、Ｔ０３０２  メソッド種別、Ｔ０３０３  パラメータ１情報、Ｔ０３０４パラメータ２情報、Ｔ０３０５  リターン情報、Ｔ０３０６  境界蓄積数、Ｔ０３０７  蓄積数、Ｔ０３０８  最小蓄積数、Ｔ０４０１  クラス種別、Ｔ０４０２  メソッド種別、Ｔ０４０３  限界時間、Ｔ０５０１  クラス種別、Ｔ０５０２  メソッド種別、Ｔ０５０３  蓄積数、Ｍ０１０１〜Ｍ０１０２，Ｍ０２０１〜Ｍ０２０６，Ｍ０３０１〜Ｍ０３２３，Ｍ０４０２〜Ｍ０４１４，Ｍ０５０１〜Ｍ０５０３，Ｍ０６０１〜Ｍ０６０２，Ｍ０７０１〜Ｍ０７０６，Ｍ０８０１〜Ｍ０８０５，Ｍ０９０１〜Ｍ０９０６  メッセージ、３００１  コンピュータプログラム、３００２  コンピュータプラットフォーム、３００３  アプリケーションプログラム、３００４  オブジェクト指向プログラミング、３００５  データベース管理装置、３００６  オペレーティングシステム、３００７  マイクロ命令コード、３００８  入出力インタフェース、３００９  ＲＡＭ、３０１０  ＣＰＵ、３０１１  入出力インタフェース、３０１２  接続ケーブル、３０１３  端末装置、３０１４  接続ケーブル、３０１６  ユーザ、３０１７  接続ケーブル、３０１８  データ記憶装置、３０１９  外部データベース、３０２０接続ケーブル、３０２１  プリンタ、３１２１  メソッドＡ、３１２２  メソッドＢ、３１２３  オブジェクト管理表、３１２４  データフレーム、３１２５ロード済みクラス表、３１２６  信号線、３１２７  信号線、３１２８  信号線、３１２９  信号線、３１３０  メッセンジャ、３１０１  オブジェクト識別構成、３１０２  オブジェクト識別欄、３１０３  アクセスアドレス、３１０４形式、３１０５  クラス識別子、３１０６  インスタンス識別子、３１０７  オブジェクト管理表（ＯＭＴ）、３１０８  オブジェクト識別欄、３１０９  インスタンスデータフレームアドレス。
【図１】
0003768748.tif 000002
【図２】
0003768748.tif 000003
【図３】
0003768748.tif 000004
【図４】
0003768748.tif 000005
【図５】
0003768748.tif 000006
【図６】
0003768748.tif 000007
【図７】
0003768748.tif 000008
【図８】
0003768748.tif 000009
【図９】
0003768748.tif 000010
【図１０】
0003768748.tif 000011
【図１１】
0003768748.tif 000012
【図１２】
0003768748.tif 000013
【図１３】
0003768748.tif 000014
【図１４】
0003768748.tif 000015
【図１５】
0003768748.tif 000016
【図１６】
0003768748.tif 000017
【図１７】
0003768748.tif 000018
【図１８】
0003768748.tif 000019
【図１９】
0003768748.tif 000020
【図２０】
0003768748.tif 000021
【図２１】
0003768748.tif 000022
【図２２】
0003768748.tif 000023
【図２３】
0003768748.tif 000024
【図２４】
0003768748.tif 000025
【図２５】
0003768748.tif 000026
【図２６】
0003768748.tif 000027
【図２７】
0003768748.tif 000028
【図２８】
0003768748.tif 000029
【図２９】
0003768748.tif 000030
【図３０】
0003768748.tif 000031
【図３１】
0003768748.tif 000032