JP4002232B2 - プログラム制御方法及び実施装置並びに実施システムと処理プログラム - Google Patents

プログラム制御方法及び実施装置並びに実施システムと処理プログラム Download PDF

Info

Publication number
JP4002232B2
JP4002232B2 JP2003401699A JP2003401699A JP4002232B2 JP 4002232 B2 JP4002232 B2 JP 4002232B2 JP 2003401699 A JP2003401699 A JP 2003401699A JP 2003401699 A JP2003401699 A JP 2003401699A JP 4002232 B2 JP4002232 B2 JP 4002232B2
Authority
JP
Japan
Prior art keywords
program control
control device
load
object information
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003401699A
Other languages
English (en)
Other versions
JP2005165540A (ja
Inventor
篤司 指野
知彦 茂岡
弘和 藤原
敦博 横路
明夫 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003401699A priority Critical patent/JP4002232B2/ja
Priority to US10/998,726 priority patent/US7779392B2/en
Publication of JP2005165540A publication Critical patent/JP2005165540A/ja
Application granted granted Critical
Publication of JP4002232B2 publication Critical patent/JP4002232B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御処理に関するものである。
従来の分散オブジェクトシステムにおいて、クライアント側の処理装置がサーバ側の処理装置から所定のサービス(プログラムやオブジェクトの実行により実現される機能)を受ける場合、まずクライアント側処理装置は、ネーミングサービスを行うサーバ側処理装置に対してオブジェクトの名前解決の為の問い合わせを行い、オブジェクトへのリファレンス(分散オブジェクト環境でオブジェクトを一意に特定する為の情報)を受信する。そしてクライアント側処理装置は、前記受信したリファレンスで示される特定のサーバ側処理装置に対して前記サービスの提供を要求し、当該サーバ側処理装置上での該当オブジェクトのメソッドの呼び出しにより得られた処理結果をそのサーバ側処理装置から受け取っている。
また従来の分散オブジェクトシステムでは、ファクトリ(オブジェクトの割当を行う処理部)経由でオブジェクトへのリファレンスを取得する処理も行われる様になってきている。すなわちクライアント側処理装置は、ネーミングサービスを行うサーバ側処理装置からファクトリへのリファレンスを取得した後、そのファクトリリファレンスで示されるサーバ側処理装置へオブジェクトの割当要求を行ってオブジェクトへのリファレンスを取得し、そのオブジェクトリファレンスで示されるサーバ側処理装置に対してメソッドの呼び出しを要求して処理結果を受け取っている。
また前記の様な分散オブジェクト環境におけるネーミングサービスや、分散処理システムの故障耐性を改善し且つ効率的なスケーラビリティを可能とする技術等に関しては、例えば特許文献1に記載されている。
特表2002−529862号公報
前記従来の分散オブジェクトシステムでは、サーバ側処理装置の負荷状態や時間経過に伴う負荷状態の変化を考慮せずにリファレンスを提供している為、リファレンスを取得してから処理要求を行うまでの間に負荷状態が変化した場合、サーバ側処理装置に負荷の偏りが発生するという問題がある。
すなわち、クライアント側処理装置がネーミングサービスを行うサーバ側処理装置からファクトリへのリファレンスを取得してからそのファクトリリファレンスで示されるサーバ側処理装置へオブジェクトの割当要求を行うまでの間に負荷状態が変化した場合、そのファクトリの処理を行うサーバ側処理装置での処理負荷に偏りが生じたり、またオブジェクトの割当によりオブジェクトへのリファレンスを取得してからそのオブジェクトリファレンスで示されるサーバ側処理装置に対してメソッドの呼び出しを要求するまでの間に負荷状態が変化した場合、そのメソッドの呼び出しを行うサーバ側処理装置での処理負荷に偏りが生じ、前記の様なファクトリの処理やメソッドの呼び出しを行うサーバ側処理装置での処理負荷の偏りにより分散オブジェクトシステム全体の性能が低下するという問題がある。
本発明の目的は上記問題を解決し、分散オブジェクト処理を負荷状態に基づいて効率的に実行することが可能な技術を提供することにある。
本発明は、分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御装置において、オブジェクト割当制御部リファレンスの応答、ディスパッチャリファレンスの応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行うものである。
分散オブジェクト処理により所定のサービスを受ける場合、まずクライアント側の情報処理装置は、そのサービスを提供するオブジェクトの名前解決を行うプログラム制御装置に対して、オブジェクトの名前解決の為の問い合わせを通信装置により送信する。
本発明のプログラム制御装置(計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い)では、通信装置によりクライアント側の情報処理装置からオブジェクトの名前解決の問い合わせを受信すると、記憶装置上のオブジェクト情報管理テーブルを参照し、オブジェクトの負荷状態を示すオブジェクト情報をオブジェクト情報管理テーブルから読み出して前記問い合わせの行われたオブジェクトの負荷状態を示す情報を取得し、前記オブジェクトの内で負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択する。そして、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンス(分散オブジェクト環境で前記オブジェクトの割当を行うオブジェクト割当制御部を一意に特定する為の情報であり、前記オブジェクト割当制御部を備えるプログラム制御装置に到達する為のネットワークプロトコルやアドレス情報と、プログラム制御装置内でオブジェクト割当制御部を特定する為の情報を含む。)を前記オブジェクト情報管理テーブルから読み出した後、その読み出したリファレンスを通信装置によりクライアント側の情報処理装置へ応答する。
クライアント側の情報処理装置は、前記応答により得られたオブジェクト割当制御部リファレンスで識別されるプログラム制御装置へ、前記オブジェクトの割当要求を通信装置により送信する。
本発明のプログラム制御装置は、通信装置によりクライアント側の情報処理装置からオブジェクトの割当要求を受信すると、記憶装置上のオブジェクト情報管理テーブルを参照し、オブジェクトの負荷状態を示すオブジェクト情報をオブジェクト情報管理テーブルから読み出して前記割当要求の行われたオブジェクトの負荷状態を示す情報を取得し、前記オブジェクトの内で負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択する。そして、その選択したオブジェクトの実行を行うディスパッチャへのリファレンス(分散オブジェクト環境で前記オブジェクトの実行を行うディスパッチャを一意に特定する為の情報であり、前記ディスパッチャを備えるプログラム制御装置に到達する為のネットワークプロトコルやアドレス情報と、プログラム制御装置内でディスパッチャを特定する為の情報を含む。)を前記オブジェクト情報管理テーブルから読み出した後、その読み出したリファレンスを通信装置によりクライアント側の情報処理装置へ応答する。
クライアント側の情報処理装置は、前記応答により得られたディスパッチャリファレンスで識別されるプログラム制御装置へ、前記オブジェクトの実行要求を通信装置により送信する。
本発明のプログラム制御装置は、通信装置によりクライアント側の情報処理装置からオブジェクトの実行要求を受信すると、記憶装置上のオブジェクト情報管理テーブルを参照し、オブジェクトの負荷状態を示すオブジェクト情報をオブジェクト情報管理テーブルから読み出して前記実行要求の行われたオブジェクトの負荷状態を示す情報を取得し、前記オブジェクトの内で負荷が所定の閾値未満であるオブジェクトを選択して実行する。そして、その実行したオブジェクトの処理結果を通信装置によりクライアント側の情報処理装置へ応答する。
本発明によれば分散オブジェクト処理を実行する際に、オブジェクト割当制御部リファレンスの応答、ディスパッチャリファレンスの応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行うので、分散オブジェクト処理を負荷状態に基づいて効率的に実行することが可能である。
以下に分散オブジェクト処理におけるプログラムの実行を制御する一実施形態のプログラム制御装置について説明する。図1、図2、図3、図17及び図18のクライアントやサーバ、若しくはクライアント内の各処理やサーバ内の各処理部は、プログラム若しくはオブジェクトやハードウェアで実現されるものとする。
図1は本実施形態のプログラム制御装置の概略構成を示す図である。図1に示す様に本実施形態のプログラム制御システムは、サーバ側処理装置100及び110と、クライアント側処理装置120とを有している。
サーバ側処理装置100及び110は、クライアント側処理装置120からの問い合わせや処理要求を処理し、オブジェクト割当制御部リファレンスの応答、ディスパッチャリファレンスの応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行って、分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御装置である。
クライアント側処理装置120は、サーバ側処理装置100及び110への問い合わせや処理要求を行い、オブジェクト割当制御部リファレンス、ディスパッチャリファレンスや、オブジェクトの実行結果を受け取るクライアント側の情報処理装置である。
サーバ側処理装置100は、ネーミングサービス部101と、オブジェクト割当制御部102と、オブジェクト情報共有制御部103と、監視部104と、ディスパッチャ105と、通信制御部106とを有している。
ネーミングサービス部101は、オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部102へのリファレンスを通信装置により応答する処理部である。
オブジェクト割当制御部102は、オブジェクトの割当の際に、前記オブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャ105へのリファレンスを通信装置により応答する処理部である。
オブジェクト情報共有制御部103は、前記オブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して通信装置によりサーバ側処理装置110等の他のサーバ側処理装置へ通知する処理部である。
監視部104は、他のサーバ側処理装置の動作状況を監視する処理部である。ディスパッチャ105は、オブジェクトの実行の際に、前記オブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信装置により応答する処理部である。通信制御部106は、通信装置を介した他のサーバ側処理装置やクライアント側処理装置120との通信を制御する処理部である。
サーバ側処理装置100をネーミングサービス部101、オブジェクト割当制御部102、オブジェクト情報共有制御部103、監視部104、ディスパッチャ105及び通信制御部106として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
またサーバ側処理装置100は、オブジェクト情報管理テーブル107と、コンテナ108とを有している。
オブジェクト情報管理テーブル107は、オブジェクトの負荷状態を示すオブジェクト情報を格納するテーブルである。コンテナ108は、各オブジェクトを格納する記憶領域である。
図2は本実施形態のサーバ側処理装置100の内部構成を示す図である。図2に示す様に本実施形態のサーバ側処理装置100は、受付処理部201〜203と、受付処理部211〜213と、負荷制御部214と、閉塞制御部215と、転送制御部216と、同時実行制御部217とを有している。
受付処理部201〜203は、各オブジェクトの割当要求の受付を行う処理部である。受付処理部211〜213は、各オブジェクトの実行要求の受付を行う処理部である。負荷制御部214は、実行要求が行われたオブジェクトの負荷状態を確認したり、オブジェクトの実行による負荷状態の変化を管理する処理部である。
閉塞制御部215は、実行要求が行われたオブジェクトの閉塞状態を確認したり、オブジェクトの閉塞状態を制御する処理部である。転送制御部216は、実行要求の行われたオブジェクトの負荷が所定の閾値以上であるか、そのオブジェクトが閉塞状態である場合に、そのオブジェクトを実行する他のディスパッチャへのリファレンスを記憶装置から読み出して、そのディスパッチャへ前記実行要求を通信装置により転送する処理部である。同時実行制御部217は、各オブジェクトの同時実行を制御する処理部である。
サーバ側処理装置100を受付処理部201〜203、受付処理部211〜213、負荷制御部214、閉塞制御部215、転送制御部216及び同時実行制御部217として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
図3は本実施形態のサーバ側処理装置110の内部構成を示す図である。図3に示す様にサーバ側処理装置110の内部構成は、サーバ側処理装置100の内部構成と同様である。
図4は本実施形態のオブジェクト情報管理テーブル107の一例を示す図である。図4に示す様にオブジェクト情報管理テーブル107には、各オブジェクトの登録名を示すオブジェクト登録名401と、オブジェクト割当制御部102へのリファレンスを示すオブジェクト割当制御部リファレンス402と、ディスパッチャ105へのリファレンスを示すディスパッチャリファレンス403と、各オブジェクトに対応する負荷の情報としてオブジェクトの最終更新時刻406におけるCPUやメモリの使用率等を示す負荷状態404と、そのオブジェクトが実行可能な状態であるかどうかを示す閉塞状態405と、そのオブジェクト情報が最後に更新された時刻を示す最終更新時刻406とが格納されている。
ここでオブジェクト割当制御部リファレンス402は、分散オブジェクト環境でオブジェクト割当制御部102を一意に特定する為の情報であり、オブジェクト割当制御部102を備えるサーバ側処理装置100または110に到達する為のネットワークプロトコルやアドレス情報と、サーバ側処理装置100または110内でオブジェクト割当制御部102の受付処理部201〜203の何れかを特定する為の情報を含んでいるものとする。またディスパッチャリファレンス403は、分散オブジェクト環境でディスパッチャ105を一意に特定する為の情報であり、ディスパッチャ105を備えるサーバ側処理装置100または110に到達する為のネットワークプロトコルやアドレス情報と、サーバ側処理装置100または110内でディスパッチャ105の受付処理部211〜213の何れかを特定する為の情報を含んでいるものとする。
図5は本実施形態の同時実行制御部217の内部構成を示す図である。図5に示す様に同時実行制御部217の実行制御情報テーブル500には、各オブジェクトについて、現在実行中の数と、最大実行数と、実行待ち数とが格納されている。
図6は本実施形態のクライアント側処理装置120の処理手順を示すフローチャートである。ステップ601でクライアント側処理装置120の名前解決部は、クライアントプログラムの処理により所定のオブジェクトでの処理が要求されると、図7の様にオブジェクトの名前解決を行う。
ステップ602でクライアント側処理装置120は、ステップ601での処理結果を参照して正しく名前解決が行われたかどうかを調べ、前記処理結果中にオブジェクト割当制御部102へのリファレンスが含まれており、正しく名前解決が行われた場合にはステップ603へ進み、そうでない場合にはエラーとして処理を終了する。
ステップ603でクライアント側処理装置120は、ステップ601の処理で得られたリファレンスで示されるサーバ側処理装置に対して通信制御部及び通信装置によりオブジェクト割当要求を送信する。
ステップ604でクライアント側処理装置120は、前記オブジェクト割当要求に対する処理結果を通信制御部及び通信装置によりサーバ側処理装置から受信して割当が成功したかどうかを調べ、前記処理結果中にディスパッチャ105へのリファレンスが含まれており、割当が成功している場合にはステップ605へ進み、そうでない場合にはエラーとして処理を終了する。
ステップ605でクライアント側処理装置120は、ステップ604の処理で受信したリファレンスで示されるサーバ側処理装置に対して通信制御部及び通信装置によりビジネスメソッドの処理要求を必要なだけ行い、その処理結果を通信制御部及び通信装置によりサーバ側処理装置から受信してクライアントプログラムへ渡す。
図7は本実施形態のクライアント側処理装置120内でのオブジェクトの名前解決処理の処理手順を示すフローチャートである。クライアント側処理装置120は、ステップ601でオブジェクトの名前解決が開始されると図7に示す様な処理を実行する。
ステップ701でクライアント側処理装置120は、オブジェクトの名称とそのオブジェクトの割当を行うオブジェクト割当制御部102へのリファレンスを格納しているキャッシュ内を参照し、クライアントプログラムにより処理要求の行われたオブジェクトに対応するリファレンスを検索する。
ステップ702では、前記検索の結果、前記処理要求の行われたオブジェクトに対応するリファレンスをキャッシュ内で発見したかどうかを調べ、発見した場合にはステップ703へ進み、そうでない場合にはステップ704へ進む。
ステップ703では、前記キャッシュ内での検索により発見したリファレンスを呼び出し元の処理へ返し、名前解決処理を終了する。
一方、ステップ704では、前記処理要求の行われたオブジェクトの名前解決を行う為の問い合わせを通信制御部及び通信装置によりサーバ側処理装置100のネーミングサービス部101に送信して問い合わせを行う。
ステップ705では、前記問い合わせに対する処理結果を通信制御部及び通信装置によりサーバ側処理装置100から受信してリファレンスが発見されたかどうかを調べ、前記処理結果中にオブジェクト割当制御部102へのリファレンスが含まれており、リファレンスが発見されている場合にはステップ706へ進み、そうでない場合にはエラーとして処理を終了する。
ステップ706では、ステップ705でサーバ側処理装置100から受信したリファレンスをキャッシュに登録し、ステップ707では、そのリファレンスを呼び出し元の処理へ返し、名前解決処理を終了する。
次に本実施形態のプログラム制御システムにおいて、前記の様にクライアント側処理装置120により、オブジェクトの名前解決の為の問い合わせ、オブジェクト割当要求や、ビジネスメソッドの処理要求が行われた場合のサーバ側処理装置の処理について説明する。なお、以下の処理手順の説明ではサーバ側処理装置100を例に挙げて説明するが、実際の分散オブジェクト処理においてどのサーバ側処理装置が処理を行うかはリファレンスの内容により異なるものとする。
図8は本実施形態のネーミングサービス部101での名前解決処理の処理手順を示すフローチャートである。図8に示す様にサーバ側処理装置100のネーミングサービス部101は、ステップ704でクライアント側処理装置120からオブジェクトの名前解決の為の問い合わせが送信されると、オブジェクトの負荷状態を示すオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部102へのリファレンスを通信装置により応答する処理を行う。
ステップ801でサーバ側処理装置100のネーミングサービス部101は、クライアント側処理装置120からオブジェクトの名前解決の為の問い合わせが送信されると、その名前解決の為の問い合わせを通信制御部106及び通信装置により受信する。
ステップ802では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401がクライアント側処理装置120から問い合わせの行われたオブジェクト名と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索する。
ステップ803では、前記検索結果を参照して、クライアント側処理装置120から問い合わせの行われたオブジェクトのオブジェクト情報を発見したかどうかを調べ、オブジェクト情報を発見した場合にはステップ804へ進む。
ステップ804では、ステップ802での検索処理により発見したオブジェクト情報の内で未閉塞のオブジェクト、すなわちそのオブジェクト情報の閉塞状態405が「開」であるオブジェクトを選択し、そのオブジェクト登録名401、オブジェクト割当制御部リファレンス402及び負荷状態404をオブジェクト情報管理テーブル107から読み出してメモリに格納する。
ステップ805では、ステップ804の処理でメモリに格納したオブジェクト登録名401の数を計数して、未閉塞のオブジェクトが無い状態であるかどうかを調べ、未閉塞のオブジェクトが有る場合にはステップ806へ進む。
ステップ806では、ステップ804の処理でメモリに格納した負荷状態404を読み出して、負荷の軽いオブジェクト、すなわち負荷状態404の値が最も小さい若しくは所定の閾値よりも低いオブジェクトを選択する。
ステップ807では、ステップ806で選択したオブジェクトのオブジェクト割当制御部リファレンス402、すなわちオブジェクト割当制御部102の受付処理部201〜203の何れかへのリファレンスをメモリから読み出し、通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
一方、ステップ803でオブジェクト情報を発見したかどうかを調べた結果、オブジェクト情報を発見できなかった場合にはステップ808へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
またステップ805で未閉塞のオブジェクトが無い状態であるかどうかを調べた結果、未閉塞のオブジェクトが無い場合にはステップ809へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
前記の処理では、クライアント側処理装置120から問い合わせの行われたオブジェクトをオブジェクト情報管理テーブル107から検索してオブジェクトの名前解決を行っているが、当該オブジェクトの名前解決時のCPUやメモリの使用率等の処理負荷を測定し、そのオブジェクトの負荷状態を示すオブジェクト情報管理テーブル107中のオブジェクト情報を前記測定した処理負荷の値に基づいて更新するものとしても良い。
図9は本実施形態のサーバ側処理装置100内でのオブジェクト割当処理の処理手順を示すフローチャートである。図9に示す様にサーバ側処理装置100のオブジェクト割当制御部102は、ステップ603でクライアント側処理装置120からオブジェクトの割当要求が送信されると、前記オブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャ105へのリファレンスを通信装置により応答する処理を行う。
ステップ901でサーバ側処理装置100のオブジェクト割当制御部102は、クライアント側処理装置120からオブジェクトの割当要求が送信されると、そのオブジェクト割当要求を通信制御部106及び通信装置により受信した後、受付処理部201〜203の何れかの処理部によりその割当要求を受け付ける処理を行う。
ステップ902では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401がクライアント側処理装置120から割当要求の行われたオブジェクト名と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索する。
ステップ903では、前記検索結果を参照して、クライアント側処理装置120から割当要求の行われたオブジェクトのオブジェクト情報を発見したかどうかを調べ、オブジェクト情報を発見した場合にはステップ904へ進む。
ステップ904では、ステップ902での検索処理により発見したオブジェクト情報の内で未閉塞のオブジェクト、すなわちそのオブジェクト情報の閉塞状態405が「開」であるオブジェクトを選択し、そのオブジェクト登録名401、ディスパッチャリファレンス403及び負荷状態404をオブジェクト情報管理テーブル107から読み出してメモリに格納する。
ステップ905では、ステップ904の処理でメモリに格納したオブジェクト登録名401の数を計数して、未閉塞のオブジェクトが無い状態であるかどうかを調べ、未閉塞のオブジェクトが有る場合にはステップ906へ進む。
ステップ906では、ステップ904の処理でメモリに格納した負荷状態404を読み出して、負荷の軽いオブジェクト、すなわち負荷状態404の値が最も小さい若しくは所定の閾値よりも低いオブジェクトを選択する。
ステップ907では、ステップ906で選択したオブジェクトのディスパッチャリファレンス403、すなわちディスパッチャ105の受付処理部211〜213の何れかへのリファレンスをメモリから読み出し、通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
一方、ステップ903でオブジェクト情報を発見したかどうかを調べた結果、オブジェクト情報を発見できなかった場合にはステップ908へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
またステップ905で未閉塞のオブジェクトが無い状態であるかどうかを調べた結果、未閉塞のオブジェクトが無い場合にはステップ909へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
前記の処理では、クライアント側処理装置120から割当要求の行われたオブジェクトをオブジェクト情報管理テーブル107から検索してオブジェクトの割当を行っているが、当該オブジェクトの割当時のCPUやメモリの使用率等の処理負荷を測定し、そのオブジェクトの負荷状態を示すオブジェクト情報管理テーブル107中のオブジェクト情報を前記測定した処理負荷の値に基づいて更新するものとしても良い。
また、クライアント側処理装置120から割当要求の行われたオブジェクトをオブジェクト情報管理テーブル107から検索してオブジェクトの割当を行う以外に、オブジェクトの割当要求時にその割当要求のあったオブジェクトをコンテナ108内に作成してオブジェクトの割当を行うものとしても良い。その際、当該オブジェクトの作成時のCPUやメモリの使用率等の処理負荷を測定し、そのオブジェクトの負荷状態を示すオブジェクト情報管理テーブル107中のオブジェクト情報を前記測定した処理負荷の値に基づいて更新するものとしても良い。
図10は本実施形態のサーバ側処理装置100内でのビジネスメソッドリクエスト処理の処理手順を示すフローチャートである。図10に示す様にサーバ側処理装置100のディスパッチャ105は、ステップ605でクライアント側処理装置120から、また転送により他のサーバ側処理装置から、ビジネス関係の所定のサービスを提供するビジネスメソッド等の、所定のオブジェクトのメソッドの処理要求を行うリクエストが送信されると、前記オブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷が所定の閾値未満である場合に当該オブジェクトのメソッドを呼び出し、その処理結果を通信装置により応答する処理を行う。
ステップ1001でサーバ側処理装置100のディスパッチャ105は、クライアント側処理装置120や転送元の他のサーバ側処理装置からビジネスメソッドのリクエストが送信されると、そのビジネスメソッドリクエストを通信制御部106及び通信装置により受信した後、受付処理部211〜213の何れかの処理部によりそのリクエストを受け付ける処理を行う。
ステップ1002でディスパッチャ105は、閉塞制御部215に前記リクエストを渡して閉塞状態405の確認を指示し、閉塞制御部215は、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401がクライアント側処理装置120からリクエストの行われたオブジェクト名と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索した後、そのオブジェクト情報中の閉塞状態405を読み出す。
ステップ1003でディスパッチャ105は、前記読み出した閉塞状態405を参照して前記リクエストの行われたオブジェクトが現在閉塞中であるかどうかを調べ、そのオブジェクトが現在閉塞中でない場合にはステップ1004へ進む。
ステップ1004でディスパッチャ105は、負荷制御部214に前記リクエストを渡して負荷状態404の確認を指示し、負荷制御部214は、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を参照し、ステップ1002で検索されたオブジェクト情報中の負荷状態404を読み出す。
ステップ1005でディスパッチャ105は、前記読み出した負荷状態404の値が所定の閾値以上であるかどうかを調べ、負荷状態404の値が所定の閾値よりも小さい場合にはステップ1006へ進む。ここで、負荷状態404の値が最も小さいオブジェクトを選択してステップ1006へ進むものとしても良い。
ステップ1006でディスパッチャ105は、同時実行制御部217に該オブジェクトの実行制御を指示し、同時実行制御部217は、実行制御情報テーブル500中の実行制御情報に従ってそのオブジェクトの実行を制御した後、その処理結果をメモリに保持する。
ステップ1007でディスパッチャ105は、前記メモリに保持された処理結果を読み出し、通信制御部106及び通信装置によりクライアント側処理装置120や他のサーバ側処理装置へ送信する。
一方、ステップ1003でオブジェクトが現在閉塞中であるかどうかを調べた結果、そのオブジェクトが現在閉塞中である場合や、ステップ1005で負荷状態404の値が所定の閾値以上であるかどうかを調べた結果、負荷状態404の値が所定の閾値以上である場合にはステップ1008へ進む。
ステップ1008では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401がクライアント側処理装置120からリクエストの行われたオブジェクト名と一致するオブジェクト情報の内で、ステップ1002で検索されたものとは異なるオブジェクト情報をオブジェクト情報管理テーブル107から検索した後、そのオブジェクト情報中のディスパッチャリファレンス403を転送先ディスパッチャの情報として読み出す。
ステップ1009では、前記検索処理により転送先ディスパッチャのディスパッチャリファレンス403が検索されたかどうかを調べ、ディスパッチャリファレンス403が検索され、転送先が有る場合にはステップ1010へ進む。
ステップ1010では、前記検索されたディスパッチャリファレンス403で識別される他のサーバ側処理装置に対して前記リクエストを通信制御部106及び通信装置により転送する。
ステップ1011では、前記リクエストを転送した転送先のサーバ側処理装置からそのリクエストに対する処理結果を含む応答を通信制御部106及び通信装置により受信し、その処理結果をメモリに保持してステップ1007へ進む。
一方、ステップ1009で転送先ディスパッチャのディスパッチャリファレンス403が検索されたかどうかを調べた結果、ディスパッチャリファレンス403が検索されず、転送先が無い場合にはステップ1012へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置120へ送信する。
図11は本実施形態のステップ1010に相当するビジネスメソッドリクエストの転送処理の処理手順を示すフローチャートである。図11に示す様にサーバ側処理装置100の転送制御部216は、ステップ1003でオブジェクトが現在閉塞中である場合や、ステップ1005で負荷状態404の値が所定の閾値以上である場合に、そのオブジェクトを実行する他のディスパッチャへ前記リクエストを通信装置により転送する処理を行う。
ステップ1101でサーバ側処理装置100の転送制御部216は、ディスパッチャリファレンス403で識別される他のサーバ側処理装置に対して前記リクエストを通信制御部106及び通信装置により転送する。
ステップ1102では、前記リクエストを転送した転送先のサーバ側処理装置から当該リクエストに対する応答を通信制御部106及び通信装置により受信し、その応答内容がエラー応答であるかどうかを調べる。その結果、転送に失敗していない場合にはステップ1103へ進み、ステップ1103では、前記応答の後に送信される処理結果を受信してメモリに保持する。
一方、ステップ1102で調べた結果、転送に失敗している場合にはステップ1104へ進み、ステップ1104では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のディスパッチャリファレンス403が前記リクエストの転送の際に用いられたリファレンスと一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索した後、そのオブジェクト情報中の閉塞状態405を「閉」に変更する。
図12は本実施形態の同時実行制御の処理手順を示すフローチャートである。図12に示す様にサーバ側処理装置100の同時実行制御部217は、各オブジェクトの同時実行を制御する処理を行う。
ステップ1201でサーバ側処理装置100の同時実行制御部217は、磁気ディスク装置等の記憶装置上の実行制御情報テーブル500を読み出し、実行制御情報テーブル500中のオブジェクト名がクライアント側処理装置120からリクエストの行われたオブジェクト名と一致する実行制御情報を実行制御情報テーブル500から検索した後、その実行制御情報中の現在実行中数と最大実行数とを読み出して比較する。
ステップ1202では、前記比較結果を調べ、前記検索された実行制御情報中の現在実行中数が最大実行数よりも小さい場合にはステップ1203へ進み、そうでない場合にはステップ1207へ進む。
ステップ1203では、前記検索された実行制御情報中の現在実行中数を読み出して「1」を加算した後、その加算した結果を実行制御情報テーブル500に格納する。
ステップ1204では、クライアント側処理装置120からリクエストの行われたオブジェクトのメソッドを呼び出し、そのメソッドによる所定の処理を実行する。その際、当該オブジェクトの実行時のCPUやメモリの使用率等の処理負荷を測定し、そのオブジェクトの負荷状態を示すオブジェクト情報管理テーブル107中のオブジェクト情報を前記測定した処理負荷の値に基づいて更新するものとしても良い。
ステップ1205では、前記格納した現在実行中数を実行制御情報テーブル500から読み出し、その読み出した現在実行中数から「1」を減算した後、減算した結果を実行制御情報テーブル500に格納する。
ステップ1206では、ステップ1204での処理結果をメモリに保持することによりディスパッチャ105へ渡し、クライアント側処理装置120に返す処理を行う。
一方、ステップ1202で現在実行中数が最大実行数よりも小さくない場合にはステップ1207へ進み、ステップ1207では、所定時間の待ちを行う。この待ちを行っている間は、ステップ1201で検索された実行制御情報中の実行待ち数を「1」増やしておくものとする。
図13は本実施形態のオブジェクト情報の負荷状態通知の処理手順を示すフローチャートである。図13に示す様にサーバ側処理装置100のオブジェクト情報共有制御部103は、負荷状態404が変化した場合や最終更新時刻406から所定時間が経過した場合に、そのオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して通信装置により他のサーバ側処理装置へ通知する処理を行う。
ステップ1301でサーバ側処理装置100のオブジェクト情報共有制御部103は、所定の時間間隔でCPUやメモリの使用率等の負荷情報を測定してオブジェクト情報管理テーブル107中の負荷状態404と比較し、それらに差が生じているかどうかを調べることにより、自サーバ側処理装置のオブジェクトの負荷情報が変化したことを検出する。
ステップ1302では、オブジェクト情報管理テーブル107の中の変化したオブジェクト情報を通信制御部106及び通信装置によりサーバ側処理装置110等の他のサーバ側処理装置へ通知する。
ステップ1303では、前記通知したオブジェクト情報の最終更新時刻406に現在時刻を設定し、オブジェクト情報管理テーブル107へ格納する。
またステップ1304でサーバ側処理装置100のオブジェクト情報共有制御部103は、オブジェクト情報管理テーブル107中のオブジェクト情報の内で自サーバ側処理装置上のオブジェクトのオブジェクト情報を読み出し、その読み出したオブジェクト情報の内で最終更新時刻406が所定時間以上前のものを選択する。
ステップ1305では、前記選択したオブジェクト情報を通信制御部106及び通信装置によりサーバ側処理装置110等の他のサーバ側処理装置へ通知する。
ステップ1306では、前記通知したオブジェクト情報の最終更新時刻406に現在時刻を設定し、オブジェクト情報管理テーブル107へ格納する。
図14は本実施形態の通知されたオブジェクトの負荷・閉塞状態変化を反映する処理の処理手順を示すフローチャートである。図14に示す様にサーバ側処理装置100のオブジェクト情報共有制御部103は、他のサーバ側処理装置から通知されたオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107へ反映させる処理を行う。
ステップ1401でサーバ側処理装置100のオブジェクト情報共有制御部103は、サーバ側処理装置110等の他のサーバ側処理装置からのオブジェクトの状態通知を通信制御部106及び通信装置により受信する。
ステップ1402では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のディスパッチャリファレンス403中のサーバ側処理装置のアドレス情報が、オブジェクトの状態通知を送信した送信元のサーバ側処理装置のアドレス情報と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索した後、そのオブジェクト情報を読み出す。そしてその読み出したオブジェクト情報に、前記受信した通知内容を反映した後、その反映後のオブジェクト情報をオブジェクト情報管理テーブル107に格納する。
前記の様に本実施形態のプログラム制御システムでは、図13のステップ1301〜ステップ1303の様に負荷状態が変化した場合にそのオブジェクト情報を他のサーバ側処理装置へ通知して図14の様に通知内容を反映するので、システム内の各サーバ側処理装置は、分散オブジェクト処理を負荷状態に基づいて効率的に実行することができる。
図15は本実施形態の他サーバの障害検知の処理手順を示すフローチャートである。図15に示す様にサーバ側処理装置100の監視部104は、他のサーバ側処理装置の動作状況を監視して障害を検知する処理を行う。
ステップ1501でサーバ側処理装置100の監視部104は、オブジェクト情報管理テーブル107から他のサーバ側処理装置上にある自サーバ側処理装置と同一のオブジェクトを選択する。
ステップ1502では、前記選択したオブジェクトのオブジェクト情報から最終更新時刻406を読み出して、その最終更新時刻406から所定時間経過しているかを調べ、最終更新時刻406から所定時間経過している場合にはステップ1503へ進む。
ステップ1503では、前記選択したオブジェクトのオブジェクト情報中の閉塞状態405を「閉」に変更する。
前記の様に本実施形態のプログラム制御システムでは、図13のステップ1304〜ステップ1306の様に最終更新時刻406から所定時間が経過した場合にそのオブジェクト情報を他のサーバ側処理装置へ通知して図14の様に通知内容を反映するので、システム内の各サーバ側処理装置は、図15のステップ1501〜ステップ1503の様に最終更新時刻406から所定時間が経過しても通知が行われないオブジェクトを閉塞しているものと判定することで、分散オブジェクト処理を閉塞状態に基づいて効率的に実行することができる。
図16は本実施形態のオブジェクトの閉塞状態変更通知の処理手順を示すフローチャートである。図16に示す様にサーバ側処理装置100のオブジェクト情報共有制御部103は、閉塞状態405が変化した場合に、そのオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して通信装置により他のサーバ側処理装置へ通知する処理を行う。
ステップ1601でサーバ側処理装置100のオブジェクト情報共有制御部103は、ユーザからのオブジェクトの閉塞状態の変更指示を入力装置により受け付けた場合等、オブジェクトの閉塞状態が変化した際には、その変更後の閉塞状態の内容を入力装置等により受け付ける。
ステップ1602では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401が閉塞状態の変化したオブジェクトの名称と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索した後、そのオブジェクト情報中の閉塞状態405に変更後の状態を格納する。
ステップ1603では、閉塞状態405の変更されたオブジェクト情報を通信制御部106及び通信装置により他のサーバ側処理装置へ通知する。
前記の様に本実施形態のプログラム制御システムでは、ユーザからの指示等によりオブジェクトの閉塞状態が変化した場合にそのオブジェクト情報を他のサーバ側処理装置へ通知するので、システム内の各サーバ側処理装置は、分散オブジェクト処理を閉塞状態に基づいて効率的に実行することができる。
以上の説明では、サーバ側処理装置100や110により、クライアント側処理装置120からの問い合わせや処理要求を処理し、オブジェクト割当制御部リファレンス402の応答、ディスパッチャリファレンス403の応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行って、分散オブジェクト処理におけるプログラムの実行を制御していたが、負荷分散専用のフロントエンドサーバを設け、このフロントエンドサーバにより、オブジェクト割当制御部リファレンス402及びディスパッチャリファレンス403の応答を行うものとしても良い。
図17は本実施形態の負荷分散専用のフロントエンドサーバを用いた場合の全体構成を示す図である。図17に示す様に本実施形態のプログラム制御システムは、負荷分散サーバLB1700と、サーバ側処理装置1710及び1720と、クライアント側処理装置1730とを有している。
負荷分散サーバLB1700は、クライアント側処理装置1730からの問い合わせや処理要求を処理し、オブジェクト割当制御部リファレンスの応答及びディスパッチャリファレンスの応答を一元管理されたオブジェクト情報により行って、分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御装置である。
サーバ側処理装置1710及び1720は、クライアント側処理装置1730からの処理要求を受け付けてオブジェクトの実行を行う情報処理装置である。クライアント側処理装置1730は、負荷分散サーバLB1700への問い合わせや処理要求を行ってオブジェクト割当制御部リファレンス及びディスパッチャリファレンスを負荷分散サーバLB1700から受け取り、サーバ側処理装置1710または1720への処理要求を行ってオブジェクトの実行結果をサーバ側処理装置1710または1720から受け取るクライアント側の情報処理装置である。
図18は本実施形態の負荷分散サーバLB1700の内部構成を示す図である。図18に示す様に負荷分散サーバLB1700の構成は、ディスパッチャ105及びコンテナ108を除いて図2のサーバ側処理装置100と同様であるものとする。
図19は本実施形態の負荷分散サーバLB1700を用いる場合のオブジェクト情報管理テーブル107の一例を示す図である。図19に示す様に負荷分散サーバLB1700を用いる場合のオブジェクト情報管理テーブル107の構成は、図4に示したサーバ側処理装置100のオブジェクト情報管理テーブル107の構成と同様であるものとするが、負荷分散サーバLB1700を用いる場合のオブジェクト情報には、負荷分散サーバLB1700内のオブジェクト割当制御部102へのリファレンスを含むオブジェクト情報が追加されている。
図20は本実施形態の負荷分散サーバLBのネーミングサービス部101における名前解決処理の処理手順を示すフローチャートである。図20に示す様に負荷分散サーバLB1700のネーミングサービス部101は、オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶装置上のオブジェクト情報管理テーブル107から読み出して負荷最小のもの若しくは予め設定された閾値よりも低いオブジェクトを選択し、その選択したオブジェクトの割当を行う負荷分散サーバLB1700のオブジェクト割当制御部102へのリファレンスを通信装置により応答する処理を行う。
ステップ2001で負荷分散サーバLB1700のネーミングサービス部101は、クライアント側処理装置1730からオブジェクトの名前解決の為の問い合わせが送信されると、その名前解決の為の問い合わせを通信制御部106及び通信装置により受信する。
ステップ2002では、磁気ディスク装置等の記憶装置上のオブジェクト情報管理テーブル107を読み出し、オブジェクト情報管理テーブル107中のオブジェクト登録名401がクライアント側処理装置1730から問い合わせの行われたオブジェクト名と一致するオブジェクト情報をオブジェクト情報管理テーブル107から検索する。
ステップ2003では、前記検索されたオブジェクト情報の内、そのオブジェクト割当制御部リファレンス402が負荷分散サーバLB1700上のオブジェクト割当制御部102を示しているものを選択する。
ステップ2004では、前記選択結果を参照して、クライアント側処理装置1730から問い合わせの行われたオブジェクトのオブジェクト情報を発見したかどうかを調べ、オブジェクト情報を発見した場合にはステップ2005へ進む。
ステップ2005では、ステップ2003での選択処理により選択したオブジェクト情報の内で未閉塞のオブジェクト、すなわちそのオブジェクト情報の閉塞状態405が「開」であるオブジェクトを選択し、そのオブジェクト登録名401、オブジェクト割当制御部リファレンス402及び負荷状態404をオブジェクト情報管理テーブル107から読み出してメモリに格納する。
ステップ2006では、ステップ2005の処理でメモリに格納したオブジェクト登録名401の数を計数して、未閉塞のオブジェクトが無い状態であるかどうかを調べ、未閉塞のオブジェクトが有る場合にはステップ2007へ進む。
ステップ2007では、ステップ2005の処理でメモリに格納した負荷状態404を読み出して、負荷の軽いオブジェクト、すなわち負荷状態404の値が最も小さい若しくは所定の閾値よりも低いオブジェクトを選択する。
ステップ2008では、ステップ2007で選択したオブジェクトのオブジェクト割当制御部リファレンス402、すなわち負荷分散サーバLB1700上のオブジェクト割当制御部102の受付処理部201〜203の何れかへのリファレンスをメモリから読み出し、通信制御部106及び通信装置によりクライアント側処理装置1730へ送信する。
一方、ステップ2004でオブジェクト情報を発見したかどうかを調べた結果、オブジェクト情報を発見できなかった場合にはステップ2009へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置1730へ送信する。
またステップ2006で未閉塞のオブジェクトが無い状態であるかどうかを調べた結果、未閉塞のオブジェクトが無い場合にはステップ2010へ進み、エラーが発生したことを示す応答を通信制御部106及び通信装置によりクライアント側処理装置1730へ送信する。
この処理以降のオブジェクト割当処理やビジネスメソッドリクエスト処理は、負荷分散サーバLB1700を用いない図1の構成の場合と同様である。
以上説明した様に本実施形態のプログラム制御装置によれば、分散オブジェクト処理を実行する際に、オブジェクト割当制御部リファレンスの応答、ディスパッチャリファレンスの応答及びオブジェクトの実行を一元管理されたオブジェクト情報により行うので、分散オブジェクト処理を負荷状態に基づいて効率的に実行することが可能である。
本実施形態のプログラム制御装置の概略構成を示す図である。 本実施形態のサーバ側処理装置100の内部構成を示す図である。 本実施形態のサーバ側処理装置110の内部構成を示す図である。 本実施形態のオブジェクト情報管理テーブル107の一例を示す図である。 本実施形態の同時実行制御部217の内部構成を示す図である。 本実施形態のクライアント側処理装置120の処理手順を示すフローチャートである。 本実施形態のクライアント側処理装置120内でのオブジェクトの名前解決処理の処理手順を示すフローチャートである。 本実施形態のネーミングサービス部101での名前解決処理の処理手順を示すフローチャートである。 本実施形態のサーバ側処理装置100内でのオブジェクト割当処理の処理手順を示すフローチャートである。 本実施形態のサーバ側処理装置100内でのビジネスメソッドリクエスト処理の処理手順を示すフローチャートである。 本実施形態のビジネスメソッドリクエストの転送処理の処理手順を示すフローチャートである。 本実施形態の同時実行制御の処理手順を示すフローチャートである。 本実施形態のオブジェクト情報の負荷状態通知の処理手順を示すフローチャートである。 本実施形態の通知されたオブジェクトの負荷・閉塞状態変化を反映する処理の処理手順を示すフローチャートである。 本実施形態の他サーバの障害検知の処理手順を示すフローチャートである。 本実施形態のオブジェクトの閉塞状態変更通知の処理手順を示すフローチャートである。 本実施形態の負荷分散専用のフロントエンドサーバを用いた場合の全体構成を示す図である。 本実施形態の負荷分散サーバLB1700の内部構成を示す図である。 本実施形態の負荷分散サーバLB1700を用いる場合のオブジェクト情報管理テーブル107の一例を示す図である。 本実施形態の負荷分散サーバLBのネーミングサービス部101における名前解決処理の処理手順を示すフローチャートである。
符号の説明
100及び110…サーバ側処理装置、120…クライアント側処理装置、101…ネーミングサービス部、102…オブジェクト割当制御部、103…オブジェクト情報共有制御部、104…監視部、105…ディスパッチャ、106…通信制御部、107…オブジェクト情報管理テーブル、108…コンテナ、201〜203…受付処理部、211〜213…受付処理部、214…負荷制御部、215…閉塞制御部、216…転送制御部、217…同時実行制御部、401…オブジェクト登録名、402…オブジェクト割当制御部リファレンス、403…ディスパッチャリファレンス、404…負荷状態、405…閉塞状態、406…最終更新時刻、500…実行制御情報テーブル、1700…負荷分散サーバLB、1710及び1720…サーバ側処理装置、1730…クライアント側処理装置

Claims (10)

  1. 分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御方法において、
    プログラム制御装置が、オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答するステップと、
    プログラム制御装置が、オブジェクトの割当の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するステップと、
    プログラム制御装置が、オブジェクトの実行の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するステップとを有することを特徴とするプログラム制御方法。
  2. 前記オブジェクトを実行した場合に当該オブジェクトの実行時の処理負荷を測定し、そのオブジェクトの負荷状態を示す記憶手段上のオブジェクト情報を更新することを特徴とする請求項1に記載されたプログラム制御方法。
  3. 実行要求の行われたオブジェクトの負荷が所定の閾値以上であるか、そのオブジェクトが閉塞状態である場合に、そのオブジェクトを実行する他のディスパッチャへのリファレンスを記憶手段から読み出して、そのディスパッチャへ前記実行要求を通信手段により転送することを特徴とする請求項1または請求項2のいずれかに記載されたプログラム制御方法。
  4. 前記オブジェクト情報を記憶手段上から読み出して通信手段により他のプログラム制御装置へ通知することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたプログラム制御方法。
  5. 自装置上のオブジェクトの負荷状態が変化した場合に、そのオブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して他のプログラム制御装置へ通知することを特徴とする請求項1乃至請求項4のいずれか1項に記載されたプログラム制御方法。
  6. 自装置上のオブジェクトの負荷状態を示すオブジェクト情報の最終更新時刻から所定時間が経過した場合に、そのオブジェクト情報を記憶手段上から読み出して他のプログラム制御装置へ通知することを特徴とする請求項1乃至請求項5のいずれか1項に記載されたプログラム制御方法。
  7. 分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御装置において、
    オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答するネーミングサービス部と、
    オブジェクトの割当の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するオブジェクト割当制御部と、
    オブジェクトの実行の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するディスパッチャとを備えることを特徴とするプログラム制御装置。
  8. 分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御システムにおいて、
    オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答する第1のネーミングサービス部と、
    オブジェクトの割当の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答する第1のオブジェクト割当制御部と、
    オブジェクトの実行の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答する第1のディスパッチャと、
    前記オブジェクト情報を記憶手段上から読み出して通信手段により第2のプログラム制御装置へ通知する第1のオブジェクト情報共有制御部とを備える第1のプログラム制御装置と、
    前記通知されたオブジェクト情報を通信手段により受信して記憶手段上のオブジェクト情報を更新する第2のオブジェクト情報共有制御部と、
    オブジェクトの名前解決の際に、前記更新したオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答する第2のネーミングサービス部と、
    オブジェクトの割当の際に、前記更新したオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答する第2のオブジェクト割当制御部と、
    オブジェクトの実行の際に、前記更新したオブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答する第2のディスパッチャとを備える第2のプログラム制御装置とを具備することを特徴とするプログラム制御システム。
  9. 分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御方法をコンピュータに実行させる為のプログラムにおいて、
    プログラム制御装置が、オブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答するステップと、
    プログラム制御装置が、オブジェクトの割当の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するステップと、
    プログラム制御装置が、オブジェクトの実行の際に、前記オブジェクト情報を記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するステップとをコンピュータに実行させることを特徴とするプログラム。
  10. 分散オブジェクト処理におけるプログラムの実行を制御するプログラム制御方法をコンピュータに実行させる為のプログラムにおいて、
    第1のプログラム制御装置が、第1のプログラム制御装置でのオブジェクトの名前解決の際に、オブジェクトの負荷状態を示すオブジェクト情報を第1のプログラム制御装置の記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答するステップと、
    第1のプログラム制御装置が、第1のプログラム制御装置でのオブジェクトの割当の際に、前記オブジェクト情報を第1のプログラム制御装置の記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するステップと、
    第1のプログラム制御装置が、第1のプログラム制御装置でのオブジェクトの実行の際に、前記オブジェクト情報を第1のプログラム制御装置の記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するステップと、
    第1のプログラム制御装置が、前記オブジェクト情報を第1のプログラム制御装置の記憶手段上から読み出して通信手段により第2のプログラム制御装置へ通知するステップと、
    第2のプログラム制御装置が、前記通知されたオブジェクト情報を通信手段により受信して第2のプログラム制御装置の記憶手段上のオブジェクト情報を更新するステップと、
    第2のプログラム制御装置が、第2のプログラム制御装置でのオブジェクトの名前解決の際に、前記更新したオブジェクト情報を第2のプログラム制御装置の記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの割当を行うオブジェクト割当制御部へのリファレンスを通信手段により応答するステップと、
    第2のプログラム制御装置が、第2のプログラム制御装置でのオブジェクトの割当の際に、前記更新したオブジェクト情報を第2のプログラム制御装置の記憶手段上から読み出して負荷が所定値より低いオブジェクトを選択し、その選択したオブジェクトの実行を行うディスパッチャへのリファレンスを通信手段により応答するステップと、
    第2のプログラム制御装置が、第2のプログラム制御装置でのオブジェクトの実行の際に、前記更新したオブジェクト情報を第2のプログラム制御装置の記憶手段上から読み出して負荷が所定の閾値未満である場合に当該オブジェクトを実行し、その処理結果を通信手段により応答するステップとをコンピュータに実行させることを特徴とするプログラム。
JP2003401699A 2003-12-01 2003-12-01 プログラム制御方法及び実施装置並びに実施システムと処理プログラム Expired - Fee Related JP4002232B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003401699A JP4002232B2 (ja) 2003-12-01 2003-12-01 プログラム制御方法及び実施装置並びに実施システムと処理プログラム
US10/998,726 US7779392B2 (en) 2003-12-01 2004-11-30 Load balance control method and load balance control apparatus in data-processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003401699A JP4002232B2 (ja) 2003-12-01 2003-12-01 プログラム制御方法及び実施装置並びに実施システムと処理プログラム

Publications (2)

Publication Number Publication Date
JP2005165540A JP2005165540A (ja) 2005-06-23
JP4002232B2 true JP4002232B2 (ja) 2007-10-31

Family

ID=34696783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003401699A Expired - Fee Related JP4002232B2 (ja) 2003-12-01 2003-12-01 プログラム制御方法及び実施装置並びに実施システムと処理プログラム

Country Status (2)

Country Link
US (1) US7779392B2 (ja)
JP (1) JP4002232B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180114A1 (en) * 2006-02-01 2007-08-02 International Business Machines Corporation Methods and apparatus for allocating an object in computer system
JP5098456B2 (ja) * 2007-06-15 2012-12-12 村田機械株式会社 プロセス状態監視装置
US9268663B1 (en) 2012-04-12 2016-02-23 Amazon Technologies, Inc. Software testing analysis and control
US9058428B1 (en) * 2012-04-12 2015-06-16 Amazon Technologies, Inc. Software testing using shadow requests

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6397252B1 (en) * 1997-12-19 2002-05-28 Electronic Data Systems Corporation Method and system for load balancing in a distributed object system
JP3966598B2 (ja) * 1998-03-04 2007-08-29 富士通株式会社 サーバ選択システム
AU3740099A (en) * 1998-04-16 1999-11-01 Citibank, N.A. Customer access solutions architecture
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6581088B1 (en) 1998-11-05 2003-06-17 Beas Systems, Inc. Smart stub or enterprise javaTM bean in a distributed processing system
US6393458B1 (en) * 1999-01-28 2002-05-21 Genrad, Inc. Method and apparatus for load balancing in a distributed object architecture
JP2001109638A (ja) * 1999-10-06 2001-04-20 Nec Corp 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
US7237239B1 (en) * 2002-08-26 2007-06-26 Network Appliance, Inc. Availability and consistent service semantics in a load balanced collection of services running different instances of an application
US7197490B1 (en) * 2003-02-10 2007-03-27 Network Appliance, Inc. System and method for lazy-copy sub-volume load balancing in a network attached storage pool
US7356584B2 (en) * 2003-03-03 2008-04-08 Microsoft Corporation Optimization of service provider load balancing
US20050010558A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation Data query system load balancing

Also Published As

Publication number Publication date
US7779392B2 (en) 2010-08-17
US20050144607A1 (en) 2005-06-30
JP2005165540A (ja) 2005-06-23

Similar Documents

Publication Publication Date Title
CN111464648B (zh) 一种分布式本地dns系统及域名查询方法
US7065526B2 (en) Scalable database management system
CN106302565B (zh) 业务服务器的调度方法及系统
US7185096B2 (en) System and method for cluster-sensitive sticky load balancing
US20090199175A1 (en) Dynamic Allocation of Virtual Application Server
US20070025381A1 (en) Method and apparatus for allocating processing in a network
US20070150602A1 (en) Distributed and Replicated Sessions on Computing Grids
US20100235509A1 (en) Method, Equipment and System for Resource Acquisition
JP4677482B2 (ja) アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
US8392569B2 (en) Data delivery system and data delivery method
US20070112812A1 (en) System and method for writing data to a directory
US7310802B2 (en) Load balancing of chat servers based on gradients
US20100070366A1 (en) System and method for providing naming service in a distributed processing system
CN107566466A (zh) 负载均衡方法及装置
US20100332532A1 (en) Distributed directory environment using clustered ldap servers
US11917001B2 (en) Efficient virtual IP address management for service clusters
US20060129664A1 (en) Method and apparatus for diagnosing a network
JP4002232B2 (ja) プログラム制御方法及び実施装置並びに実施システムと処理プログラム
US20050055442A1 (en) System and method for managing access points to distributed services
US20030005080A1 (en) Systems and methods for accessing data
US20210152631A1 (en) Inter-service communications
CN113315852A (zh) 一种域名解析的方法、装置及系统
US20060288088A1 (en) Method and apparatus for managing a web cache system
CN111565129A (zh) 一种服务器远程测试方法、装置、设备及存储介质
US8850440B2 (en) Managing the processing of processing requests in a data processing system comprising a plurality of processing environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees