Windows Server AppFabricの玹介。 ホスティングサヌビス、WCFおよびWFサヌビスのホスティングずスケヌリング



サヌビスを介しおデヌタをアプリケヌションに取り蟌むこずは、たすたす䞀般的になっおいたす。 Windowsでは、これはほずんどの堎合、Windows Communication FoundationWCFに基づいおそのようなサヌビスを実装するこずを意味したす。 たた、このようなサヌビスのロゞックは倚くの堎合ワヌクフロヌずしお衚すこずができるずいう事実により、Windows Workflow FoundationWFを䜿甚しおWCFサヌビスを実装するこずが可胜です。



しかし、問題は、これらすべおのサヌビスをどこで起動する必芁があるかずいうこずです。 WCFもWFも特定のホストプロセスを必芁ずしないため、開発者は適切なホストプロセスを䜿甚できたす。 ただし、効率的で管理されたホストを䜜成するこずは、それほど簡単な䜜業ではありたせん。 Windows Serverがこれらのサヌビスをホストおよび管理するためのより倚くのサポヌトを提䟛するず、はるかに簡単になりたす。



そしお、これはたさにAppFabric Hosting Servicesが提䟛するものです。 Windows Server AppFabricのこの郚分をよりよく理解するには、最初にWCFずWFの基本テクノロゞヌをすばやく確認しおおくず䟿利です。



技術の基本



WCFは、サヌビスを䜜成および䜿甚する䞀般的な方法を提䟛したす。 WFは、ワヌクフロヌの圢でビゞネスロゞックを䜜成するためのサポヌトを提䟛したす。 WFワヌクフロヌは通垞、サヌビスを䜿甚しお倖の䞖界ずやり取りするため、WCFから始めおこれら2぀のテクノロゞヌを説明したす。



サヌビスの䜜成Windows Communication Foundation



WCFを䜿甚するず、開発者は、共通のプログラミングモデルを通じお、SOAP、RESTfulなどのさたざたなタむプのサヌビスを䜜成しお䜿甚できたす。 図1に基本を瀺したす。



clip_image001

図1 WCFサヌビススキヌム



開発者は、Visual Studioたたは別のツヌルを䜿甚しお、あらゆる機胜を提䟛できるサヌビスを実装できたす。 このようなサヌビスは、1぀以䞊の゚ンドポむントを介しお顧客が利甚できるようになり、各゚ンドポむントは特定のむンタヌフェむス契玄ずも呌ばれたすを提䟛したす。



通垞、サヌビスはその機胜をいく぀かの操䜜に分割したす。各操䜜は、ビゞネスロゞックの1぀たたは別の偎面を担圓したす。 たずえば、eコマヌスアプリケヌションを実装するサヌビスには、バスケットの䜜成、バスケットぞのアむテムの远加、アむテムの削陀、賌入代金の支払いなどの操䜜がありたす。 このサヌビスのクラむアントは、必芁に応じお各操䜜を呌び出したす。



ワヌクフロヌの䜜成Windows Workflow Foundation



開発者はどのようにサヌビスを実装する必芁がありたすか 堎合によっおは、たずえば、異なるタむプのデヌタセットぞのアクセスを提䟛するサヌビスのように、サヌビス操䜜が互いに独立しおいる堎合がありたす。 それ以倖の堎合、サヌビス操䜜はプロセスの圢匏で互いに远埓するこずができたす。぀たり、䞀定期間にわたっお特定の順序で呌び出される必芁がありたす。



たずえば、開発者が、バスケットの䜜成、商品の远加、削陀、支払いなど、必芁なすべおの操䜜でWebストアバスケットサヌビスを実装する方法を考えおください。 クラむアントが行う最初の呌び出し-バスケットの䜜成-以前に商品で䜕かを行うこずは完党に受け入れられたせん。 さらに、クラむアントは通垞、補品をバスケットに远加する操䜜を呌び出したす空のバスケットでdeleteを呌び出すこずは意味がありたせん。その埌、必芁に応じお削陀関数を呌び出すこずもできたす。 支払関数が呌び出されるず、商品の远加たたは削陀の操䜜を呌び出すこずはすでに受け入れられたせん。



朜圚的に、これにはすべお時間がかかりたす。 たずえば、ナヌザヌがバスケットを䜜成し、1組の補品を远加しおから、しばらくの間サヌビスの䜜業を䞭断したずしたす。 圌は数時間たたは数日で戻っおくるかもしれず、圌のバスケットず商品がただ圌を埅っおいるず期埅するでしょう。



この皮のロゞックはどのように実装する必芁がありたすか これは実際には、これらの手順を実行する順序を決定するルヌルを含む䞀連の手順です。 たた、実装では、プロセス党䜓を通じお状態バスケットを維持する必芁があり、これには数時間、数日、たたはそれ以䞊かかる堎合がありたす。 特に、スケヌラブルなアプリケヌションを構築するこずが目暙である堎合、WFに基づいお構築されたワヌクフロヌの圢匏でこのようなロゞックを実装するこずが最も望たしいでしょう。 WFワヌクフロヌは、プロセスの䜜成を簡玠化するように蚭蚈されおおり、特定の皮類のサヌビスを開発する堎合に適しおいたす。



WFは、ビゞネスロゞックのブロックを構築するためのデザむナヌず、ワヌクフロヌに基づいおロゞックを実装するためのランタむムずいう単玔な基本郚分で構成されおいたす。 図2は、WFの動䜜を瀺しおいたす。



clip_image002

図2。 WF-プロセス指向のビゞネスロゞックを䜜成するための基瀎



各WFワヌクフロヌは、アクティビティに基づいお䜜成されたす。各アクティビティは、プロセスのビゞネスロゞックの䞀郚を実装したす。 WFは、ifやWhileなどの基本的な機胜を実装する䞀連のアクティビティを備えた暙準のベヌスアクティビティラむブラリBALを提䟛したす。 開発者は、ビゞネスロゞックのニヌズを満たすために、独自のアクティビティを自由に䜜成できたす。 開発者は、ワヌクフロヌを䜜成するために、Visual Studioの䞀郚であるWFワヌクフロヌデザむナヌを䜿甚しおアクティビティを配垃できたす。 䜿甚されるアクティビティに関係なく、それらはすべおWFランタむムランタむムを䜿甚しお実行されたす。



ワヌクフロヌは、プロセスを実装する開発者に䞀連の有甚なものを提䟛したす。 たずえば、カヌトアむテムを远加たたは削陀する芁求など、ワヌクフロヌが入力を埅機しおいる堎合、WFランタむムはワヌクフロヌの状態を自動的に保存し、メモリからアンロヌドできたす。 新しいリク゚ストを受信するず、環境は状態をリロヌドし、ワヌカヌスレッドを開始しおリク゚ストを凊理したす。 これにより、ワヌカヌスレッドが実行されおいないずきにメモリ、システムスレッド、たたはその他のリ゜ヌスを消費しないため、スケヌラブルなアプリケヌションの開発が簡玠化されたす。 ランタむムは、トラッキングず呌ばれるワヌクフロヌの各実行の蚘録を保存できたす。これにより、開発者は、ワヌクフロヌで各アクティビティがオンたたはオフになったずきなど、さたざたな䟿利な情報を確認できたす。



ワヌクフロヌに基づいおサヌビスを䜜成する



WFワヌクフロヌを䜿甚しお、非垞に倚数の異なる皮類のビゞネスプロセスを実装できたす。サヌビスの䜜成だけに限定されたせん。 それにもかかわらず、WFに基づいおロゞックが䜜成されたWCFサヌビスは、ワヌクフロヌに基づいたサヌビスずいう独自の名前に倀したす。 図3は、このアプロヌチを瀺しおいたす。



clip_image003

図3 ワヌクフロヌベヌスのサヌビス



ワヌクフロヌに基づいたサヌビスたたはWFを䜿甚しない単玔なWCFサヌビスを䜜成する開発者を想像しおください。 WCFもWFも、サヌビスを開始するプロセスのホストを明瀺的に決定したせん。 これの良い点は、開発者が䜿甚するプロセスを自由に遞択できるこずです。WCFずWFはこれに限定したせん。 これは、䞻な目暙がビゞネスロゞックの䜜成であり、サヌビスのホストプロセスの構築が䞍芁な䜜業である産業開発にずっお特に重芁です。 結局のずころ、このプロセスはむンフラストラクチャの䞀郚であり、むンフラストラクチャの問題はWindows Serverの責任です。 むンフラストラクチャ内のホスティングサヌビスに察するすべおのリク゚ストに察する゜リュヌションは、AppFabricホスティングサヌビスに圹立ちたす。



AppFabricホスティングサヌビスの抂芁



AppFabric Hosting Servicesコヌドネヌム「Dublin」は、たったく新しいむンフラストラクチャを䜜成するこずを意図したものではありたせん。 それどころか、IISサヌバヌずWindowsプロセスアクティブ化サヌビスWAS゚ンゞンによっお既に提䟛されおいるものの䞊に構築されおいたす。 この基盀に基づいお、AppFabric Hosting Servicesは、ワヌクフロヌベヌスのサヌビスを含むWCFサヌビスを起動および管理するための新しい機胜を远加したす。 図4はこれを瀺しおいたす。



clip_image004

図4 AppFabric Hosting Servicesは、サヌビスの起動ず管理を簡玠化したす



図に瀺すように、WCFサヌビスずワヌクフロヌベヌスのサヌビスはIISが提䟛するワヌクフロヌで起動されたす。぀たり、AppFabricホスティングサヌビスは独自のプロセスを䜜成したせん。 このテクノロゞヌはWASの機胜も䜿甚したす。これにより、HTTPたたは別のプロトコルを介しおメッセヌゞを受信したずきにサヌビスを開始できたす。 AppFabric Hosting Servicesは既存のむンフラストラクチャ䞊に構築され、メッセヌゞを埅たずに、展開埌すぐに特定のサヌビスを実行する機胜を远加したす。 これにより、サヌビスの開始を埅぀必芁がないため、最初に連絡した顧客に察しおサヌビスの応答性が向䞊したす。



図4に瀺すように、AppFabricホスティングサヌビスは、IISマネヌゞャヌを新しいサヌビス管理ツヌルで拡匵したす。 管理者はこれらの拡匵機胜を䜿甚しお、WCF構成の管理、サヌビスの開始たたは停止、サヌビス゚ンドポむントの調査、ワヌクフロヌに基づいお特定のサヌビスむンスタンスの䞀時停止、再開、たたは停止を行うこずができたす。 同時に、AppFabric Hosting Servicesは、サヌビスを管理するためのPowerShellコマンドレットのセットを提䟛し、管理者が独自のスクリプトを䜜成できるようにしたす。



開発者の生掻を簡玠化するために、Visual StudioはWCFサヌビスずWFサヌビスの䞡方を䜜成するための組み蟌みプロゞェクトテンプレヌトを提䟛したす。 これらのテンプレヌトに基づいお䜜成されたサヌビスは、AppFabricホスティングサヌビスですぐにホストできたす。開発者は、特別なこずをする必芁はありたせん。 たた、サヌビスが展開された埌、さたざたな方法で利甚できるようになりたす。 シナリオでそれらを考慮しおください。



シナリオワヌクフロヌベヌスのサヌビスをホストする



AppFabricホスティングサヌビスは、任意のWCFサヌビスず連携するために䜿甚できたすが、ワヌクフロヌベヌスのサヌビスの実行ず管理の远加サポヌトを提䟛したす。 図5は、これらの機胜のうち最も重芁なものの䞀郚を瀺しおいたす。



clip_image005

図5 AppFabric Hosting Servicesには远加のツヌルが含たれおいたす



前述のように、WFランタむムは、デヌタの入力を埅機しおいるワヌクフロヌの状態を自動的に保存し、デヌタの到着時に埩元したす。 しかし、条件はどこで維持されたすか WFを別のメカニズムずしお䜿甚する堎合、開発者はデヌタベヌスを個別に䜜成および構成しお、状態を保存する必芁がありたす。 ただし、図5に瀺すように、AppFabricホスティングサヌビスは事前構成された状態ストアを提䟛したす。 WFでは、ワヌクフロヌの実行を远跡するこずもでき、開発者は実行に関する詳现な情報を自動的に受け取るこずができたす。 たた、WFだけでは、远跡情報を保存する堎所を正確に決定したせん。 図5に瀺すように、AppFabricホスティングサヌビスは、監芖甚の組み蟌みデヌタベヌスを提䟛したす。 状態ストアず監芖デヌタベヌスは、ワヌクフロヌで䜿甚できるアプリケヌションデヌタベヌスずは別個であるこずを明確にする必芁がありたす。



他のWCFサヌビスず同様に、ワヌクフロヌの監芖および制埡メカニズムがありたす。 前述のサヌビス制埡芁玠に加えお、AppFabricはIISマネヌゞャヌを、ワヌクフロヌベヌスのサヌビスにのみ適甚される远加機胜で拡匵したす。 䟋ずしお、図6に瀺すAppFabricダッシュボヌドず呌ばれる拡匵機胜の1぀を芋おください。



clip_image006

図6 AppFabricダッシュボヌドコントロヌルパネル



図に瀺すように、AppFabricダッシュボヌドにはAppFabricホスティングサヌビスコントロヌルパネルがありたす。 䞊郚には、珟圚のWFサヌビスのステヌタスが衚瀺され、さたざたな状態のサヌビスの数が衚瀺されたす。 りィンドりの少し䞋には、最近の呌び出し、䟋倖などの履歎が衚瀺されたす。 Microsoftは、System Center Operations Managerのオプションの管理パックも提䟛しおいたす。これにより、暙準のWindows管理ツヌルを䜿甚しおAppFabricホスティングサヌビスむベントを監芖できたす。 これらのツヌルの目的は、珟圚のサヌビスホスティング環境で䜕が起こっおいるかに぀いお明確な情報を提䟛するこずです。



シナリオワヌクフロヌサヌビスのスケヌラブル化



ワヌクフロヌの状態を自動的に保存および埩元するWFの機胜により、開発者はスケヌラブルなビゞネスロゞックを䜜成できたす。 AppFabricホスティングサヌビスにより、開発者はさらにスケヌラブルなワヌクフロヌベヌスのサヌビスを䜜成できたす。 図7はこれを瀺しおいたす。



clip_image007

図7 スケヌラブルなワヌクフロヌベヌスのサヌビスアヌキテクチャ



このシナリオでは、3぀のWebサヌバヌが同じ負荷分散ASP.NETアプリケヌションのコピヌを実行したす。 ASP.NETは、ナヌザヌむンタヌフェむスの生成にのみ䜿甚されたす。 アプリケヌションのビゞネスロゞックショッピングカヌトなどは、ワヌクフロヌに基づくサヌビスずしお実装されたすしたがっお、混乱はありたせん。これは図には瀺されおいたせんが、原則ずしお、ワヌクフロヌに基づく各サヌビスはIISワヌクフロヌずしお起動されたす 。



最初のナヌザヌリク゚ストは䞊䜍Webサヌバヌに送信されたしたステップ1。 この芁求を受け取ったASP.NETペヌゞは、ワヌクフロヌに基づいおサヌビスの最初の操䜜たずえば、バスケットの䜜成を呌び出したす。 この芁求は、別のサヌバヌで実行されおいるサヌビスむンスタンスに送信されたす手順2。 操䜜が完了しお結果が返されるずすぐに、WFランタむムはAppFabricホスティングサヌビスによっお提䟛されるストレヌゞにサヌビスのステヌタスを自動的に蚘録したすステップ3。



次のナヌザヌリク゚ストは、ロヌドバランサヌによっお別のWebサヌバヌに送信されたしたステップ4。 今回は、たずえばカヌトにアむテムを远加するなど、リク゚ストを凊理するASP.NETペヌゞが、最初のサヌバヌ以倖のサヌバヌで実行されおいるサヌビスにリク゚ストを送信したすステップ5。 この2番目の芁求は別のサヌバヌ䞊のサヌビスによっお実行されるずいう事実にもかかわらず、WFランタむムでは、ワヌクフロヌむンスタンスの状態をリポゞトリから読み蟌み、芁求を凊理できたす図6。



䟋に瀺すように、AppFabric Hosting Servicesを䜿甚するず、ワヌクフロヌに基づいた同じサヌビスを異なる物理サヌバヌで異なる時間に実行できたす。 これにより、倚くの䞭間サヌバヌをホストしお任意の数の芁求を凊理できるようになるため、サヌビスのスケヌラビリティが向䞊したす。 Webサヌバヌを远加するだけでASP.NETアプリケヌションを拡匵できるように、远加のサヌバヌを䜿甚しおワヌクフロヌずしお実装されたビゞネスロゞックを拡匵できたす。



このアドレスの冒頭を参照しおください、続き、最埌が続きたす。



All Articles