JP5848339B2 - プロビジョニングサービスのためのリーダーアービトレーション - Google Patents

プロビジョニングサービスのためのリーダーアービトレーション Download PDF

Info

Publication number
JP5848339B2
JP5848339B2 JP2013513204A JP2013513204A JP5848339B2 JP 5848339 B2 JP5848339 B2 JP 5848339B2 JP 2013513204 A JP2013513204 A JP 2013513204A JP 2013513204 A JP2013513204 A JP 2013513204A JP 5848339 B2 JP5848339 B2 JP 5848339B2
Authority
JP
Japan
Prior art keywords
service
server
lock file
processor
shared lock
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
JP2013513204A
Other languages
English (en)
Other versions
JP2013533536A (ja
JP2013533536A5 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013533536A publication Critical patent/JP2013533536A/ja
Publication of JP2013533536A5 publication Critical patent/JP2013533536A5/ja
Application granted granted Critical
Publication of JP5848339B2 publication Critical patent/JP5848339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ディレクトリーサービスにおけるロッキングメカニズムに関する。
ファイルを交換する少数のコンピューターから複雑多目的なシステムへ、ネットワークシステムが進化してきた。種々のコンピューティングデバイスを結合する多種多様かつ大規模なネットワークは、人々の日々の生活をカバーする数々のタスクを実行する。代表的なネットワークは、多数の有線/無線サブネットワーク、少数から大多数のサーバー/クライアント、パーティション、サブネット、およびさらに多くの態様を含みうる。ネットワークシステムの数および種類が増大するにつれて、標準化された管理方策が必要となり、結果、種々のアプローチを発展させることになった。
ディレクトリーサービスは、ネットワーク管理においては強力なツールであり、それによって管理者がポリシーを割り当て、ソフトウェアを配備し、および組織へ重要な更新を適用することができるようになる。ディレクトリーとは異なり、ディレクトリーサービスは、ユーザーへの情報の利用を可能とする情報源および機能の両方である。ディレクトリーサービスは、オブジェクト(例えば、サーバー、ユーザー、およびその他のリソース)に関連する情報や設定を中央データベースに格納する。ネットワークリソースと通信するときに、識別のためにその情報を使用することができるが、また、オブジェクトが全体の階層スキームに適合することの定義としてもその情報を使用することができる。ディレクトリーサービスは、少数のコンピューター、ユーザー、およびプリンターの小規模の設置から、何万ものユーザー、多くの様々なドメイン、および多くの地理的位置にまたがる大規模サーバーファームまで変わるネットワークで実装されうる。
この概要は、以下の「発明を実施するための形態」でさらに説明される概念の中から選択したものを簡略化した形式で紹介するものである。この概要は、特許請求の範囲に記載された内容の重要な特徴または本質的な特徴を専ら特定することを意図としたものではなく、特許請求の範囲に記載された内容の範囲を判定する際の補助となることを意図としたものでもない。
実施例は、ディレクトリーサービス環境におけるプロビジョニングサービスのためのロッキングメカニズムに関する。一部の実施例に準ずると、ドメインで稼動するサービスは、RID(relative identifier)マスターサーバーで保持される共有ファイルへ書き込みを行うことにより、リーダーロール、または別のシングルトンロール(例えば、スキーママスター、ドメインネーミングマスター、インフラストラクチャーマスター、またはプライマリドメインコントローラー(PDC:primary domain controller)エミュレーター)を受け持つことが可能となる。リーダーロールを受け持つサービスは、共有ファイルへ定期的に再書き込みを行うことにより、さらに当該サービスのロールを延長することが可能となる。その他のサービスは、同様に定期的にファイルをチェックし、現在リーダーロールを有するサービスがある限り、パッシブのままでいることができる。リーダーサービスがダウンし、および当該サービスのロールの延長に失敗した場合には、別のサービスが、共有ファイル(当該ファイルは、プロビジョニングサービスにおいて単一のリーダーを保証する)へ書き込みを行うことにより、引き継ぐことができる。
これらのおよびその他の特徴および有利な点は、以下の詳細な説明を読むこと、および関連する図面を参照することから明らかになるであろう。上記概要説明および以下の詳細な説明の双方が説明的なものであり、かつ特許請求された態様を制限するものではないことが理解されるであろう。
ディレクトリーサービスを利用することができるネットワークシステムのコンポーネントの例を表す概念図である。 実装例において、RIDマスターサーバーをどのように使用して、ドメインコントローラーを管理することができるかを表す図である。 単一のリーダーアービトレーション(leader arbitration)システムを基にしたロックファイルの例を概念的に表す図である。 実施例に準じたシステムが実装されうるネットワーク環境を表す図である。 実施例が実装されうるコンピューティングオペレーティング環境の例を表すブロック図である。 実施例に準じて、プロビジョニングサービスのためのリーダーアービトレーションの処理についての論理フロー図である。
上記簡潔に説明したように、ディレクトリーサービス環境におけるプロビジョニングサービスのためのロッキングメカニズムは、RIDマスターサーバーで保持される共有ファイルへ書き込みを行うことにより、1のサービスがリーダーロールを受け持つことを可能とする。リーダーロールを受け持つサービスは、共有ファイルへ定期的に再書き込みを行うことにより、当該サービスのロールを延長することができる。その他のサービスは、同様に定期的にファイルをチェックし、現在リーダーロールを有するサービスがある限り、パッシブのままでいることができる。リーダーサービスがダウンし、および当該サービスのロールの延長に失敗した場合は、別のサービスが、共有ファイル(当該ファイルは、プロビジョニングサービスにおいて単一のリーダーを保証する)へ書き込みを行うことにより、引き継ぐことができる。以下の詳細な説明では、本明細書の一部をなす添付図面への参照がされ、当該図面は、特定の実施例または例示の方法により示される。これらの態様が組み合わされ、その他の態様が利用され、および本開示の精神または範囲を逸脱せずに構造的な変更がされてもよい。したがって、以下の詳細な説明は、限定的な意味で取り込まれるべきでなく、本発明の範囲は添付の特許請求の範囲およびそれに相当するものにより定義される。
実施例は、パーソナルコンピューター上のオペレーティングシステムで稼動するアプリケーションプログラムとともに実行される、プログラムモジュールという一般的な状況で説明するが、当業者であればその他のプログラムモジュールと共同して実装されてもよいことが認識できるであろう。
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ型を実装するその他のタイプの構造を含む。その上、当業者であれば、その他のコンピューターシステム構成(ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの一般消費者用電子機器、プログラム制御が可能な一般消費者電子機器、ミニコンピューター、メインフレームコンピューターを含む)により実施例が実施されてもよいことが分かるであろう。分散型コンピューティング環境で実施例が実施されてもよく、そこでは、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される。分散型コンピューティング環境では、プログラムモジュールはローカルとリモートの双方のメモリーストレージデバイスに位置してもよい。
実施例は、コンピューターにより実装可能なプロセス(方法)、コンピューティングシステム、またはコンピュータープログラム製品もしくはコンピューター可読媒体のような製造品として実装されてもよい。コンピュータープログラム製品は、コンピューターシステムにより読み取り可能であり、かつコンピューターまたはコンピューティングシステムに、サンプルプロセスを実行させる命令を備えるコンピュータープログラムをエンコードするコンピューター記憶媒体であってもよい。コンピューター可読記憶媒体は、例えば、1または複数の揮発性コンピューターメモリー、不揮発性コンピューターメモリー、ハードドライブ、フラッシュドライブ、フロッピディスクもしくはコンパクトディスク、およびそれらと同等の媒体を介して実装されることが可能となる。
本明細書全体を通じて、「プラットフォーム」の用語は、ネットワークシステムを管理するためのソフトウェアコンポーネントとハードウェアコンポーネントとの組み合わせであってもよい。プラットフォームの例には、複数のサーバー上で実行されるホスティングされたサービス、単一のサーバー上で実行されるアプリケーション、およびそれらと同等のシステムが含まれるが、それらに限定されない。「サーバー」の用語は、一般に、主としてネットワーク環境で1または複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。しかしながら、サーバーは、ネットワーク上で1つのサーバーとしてみなされる、1または複数のコンピューティングデバイス上で実行される仮想サーバー(ソフトウェアプログラム)として実装されてもよい。
図1は、ディレクトリーサービスを利用することができるネットワークシステムのコンポーネントの例を表す概念図である。すでに述べたように、ネットワークシステムは、サイズおよびタイプにおいて変わりうるので、したがって、様々な範囲に及ぶ機能を備える多くの様々なコンポーネントを含んでもよい。略図100は、ディレクトリーサービス環境を備えるシステムの例を表す。システムの例は、ネットワーク構成、サービスポリシーの品質、セキュリティーポリシー、およびそれらと類似する態様を担当しうるネットワークデバイス112を含む。ファイアウォールサービス116は、構成、セキュリティーポリシー、および仮想VPN(virtual personal network)ポリシーを担当してもよい。アプリケーションサービス120は、サーバー構成、認証ポリシー(例えば、シングルサインオン)、アプリケーション特有のディレクトリー情報、およびアプリケーションポリシーを担当してもよい。Eメールサービス118は、メールボックス情報、アドレス帳、およびそれらと類似するデータを保持してもよい。ネットワークオペレーションコンポーネント114は、ユーザーレジストリー、セキュリティーポリシー、およびそれらと類似する特性のものを保持してもよい。その他のディレクトリー110は、ホワイトページ(電話帳)、およびEコマースディレクトリーなどのような特有のディレクトリーサービスを含んでもよい。
ディレクトリーサービス102は、上述したこれら全てのコンポーネントと対話してもよく、またポリシーの割り当て、ソフトウェアの配備、組織への更新アプリケーション、およびそれらと類似するタスクを円滑にしてもよい。また、ディレクトリーサービス102は、システムユーザー104に関連するアカウント情報、特権、プロファイル、およびポリシーを管理してもよい。さらに、ディレクトリーサービス102は、管理プロファイル、ネットワーク情報、プリンター、ならびにそれらと類似するリソース、ファイル共有、およびポリシーを統括するシステムサーバー106と対話してもよい。その上に、ディレクトリーサービス102は、システムクライアント108に対応するプロファイルおよびネットワークポリシーの管理を担当するシステムクライアント108と対話してもよい。
本出願人提供のアクティブディレクトリー(Active Directory:商標)のようなディレクトリーサービスは、システムコンポーネントをオブジェクトとしてトラッキング(track)する。オブジェクトは、ディレクトリーサービス内でトラッキングされるユーザー、システム、リソース、またはサービスであってもよい。オブジェクトの一部は共通属性を共有してもよく、その他は異なる特性を有してもよい。したがって、ディレクトリーサービス構造は、オブジェクトの階層フレームワークである。各オブジェクトは、単一のエンティティー(例えば、ユーザー、コンピューター、プリンター、またはグループ)、およびそのエンティティーの属性を表してもよい。また、あるオブジェクトは、その他のオブジェクトのコンテナであってもよい。オブジェクトは、オブジェクトの名前により一意に識別されてもよく、スキーマにより定義される属性(例えば、オブジェクトが包含することができる特性および情報)の組を有してもよい。当該スキーマはまた、ディレクトリーサービスが格納することができるオブジェクトの種類を判定してもよい。
ディレクトリーサービス構造内では、サイトは、1または複数のネットワークをホスティングする地理的位置を表すオブジェクトである。サイトは、サブネットと呼ばれるオブジェクトを含んでもよい。サイトは、グループポリシーをオブジェクトに割り当て、リソースの発見を円滑にし、アクティブディレクトリーレプリケーションを管理し、およびネットワークリンクのトラフィックを管理するために使用されてもよい。
オブジェクトを持つディレクトリーサービスフレームワークは、多くのレベルで見ることができる。その構造の上位は、フォレストである。フォレストは、ディレクトリー構造における各オブジェクト、オブジェクトの属性、およびルール(属性構文)の集合である。フォレストはツリーの集合であり、ツリーは1または複数のドメインの集合である。フォレスト、ツリー、およびドメインは、ディレクトリーサービスネットワークにおける論理的な部分である。したがって、サーバーおよびそれに類似するコンポーネント(サービスを含む)に割り当てられるロールは、ディレクトリーサービスの階層構造に基づいて定義されてもよい。例えば、実施例に準じたプロビジョニングサービスにおいて単一のリーダーアービトレーションを円滑にするためのRIDマスターサーバーは、RIDマスターのシングルトンステータスを保証する特定のドメイン内(複数のドメイン全体にまたがらない)で定義されてもよい。
図2は、実装例において、RIDマスターサーバーをどのように使用して、ドメインコントローラーを管理することができるかを表す。多数のサービスおよびオペレーションが、ディレクトリーサービス環境内で提供されてもよい。略図200は、RIDマスターに関連するドメインコントローラー間相互のレプリケーションサービスの例を表す。下記で説明するが、RIDマスターサーバー222は、定義により各ドメインに対して一意である。したがって、一部の実施例に準じて、RIDマスターサーバー222が配備して、共有ロックファイルを保持する。
略図200では、様々なドメインコントローラー224、226、および228が、マルチマスターレプリケーション230を通じて、当該ドメインコントローラー間で互いにディレクトリーサービスデータベースの変更をレプリケートする。一方、一意なRIDマスターサーバー222は、ドメインコントローラー224、226、および228に対してセキュリティーRID(security relative identifier)を割り当てるために配備される。
ディレクトリーサービス構造では、各ドメインは、ディレクトリーサービスデータベースの複製を含み、かつその他のドメインコントローラーと変更を同期する(例えば、マルチマスターレプリケーションを通じて)、1または複数のドメインコントローラーを有してもよい。レプリケーションは、ディレクトリーサービス環境内で円滑にされ、かつプルベースで頻繁に発生しうるサービスの例である。ドメインコントローラーサーバーは、フェロー(fellow)ドメインコントローラーからの更新を要求してもよい。1のドメインコントローラー上での情報が変化する場合(例えば、ユーザーがパスワードを変更する)、当該ドメインコントローラーは、その他のドメインコントローラーにシグナルを送り、データのプル(pull)レプリケーションを開始して、ドメインコントローラーが全て最新状態であることを保証してもよい。
FSMO(Flexible Single Master Operation)は、標準のデータ転送および更新手法が不十分である場合に使用される、ドメインコントローラータスクに特化する。上記説明したように、ディレクトリー構造は、通常、複数のピア(peer)ドメインコントローラーに依存し、ディレクトリー構造データベースの複製を有する各ピアドメインコントローラーは、マルチマスターレプリケーションにより同期され得る。マルチマスターレプリケーションには適さず、かつ単一のマスターデータベースのみで実行可能なタスクは、FSMOである。ピアドメインFSMOの1つの例は、RIDマスターである。RIDマスターは、ドメインコントローラーに対してセキュリティーRIDをアロケートして、新規のディレクトリー構造セキュリティープリンシパル(directory structure security principal)を割り当ててもよい(例えば、ユーザー、グループ、またはコンピューターオブジェクト)。また、RIDマスターは、ドメイン間を移動するオブジェクトを管理してもよい。
FSMOの別の例は、ドメインにおいてパスワード変更を処理するPDCである。その他のドメインコントローラーで、誤ったパスワードが原因で失敗した認証の試みを拒絶する前に、PDCに転送し得る。このことにより、ユーザーが任意のドメインコントローラーからパスワードを変更した直後に、その変更がレプリケートされるのに数分待つ必要がなく、即時にログインできることを保証する。FSMOのさらなる例は、ドメイン間相互で参照されるオブジェクトについてのセキュリティーID、グローバルユーザーID(GUID)、およびドメインネームを保持するインフラストラクチャーマスターである。インフラストラクチャーマスターは、ユーザーおよびグループリンクを更新してもよい。
図3は、単一のリーダーアービトレーションシステムに基づくロックファイルの例を概念的に表す。ディレクトリーサービス環境におけるプロビジョニングサービスのためのロッキングメカニズムは、略図300で示すRIDマスターサーバー322上に格納される共有ロックファイル332を使用して実装されてもよい。RIDマスターサーバー322は、FSMOロールであり、ディレクトリーサービス環境における全体のドメインに対してRIDマスターサーバー322の1つのみが存在することができる。ドメインにおいて稼動するサービスの組(例えば、334、336、および338)は、共有ロックファイル332へ書き込みを行うことにより、リーダーシップをつかみにいこうとしてもよい。リーダーシップをつかむことができる第1のサービスインスタンス334は、第1の所定の期間(例えば、X秒毎)、当該リーダーシップを延長してもよい。その他のサービスインスタンス336および338は、パッシブのままであり、かつ第2の所定の期間(例えば、Y秒毎)経過後、リーダーシップステータスをチェックしてもよい。第2の所定の期間(Y)は、第1の所定の期間(X)よりも長くなるように選択されてもよい。YがXよりも短い場合は、X時間経過後であるアクティブインスタンスがピングを送る前に、パッシブインスタンスがリーダーシップをつかみうることになる。
リーダーサービスが機能しなくなる場合に、パッシブサービスインスタンスはリーダーシップをつかみ、アクティブになることができる。RIDマスターサーバー322が機能しなくなる場合に、ディレクトリーサービスプロシージャーが引き続いて、ロールの転送または剥奪のいずれかを行い、かつその他のサーバーをRIDマスターサーバー322とさせてもよい。両プロシージャーは、1つのRIDマスターサーバー322のみが存在することを確かにする。RIDマスターサーバーロールが転送または剥奪される場合に、ディレクトリーサービスの実施を引き続けることを最優先に、情報がドメインにおける全てのサーバーに送信されてもよい。したがっていつでも、システムは単一のリーダーが存在することを保証する。Yについての値は、ドメインにおける全てのサーバーに情報が届く、予想される最悪なケースの待ち時間に基づいて選ばれてもよい。
共有ロックファイルをホスティングするRIDマスターサーバーの例とともに、実施例を述べたが、各ドメイン内のその他のシングルトンサーバー(物理または仮想)はまた、ロックファイルを保持するために使用されてもよい。例えば、上述したPDCまたはインフラストラクチャーマスターは、その他の実施例に準じて、ロックファイルをホスティングしてもよい。
図1乃至図3で述べた様々なプロセスおよびシステム構成は、単に例示を目的としているものであり、実施例上の限定を構成するものではない。実施例は、追加または少数のコンポーネント(ソフトウェアまたはハードウェア)、様々な構成、および本明細書で説明したプリンシパルを使用したロール割り当てにより実装されてもよい。
図4は、実施例が実装されうるネットワーク環境の例である。リーダーシップアービトレーションによるプロビジョニングサービスを提供するプラットフォームは、サーバー416上(例えば、ホスティングされたサービス)で実行されるソフトウェアを介して実装されてもよい。プラットフォームは、サーバー414上で実行されるその他のサービス、および個々のコンピューティングデバイス(例えば、スマートフォン411、ラップトップ412、デスクトップコンピューター413、またはそれらに類似するデバイス(「クライアントデバイス」))上のクライアントアプリケーションと、ネットワーク410を通じて通信してもよい。
クライアントデバイス411乃至413のうちの任意のデバイス上で実行されるクライアントアプリケーションは、サーバー416からプロビジョニングサービスを提供するホスティングされたサービスと対話してもよい。サーバー414上のその他のサービスは、プロビジョニングサービスとコンタクト(contact)して、プロビジョニングオペレーションにおけるリーダーを判定してもよい。プロビジョニングサービスは、RIDマスターサーバー上の共有ロックファイルを通じて単一のリーダーを選択することと、選択されたリーダーの確認を定期的に行い、いつでも複数のリーダーがアクティブとならないよう保証することとを提供してもよい。関係するデータは、データ格納部419へ格納されること、および/またはデータ格納部419から読み出されることが、直接またはデータベースサーバー418を通じて行われてもよい。
ネットワーク410は、サーバーの任意のトポロジー、クライアント、インターネットサービスプロバイダー、および通信媒体を備えてもよい。実施例に準じたシステムは、静的または動的なトポロジを有してもよい。ネットワーク410は、企業ネットワークのようなセキュアなネットワーク、無線オープンネットワークのようなアンセキュアなネットワーク、またはインターネットを含んでもよい。また、ネットワーク410は(とりわけ、サーバーとモバイルデバイスとの間では)、セルラーネットワークを含んでもよい。さらに、ネットワーク410は、Bluetooth(登録商標)またはそれに類似するネットワークような短距離無線ネットワークを含んでもよい。ネットワーク410は、本明細書で説明したノード間における通信を提供してもよい。例として、ネットワーク410は、音波、RF、赤外線、およびその他の無線媒体のような無線媒体を含んでもよいが、それらに限定されない。
コンピューティングデバイス、アプリケーション、データソース、およびデータ配信システムのその他多くの構成が配備されて、プロビジョニングサービスのためのリーダーアービトレーションを提供するプラットフォームを実装してもよい。さらに、図4で述べたネットワーク環境は、単に例示を目的としているものである。実施例は、アプリケーション、モジュール、またはプロセスの例に限定されない。
図5および関連する議論は、実施例が実装されうる適切なコンピューティング環境の簡潔かつ一般的な説明を提供することを意図する。図5を参照すると、実施例に準じて、アプリケーションに対するコンピューティングオペレーション環境のブロック図が表される(例えば、コンピューティングデバイス500)。基本的な構成では、コンピューティングデバイス500は、実施例に準じたディレクトリーサービスを提供するサーバーであってもよく、少なくとも1つのプロセッシングユニット502およびシステムメモリー504を含んでもよい。また、コンピューティングデバイス500は、実行中のプログラムと協働する複数のプロセッシングユニットを含んでもよい。厳密な構成およびコンピューティングデバイスのタイプに応じて、システムメモリー504は揮発性(例えば、RAM)、不揮発性(例えば、ROMおよびフラッシュメモリーなど)、またはその2つの一部の組み合わせであってもよい。システムメモリー504は、主としてプラットフォームのオペレーションを制御するのに適したオペレーティングシステム505(例えば、本件出願人提供のウインドウズ(登録商標)オペレーティングシステム、またはそれと類似するオペレーティングシステム)を含んでもよい。また、システムメモリー504は、1または複数のソフトウェアアプリケーション(例えば、プログラムモジュール506、プロビジョニングサービス522、およびロックファイル524)を含んでもよい。
プロビジョニングサービス522は、ディレクトリーサービス環境におけるシステム内でのサービスからの要求を仲裁(arbitrate)してもよい。第1のサービスから要求を受信すると、プロビジョニングサービス522は、当該第1のサービスが共有ロックファイル524へ書き込みを行うことを可能とさせてもよい。共有ロックファイル524は、その他のサービスに対し第1のサービスがリーダーロールを有することを指示する。また、ロックファイル524へ再書き込みを行うことにより、第1のサービスがそのサービスのロールを所定の期間、延長することを可能とさせてもよい。その他のサービスは、定期的にファイルをチェックし、第1のサービスがそのサービスのロールを明け渡すまでパッシブのままでいてもよい。それから、別のサービスはロックファイル524への書き込みを行い、リーダーロールを引き継ぐなどとしてもよい。この基本的な構成は、波線508内のコンポーネントにより図5で表される。
コンピューティングデバイス500は、追加の特徴および機能性を有してもよい。例えば、コンピューティングデバイス500はまた、追加のデータストレージデバイス(着脱可能および/または着脱不能)、例えば、磁気ディスク、光学ディスクまたはテープを含んでもよい。このような追加の記憶装置は、着脱可能記憶装置509および着脱不能記憶装置510により、図5で表される。コンピューター可読記憶媒体は、情報を格納するための任意の方法または技術で実装される揮発性および不揮発性、ならびに着脱可能および着脱不能媒体(例えば、コンピューター可読命令、データ構造、プログラムモジュール、またはその他のデータ)を含んでもよい。システムメモリー504、着脱可能記憶装置509、および着脱不能記憶装置510は、コンピューター可読記憶媒体の全ての例となる。コンピューター可読記憶媒体は、所望の情報を格納するのに使用され、コンピューティングデバイス500によりアクセスすることができるRAM、ROM、EEPROM、フラッシュメモリー、もしくはその他のメモリー技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくはその他の光学記憶装置、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶装置、またはその他の磁気記憶装置を含むがこれらに限定されない。このような任意のコンピューター可読記憶媒体は、コンピューティングデバイス500の一部であってもよい。また、コンピューティングデバイス500は、入力デバイス512(例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、およびこれらと同等の入力デバイス)を有してもよい。また、出力デバイス(例えば、ディスプレイ、スピーカー、プリンター、およびその他のタイプの出力デバイス)が含まれてもよい。これらのデバイスは、当分野において周知であり、本明細書でこれ以上述べる必要はない。
また、コンピューティングデバイス500は、通信コネクション516を包含してもよく、当該通信コネクション516により、デバイスがその他のデバイス518と通信できるようになる(例えば、分散コンピューティング環境における無線または有線ネットワーク、サテライトリンク、セルラーリンク、短距離ネットワーク、およびこれらと同等のメカニズム上で)。その他のデバイス518は、通信アプリケーションを実行するコンピューターデバイス、その他のサーバー、およびこれらと同等のデバイスを含んでもよい。通信コネクション516は、通信媒体の1つの例である。通信媒体は、その中にコンピューター可読命令、データ構造、プログラムモジュール、またはその他のデータを含むことができる。例として、通信媒体は無線媒体(例えば、無線ネットワークまたは直接無線通信、ならびに音波、RF、赤外線およびその他の無線媒体のような無線媒体を含むがこれらに限定されない。
例示的な実施例は、方法をも含む。これらの方法は、本ドキュメントで説明する構造を含む任意の数の方式で実装することができる。このような方式の1つは、本ドキュメントで説明するタイプのデバイスのマシンオペレーションにより実装される。
別の選択的な手法は、一部がヒューマンオペレーションにより実行されるとともに、実行される方法の個々のオペレーションのうちの1つまたは複数に対してなされる。これらのヒューマンオペレーションは、互いになされる必要はなく、各々が単にプログラムの一部分を実行するマシンによりなされる。
図6は、実施例に準じたプロビジョニングサービスのためのリーダーアービトレーションのプロセス600についての論理フロー図を表す。プロセス600はディレクトリーサービスの一部として実装されてもよい。
プロセス600は、オペレーション610で始まり、当該オペレーションでは、ドメインにおいてサービスの組のうちの1つから要求が受信される。プロビジョニングサービスは、オペレーション620で、要求サービスがRIDマスターサーバーで保持されるロックファイルへ書き込みを行うことを可能とさせ、かつ要求サーバーに対しリーダーとして指令してもよい。リーダーサービスは、ロックファイルへ定期的に再書き込みを行うことにより、当該サービスのポジションを延長してもよい。
オペレーション630では、プロビジョニングサービスは、共有ロックファイルへの書き込みを試みる形式で、別のサービスから別の要求を受信してもよい。判定オペレーション640で判定するように、リーダーサービスの記録がいまだにロックファイルにある場合に(例えば、サービスがアクティブでありいまだにリーダーである)、プロビジョニングサービスは、新規のサービスがロックファイルへ書き込みを行うことを拒否してもよい。そのサービスは、パッシブのままとなり、所定の期間経過後に再度、チェックを行ってもよい。前のプロビジョニングサービスがもはやアクティブでなく、またはそのリーダーシップが何らかの理由で取り消しとなる場合は、オペレーション650で、プロビジョニングサービスにより、新規のサービスがロックファイルへの書き込みを行い、新規のリーダーとなることを許可することができる。
プロセス600に含まれるオペレーションは、例示目的のためとなる。プロビジョニングサービスのためにリーダーアービトレーションを提供することは、少数のまたは追加ステップと類似するプロセスにより実装されてもよく、また本明細書で説明したプリンシパルを使用して、オペレーションの様々な命令において実装されてもよい。
上記明細書、例、およびデータは、実施例の組成物の製造および使用の完全な説明を提供する。請求対象は、構造的特長および/または方法論的動作に特有の言語において説明されてきたが、添付の請求項において定義される請求対象は、必ずしも説明された特定の特長または動作に限定されないことを理解されたい。そうではなく、上記説明した特定の特長および動作は、請求項を実施する例示的な形態として開示される。

Claims (20)

  1. ンピューティングデバイスで実行され、プロビジョニングサービスにおいてリーダーアービトレーションを提供する方法であって、
    第1のサービスから要求を受信するステップと、
    前記第1のサービスが、共有ロックファイルへの書き込みによりリーダーロールを引き受けることを可能とさせるステップと、
    第2のサービスから別の要求を受信するステップと、
    前記共有ロックファイルのレコードに基づき、前記第1のサービスがいまだに前記リーダーロールを有している場合に、前記第2のサービスが前記リーダーロールを引き受けることを拒否するステップと、さもなければ、
    前記第2のサービスが、前記共有ロックファイルへ書き込みを行い、前記第2のサービスが前記リーダーロールを引き受けること、を可能とさせるステップと、
    前記第1のサービスと前記第2のサービスとの間でマルチマスターレプリケーションを通じて前記第1のサービスおよび前記第2のサービスのうちの少なくとも1つにおける変化をレプリケートするステップと、
    を備える方法。
  2. 第1の所定の期間経過後、前記第1のサービスが、前記共有ロックファイルへの書き込みにより前記第1のサービスのリーダーロールを延長することを可能とさせるステップをさらに備えることを特徴とする請求項1に記載の方法。
  3. 第2の所定の期間経過後、前記第2のサービスが前記共有ロックファイルをチェックすることを可能とさせるステップをさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記第2の所定の期間は前記第1の所定の期間よりも長いことを特徴とする請求項3に記載の方法。
  5. 前記リーダーロールを引き受けることができない場合に前記第2のサービスはパッシブモードのままであることを特徴とする請求項3に記載の方法。
  6. 前記共有ロックファイルは、ディレクトリーサービス環境内におけるドメインのシングルトンサーバーに格納されることを特徴とする請求項1に記載の方法。
  7. 前記シングルトンサーバーは、セキュリティー関連識別子(RID)を前記ドメインのドメインコントローラーに割り当てるRIDマスターサーバーであることを特徴とする請求項6に記載の方法。
  8. 前記シングルトンサーバーは、物理サーバーおよび仮想サーバーのうちの1つであることを特徴とする請求項6に記載の方法。
  9. 前記シングルトンサーバーを別のシングルトンサーバーに置き換えるステップと、
    前記共有ロックファイルをその他のシングルトンサーバーに転送するステップと、
    前記その他のシングルトンサーバーにおける前記共有ロックファイルを通じて、前記リーダーアービトレーションが継続されて、前記リーダーアービトレーションが円滑になるように、前記ドメイン内のサーバーに通知するステップと、
    をさらに備える請求項6に記載の方法。
  10. 前記リーダーアービトレーションはディレクトリーサービス環境内でリソース割り当てのために使用される請求項1に記載の方法。
  11. プロビジョニングサービスにおいてリーダーアービトレーションを提供するシステムであって、
    ディレクトリーサーバーの第1のプロセッサにおいてディレクトリーサービスをホスティングするディレクトリーサーバーであって、前記ディレクトリーサーバーは、
    リソースアロケーション(resource allocation)のために、リーダーアービトレーションタスクをドメイン内の単一のサーバーに割り当てるように構成され、前記単一のサーバーは、前記リーダーアービトレーションタスクを前記第1のプロセッサにおいて円滑にするために共有ロックファイルを保持する、ディレクトリーサーバーと、
    第1のサーバーの第2のプロセッサにおいて第1のサービスをホスティングする第1のサーバーであって、前記第1のサービスは、
    前記第2のプロセッサにおいて前記共有ロックファイルへの書き込みによりリーダーロールを引き受けることと、
    前記第2のプロセッサにおいて第1の所定の期間経過後、前記共有ロックファイルへの再書き込みにより前記リーダーロールを延長することと、を行うように構成される第1のサーバーと、
    第2のサーバーの第3のプロセッサにおいて第2のサービスをホスティングする第2のサーバーであって、前記第2のサービスは、
    前記第3のプロセッサにおいて前記リーダーロールを引き受けるために前記共有ロックファイルへの書き込みを試みることと、
    前記第3のプロセッサにおける変化のプル(pull)レプリケーションを開始するために前記第1のサーバーにシグナルを送ることと、
    前記第3のプロセッサにおいて前記試みが失敗した場合に、パッシブモードのままでいることと、
    前記第3のプロセッサにおいて第2の所定の期間経過後、前記リーダーロールを引き受けるために前記共有ロックファイルへの書き込みを再度試みることと、を行うように構成される第2のサーバーと、
    を備えるシステム。
  12. 前記ディレクトリーサービスは、
    前記単一のサーバーが機能しなくなることに応じて、前記第1のプロセッサにおいて前記単一のサーバーのロールの転送、および剥奪のうちの1つを行うことと、
    前記第1のプロセッサにおいて前記ロールを別の単一のサーバーに割り当てることと、
    前記第1のプロセッサにおいて前記共有ロックファイルをその他の単一のサーバーに転送することと、
    前記第1のプロセッサにおいて前記単一のサーバーの変更に関して、前記ドメイン内のサーバーに通知することと、
    を行うようにさらに構成される請求項11に記載のシステム。
  13. 前記第2の所定の期間は、前記ドメイン内の前記サーバーの通知のために、予想される最悪のケースの待ち時間に基づいて判定されることを特徴とする請求項12に記載のシステム。
  14. 前記単一のサーバーは、
    前記ドメインのドメインコントローラーにセキュリティーRIDを割り当てるように構成されるRIDマスターサーバーと、
    前記ドメインにおけるパスワード変更を処理するように構成されるプライマリドメインコントローラー(PDC)サーバーと、
    ドメイン間相互に参照されるオブジェクトについてのセキュリティーID、グローバルユーザーID(GUID)、およびドメインネームの組からのうちの少なくとも1つを保持するように構成されるインフラストラクチャーマスターサーバーと、
    のうちの1つであることを特徴とする請求項11に記載のシステム。
  15. 前記ディレクトリーサービスはアクティブディレクトリーサービスであることを特徴とする請求項14に記載のシステム。
  16. 前記ディレクトリーサービスは、
    前記第1のプロセッサにおいてポリシーを割り当てることと、
    前記第1のプロセッサにおいてソフトウェアを配備することと、
    前記第1のプロセッサにおいて前記ドメイン内の前記サーバーに更新を適用することと、
    を行うようにさらに構成されることを特徴とする請求項11に記載のシステム。
  17. 前記第1のサービスは、前記共有ロックファイルへの書き込みによりリーダーロールを引き受けた後、アクティブモードに遷移することを特徴とする請求項11に記載のシステム。
  18. ディレクトリーサービス環境内のプロビジョニングサービスにおいてリーダーアービトレーションを提供するための命令が格納されたコンピューター可読記憶装置であって、前記命令はコンピューターのプロセッサで実行されると、コンピューターに、
    リソースアロケーションのために、リーダーアービトレーションタスクをドメイン内のシングルトンサーバーに割り当てるステップであって、前記シングルトンサーバーは、前記リーダーアービトレーションタスクを円滑にするために共有ロックファイルを保持する、ステップと、
    第1のサービスインスタンスから要求を受信するステップと、
    前記第1のサービスインスタンスが、前記共有ロックファイルへの書き込みによりリーダーロールを引き受けることを可能とさせるステップと、
    前記第1のサービスインスタンスからの更新の要求を受信することに応じて、変化のプル(pull)レプリケーションを開始するために前記第1のサービスインスタンスにシグナルを送るステップと、
    第2のサービスインスタンスから別の要求を受信するステップと、
    前記共有ロックファイルのレコードに基づき、前記第1のサービスインスタンスがいまだに前記リーダーロールを有している場合に、前記第2のサービスインスタンスが前記リーダーロールを引き受けることを拒否するステップと、さもなければ、
    前記第2のサービスインスタンスが、前記共有ロックファイルへ書き込みを行い、前記第2のサービスインスタンスが前記リーダーロールを引き受けることを可能とさせるステップと、
    前記第2のサービスインスタンスから他の更新要求を受信することに応じて、他の変化の他のプルレプリケーションを開始するために前記第2のサービスインスタンスに他のシグナルを送るステップと、
    を実行させることを特徴とするコンピューター可読記憶装置。
  19. 前記命令は、
    第1の所定の期間経過後、前記第1のサービスインスタンスが前記共有ロックファイルへの再書き込みにより前記第1のサービスインスタンスのリーダーシップロールを延長することを可能とさせるステップと、
    第2の所定の期間経過後、前記第2のサービスインスタンスが前記共有ロックファイルをチェック可能にするステップであって、前記第2のサービスインスタンスは、前記リーダーロールの引き受けが不可能な場合にパッシブモードのままでいる、ステップをさらにコンピューターに実行させることを特徴とする請求項18に記載のコンピューター可読記憶装置。
  20. 前記ディレクトリーサービス環境内のディレクトリーサービスはアクティブディレクトリーサービスであり、前記シングルトンサーバーはRIDマスターサーバー、プライマリドメインコントローラー(PDC)サーバー、インフラストラクチャーマスターのうち1つを含むことを特徴とする、請求項18に記載のコンピューター可読記憶装置。
JP2013513204A 2010-06-03 2011-05-19 プロビジョニングサービスのためのリーダーアービトレーション Expired - Fee Related JP5848339B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/792,896 2010-06-03
US12/792,896 US20110302265A1 (en) 2010-06-03 2010-06-03 Leader arbitration for provisioning services
PCT/US2011/037078 WO2011152996A2 (en) 2010-06-03 2011-05-19 Leader arbitration for provisioning services

Publications (3)

Publication Number Publication Date
JP2013533536A JP2013533536A (ja) 2013-08-22
JP2013533536A5 JP2013533536A5 (ja) 2014-07-03
JP5848339B2 true JP5848339B2 (ja) 2016-01-27

Family

ID=45065338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013513204A Expired - Fee Related JP5848339B2 (ja) 2010-06-03 2011-05-19 プロビジョニングサービスのためのリーダーアービトレーション

Country Status (8)

Country Link
US (1) US20110302265A1 (ja)
EP (1) EP2577488A4 (ja)
JP (1) JP5848339B2 (ja)
KR (1) KR20130114575A (ja)
CN (1) CN102918519A (ja)
BR (1) BR112012030491A2 (ja)
RU (1) RU2012151501A (ja)
WO (1) WO2011152996A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US10708137B2 (en) 2014-08-07 2020-07-07 Ent. Services Development Corporation Lp Active directory topology creation
US10200258B2 (en) * 2014-08-14 2019-02-05 Juniper Networks, Inc. Transaction integrity for network services configuration
CN104506512B (zh) * 2014-12-15 2017-12-19 北京国双科技有限公司 用户标识的恢复方法和装置
CN105933379B (zh) * 2016-04-01 2018-10-09 浪潮电子信息产业股份有限公司 一种业务处理方法、设备及系统
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11042409B2 (en) 2019-02-06 2021-06-22 Red Hat, Inc. Leader election with lifetime term

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6457053B1 (en) * 1998-09-21 2002-09-24 Microsoft Corporation Multi-master unique identifier allocation
US6324571B1 (en) * 1998-09-21 2001-11-27 Microsoft Corporation Floating single master operation
ATE400026T1 (de) * 2002-09-10 2008-07-15 Exagrid Systems Inc Datenschutzverfahren und vorrichtung
US8495131B2 (en) * 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
EP1875676B1 (en) * 2005-04-25 2010-01-06 Thomson Licensing S.A. Routing protocol for multicast in a meshed network
US7562144B2 (en) * 2006-09-06 2009-07-14 International Business Machines Corporation Dynamic determination of master servers for branches in distributed directories
US9596301B2 (en) * 2006-09-18 2017-03-14 Hewlett Packard Enterprise Development Lp Distributed-leader-election service for a distributed computer system
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US8045486B2 (en) * 2008-05-15 2011-10-25 Solarwinds Worldwide, Llc Discovery and visualization of active directory domain controllers in topological network maps
US20100088130A1 (en) * 2008-10-07 2010-04-08 Yahoo! Inc. Discovering Leaders in a Social Network

Also Published As

Publication number Publication date
JP2013533536A (ja) 2013-08-22
KR20130114575A (ko) 2013-10-18
CN102918519A (zh) 2013-02-06
RU2012151501A (ru) 2014-06-10
EP2577488A4 (en) 2017-05-31
WO2011152996A3 (en) 2012-03-29
US20110302265A1 (en) 2011-12-08
EP2577488A2 (en) 2013-04-10
BR112012030491A2 (pt) 2016-08-09
WO2011152996A2 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
JP5848339B2 (ja) プロビジョニングサービスのためのリーダーアービトレーション
TWI473029B (zh) 可延伸及可程式化之多租戶服務結構
RU2421799C2 (ru) Безопасность в приложениях синхронизации равноправных узлов
EP2715971B1 (en) Automating cloud service reconnections
US8286157B2 (en) Method, system and program product for managing applications in a shared computer infrastructure
US10296595B2 (en) Multi-level namespace management system and method thereof for hybrid cloud storage systems
CN109479062B (zh) 混合云计算系统中的使用跟踪
US20080243847A1 (en) Separating central locking services from distributed data fulfillment services in a storage system
US20120078915A1 (en) Systems and methods for cloud-based directory system based on hashed values of parent and child storage locations
KR20170002441A (ko) Sfa-rest 인터페이스를 이용하는 파일 서비스 기법
US20160156631A1 (en) Methods and systems for shared file storage
EP2176777B1 (en) Processing write requests with server having global knowledge
CN103810444B (zh) 一种云计算平台中多租户应用隔离的方法和系统
CN111176788A (zh) Kubernetes集群的主节点的部署方法及系统
CN109542861B (zh) 一种文件管理方法、装置和系统
CN103916454A (zh) 在整个云架构中扩展组织边界
US20190098107A1 (en) Geographic location based user computing asset provisioning in distributed computing systems
WO2016127664A1 (zh) 一种访问控制方法和系统
RU2656739C1 (ru) Способ и система хранения данных
CN107959674B (zh) 网关设备、对第三方ldap服务器用户的访问控制方法及系统
Lakhe et al. Introducing Hadoop
CN108255968A (zh) 一种大数据并行文件系统的设计方法
US11868494B1 (en) Synchronization of access management tags between databases
Wozniak et al. Access control for a replica management database
Jiang et al. Design and implementation of an improved cloud storage system

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130703

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140516

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150318

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151126

R150 Certificate of patent or registration of utility model

Ref document number: 5848339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees