JP2017538200A - 分散環境におけるサービスアドレッシング - Google Patents

分散環境におけるサービスアドレッシング Download PDF

Info

Publication number
JP2017538200A
JP2017538200A JP2017522867A JP2017522867A JP2017538200A JP 2017538200 A JP2017538200 A JP 2017538200A JP 2017522867 A JP2017522867 A JP 2017522867A JP 2017522867 A JP2017522867 A JP 2017522867A JP 2017538200 A JP2017538200 A JP 2017538200A
Authority
JP
Japan
Prior art keywords
server address
failed
address list
server
failure
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.)
Granted
Application number
JP2017522867A
Other languages
English (en)
Other versions
JP6700266B2 (ja
JP2017538200A5 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2017538200A publication Critical patent/JP2017538200A/ja
Publication of JP2017538200A5 publication Critical patent/JP2017538200A5/ja
Application granted granted Critical
Publication of JP6700266B2 publication Critical patent/JP6700266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Abstract

分散環境における一例のサービスアドレッシング方法は、問い合わせ条件を含むサービス問い合わせリクエストを生成することと、問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得することと、失敗したサーバアドレスリストを取得することと、失敗したサーバアドレスリストを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得することと、第2のサーバアドレスリストからターゲットサーバアドレスを選択することと、ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始することとを含む。本開示の技術は、サービス呼び出しの効率を改善する。

Description

関連特許出願に対する相互参照
本出願は、「Method and Apparatus for Service Addressing under Distributed Environment」と題する、2014年11月18日に出願された中国特許出願第201410659256.3号に対して外国優先権を主張し、これはその全体において参照により本明細書に組み込まれる。
本開示は、データアドレッシングの技術分野に関し、より詳細には分散環境におけるサービスアドレッシング方法及び分散環境におけるサービスアドレッシング装置に関する。
情報産業の発展に伴い、様々な種類のオペレーティングシステム、アプリケーションソフトウェア、システムソフトウェア、及びアプリケーションインフラストラクチャーが互いにより一層混ざり合うことで、広範に利用されるサービス指向アーキテクチャ(SOA)技術を生み出す。
SOAはコンポーネントモデルであり、これは、これらのサービス間において明確に定義されたインターフェース及び契約を介してアプリケーションの異なる機能ユニット(サービスと呼ばれる)を互いに関連付ける。外部にサービスを提供するアプリケーションは、サービスプロバイダと呼ばれ、他のアプリケーションによって提供されるサービスを利用するアプリケーションはサービスコンシューマと呼ばれる。分散環境において、一部の顧客指向オンラインショッピングモールが数千のサービスプロバイダと、さらに多数のサービスコンシューマを所有するように、多数のサービスコンシューマと、サービスプロバイダが存在しており、そういった場合にはクラスタ環境が形成される。
システムにおける継続的なサービスの増加に伴い、システム全体におけるサービスの従属性は次第に複合的なネットワークチャート現象をなすようになり、このような場合、一元化されたサービスアドレッシングサイトに対する要望が極めて明白になってくるため、サービス記録センターが生じることになる。通常、サービスプロバイダは、氏名、インターフェース、属性及び他のメタ情報と同様に、サービスプロバイダによって提供されるサービスアドレス情報をサービス記録センターに均等に記録する必要がある。その後、サービス記録センターは、各々のサービスプロバイダのサービス情報をリストまたは他の形態でサービスコンシューマに提供することで、サービスコンシューマは、このサービス情報のリストに従って所望のサービスプロバイダを見つけ、これによって対応するサービスを提供するようにサービスプロバイダにリクエストすることができる。
しかしながらクラスタ環境では、サービスコンシューマがサービス記録センターを介して獲得するターゲットサービスが2つ以上ある場合もあり、特定のサーバに障害が生じ、通常通りにサービスを提供することができない場合、このようなサーバにあたるリクエストは実行が不成功に終わることになる。高度の並行処理の場合には、サービスコンシューマが、失敗したサーバを特定することができず、効果的な隔離手段を適宜採ることができない場合、多くのサービスの呼び出しの失敗が起こり、これによりシステムのアベイラビリティに悪影響を与えることになる。クラスターの規模が大きくなり、出現する失敗が大きくなるのに伴い、失敗に関する有効な隔離法に対する要望が増えている。
現在、失敗隔離機能をサポートするサービスアドレッシング方法には主として、
より低い負荷を有するサーバを選択するための負荷ベースのアドレッシング方法が含まれるが、そのようなアドレッシング方法は、サービス呼び出しが行われる毎にサービスプロバイダ側の負荷条件を感知する必要があるため、その負荷に対するリアルタイムの監視に対するサービスプロバイダの負担を高め、リアルタイムの負荷データを取得することをサービスコンシューマに要求することで、多量の演算処理とネットワーク送信リソースを占めることになり、
より下位の並行処理を利用するサーバを選択する並行処理ベースのアドレッシング方法が含まれるが、そのようなアドレッシング方法は、サービス呼び出しが行われる毎に各々のサービスプロバイダの並行する呼び出し量に対するリアルタイムの統計を行うことをサービスコンシューマに要求し、これもまた多量の演算処理を必要とすることになり、
より高い(または特有のアルゴリズムに応じてより少ない)重みサーブを有するサーバを選択する重みベースのアドレッシング方法が含まれるが、これは統合されたアプローチであり、特定の式に従って重みを計算するため、これもまた各々の呼び出しに関する演算処理を必要とする。
各々のサービス呼び出しに関する上記のアドレッシング方法は全て、これに対応する情報収集及び演算処理の実行を要求するため、とりわけ高度の並行処理かつ呼び出されるサービス及びサービスプロバイダのアドレスが多数ある場合の演算処理において高いコストを有する。呼び出しの成功率が比較的高い環境において、多くの演算プロセスは必須ではない。
したがって当業者にとって現在の解決すべき差し迫った要求である技術的問題は、分散環境でサービスアドレッシングメカニズムを提供し、サービス呼び出しの効率を改善することである。
本概説は、詳細な記載において以下でさらに記載される簡素化された形態における概念の選択を紹介するために提供される。本概説は、主張される主題の全ての重要な機構または必須の機構を特定することは意図されず、主張される主題の範囲を決定する際の補助として単独で利用されることも意図されていない。用語「技術(複数可)または技術的解決法(複数可)」は、例えば、上記の文脈によって及び本開示を通して認められるような装置(複数可)、システム(複数可)、方法(複数可)及び/またはコンピュータ可読命令を指す場合がある。
本開示の技術によって解決すべき技術的問題は、サービス呼び出しの効率を改善するために分散環境におけるサービスアドレッシング方法を提供することである。
したがって本開示はさらに、上記の方法の実施及び利用を確実にするための分散環境におけるサービスアドレッシング装置を提供する。
上記の問題を解決するために、本開示は分散環境におけるサービスアドレッシング方法を開示しており、これは以下の工程、
問い合わせ条件を含むサービス問い合わせリクエストを生成することと、
問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得することと、
失敗したサーバアドレスリストを取得することと、
失敗したサーバアドレスリストを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得することと、
第2のサーバアドレスリストからターゲットサーバアドレスを選択することと、
該ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始することとを含む。
例えば失敗したサーバアドレスリストを取得する前に、方法はさらに失敗データベースを事前に設定することを含み、この失敗データベースは、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する。
例えば失敗したサーバアドレスリストを取得する工程は、
失敗データベースから第1のサーバアドレスリストと合致する失敗したサーバアドレスを取得することと、
2つ以上の失敗したサーバアドレスが合致した場合、2つ以上の失敗したサーバアドレスを失敗回数の統計的な数字に従ってソートすることと、
ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を失敗したサーバアドレスリストに編成することとを含む。
例えば、方法はさらに
ターゲットサービスの呼び出しが失敗した場合、このターゲットサーバアドレスを失敗したサーバアドレスとして決定することと、
失敗したサーバアドレスが失敗データベース内に存在するかどうかを判定することと、
この判定の結果が肯定的である場合、失敗したサーバアドレスに対応する失敗回数の統計的な数字を事前設定された閾値だけ増加することと、
この判定の結果が否定的である場合、失敗したサーバアドレスを失敗データベースに加え、これに対応する失敗回数の統計的な数字を事前設定された最初の値に設定することと、
失敗したサーバアドレスを更新することと、
更新された失敗したサーバアドレスリストに関して、失敗したサーバアドレスリストを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを取得する工程に戻ることとを含む。
例えばターゲットサービスの呼び出しが失敗したケースは、以下の、ターゲットサーバのスレッドプールのビジー度が事前設定された閾値を超えるような応答タイムアウト及びビジーターゲットサーバスレッドプールのうちの少なくとも1つを含む。
例えば方法はさらに、
失敗データベース内の失敗したサーバアドレスの各々に関してタイマーをそれぞれ設定することと、
タイマーが切れたとき、これに対応する失敗したサーバアドレスに対応する失敗回数の統計的な数字をゼロにリセットすることとを含む。
例えば失敗したサーバアドレスリストを取得する工程は、
失敗情報取得リクエストを生成し、該失敗情報取得リクエストを使用して事前設定された時間内でのクラスタ内でこれまで失敗したことのあるサーバに対する情報を取得することと、
失敗情報取得リクエストをリモートサーバに送信し、リモートサーバが、クラスタ内でこれまで失敗したことのある失敗したサーバのアドレス情報のレコードを保持することと、
失敗情報取得リクエストに関してリモートサーバによって戻された失敗したサーバアドレスリストを受け取ることとを含む。
例えば第2のサーバアドレスリストからターゲットサーバアドレスを選択する工程は、第2のサーバアドレスリストからターゲットサーバアドレスをランダムに選択することを含む。
本開示はさらに、分散環境におけるサービスアドレッシング装置を提供し、これは、
問い合わせ条件を含むサービス問い合わせリクエストを生成するリクエスト生成モジュールと、
問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得する第1のアドレス取得モジュールと、
失敗したサーバアドレスリストを取得する失敗アドレス取得モジュールと、
第1のサーバアドレスリスト内の失敗したサーバアドレスリストを削除して第2のサーバアドレスリストを獲得する第2のアドレス取得モジュールと、
ターゲットサーバアドレスを第2のサーバアドレスリストから選択するアドレス選択モジュールと、
ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始するサービス呼び出しモジュールとを含む。
例えば、装置はさらに、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する失敗データベースを事前に設定するデータベース事前設定モジュールとを含む。
例えば失敗アドレス取得モジュールは、
第1のサーバアドレスリストと合致する失敗したサーバアドレスを失敗データベースから取得するアドレス合致サブモジュールと、
2つ以上の失敗したサーバアドレスが合致した場合、2つ以上の失敗したサーバアドレスを失敗回数の統計的な数字に従ってソートするアドレスソートサブモジュールと、
ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を失敗したサーバアドレスリストに編成するリスト編成サブモジュールとを含む。
例えば装置はさらに、
ターゲットサービスの呼び出しが失敗した場合、このターゲットサーバアドレスを失敗したサーバアドレスとして決定する決定モジュールと、
失敗したサーバアドレスが失敗データベース内に存在するかどうかを判断する判定モジュールと、
判断モジュールが失敗したサーバアドレスが失敗データベース内に存在すると判定した場合、失敗したサーバアドレスに対応する失敗回数の統計的な数字を事前設定された閾値の分だけ増加する第1の計算モジュールと、
判断モジュールが失敗したサーバアドレスが失敗データベース内に存在しないと判定した場合、失敗したサーバアドレスを失敗データベースに追加し、これに対応する失敗回数の統計的な数字を事前設定された最初の値に設定する第2の計算モジュールと、
失敗したサーバアドレスリストを更新するリスト更新モジュールと、
更新後の失敗したサーバアドレスリストに関して第2のアドレス取得モジュールの実行を起動する起動モジュールとを含む。
例えばターゲットサービスの呼び出しが失敗したケースは、少なくとも以下の、応答タイムアウト及びビジーターゲットサーバスレッドプールのうちの1つを含む。
例えば装置はさらに、
失敗データベースにおける失敗したサーバアドレスの各々に関してタイマーをそれぞれ設定するタイマーモジュールと、
タイマーが切れたとき、これに対応する失敗したサーバアドレスに対応する失敗回数の統計的な数字をゼロにリセットする、ゼロリセットモジュールとを含む。
例えば失敗アドレス取得モジュールは、
失敗情報取得リクエストを生成し、該失敗情報取得リクエスを使用して事前設定された時間内でのクラスタ内でこれまで失敗したことのあるサーバの情報を取得する失敗情報取得リクエスト生成サブモジュールと、
失敗情報取得リクエストをリモートサーバに送信し、リモートサーバが、クラスタ内でこれまで失敗したことのある失敗したサーバのアドレス情報のレコードを記憶する失敗リクエスト送信サブモジュールと、
失敗情報取得リクエストに関してリモートサーバによって戻された失敗したサーバアドレスリストを受け取る失敗情報受信サブモジュールとを含む。
例えばアドレス選択モジュールは、第2のサーバアドレスリストからターゲットサーバアドレスをランダムに選択するランダム選択サブモジュールを含む。
従来の技術と比べて、本開示の技術は少なくとも以下の利点を有する。
本開示の技術は、大規模の高度の並行処理される分散サービス呼び出しのシナリオにおいて呼び出しの失敗回数の統計に基づいたアドレッシング方法を提供し、これはアドレッシングにおいて、より最近の呼び出しの失敗回数を有する失敗したサーバアドレスを現在獲得される第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得し、その後ターゲットサービスの呼び出しのためのターゲットサーバアドレスを第2のサーバアドレスリストからランダムに選択する。呼び出しが失敗したケースに関してのみ統計的な分析を行うそのようなアドレッシング方法は、各々のサービス呼び出しに関する余分なリアルタイムの計算を回避し、極めて効率のよいサービスアドレッシングを達成することで、低コストでクラスタ内での効率的なローカルな障害の隔離を達成する。
本開示の第1の例の実施形態による一例の分散環境におけるサービスアドレッシング方法のフローチャートである。 本開示の第2の例の実施形態による一例の分散環境におけるサービスアドレッシング方法のフローチャートである。 本開示の第3の例の実施形態による一例の分散環境におけるサービスアドレッシング方法のフローチャートである。 本開示の一例の例の実施形態による一例の分散環境におけるサービスアドレッシング装置の構造的線図である。
本開示の上記の目的、特徴及び利点をより明白にかつ理解し易くするために、本開示をさらに、添付の図面及び一例の実施形態を参照して以下に詳細に記載する。
図1は、以下の工程を含み得る、本開示の第1の一例の実施形態による一例の分散環境におけるサービスアドレッシング方法のフローチャートを示す。
102において、問い合わせ条件を含むサービス問い合わせリクエストが生成される。
例えば本開示の一例の実施形態は、SOAアーキテクチャにおいて使用される。サービスプロバイダがサービス記録センターにおいてサービス記述を公表した後、サービス記録センターが記録を作成する。サービスコンシューマが、サービス記録センターにおいて公表されたサービス記述を検索する。例えばサービスコンシューマは、必要なサービスを検索するために問い合わせ条件を含むサービス問い合わせリクエストを生成し、サービス問い合わせリクエストをサービス記録センターに送る。本明細書では、問い合わせ条件には、サービスの種類、サービスの品質保証、安全確認などが含まれ得る。
104において、問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストが取得される。
サービス記録センターは、サービス問い合わせリクエストを受け取った後、問い合わせ条件に合致するターゲットサービスを見つけるために、問い合わせ条件に従って公表されたサービス記述内を検索する。
クラスター環境では、2つ以上のサービスアドレスがターゲットサービスを提供するため、サービス記録センターは、ターゲットサービスをリストの形態で(すなわち第1のサーバアドレスリスト)サービスコンシューマに提供するサーバアドレスを提示する。
例えば第1のサーバアドレスリストには、サーバアドレス識別子(すなわちサービスのアクセスパス)、サービス呼び出しのパラメータ、転送プロトコル、セキュリティ要件などが含まれる。
106において、失敗したサーバアドレスリストが取得される。
失敗したサーバアドレスは、これに対応する失敗回数の統計的な数字を有しており、この失敗回数の統計的な数字を使用して、事前設定された期間内での対応する失敗したサーバの失敗回数の数字に対して統計を採る。よって失敗したサーバアドレスリストは、失敗したサーバアドレスが第1のサーバアドレスリストから特定された後、失敗回数の統計的な数字のソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字で構成されたリストを含む。
例えば106における工程の前に、方法はさらに、失敗データベースを事前に設定することを含む場合があり、この失敗データベースは、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する。
失敗データベースは、サービスコンシューマのメモリに設定され、失敗したサーバの情報を記憶し、失敗したサーバの障害の統計的な数字に対して統計を採ることができる。失敗したサーバは、サービス呼び出しにおいて失敗したサーバである(すなわちサービスプロバイダ)。呼び出しの失敗は、以下の状況、呼び出しのタイムアウト、サーバ側によって投じられた例外、サーバ側のビジースレッドプール、基準を外れた通信レイヤ、サーバ側の実行の拒絶などのうちの少なくとも1つであり得る。サーバが、停止するなどのスロータイプの障害を有する場合、一般的な障害の理由には、呼び出しのタイムアウト、サーバ側のビジースレッドプールなどが含まれる。例えばサーバによって投じられた例外がサーバ自体に関する問題ではなく、サーバが依拠する基礎となる記憶装置によって生じた場合、そのような状況における呼び出しの失敗は、サーバの障害のカテゴリには属さない。
例えば失敗データベースが失敗したサーバの統計的な数字を記憶し、失敗回数をデータレコードとして記憶するフォームは、<192.168.0.1:15>などの、失敗したサーバアドレスの識別子と失敗回数の統計的な数字との対応する関係性であって良く、この場合192.168.0.1は、失敗したサーバアドレスの識別子であり、15は失敗回数の統計的な数字である。
例えば1つの失敗したサーバが最初に失敗データベースに加えられる際、失敗回数の統計的な数字は、事前設定された最初の値であって良く、事前設定される最初の値は、1または他の数値であって良い。
例えば106における作業は、以下のサブ工程を含む場合がある。
第1のサブ工程において、第1のサーバアドレスリストと合致する失敗したサーバアドレスが失敗データベースから取得される。
第1のサーバアドレスリストが取得された後、第1のサーバアドレスリストに合致する失敗したサーバアドレスが失敗データベースから取得される。例えば失敗データベース内の各々のデータレコードは、第1のサーバアドレスリスト内をトラバースされる。データレコードが第1のサーバアドレスリスト内に見つかった場合、それは、そのデータレコードが第1のサーバアドレスリストにおけるデータと合致したことを示しており、上記のプロセスは、第1のサーバアドレスリストに合致する全ての失敗したサーバアドレスが見つかるまで繰り返される。見つかった失敗したサーバアドレスの数字は、0、1またはそれ以上であり得る。
第2のサブ工程において、2つ以上の失敗したサーバアドレスが合致した場合、失敗回数の統計的な数字に従って2つ以上の失敗したサーバアドレスがソートされる。
2つ以上の失敗したサーバアドレスが合致した場合、2つ以上の失敗したサーバアドレスは各々の失敗したサーバアドレスに対応する失敗回数の統計的な数字に従ってソートされ、失敗回数の統計的な数字に従って昇順または降順でソートされる。例えば失敗したサーバアドレスは、[<192.168.0.1:15>,<192.168.0.3:13>,...,<192.168.0.18:3>,...,<192.168.0.111:1>]などの降順でソートされる。
第3のサブ工程において、ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字が失敗したサーバアドレスリストに編成される。
降順が利用される場合、ソートにおいて列の先頭において最上位を有する失敗したサーバアドレスの事前設定された数字が獲得され失敗したサーバアドレスに編成される(これはunstableUrlsとして印が付けられる場合もある)。これに対応して、昇順では、ソートにおいて列の末端において最上位を有する失敗したサーバアドレスの事前設定された数字が獲得され失敗したサーバアドレスリストに編成される。本明細書では、一部の例外ケースにおいてあまりに多くの失敗したサーバが隔離されることで、残りのサーバがパンク状態になるのを回避するために、事前設定された数字の人的機能は、最大でもどのくらいの失敗したサーバが隔離されるべきかを表すべきであり、これは要求に応じて設定された閾値であって良い。例えばサービスの設計及び実行は、目標のアベイラビリティを保証し、このアベイラビリティはそのようなシステムにおいて、大規模な商業SOAにおいて99.99%を上回ることが常に要求されるため、サービス呼び出しの大半は無事に達成され、わずかなサーバしか失敗しない。1つのコンピュータにしか失敗が生じない可能性が高い。事前設定される数字は、1、2または他の小さい数字である。例えば上記に挙げた例に関して、事前設定される数字が2の場合、unstableUrlsは[192.168.0.1および192.168.0.3]であり、事前設定される数字が1の場合、unstableUrlsは[192.168.0.1]である。
108において、失敗したサーバアドレスリストが第1のサーバアドレスリストから削除されて第2のサーバアドレスリストを獲得する。
失敗したサーバアドレスリストが取得される際、失敗したサーバアドレスリストは第1のサーバアドレスリストに通される、すなわち失敗したサーバアドレスリストのアドレスが第1のサーバアドレスリストから削除され、失敗したサーバを隔離するために残りのサーバアドレスが第2のサーバアドレスリストとしてリストにされる。
110において、第2のサーバアドレスリストからターゲットサーバアドレスが選択される。
例えば失敗したサーバアドレスが特定され第2のサーバアドレスリストから隔離され、サービスを提供するサーバは、通常統一された仕様内にある。すなわちクラスタ内では、各々のサーバは、互いと基本的に同一のサービス能力を有する。したがって第2のサーバアドレスリストの中でターゲットサーバアドレスをランダムに選択するランダムアドレッシング法が使用されて良く、これはいかなる計画的な計算や選択も実行する必要がないため、アドレッシングプロセスを簡素化すると同時に、計算におけるデータの量が減少することで、サーバ(サービスプロバイダ及びサービスコンシューマ)のデータ処理プレッシャを低下させ、その結果アドレッシングの効率が改善される。
112において、ターゲットサーバアドレスに対してターゲットサービスの呼び出しが開始される。
ターゲットサーバが選択された後、ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始することができる。この時点で、ターゲットサーバがサービスの呼び出しにおいて失敗した場合、このターゲットサーバアドレスは失敗したサーバアドレスとして決定される。失敗したサーバアドレスが失敗データベースに存在するかどうかがさらに判定され、決定の結果がはいである場合、失敗したサーバアドレスに対応する失敗回数の統計的な数字が事前設定された閾値の分だけ増加され、そうでない場合、失敗したサーバアドレスは失敗データベースに加えられ、対応する失敗回数の統計的な数字が、事前設定された最初の値として設定される。本明細書では、事前設定された閾値は、事前設定された増加マージンであって良い(例えば事前設定された回数を増加させる、または1だけ増加させるなど)。例えば元の失敗データベースにおけるサービス呼び出し失敗データが[<192.168.0.1:9>,<192.168.0.3:6>]であり、192.168.0.3の呼び出しが失敗すると、その結果、その組み合わせにおいて、サービス呼び出し失敗データは、 [<192.168.0.1:9>,<192.168.0.3:7>]に変更される。
失敗データベースにおける失敗回数の統計的な数字が変更され、これは失敗データベースにおける失敗したサーバのソートに影響を及ぼす可能性があるため、失敗したサーバアドレスリストは、ソート結果に応じて更新される必要がある。更新された失敗したサーバアドレスリストに関して、方法は、108における工程に戻って、ターゲットサーバに対してターゲットサービスの呼び出しを再試行し実行し、ターゲットサービスの呼び出しが成功するまで上記の失敗したサーバアドレスリストの更新及びターゲットサーバの再選択のプロセスを繰り返すことによってターゲットサーバを選択する。本開示の一例の実施形態は、サービスコンシューマが再試行することを可能にするようなやり方でターゲットサーバを選択することによってサービス呼び出しの成功率を高める。
加えて、本開示の一例の実施形態において、失敗データベースにおける各々のデータレコードに関して、すなわち各々の失敗したサーバアドレスに関してタイマーを設定することができ、タイマーが切れると、対応する失敗したサーバアドレスに対応する失敗回数の統計的な数字がゼロにリセットされる。失敗回数の統計的な数字を周期的にゼロにリセットすることによって、失敗したサーバのサービス能力が回復された後はサーバアドレスは正常に呼び出される。
本開示の一例の実施形態は、アドレッシングにおいて、より最近の呼び出しの失敗回数を有する失敗したサーバアドレスリストを現在得られる第1のサーバアドレスリストから削除して第2のサーバアドレスリストを取得し、その後第2のサーバアドレスリストからターゲットサービスの呼び出しに関するターゲットサーバアドレスをランダムに選択する、大規模の高度に並行処理される分散サービス呼び出しシナリオにおける呼び出しの失敗回数の統計学に基づいたアドレッシング方法を提供する。呼び出しが失敗した場合に関してのみ統計的な分析を行うそのようなアドレッシング方法は、各々のサービス呼び出しに関する余分なリアルタイムの計算を回避し、非常に効率的なサービスアドレッシングを達成することにより、クラスタにおける低コストでの部分的なまたはローカルな障害の隔離を達成する。
図2は、以下の工程を含み得る、本開示の第2の例の実施形態による分散環境における一例のサービスアドレッシング方法のフローチャートを示す。
202において、サービスコンシューマが失敗データベースを事前に設定する。
本明細書では、失敗データベースは、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する。
この失敗データベースにおいて、失敗したサーバにおける失敗回数の統計的な数字を周期的にリセットするために各々の失敗したサーバアドレスに関してタイマーが設定されるため、失敗したサーバは通常状態に回復すると、正常に呼び出されることになる。
204において、サービスコンシューマが、サービス問い合わせリクエストを生成し、問い合わせリクエストをサービス記録センターに送る。サービス問い合わせリクエストは問い合わせ条件を含む。
本明細書では、問い合わせ条件は、サービスの種類、サービスの品質保証、安全確認などがでも良い。
206において、サービスコンシューマが、サービス記録センターから、問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得する。
208において、サービスコンシューマが、失敗データベースから第1のサーバアドレスリストに合致する失敗したサーバアドレスを取得する。
210において、2つ以上の失敗したサーバアドレスが合致した場合、失敗回数の統計的な数字に従って2つ以上の失敗したサーバアドレスがソートされる。
212において、サービスコンシューマが、ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を失敗したサーバアドレスリストに編成する。
214において、サービスコンシューマが、失敗したサーバアドレスリストにおけるアドレスを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得する。
216において、サービスコンシューマが、第2のサーバアドレスリストからターゲットサーバアドレスをランダムに選択し、ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始する。
218において、サービスコンシューマが、ターゲットサービスの呼び出しが成功したかどうかを判定し、判定の結果がはいである場合、プロセスを終わらせ、その結果がいいえである場合、220における工程を実行する。
220において、サービスコンシューマが、失敗したサーバアドレスが失敗データベース内に存在するかどうかを判断し、判断の結果がはいである場合、222における工程を実行し、その結果がいいえである場合、224における工程を実行する。
222において、失敗したサーバアドレスに対応する失敗回数の統計的な数字が、事前設定された閾値の分だけ増加され、方法は、元に戻り208において工程を進める。
224において、失敗したサーバアドレスが失敗データベースに加えられ、これに対応する失敗回数の統計的な数字が事前設定された最初の値として設定され、方法は元に戻り208において工程を進める。
図2に示される一例の方法実施形態は、図1に示される方法実施形態とある程度同じであるため、簡素化されて記載されており、その関連する部分は、第1の例の方法実施形態の一部において記載を参照する場合がある。
図3は、本開示の第3の例の実施形態による分散環境における一例のサービスアドレッシング方法のフローチャートを示しており、これは以下の工程を含んで良い。
302において、サービス問い合わせリクエストが生成される。サービス問い合わせリクエストは問い合わせ条件を含む。
サービスコンシューマは、所望のサービスを検索するための問い合わせ条件を含むサービス問い合わせリクエストを生成し、サービス問い合わせリクエストをサービス記録センターに送信しても良い。本明細書では、問い合わせ条件は、サービスの種類、サービスの品質保証、安全確認などが含まれても良い。
304において、問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストが取得される。
サービスコンシューマが、サービス記録センターから、問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得する。例えばサービス記録センターは、サービス問い合わせリクエストを受け取った後、問い合わせ条件に合致するターゲットサービスを見つけるために、この問い合わせ条件に従って公表されたサービス記述内を検索する。
クラスタ環境では、2つ以上のサービスアドレスがターゲットサービスを提供する場合もあるため、サービス記録センターは、ターゲットサービスをリスト(すなわち第1のサーバアドレスリスト)の形態でサービスコンシューマに提供するサーバアドレスを提示する場合もある。
例えば第1のサーバアドレスリストには、サーバアドレス識別子(すなわちサービスのアクセスパス)、サービス呼び出しのパラメータ、転送プロトコル、セキュリティ要件などが含まれる場合がある。
306において、失敗情報取得リクエストが生成される。この失敗情報取得リクエストを使用して、事前設定された時間内でこれまでクラスタ内で失敗したサーバに対する情報を取得する。
サービスコンシューマが、失敗情報取得リクエストを生成する。この失敗情報取得リクエストを使用して、サーバアドレス情報、識別子情報、パス情報などの事前設定された時間内でクラスタ内で失敗したサーバに対する情報を取得する。失敗情報取得リクエストには、ターゲットサービス識別子が含まれる。
本明細書では、事前設定された時間は、要求に応じて設定された時間であって良く、例えば一日、一週間などであって良い。
302及び306における工程は同時にまたは非同期的に行われて良いことに留意されたい。例えば306における工程が行われる前に、第1のサーバアドレスリストを獲得する302における工程が最初に行われる。本開示の一例の実施形態は、302及び306における工程の順序を制限していない。
308において、失敗情報取得リクエストがリモートサーバに送られる。リモートサーバは、クラスタ内で失敗したサーバのアドレス情報のレコードを保持する。
310において、失敗情報取得リクエストに関してリモートサーバによって戻された失敗したサーバアドレスリストを受け取る。
失敗情報取得リクエストを生成した後、サービスコンシューマは、失敗情報取得リクエストをリモートサーバに送ることができ、リモートサーバは、クラスタ内で失敗したサーバのアドレス情報のレコードを保持する。例えばサービスコンシューマがサービスプロバイダに対するサービスの呼び出しに失敗した場合、サービスコンシューマは、サービスプロバイダアドレス(すなわち失敗したサーバアドレス)、呼び出されたサービスの識別子、呼び出し時間、失敗の原因(呼び出しのタイムアウト、サーバ側によって投じられた例外、サーバ側のビジースレッドプール、基準を外れた通信レイヤ、サーバ側の実行の拒絶など)の呼び出し失敗情報をリモートサーバに送ることができる。リモートサーバはこのとき、呼び出し失敗情報を記録し、呼び出しに失敗したサーバの失敗回数の統計的な数字に対して統計を採り、<192.168.0.1:15>などの、失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を生成する。例えばリモートサーバにおいて、各々の失敗したサーバに関して失敗回数の統計的な数字を計算するためにコンテナが設定される場合もある。確実なことには、呼び出し失敗情報は、サービスコンシューマによってリモートサーバに提供されて良く、またサービスプロバイダによってリモートサーバに能動的に提供される場合もあり、これは本開示のこの一例の実施形態において限定される必要はない。
例えば呼び出し失敗情報を受け取る際、リモートサーバはまず、呼び出し失敗情報に対応する失敗したサーバアドレスがローカルに記録されたかどうかを探す。そうでない場合、リモートサーバは、呼び出し失敗情報を記録し、失敗回数の統計的な数字を事前設定された最初の値に設定し、この事前設定された値は1または他の数値である。呼び出し失敗情報に対応する失敗したサーバアドレスがローカルに記録された場合、失敗回数の統計的な数字は、事前設定された閾値だけ、例えば1だけ増加される。
リモートサーバにおいて、2つ以上の失敗したサーバアドレスが合致した場合、失敗回数の統計的な数字に従って2つ以上の失敗したサーバアドレスがソートされ、失敗回数の統計的な数字に従って昇順または降順でソートされて良い。例えば失敗したサーバアドレスは、[<192.168.0.1:15>,<192.168.0.3:13>,...,<192.168.0.18:3>,...,<192.168.0.111:1>]などの降順でソートされて良い。
リモートサーバは、失敗情報取得リクエストを受け取った後、ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を失敗したサーバアドレスリストに編成し、失敗したサーバアドレスリストをサービスコンシューマに戻すことができる。
加えてリモートサーバにおいて、各々の失敗したサーバアドレスに関してタイマーを設定することができ、タイマーが切れると、対応する失敗したサーバアドレスに対応する失敗回数の統計的な数字がゼロにリセットされる。失敗したサーバアドレスの失敗回数の統計的な数字を周期的にゼロにリセットすることによって、失敗したサーバのサービス能力が回復された後はサーバアドレスは正常に呼び出される。
312において、失敗したサーバアドレスリストを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得する。
例えば、失敗したサーバアドレスリストを受け取った後、サービスコンシューマは、失敗したサーバアドレスリストにおける各々の失敗したサーバアドレスを第1のサーバアドレスリストと合致させる。失敗したサーバアドレスが第1のサーバアドレスリストの中に見つかった場合、サービスコンシューマは、失敗したサーバアドレスを第1のサーバアドレスリストから削除し、失敗したサーバアドレスリストにおける全ての失敗したサーバアドレスが合致するまで上記のプロセスが繰り返されることで、失敗したサーバアドレスが削除された第1のサーバアドレスリストが第2のサーバアドレスリストになる。
314において、ターゲットサーバアドレスが第2のサーバアドレスリストから選択される。
316において、ターゲットサーバアドレスに対してターゲットサービスの呼び出しが開始される。
図1及び図2における実施形態は、失敗したサーバアドレスをサービスコンシューマにおいてローカルに維持する、すなわち失敗したサーバアドレスリストをサービスコンシューマからローカルに獲得するが、この一例の実施形態は、失敗したサーバアドレスをリモートサーバ内に維持する、すなわち失敗したサーバアドレスリストをリモートサーバから獲得する点において、本開示のこの一例の実施形態は、図1または図2における一例の実施形態と異なっている。失敗したサーバアドレスをリモートサーバ内に維持することによって得られる利点は、サービスコンシューマのローカルな記憶プレッシャを軽減させ、サービスコンシューマのデータ処理効率を高め、さらにサービスコンシューマの働きを改善することである。一方、特定された失敗したサーバはまた、失敗したサーバアドレスを全てのサービスコンシューマにおいて維持する面倒を避けるために、失敗したサーバアドレスが全てのサービスコンシューマによって共有されることで、サービスコンシューマによる失敗したサーバアドレスを取得する効率を高めることができる。
図3に示される一例の方法実施形態は、図1及び図2に示される一例の方法実施形態とある程度同じであるため、簡潔に記載されており、その関連する部分は、他の一例の方法実施形態の一部における記載を参照する場合がある。
一例の方法実施形態は、簡潔にする目的で、一連の動作の組み合わせとして表現されるが、本開示は、本開示に従うように記載される動作の順序に限定されものではなく、一部の工程は他の順序または同時に行われる場合もあることを当業者は知るべきである。次に当業者はまた、明細書に記載される実施形態は例であり、記載される行動の一部は、本開示に必須ではないことも知るべきである。
図4は、本開示による分散環境におけるサービスアドレッシング装置400の構造図を示す。
図4に示されるように、装置400は、プロセッサ402(複数可)またはデータ処理ユニット(複数可)と、メモリ404とを含んで良い。装置400はさらに、1つまたは複数の入/出力インターフェース(複数可)406と、1つまたは複数のネットワークインターフェース(複数可)408とを含んで良い。メモリ404は、コンピュータ可読媒体の一例である。
メモリ404は、
問い合わせ条件を有するサービス問い合わせリクエストを生成するリクエスト生成モジュール410と、
問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得する第1のアドレス取得モジュール412と、
失敗したサーバアドレスリストを取得する失敗アドレス取得モジュール414であって、失敗したサーバアドレスが、これに対応する失敗回数の統計的な数字を有し、失敗したサーバアドレスリストは、第1のサーバアドレスリストから特定され、失敗回数の統計的な数字のソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字で構成されたリストである失敗アドレス取得モジュール414と、
失敗したサーバアドレスリスト内のアドレスを第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得する第2のアドレス取得モジュール416と、
ターゲットサーバアドレスを第2のサーバアドレスリストから選択するアドレス選択モジュール418と、
ターゲットサーバアドレスに対してターゲットサービスの呼び出しを開始するサービス呼び出しモジュール420とを含めた複数のモジュールまたはユニットを中に格納することができる。
例えば本開示の実施形態の装置はさらに、メモリに格納された、失敗データベースを事前に設定するデータベース事前設定モジュール(図4には示さない)を含む場合もある。失敗データベースは、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する。
例えば失敗アドレス取得モジュール414は、 第1のサーバアドレスリストに合致する失敗したサーバアドレスを失敗データベースから取得するアドレス合致サブモジュールと、
2つ以上の失敗したサーバアドレスが合致した場合、2つ以上の失敗したサーバアドレスを失敗回数の統計的な数字に従ってソートするアドレスソートサブモジュールと、
ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を失敗したサーバアドレスリストに編成するリスト編成サブモジュールを含むサブモジュール(図4には示さない)を含む場合もある。
例えば、装置はさらに、メモリに格納された以下のモジュール(図4には示さない)、
ターゲットサービスの呼び出しが失敗した場合、ターゲットサーバアドレスを失敗したサーバアドレスとして決定する決定モジュールと、
失敗したサーバアドレスが失敗データベース内に存在するかどうかを判断するために使用される判定モジュールと、
失敗したサーバアドレスが失敗データベース内に存在するかどうかを判断するために使用される判断モジュールと、
判断モジュールが失敗したサーバアドレスが失敗データベース内に存在すると判定した場合、事前設定された閾値の分だけ失敗したサーバアドレスに対応する失敗回数の統計的な数字を増加する第1の計算モジュールと、
判断モジュールが失敗したサーバアドレスが失敗データベース内に存在しないと判定した場合、失敗したサーバアドレスを失敗データベースに追加し、これに対応する失敗回数の統計的な数字を事前設定された最初の値に設定する第2の計算モジュールと、
失敗したサーバアドレスリストを更新するリスト更新モジュールと、
更新後の失敗したサーバアドレスリストに関して第2のアドレス取得モジュールの実行を起動する起動モジュールとを含む。
例えばターゲットサービスの呼び出しが失敗したケースは、以下の応答のタイムアウト及びビジーターゲットサーバスレッドプールのうちの少なくとも1つを含む。
例えば装置はさらに、メモリに格納された以下のモジュール(図4には示さない)、失敗データベースにおける失敗したサーバアドレスの各々に関してタイマーをそれぞれ設定するタイマーモジュールと、
タイマーが切れたとき、対応する失敗したサーバアドレスに対応する失敗回数の統計的な数字をゼロにリセットするゼロにリセットする、ゼロリセットモジュールとを含む場合もある。
例えば失敗アドレス取得モジュール414は、 事前設定された時間内でクラスタ内でこれまで失敗したことのあるサーバの情報を取得するのに使用される失敗情報取得リクエストを生成する失敗リクエスト生成サブモジュールと、
失敗情報取得リクエストをリモートサーバに送り、該リモートサーバが、クラスタ内でこれまで失敗したことのある失敗したサーバのアドレス情報のレコードを記憶する失敗リクエスト送信サブモジュールと、
失敗情報取得リクエストに関してリモートサーバによって戻された失敗したサーバアドレスを受け取る失敗情報受信サブモジュールとを含むサブモジュール(図4には示さない)を含む場合もある。
例えばアドレス選択モジュール418は、第2のサーバアドレスリストからターゲットサーバアドレスをランダムに選択するランダム選択サブモジュール(図示せず)を含む場合がある。
図4に示される一例の装置実施形態は、上述した一例の方法実施形態に記載されるものと同様の動作または工程を実施するため、簡潔に記載されており、その関連する部分は、一例の方法実施形態の対応する一部における記載を参照する場合がある。
本開示における各々の一例の実施形態は、進歩的なやり方で記載されており、他の一例の実施形態との違いを強調している。一例の実施形態の同一または同様の部分を互いに参照する場合もある。
当業者は、本開示の実施形態が、方法、システムまたはコンピュータのプログラミング製品であり得ることを理解すべきである。したがって本開示は、ハードウェア、ソフトウェアまたはその両方の組み合わせによって実装されて良い。加えて本開示は、コンピュータ可読媒体(これに限定するものではないがディスク、CD−ROM、光ディスクなどを含めた)に実装され得るコンピュータ実行可能命令を含む1つまたは複数のコンピュータプログラムの形態であって良い。
標準的な構成において、本開示において記載されるようなサーバ、ターミナルまたは近接場デバイスなどのコンピューティングデバイスは、1つまたは複数の中央処理装置(CPU)と、1つまたは複数の入/出力インターフェースと、1つまたは複数のネットワークインターフェースと、メモリとを含んで良い。メモリは、コンピュータ可読媒体において、例えば非永続的メモリ、ランダムアクセスメモリ(RAM)及び/または読出し専用メモリ(ROM)及びフラッシュランダムアクセスメモリ(フラッシュ RAM)などの不揮発性メモリを含む場合がある。メモリは、コンピュータ可読媒体の一例である。コンピュータ可読媒体には、情報の記憶を実施するのに何らかの方法または技術を利用し得る永続的及び比永続的、可搬式及び非可搬式媒体が含まれる。情報は、コンピュータ可読命令、データ構造、ソフトウェアモジュールまたは任意データであって良い。コンピュータ記憶媒体の例には、これに限定するものではないが相変化メモリ(PCM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAM、ROM、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ、内部記憶装置、 CD-ROM、DVD、光メモリ、磁気テープ、磁気ディスク、任意の他の磁気記憶装置、またはコンピューティングデバイスによってアクセス可能な情報を記憶することができる任意の他の非通信媒体が含まれて良い。本明細書で定義されるように、コンピュータ可読媒体は、変調されたデータ信号及び搬送波などの一次的な媒体は含まない。
本開示が、本開示の実施形態の方法、デバイス(システム)及びコンピュータプログラムのフローチャート及び/またはブロック図を参照することによって記載される。フローチャート及び/またはブロック図の各々のフロー及び/またはブロック及び/またはその組み合わせは、コンピュータ実行可能命令によって実施され得ることを理解されたい。このようなコンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサまたは機械を生成する他のプログラマブルデータプロセッサに対して提供することができるため、コンピュータまたは他のプログラマブルデータプロセッサによって動作する命令を通してフローチャートの1つまたは複数のフローならびに/もしくはブロック図の1つまたは複数のブロックを実施するデバイスを生成することができる。
コンピュータ実行可能命令はまた、コンピュータまたは他のプログラマブルデータプロセッサに特定の方法で動作するように命令することで、コンピュータ可読記憶装置に記憶される命令が命令デバイスを含む製品を生成する他のコンピュータ可読媒体に記憶される場合もあり、この命令デバイスが、フローチャートの1つまたは複数のフローならびに/もしくはブロック図の1つまたは複数のブロックにおいて特有の機能を果たす。
コンピュータ実行可能命令はまた、コンピュータまたは他のプログラマブルデータプロセッサにロードされることで、コンピュータまたは他のプログラマブルデータプロセッサが一連の動作ステップを行うことでコンピュータによって実施されるプロセスを生成する場合もある。したがってコンピュータまたは他のプログラマブルデータプロセッサにおいて行われる命令は、フローチャートの1つまたは複数のフローならびに/もしくはブロック図の1つまたは複数のブロックにおいて特有の機能を果たすためのステップを提供することができる。
本開示の一例の実施形態を記載してきたが、当業者は、基本的な本発明の概念を習得すれば、これらの一例の実施形態に対して追加の代替形態及び修正形態を作成することができる。したがって添付の特許請求の範囲は、この一例の実施形態を含むように説明されることが意図されており、全ての代替形態及び修正形態は、本開示の実施形態の範囲内にある。
最後に、この論説において、第1及び第2などの用語は、要素や動作を別の要素や動作と区別するためにのみ使用されており、そのような実際の関係や順番がこれらの要素または動作において存在することは必ずしも要求しない、またはそれを示唆するものではないことにさらに留意されたい。さらに用語「comprise」、「include」またはそれらの任意の他の変形は、非排他的な包含を網羅することが意図されており、そのため一連の必須要素を有するプロセス、方法、オブジェクトまたは端末装置は、これらの必須要素のみ有するのではなく、明白に列記されない他の必須要素も有する、あるいはプロセス、方法、オブジェクトまたは端末装置に固有の必須要素もさらに有する。より限定するのではなく、「comprising a...」という言い回しによって定義される必須要素は、この必須要素を有するプロセス、方法、オブジェクトまたは端末装置において他の同一の必須要素をさらに含むことを排除するものではない。
上記の記載は、本開示によって提供される分散環境におけるサービスアドレッシング方法及びサービスアドレッシング装置の詳細な紹介を提供する。本開示は、本開示の原理及び実施を図示するための一例の実施例を適用する。上記の一例の実施形態は、本開示の方法及びその中心概念の理解を助けるために例示されており、一方では、当業者は、本開示の概念に従って、詳細な実施及び適用される範囲の変更を行うこともできる。よって本明細書の記載は、本開示の対する限定として理解されるべきではない。

Claims (20)

  1. 問い合わせ条件を含むサービス問い合わせリクエストを生成することと、
    前記問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得することと、
    失敗したサーバアドレスリストを取得することと、
    前記失敗したサーバアドレスリストを前記第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得することと、
    前記第2のサーバアドレスリストからターゲットサーバアドレスを選択することと、
    前記ターゲットサーバアドレスに対して前記ターゲットサービスの呼び出しを開始することとを含む方法。
  2. 前記失敗したサーバアドレスリストを前記第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得することが、
    前記失敗したサーバアドレスリスト内の1つまたは複数のサーバアドレスを前記第1のサーバアドレスリストから削除することと、
    前記第1のサーバアドレスリスト内の1つまたは複数の残りのサーバアドレスを前記第2のサーバアドレスリストのために使用することとを含む、請求項1に記載の方法。
  3. 前記失敗したサーバアドレスリストを取得する前に、失敗データベースを事前に設定することをさらに含み、前記失敗データベースは、1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する、請求項1に記載の方法。
  4. 前記失敗したサーバアドレスリストを取得することが、前記失敗データベースから前記第1のサーバアドレスリストと合致する前記1つまたは複数の失敗したサーバアドレスを取得することを含む、請求項3に記載の方法。
  5. 前記失敗したサーバアドレスリストを取得することがさらに、
    2つ以上の失敗したサーバアドレスが前記第1のサーバアドレスリストと合致したと判定することと、
    前記2つ以上の失敗したサーバアドレスを、そのそれぞれの失敗回数の統計的な数字に従ってソートすることと、
    前記ソートにおいて最上位を有する前記失敗したサーバアドレスの事前設定された数字を前記失敗したサーバアドレスリストに編成することとを含む、請求項4に記載の方法。
  6. 前記ターゲットサービスの呼び出しが失敗したと判定することと、
    前記ターゲットサーバアドレスを失敗したサーバアドレスとして決定することと、
    前記失敗したサーバアドレスが前記失敗データベース内に存在すると判定することと、
    前記失敗したサーバアドレスに対応する失敗回数の統計的な数字を事前設定された閾値の分だけ増加することとをさらに含む、請求項3に記載の方法。
  7. 前記ターゲットサービスの前記呼び出しが失敗したと判定することと、
    前記ターゲットサーバアドレスを失敗したサーバアドレスとして決定することと、
    前記失敗したサーバアドレスが前記失敗データベース内に存在しないと判定することと、
    前記失敗したサーバアドレスを前記失敗データベースに加えることと、
    これに対応する失敗回数の統計的な数字を事前設定された最初の値に設定することと、
    失敗したサーバアドレスを更新することととをさらに含む、請求項6に記載の方法。
  8. 前記ターゲットサービスの前記呼び出しの前記失敗が以下の
    事前設定された閾値を超える応答タイムアウト、及び
    ターゲットサーバのスレッドプールのビジー度のうちの少なくとも1つを含む、請求項7に記載の方法。
  9. 前記失敗データベース内の前記失敗したサーバアドレスの各々に関してタイマーをそれぞれ設定することと、
    前記タイマーが切れたとき、前記これに対応する失敗したサーバアドレスに対応する前記失敗回数の統計的な数字をゼロにリセットすることとをさらに含む、請求項3に記載の方法。
  10. 前記失敗したサーバアドレスリストを取得することが、
    事前設定された時間内でのクラスタ内でこれまで失敗したことのあるサーバの情報を取得する失敗情報取得リクエストを生成することと、
    前記失敗情報取得リクエストをリモートサーバに送信し、前記リモートサーバが前記失敗したサーバのアドレス情報のレコードを記憶することと、
    前記失敗情報取得リクエストに関して前記リモートサーバによって戻された前記失敗したサーバアドレスリストを受け取ることとを含む、請求項1に記載の方法。
  11. 前記第2のサーバアドレスリストから前記ターゲットサーバアドレスを選択することが、前記第2のサーバアドレスリストから前記ターゲットサーバアドレスをランダムに選択することを含む、請求項1に記載の方法。
  12. 問い合わせ条件を含むサービス問い合わせリクエストを生成するリクエスト生成モジュールと、
    前記問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得する第1のアドレス取得モジュールと、
    失敗したサーバアドレスリストを取得する失敗アドレス取得モジュールと、
    前記第1のサーバアドレスリストから前記失敗したサーバアドレスリストを削除して第2のサーバアドレスリストを獲得する第2のアドレス取得モジュールと、
    ターゲットサーバアドレスを前記第2のサーバアドレスリストから選択するアドレス選択モジュールと、
    前記ターゲットサーバアドレスに対して前記ターゲットサービスの呼び出しを開始するサービス呼び出しモジュールとを備える装置。
  13. 前記第2のアドレス取得モジュールはさらに、
    前記第1のサーバアドレスリストから前記失敗したサーバアドレスリスト内の1つまたは複数のサーバアドレスを削除し、
    前記第1のサーバアドレスリストにおける1つまたは複数の残りのサーバアドレスを前記第2のサーバアドレスリストのために使用する、請求項12に記載の装置。
  14. 1つまたは複数の失敗したサーバアドレスと、これに対応する失敗回数の統計的な数字との関連する関係性を記憶する失敗データベースを事前設定するデータベース事前設定モジュールをさらに備える、請求項12に記載の装置。
  15. 前記失敗アドレス取得モジュールが、
    第1のサーバアドレスリストと合致する前記1つまたは複数の失敗したサーバアドレスを前記失敗データベースから取得することを含む、失敗したサーバアドレスリストを取得するアドレス合致サブモジュールを含む、請求項14に記載の装置。
  16. 前記失敗アドレス取得モジュールがさらに、
    2つ以上の失敗したサーバアドレスが前記第1のサーバアドレスリストと合致したことを判定し、前記2つ以上の失敗したサーバアドレスをそれぞれの失敗回数の統計的な数字に従ってソートするアドレスソートサブモジュールと、
    前記ソートにおいて最上位を有する失敗したサーバアドレスの事前設定された数字を前記失敗したサーバアドレスリストに編成するリスト編成サブモジュールとを含む、請求項15に記載の装置。
  17. 前記ターゲットサービスの呼び出しが失敗したことを判定し、前記ターゲットサーバアドレスを失敗したサーバアドレスとして決定する決定モジュールと、
    前記失敗したサーバアドレスが前記失敗データベース内に存在すると判定する判断モジュールと、
    前記失敗したサーバアドレスに対応する失敗回数の統計的な数字を事前設定された閾値の分だけ増加する第1の計算モジュールとをさらに備える、請求項12に記載の装置。
  18. 前記ターゲットサービスの前記呼び出しが失敗したことを判定し、前記ターゲットサーバアドレスを失敗したサーバアドレスとして決定する決定モジュールと、
    前記失敗したサーバアドレスが前記失敗データベース内に存在しないと判定する判断モジュールと、
    前記失敗したサーバアドレスを前記失敗データベースに追加し、これに対応する失敗回数の統計的な数字を事前設定された最初の値に設定する第2の計算モジュールと、
    前記失敗したサーバアドレスリストを更新するリスト更新モジュールとをさらに備える、請求項12に記載の装置。
  19. 前記失敗したアドレス取得モジュールが、
    事前設定された時間内でのクラスタ内でこれまで失敗したことのあるサーバの情報を取得する失敗情報取得リクエストを生成する失敗リクエスト生成サブモジュールと、
    前記失敗情報取得リクエストをリモートサーバに送信し、前記リモートサーバが、前記失敗したサーバのアドレス情報のレコードを記憶する失敗リクエスト送信サブモジュールと、
    前記失敗情報取得リクエストに関して前記リモートサーバによって戻された前記失敗したサーバアドレスリストを受け取る失敗情報受信モジュールとを含む、請求項12に記載の装置。
  20. 問い合わせ条件を含むサービス問い合わせリクエストを生成することと、
    前記問い合わせ条件に一致するターゲットサービスの第1のサーバアドレスリストを取得することと、
    失敗したサーバアドレスリストを取得することと、
    前記失敗したサーバアドレスリストを前記第1のサーバアドレスリストから削除して第2のサーバアドレスリストを獲得することと、
    前記第2のサーバアドレスリストからターゲットサーバアドレスを選択することと、
    前記ターゲットサーバアドレスに対して前記ターゲットサービスの呼び出しを開始することとを含む工程を行うために、1つまたは複数のプロセッサによって実行可能なコンピュータ実行可能命令をそこに格納する1つまたは複数のメモリ。
JP2017522867A 2014-11-18 2015-11-18 分散環境におけるサービスアドレッシング Active JP6700266B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410659256.3 2014-11-18
CN201410659256.3A CN105635331B (zh) 2014-11-18 2014-11-18 一种分布式环境下的服务寻址方法及装置
PCT/US2015/061392 WO2016081633A1 (en) 2014-11-18 2015-11-18 Service addressing in distributed environment

Publications (3)

Publication Number Publication Date
JP2017538200A true JP2017538200A (ja) 2017-12-21
JP2017538200A5 JP2017538200A5 (ja) 2020-03-26
JP6700266B2 JP6700266B2 (ja) 2020-05-27

Family

ID=55962750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522867A Active JP6700266B2 (ja) 2014-11-18 2015-11-18 分散環境におけるサービスアドレッシング

Country Status (7)

Country Link
US (1) US10439937B2 (ja)
EP (1) EP3221795B1 (ja)
JP (1) JP6700266B2 (ja)
CN (1) CN105635331B (ja)
SG (1) SG11201703548VA (ja)
TW (1) TWI685226B (ja)
WO (1) WO2016081633A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102051302B1 (ko) * 2018-06-22 2019-12-03 주식회사 티맥스 소프트 서비스 처리 방법
JP2022504087A (ja) * 2018-10-12 2022-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウド・マイクロサービス埋め込み用自動チューナ

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691501B1 (en) * 2016-10-25 2020-06-23 Amazon Technologies, Inc. Command invocations for target computing resources
TWI740885B (zh) * 2017-01-23 2021-10-01 香港商阿里巴巴集團服務有限公司 分布式儲存系統的服務節點切換方法及裝置
US10331522B2 (en) * 2017-03-17 2019-06-25 International Business Machines Corporation Event failure management
CN109413117B (zh) * 2017-08-15 2022-05-06 中兴通讯股份有限公司 分布式数据计算方法、装置、服务器及计算机存储介质
KR102024694B1 (ko) * 2018-04-10 2019-09-24 주식회사 에이비씨 블록체인 기반의 다수의 서비스 노드를 사용하는 탈중앙화 서비스 플랫폼
CN109542641A (zh) * 2018-11-14 2019-03-29 中国联合网络通信集团有限公司 服务调用方法、装置及系统
CN111464574B (zh) * 2019-01-21 2022-10-21 阿里巴巴集团控股有限公司 调用、加载、注册、管理方法和路由、服务器、节点和介质
CN110290168B (zh) * 2019-05-08 2022-04-12 深圳壹账通智能科技有限公司 数据发送方法、装置、服务器及存储介质
CN110377419A (zh) * 2019-06-11 2019-10-25 北京达佳互联信息技术有限公司 一种服务器调用方法、装置和电子设备
CN110401579B (zh) * 2019-06-18 2022-08-23 平安科技(深圳)有限公司 基于hash表的全链路数据采样方法、装置、设备及存储介质
CN110557304B (zh) * 2019-09-20 2022-10-14 腾讯科技(深圳)有限公司 一种地址探测方法、设备及计算机可读存储介质
JP7237176B2 (ja) * 2019-10-08 2023-03-10 日立Astemo株式会社 通信システム、電子制御装置及び通信方法
CN110990039B (zh) * 2019-11-29 2023-09-05 北京金山云网络技术有限公司 应用程序更新方法、装置、系统及计算机可读存储介质
CN111177513B (zh) * 2019-12-31 2023-10-31 北京百度网讯科技有限公司 异常访问地址的确定方法、装置、电子设备及存储介质
CN113064732A (zh) * 2020-01-02 2021-07-02 阿里巴巴集团控股有限公司 一种分布式系统及其管理方法
CN111381985B (zh) * 2020-03-09 2023-09-19 中国建设银行股份有限公司 一种异构系统数据调用方法、装置、设备及存储介质
CN111935210B (zh) * 2020-06-28 2024-03-19 平安银行股份有限公司 数据服务方法、装置、服务器及存储介质
CN111949402A (zh) * 2020-08-05 2020-11-17 中国建设银行股份有限公司 数据库请求处理方法、装置、计算机设备及存储介质
CN111930548B (zh) * 2020-08-12 2024-03-01 湖南快乐阳光互动娱乐传媒有限公司 一种多集群分布式服务的故障模拟系统
CN111984309A (zh) * 2020-08-31 2020-11-24 北京达佳互联信息技术有限公司 服务调用方法、装置、服务器及存储介质
CN112039710B (zh) * 2020-09-02 2023-08-01 曙光信息产业(北京)有限公司 服务故障处理方法、终端设备及可读存储介质
CN112199426B (zh) * 2020-09-24 2023-06-02 建信金融科技有限责任公司 微服务架构下的接口调用管理方法、装置、服务器及介质
CN112351077B (zh) * 2020-10-21 2022-07-29 中国建设银行股份有限公司 一种应用服务运行方法、系统、装置及存储介质
CN112925628A (zh) * 2021-03-29 2021-06-08 建信金融科技有限责任公司 一种服务管理方法和装置
CN113259431B (zh) * 2021-05-11 2022-11-11 中国工商银行股份有限公司 服务调用方法、服务调用装置、电子设备以及存储介质
CN115002185A (zh) * 2022-05-09 2022-09-02 北京城市网邻信息技术有限公司 数据的处理方法、装置、电子设备及存储介质
CN114944986A (zh) * 2022-07-01 2022-08-26 中国邮政储蓄银行股份有限公司 服务隔离方法、装置和微服务系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319689A (ja) * 1996-05-27 1997-12-12 Nec Corp サーバ選択方式
JP2007257481A (ja) * 2006-03-24 2007-10-04 Canon Inc 印刷デバイス

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69030340T2 (de) * 1989-02-24 1997-11-20 Digital Equipment Corp Makler für die Auswahl von Rechnernetzwerkservern
US6173322B1 (en) 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6298451B1 (en) * 1999-11-02 2001-10-02 Idini Corporation Directory-based failure recovery and load balancing system
US6665824B1 (en) * 2000-05-15 2003-12-16 Microsoft Corporation System and method for handling a failure reporting conversation
US7103809B2 (en) * 2003-10-24 2006-09-05 Motorola, Inc. Server selection method
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US7990847B1 (en) * 2005-04-15 2011-08-02 Cisco Technology, Inc. Method and system for managing servers in a server cluster
US20060242318A1 (en) * 2005-04-21 2006-10-26 Paul Nettle Method and apparatus for cascading media
US20070258445A1 (en) * 2006-05-02 2007-11-08 Harris Corporation Systems and methods for protocol filtering for quality of service
US7756012B2 (en) * 2007-05-18 2010-07-13 Nvidia Corporation Intelligent failover in a load-balanced network environment
US7936683B2 (en) * 2007-06-20 2011-05-03 At&T Intellectual Property I, L.P. System and method of monitoring network performance
US8150965B2 (en) 2008-11-07 2012-04-03 At&T Intellectual Property I, L.P. Method of generating round robin service order lists for improving service performance during server failures
US8051152B2 (en) * 2008-12-12 2011-11-01 Sap Ag Isolated application server
US20100223364A1 (en) 2009-02-27 2010-09-02 Yottaa Inc System and method for network traffic management and load balancing
US9176784B2 (en) * 2009-12-11 2015-11-03 Verizon Patent And Licensing Inc. Load balancing
EP2591590B1 (en) 2011-02-28 2014-04-30 Unify GmbH & Co. KG System, apparatus and mechanism for dynamic assignment of survivability services to mobile devices
JP2013090072A (ja) 2011-10-17 2013-05-13 Hitachi Ltd サービス提供システム
US8971514B2 (en) 2012-02-24 2015-03-03 Verizon Patent And Licensing Inc. Avoiding failed routes
US8830869B2 (en) 2012-07-18 2014-09-09 Accedian Networks Inc. Systems and methods of detecting and assigning IP addresses to devices with ARP requests

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319689A (ja) * 1996-05-27 1997-12-12 Nec Corp サーバ選択方式
JP2007257481A (ja) * 2006-03-24 2007-10-04 Canon Inc 印刷デバイス

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102051302B1 (ko) * 2018-06-22 2019-12-03 주식회사 티맥스 소프트 서비스 처리 방법
JP2022504087A (ja) * 2018-10-12 2022-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウド・マイクロサービス埋め込み用自動チューナ
JP7355404B2 (ja) 2018-10-12 2023-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウド・マイクロサービス埋め込み用自動チューナ

Also Published As

Publication number Publication date
US10439937B2 (en) 2019-10-08
EP3221795B1 (en) 2020-01-01
TW201619855A (zh) 2016-06-01
WO2016081633A1 (en) 2016-05-26
TWI685226B (zh) 2020-02-11
JP6700266B2 (ja) 2020-05-27
EP3221795A1 (en) 2017-09-27
SG11201703548VA (en) 2017-06-29
CN105635331B (zh) 2019-10-18
US20160142369A1 (en) 2016-05-19
EP3221795A4 (en) 2018-05-02
CN105635331A (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
JP2017538200A (ja) 分散環境におけるサービスアドレッシング
CA3048742C (en) Blockchain-based consensus method and device
US10853046B2 (en) Deployment of software applications on server clusters
US20190068690A1 (en) Automated management of resource attributes across network-based services
US8930322B2 (en) Methods and systems for bulk row save logic in an object relational mapping layer and application framework
WO2017124933A1 (zh) 一种信息处理方法、装置和系统
US8843632B2 (en) Allocation of resources between web services in a composite service
US10540369B2 (en) Org sync suspend and resume data sync
US20150019680A1 (en) Systems and Methods for Consistent Hashing Using Multiple Hash Rlngs
CN106921712B (zh) 一种业务处理方法及装置
US11347808B1 (en) Dynamically-adaptive bloom-filter
WO2018233630A1 (zh) 故障发现
WO2020024648A1 (zh) 数据处理方法和装置、客户端、服务器
CN111240892A (zh) 数据备份方法及装置
TW201727517A (zh) 資料儲存與業務處理的方法及裝置
CN111245897A (zh) 数据处理方法、装置、系统、存储介质及处理器
US8510426B2 (en) Communication and coordination between web services in a cloud-based computing environment
US11243979B1 (en) Asynchronous propagation of database events
US20170286440A1 (en) Method, business processing server and data processing server for storing and searching transaction history data
CN109308310B (zh) 一种用于资产管理平台的子系统数据互联处理方法
US20160162559A1 (en) System and method for providing instant query
CN108718285B (zh) 云计算集群的流量控制方法、装置及服务器
US20150379548A1 (en) Method and System for Data Processing
US20130238864A1 (en) Automated data interface generation
CN116701410B (zh) 数联网数据语用内存状态数据的存储方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20200214

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: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200430

R150 Certificate of patent or registration of utility model

Ref document number: 6700266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250