Sdílet prostřednictvím


Správa pracovního postupu

Správa pracovního postupu (WMS) je služba systému Windows, která poskytuje následující služby pro správu instancí služeb pracovních postupů:

  • Aktivace instancí služeb pracovních postupů: Služba WMS aktivuje instance služeb pracovních postupů v úložišti instancí, když se stanou aktivovatelnými. Instance služby pracovního postupu v úložišti instancí je považována za aktivovatelnou, pokud se stane spustitelnou a hostitel služby, jež instanci odpovídá, není spuštěn v místním počítači. V následujícím seznamu jsou uvedeny důvody pro to, aby se instance stala spustitelnou:

    • Instance je uvolněna a uložena v úložišti trvalosti, kde čeká na dokončení zpožděné aktivity, a tato zpožděná aktivita je dokončena.

    • Hostitel služby se vypne v době, kdy je instance zavedena.

    • Instance je uzamčena zámkem, jehož platnost vypršela.

  • Provádění uživatelských řídicích příkazů: Zprostředkovatel řízení instancí pro úložiště instancí přidává příkazy, které obdrží z rutin prostředí Windows PowerShell pro řízení instancí, do fronty v úložišti instancí. Tuto frontu zprostředkovatel řízení instancí vytváří a udržuje. Služba WMS načte příkazy z fronty, provede je a po úspěšném provedení je z fronty odstraní.

Ve zbývající části tohoto tématu jsou tyto služby vysvětleny podrobně. Informace o instalaci a konfiguraci služby WMS naleznete v tématu Instalace a konfigurace Správy pracovního postupu.

Aktivace instancí služeb pracovních postupů

Ve výchozím nastavení služba WMS automaticky vyhledává úložiště instancí, v nichž je třeba monitorovat aktivovatelné instance pracovních postupů. K provedení této úlohy používá prohledávání souborů Web.config na úrovni kořenového adresáře, webu a aplikace během spuštění služby a po změně některého z těchto konfiguračních souborů. Místo automatického vyhledávání úložišť instancí službou WMS můžete rovněž zadat konkrétní úložiště instancí, která má tato služba monitorovat.

Služba WMS vytvoří objekt InstanceStore a přihlásí se k odběru události HasActivatableWorkflowEvent pro každé vyhledané úložiště instancí. Úložiště instancí vyvolá událost HasActivatableWorkflowEvent, pokud najde v úložišti aktivovatelnou instanci pracovních postupů. Poté úložiště instancí zastaví monitorování až do doby, kdy bude v úložišti jednou volán příkaz QueryActivatableWorkflowsCommand.

Jakmile služba WMS přijme událost HasActivatableWorkflowEvent, provede pro dané úložiště instancí příkaz QueryActivatableWorkflowsCommand, aby byly získány parametry aktivace, jež se použijí k vytvoření hostitele pracovního postupu.

Potom služba WMS vyvolá službu Správa služby podporovanou aplikací, která obsahuje službu, jejíž instanci je třeba aktivovat, a předá jí parametry aktivace. Technologie AppFabric automaticky přidá službu Správa služby – službu technologie WCF – do všech aplikací, u kterých je povolen atribut serviceManagement. Služba Správa služby vystaví koncový bod aktivace služby, k němuž služba WMS přistupuje s použitím adresy, kterou vytvoří pomocí názvu webu, virtuální cesty k aplikaci a známé adresy koncového bodu aktivace služby. Služba WMS používá pro tento koncový bod vazbu protokolu net.pipe. Další informace o této službě naleznete v tématu Služba Správa služby.

Služba Správa služby aktivuje hostitele služeb pracovních postupů pomocí parametrů aktivace, jež obdrží ze služby WMS. Hostitel služby vytvoří úložiště instancí (například úložiště instancí pracovních postupů SQL) a vyvolá pro úložiště metodu, jež zavede instanci služby pracovního postupu z úložiště instancí do paměti.

Správa pracovního postupu – aktivace instancí

Upozornění

Služba WMS okamžitě načte všechny změny chování úložiště instancí pracovních postupů SQL a odpovídající definice úložiště instancí v konfiguračních souborech a zahájí monitorování těchto úložišť. Aplikace však bude nadále používat úložiště instancí, jež bylo určeno v chování úložiště instancí pracovních postupů SQL ve staré verzi konfiguračního souboru, dokud nebude doména aplikace recyklována. Doména aplikace je recyklována po uplynutí doby určené atributem delayNotificationTimeout v elementu httpRuntime. Pokud je například v atributu delayNotificationTimeout nastavena hodnota 5000 (<httpRuntime delayNotificationTimeout = "5000" />), nebude doména aplikace recyklována dalších 5000 sekund.

Upozornění

Zakážete-li aplikace nebo fondy aplikací obsahující celkově 1000 nebo více služeb, nebude služba WMS moci již aktivovat žádné aktivovatelné instance služeb. Řešením je před deaktivací nebo zakázáním aplikací či fondů aplikací pozastavit instance služeb, které patří do těchto aplikací nebo fondů aplikací.

Provádění uživatelských řídicích příkazů

Jestliže vydáte příkaz pro instanci služby pracovního postupu pomocí rutiny prostředí Windows PowerShell, přidá zprostředkovatel řízení instancí daný příkaz do fronty příkazů v úložišti instancí používaného příslušnou službou. Frontu příkazů udržuje zprostředkovatel řízení instancí.

Služba WMS automaticky vyhledává úložiště instancí, v nichž je třeba monitorovat příkazy. K provedení této úlohy používá prohledávání souborů Web.config na úrovni kořenového adresáře, webu a aplikace během spuštění a po změně některého z těchto konfiguračních souborů. Služba WMS vytvoří zprostředkovatele řízení instancí pro každé vyhledané úložiště instancí a v pravidelných intervalech se tohoto zprostředkovatele dotazuje na příkazy. Konkrétně služba WMS k získání příkazů vyvolá pro zprostředkovatele řízení instancí metodu BeginTryReceive.

Zprostředkovatel řízení instancí načte příkaz, ale neodstraní jej z fronty příkazů v úložišti instancí, a vrátí jej do služby WMS. Zprostředkovatel umístí na příkaz ve frontě příkazů zámek s krátkou dobou platnosti.

Služba WMS potom vyvolá příslušnou metodu koncového bodu řízení instancí, jenž je zveřejněn hostitelem služeb pracovních postupů, aby byl proveden příkaz pro cílovou instanci služby pracovního postupu. Služba WMS vyžaduje, aby u koncového bodu řízení instancí byla povolena vazba protokolu net.pipe a aby bylo povoleno zabezpečení přenosu. Služba WMS vytvoří adresu koncového bodu kombinací názvu webu, virtuální cesty ke službě a známé cesty ke koncovému bodu řízení instancí. Zprostředkovatel řízení instancí poskytuje název webu a informace o virtuální cestě ke službě. Vazba koncového bodu řízení instancí je pevně kódována na vazbu protokolu net.pipe.

Jestliže je příkaz úspěšně proveden, vyvolá služba WMS pro zprostředkovatele řízení instancí metodu Complete a zprostředkovatel odebere příkaz z fronty příkazů. Pokud se provedení příkazu nezdaří, vyvolá služba WMS pro zprostředkovatele řízení instancí metodu Abandon a je na zprostředkovateli, aby rozhodl, zda příkaz odebere z fronty příkazů, nebo jej v ní ponechá pro další opakování. Zprostředkovatel řízení instancí pro úložiště instancí pracovních postupů SQL zkouší příkaz opakovat pětkrát, než jej odebere z fronty příkazů. Pokud při provádění příkazu dojde k havárii služby WMS, platnost zámku po čase vyprší a příkaz může vybrat stejná instance služby WMS nebo jiná instance služby WMS později.

Správa pracovního postupu – spouštění příkazů

Jestliže je služba MS DTC (Microsoft Distributed Transaction Coordinator) povolena a služba MS DTC povolila příchozí a odchozí komunikaci, jsou řídicí příkazy instancí prováděny transakčním způsobem. Pokud například pozastavíte instanci služby pracovního postupu, je stav ve Správci služby IIS zobrazen nebo z rutiny vrácen jako Pozastaveno ihned po zpracování příkazu. Pokud je však služba MS DTC zakázána nebo není správně nakonfigurována, jsou řídicí příkazy instancí prováděny netransakčním způsobem. V tom případě nebude stav instance aktualizován na Pozastaveno, dokud nebude instance uvolněna a uložena v úložišti trvalosti, protože tato instance byla nečinná déle než zadanou dobu (nastavení Uvolnit instance při nečinnosti). Upozorňujeme, že pokud změníte nastavení služby MS DTC, bude třeba restartovat službu WMS, aby tato služba načetla aktualizované nastavení služby MS DTC.

Tip

Jestliže zjistíte, že některé řídicí příkazy instancí zůstávají ve stavu čekání déle, než je očekáváno, měli byste zkontrolovat, zda je na každém serveru v serverové farmě spuštěna služba WMS. Pokud je instance na určitém serveru spuštěna (podle informací o monitorování) a řídicí příkaz vydaný pro danou instanci není prováděn, je třeba zkontrolovat, zda je na daném serveru spuštěna služba WMS.

Upozornění

Správa pracovního postupu používá transakční příkazy, pokud je povoleno nastavení koordinátoru DTC Povolit příchozí a Povolit odchozí. Jestliže koordinátor DTC zakazujete, musí být toto nastavení explicitně zakázáno, aby byly použity netransakční příkazy.

Podpora pro prostředí serverových farem

Obvykle je v každém uzlu serverové farmy spuštěna jedna instance služby WMS. Instance služby WMS může monitorovat více úložišť instancí. V uzlu může být pod různými identitami systému Windows spuštěno více instancí služby WMS. Doporučujeme pro úložiště instancí v uzlu spouštět pouze jednu instanci služby WMS. Spustíte-li ve stejném uzlu více instanci služby WMS, jež monitorují stejné úložiště instancí, může to způsobit problémy se škálovatelností.

Instance, jež byla spuštěna v jednom uzlu dříve, může být vybrána službou WMS v jiném uzlu a být aktivována v tomto uzlu. Tento postup pomůže vyrovnávat zatížení služby WMS v serverové farmě.

Jestliže vydáte řídicí příkaz pro instanci pracovního postupu, příslušná instance pracovního postupu může či nemusí být spuštěna na některém místě ve farmě. Služba WMS doručí příkaz do počítače se spuštěným pracovním postupem nebo udělí místnímu počítači pokyn k zavedení pracovního postupu a provedení příkazu. Můžete tak vydávat instancím příkazy bez znalosti toho, ve kterém počítači je daná instance spuštěna.

Závislé funkce

Následující body se týkají Správy pracovního postupu (WMS):

  • Služba WMS aktivuje a provede příkazy pro instance služeb pracovních postupů, jež jsou hostovány pomocí elementu WorkflowServiceHost pouze v prostředí služby IIS či WAS. Služba WMS nepodporuje služby pracovních postupů, jež jsou hostovány pomocí jiného hostitele nebo v jiném hostitelském prostředí.

  • Služba WMS aktivuje instance služeb pracovních postupů, jež používají úložiště instancí pro trvalost trvanlivého stavu.

  • Služba WMS aktivuje instance služeb pracovních postupů, jež patří aplikaci poskytující službu Správa služby. Služba WMS používá službu Správa služby k aktivaci hostitele služby, který zavede instanci z úložiště instancí.

  • Služba WMS vyžaduje, aby byla k webu přidána vazba protokolu net.pipe a aby byl protokol net.pipe povolen u aplikaci obsahující službu. Pokud není protokol net.pipe u aplikace povolen, zaznamená služba WMS chybu do protokolu událostí.

  • Služba WMS vyžaduje, aby instance služby pracovního postupu vystavila koncový bod řízení instancí. Služba WMS používá tento koncový bod k vydávání příkazů pro instance služeb pracovních postupů, například příkazů k pozastavení a obnovení.

  • Služba WMS pracuje s jakýmkoli úložištěm instancí, jež je dodáno se zprostředkovatelem úložiště instancí a zprostředkovatelem řízení instancí.

  • Služba WMS vyžaduje, aby úložiště instancí vyvolalo událost HasActivatableWorkflowsEvent poté, co se instance stane aktivovatelnou.

Poznámka

Informace týkající se zabezpečení služby WMS naleznete v tématu Konfigurace zabezpečení pro úložiště trvalosti.

Zabezpečení

Správu pracovního postupu (WMS) je třeba připojit ke koncovému bodu řízení instancí, který je zveřejněn hostitelem služby pracovních postupů, aby bylo možné řídit instance služeb pracovních postupů, a ke koncovému bodu Správy služby, jenž je zveřejněn webovou aplikací, aby bylo možné spustit hostitele služeb pracovních postupů a potom zavést instance služeb pracovních postupů. Skupina AS_Administrators má přístup k oběma uvedeným koncovým bodům. Identifikátor zabezpečení (SID) Správy pracovního postupu technologie AppFabric je členem této skupiny. Není tedy nutné do skupiny AS_Administrators explicitně přidávat účet, pod kterým je služba WMS spuštěna.

V následujícím seznamu jsou uvedeny pokyny pro zabezpečení úložišť instancí a konfiguračních souborů, jež služba WMS používá:

  • Služba WMS načítá z konfiguračních souborů do paměti informace o konfiguraci včetně připojovacích řetězců. Služba WMS nyní nezpracovává šifrované připojovací řetězce, takže připojovací řetězec musí být v jednoduchém textovém formátu. Uživatel se zlými úmysly by mohl získat přístup k citlivým informacím (například uživatelské jméno a heslo v připojovacím řetězci) v paměti. Do připojovacího řetězce, který je definován v konfiguračním souboru, by proto neměly být zadávány citlivé informace.

    Pro připojovací řetězce, které jsou uloženy v souborech Web.config, doporučujeme použít integrované ověřování systému Windows. Pokud nemůžete použít integrované ověřování systému Windows a zadáváte uživatelské jméno a heslo v připojovacím řetězci definovaném v souboru Web.config, nastavte pro konfigurační soubory odpovídající seznamy řízení přístupu (ACL). Ujistěte se, že skupina AS_Administrators má přístup k souborům Web.config, ke kterým potřebuje přistupovat služba WMS. Je však nutné brát v úvahu, že nastavení seznamů řízení přístupu neznemožní uživateli se zlými úmysly přístup k informacím v připojovacím řetězci v paměti.

  • Povolte šifrovanou komunikaci SQL přidáním textu „;Encrypt=yes“ do připojovacího řetězce SQL. Používáte-li k vytvoření připojovacího řetězce třídu SqlConnectionStringBuilder, nastavte vlastnost Encrypt na hodnotu true. Podrobné informace o povolení šifrované komunikace na serveru naleznete na stránce https://go.microsoft.com/fwlink/?LinkID=187283 (stránka může být v angličtině). Pokud není komunikace mezi aplikací a systémem SQL Server zabezpečena, může uživatel se zlými úmysly zpracovávat nebo spouštět příkazy vůči databázi systému SQL Server.

  • Fronta příkazů neuchovává žádné informace o pověření. Uživatel, který je členem skupiny AS_Administrators, jež je namapována na roli SQL WorkflowAdministrators, má právo řídit všechny instance v úložišti instancí, nikoli nějaký konkrétní typ instancí. Instance, jež nemají být řízeny jinými uživateli, by tedy měly být uloženy v jiných úložištích instancí a role SQL WorkflowAdministrators pro tato úložiště instancí by měla být namapována na jiné skupiny systému Windows.

  • Po každé úpravě souboru Web.config služba WMS tento soubor načte a zkontroluje, zda do něj byly přidány nebo zda z něj byly odebrány definice úložiště. Doporučujeme omezit přístup pro zápis do souborů Web.config, abyste neoprávněným uživatelům zabránili spouštět zpracování souborů službou WMS.

  • Funkce monitorování v technologii AppFabric shromažďuje data v závislosti na úrovni sledování ve velkých rychlostech. Doporučujeme nepoužívat úložiště monitorování a úložiště trvalosti ve stejné databázi. Přetečení úložiště monitorování tak nebude mít vliv na podsystém trvalosti.

V následující tabulce jsou popsány role SQL, jež zabezpečují přístup k frontě příkazů a k databázi trvalosti. Obsah této tabulky se týká pouze úložiště instancí pracovních postupů SQL.

Role SQL Popis Skupina systému Windows

WorkflowAdministrators

Člen této role může zařazovat příkazy (přidávat příkazy) do fronty příkazů, jež je součástí databáze trvalosti. Uživatel, který chce řídit instance (například pomocí rutin prostředí Windows PowerShell), musí být členem této role.

AS_Administrators

WorkflowManagementServiceUsers

Člen této role může vyřazovat příkazy (načítat příkazy) z fronty příkazů. Účet, pod kterým je služba WMS spuštěna, musí být členem této role, aby služba WMS mohla načítat příkazy uložené ve frontě příkazů.

AS_Administrators

WorkflowActivationUsers

Člen této role může aktivovat instance služeb pracovních postupů, jež jsou uloženy v databázi trvalosti a jsou připraveny ke spuštění.

AS_Administrators

InstanceStoreObservers

Člen této role může do úložiště instancí zadávat dotazy na instance a načítat příkazy z fronty příkazů v úložišti.

AS_Administrators a AS_Observers

InstanceStoreUsers

Člen této role může zavádět instance a ukládat je. Akce zavedení a uložení provádí hostitel služby spouštějící pracovní postup.

Pokud jsou instance služby Služba1 uloženy v úložišti instancí Úložiště1, je nutné, aby fond aplikací Fond_aplikací1 spouštějící hostitele dané služby byl spuštěn pod identitou, jež má uživatelská práva v úložišti Úložiště1.

IIS_USRS

Návody k zabezpečení trvalosti s konkrétními scénáři naleznete v tématu Konfigurace zabezpečení pro úložiště trvalosti.

Další odkazy

Koncepty

Konfigurace zabezpečení pro úložiště trvalosti
Instalace a konfigurace Správy pracovního postupu

  2011-12-05