Aracılığıyla paylaş


İş Akışı Yönetimi Hizmeti

İş Akışı Yönetimi Hizmeti (WMS), iş akışı hizmet örnekleri için aşağıdaki yönetim hizmetlerini sunan bir Windows hizmetidir:

  • İş akışı hizmet örneklerinin etkinleştirilmesi. WMS, örnekler etkinleştirilebilir hale geldiği zaman örnek deposundaki iş akışı hizmet örneklerini etkinleştirir. Bir örnek deposundaki iş akışı hizmet örneği, örnek çalıştırılabilir hale gelirse ve örnekle eşleşen bir hizmet konağı yerel bilgisayarda çalışmıyorsa etkinleştirilebilir olarak kabul edilir. Aşağıdaki listede, bir örneğin çalıştırılabilir olmasını sağlayan nedenler yer almaktadır:

    • Örnek, bir gecikme etkinliğinin tamamlanmasını beklerken kaldırılıp kalıcı hale getirildikten sonra gecikme etkinliği tamamlanır.

    • Örnek yüklüyken hizmet konağı kapatılır.

    • Örneğin üzerinde süresi dolmuş bir örnek kilidi vardır.

  • Kullanıcı denetim komutlarının yürütülmesi. Bir örnek deposu için örnek denetimi sağlayıcısı Windows PowerShell örnek denetimi cmdlet'lerinden aldığı komutları, örnek deposunda sıraya ekler. Bu sıra, örnek denetim sağlayıcısı tarafından oluşturulur ve korunur. WMS sıradaki komutları alır, yürütür ve komut yürütme işlemi başarılıysa komutları sıradan siler.

Konunun geri kalanında bu hizmetler ayrıntılı olarak açıklanmaktadır. WMS'yi yükleme ve yapılandırma hakkında bilgi edinmek için bkz. İş Akışı Yönetimi Hizmeti'ni Yükleme ve Yapılandırma.

İş Akışı Hizmet Örneklerinin Etkinleştirilmesi

Varsayılan olarak, WMS etkinleştirilebilir iş akışı örneklerini izlemek için ihtiyaç duyduğu örnek depolarını otomatik olarak bulur. Bunu hizmetin başlangıcında ve bu yapılandırma dosyalarından biri değiştirildiğinde kök, site ve uygulama düzeylerinde Web.config dosyalarını tarayarak gerçekleştirir. WMS'nin örnek depolarını otomatik olarak bulmasını istemiyorsanız, izlemesini istediğiniz belirli örnek depolarını da belirleyebilirsiniz.

WMS, bulduğu her örnek deposu için bir InstanceStore nesnesi oluşturur ve HasActivatableWorkflowEvent olayına abone olur. Bir örnek deposu, depoda etkinleştirilebilir bir iş akışı örneği bulduğunda HasActivatableWorkflowEvent'i tetikler. Bundan sonra örnek deposu, QueryActivatableWorkflowsCommand depoda bir kez çağrılana dek izlemeyi durdurur.

WMS, HasActivatableWorkflowEvent aldığı zaman bir iş akışı konağı oluşturmak için kullandığı etkinleştirme parametrelerini almak için örnek deposunda QueryActivatableWorkflowsCommand komutunu yürütür.

WMS daha sonra örneği etkinleştirilecek olan hizmeti içeren uygulama tarafından desteklenen Hizmet Yönetimi Hizmeti'ni çağırır ve etkinleştirme parametrelerini ona aktarır. AppFabric, bir WCF hizmeti olan Hizmet Yönetimi Hizmeti'ni otomatik olarak serviceManagement özniteliği etkinleştirilmiş olan tüm uygulamalara ekler. Hizmet Yönetimi Hizmeti, bir Hizmet Etkinleştirme Uç Noktası sunar; WMS bu Uç Nokta'ya site adı, sanal uygulama yolu ve iyi bilinen Hizmet Etkinleştirme Uç Noktası adresi aracılığıyla oluşturduğu adresi kullanarak erişir. WMS bu uç nokta için net.pipe bağlamasını kullanır. Bu hizmet hakkında daha fazla bilgi için bkz. Hizmet Yönetimi Hizmeti.

Hizmet Yönetimi Hizmeti, WMS'den aldığı etkinleştirme parametrelerini kullanarak bir iş akışı hizmet konağını etkinleştirir. Hizmet konağı bir örnek deposu oluşturur (SQL İş Akışı Örnek Deposu gibi) ve iş akışı hizmet örneğini örnek deposundan belleğe yüklemek için depoda bir yöntem çağırır.

İş Akışı Yönetimi Hizmeti - Örnek Etkinleştirmeleri

Uyarı

WMS anında SQL İş Akışı Örnek Deposu (SWIS) davranışlarındaki değişiklikleri ve yapılandırma dosyalarında karşılık gelen örnek deposu tanımlarını alır ve bu depoları izlemeye başlar. Ancak bir uygulama, yapılandırma dosyasının eski sürümünde SWIS davranışında belirlenen örnek deposunu uygulama etki alanı geri dönüştürülene dek kullanmaya devam eder. Uygulama etki alanı, httpRuntime öğesinin delayNotificationTimeout özniteliği tarafından belirlenen süre tamamlandıktan sonra geri dönüştürülür. Örneğin, delayNotificationTimeout 5000 olarak ayarlandıysa (<httpRuntime delayNotificationTimeout = "5000" />), uygulama etki alanı ancak 5000 saniye sonra geri dönüştürülür.

Uyarı

Toplam 1000 veya daha fazla hizmet içeren uygulamaları veya uygulama havuzlarını devre dışı bırakırsanız WMS, artık etkinleştirilebilir hizmet örneklerini etkinleştirmeyebilir. Geçici çözüm, bu uygulama/uygulama havuzlarına ait olan hizmet örneklerini uygulamaları/uygulama havuzlarını devre dışı bırakmadan askıya almaktır.

Kullanıcı Denetim Komutlarının Yürütülmesi

Windows PowerShell cmdlet'i kullanarak bir iş akışı hizmet örneğine komut verdiğinizde, bir örnek denetimi sağlayıcısı komutu hizmet tarafından kullanılan örnek deposundaki bir komut sırasına ekler. Komut sırası, örnek denetim sağlayıcısı tarafından korunur.

WMS, komutlar için izlemesi gereken örnek depolarını otomatik olarak bulur. Bunu başlangıçta ve bu yapılandırma dosyalarından biri değiştirildiğinde kök, site ve uygulama düzeylerinde Web.config dosyalarını tarayarak gerçekleştirir. WMS, bulduğu her örnek deposu için bir örnek denetimi sağlayıcısı oluşturur ve düzenli aralıklarla sağlayıcıda komutları yoklar. Özel olarak WMS, komutları almak için bir örnek denetimi sağlayıcısında BeginTryReceive yöntemini çağırır.

Buna karşılık örnek denetimi sağlayıcısı bir komut alır, ancak bu komutu örnek deposundaki komut sırasından silmez ve komutu WMS'ye döndürür. Sağlayıcı, komut sırasında bulunan komuta kısa bir sona erme süresi olan bir kilit yerleştirir.

WMS daha sonra, komutu hedef iş akışı hizmet örneği için yürütmek üzere iş akışı hizmet konağı tarafından gösterilen Örnek Denetimi Uç Noktası'nın (ICE) uygun bir yöntemini çağırır. WMS, örnek denetimi uç noktasının bir net.pipe bağlamasını etkinleştirmesini ve aktarım güvenliğinin etkinleştirilmiş olmasını gerektirir. WMS site adı, sanal hizmet yolu ve iyi bilinen ICE yolunu birleştirerek bir uç nokta adresi oluşturur. Örnek denetimi sağlayıcısı, site adı ve sanal hizmet yolu bilgilerini sağlar. ICE bağlaması, net.pipe bağlamasında kodun içine eklenmiştir.

Komut yürütme işlemi başarılı olursa WMS, örnek denetimi sağlayıcısında Complete yöntemini çağırır ve sağlayıcı komutu komut sırasından kaldırır. Komut yürütme işlemi başarısız olursa WMS, örnek denetimi sağlayıcısında hata ile ilgili olarak Abandon yöntemini çağırır ve komutun komut sırasından kaldırılması veya yeniden denemeler için komut sırasında tutulması sağlayıcının kararına bağlıdır. SQL İş Akışı Örnek Deposu için örnek denetimi sağlayıcısı, bir komutu komut sırasından kaldırmadan önce komutu beş kez dener. WMS bir komut yürütülürken kilitlenirse, kilidin süresi dolar ve komut daha sonra aynı WMS örneği tarafından veya başka bir WMS örneği tarafından alınabilir.

İş Akışı Yönetimi Hizmeti - Komut Yürütme

Microsoft Dağıtılmış İşlem Düzenleyicisi (MSDTC) etkinse ve MSDTC, gelen ve giden iletişimi etkinleştirdiyse örnek denetimi komutları işlem olarak yürütülür. Örneğin, bir iş akışı hizmet örneğini askıya alırsanız durum, IIS Yöneticisi'nde görüntülenir veya komut işlendikten hemen sonra cmdlet'ten Askıya alındı olarak döndürülür. Ancak MSDTC devre dışı bırakıldıysa veya düzgün yapılandırılmadıysa örnek denetimi komutları işlem olmayan bir şekilde yürütülür. Bu durumda örneğin durumu, örnek kaldırılana ve örnek deposunda kalıcı yapılana dek Askıya alındı olarak güncelleştirilmez, çünkü örnek belirlenen süreden daha uzun bir zaman boyunca boşta kalmıştır (boşta ayarlarında kaldır). MSDTC ayarlarını değiştirdiğinizde hizmetin güncelleştirilmiş MSDTC ayarlarını alması için WMS'yi yeniden başlatmanız gerektiğini dikkate alın.

İpucu

Bir veya daha fazla örneğin beklediğinizden daha uzun süre bekleme durumunda kaldığını fark ederseniz, WMS'nin sunucu grubundaki tüm sunucularda çalışıp çalışmadığını kontrol edin. Örnek belirli bir sunucuda çalışmaktaysa (izleme bilgilerine göre) ve bu örnek için verilen denetim komutu gerçekleştirilmiyorsa, WMS'nin sunucuda çalışıp çalışmadığını kontrol etmelisiniz.

Uyarı

İş Akışı Yönetimi Hizmeti, "Gelene İzin Ver" ve "Gidene İzin Ver" DTC ayarları etkinleştirilirse, .işlem temelli komutlar kullanır. DTC'yi devre dışı bırakıyorsanız, işlem temelli olmayan komutların kullanılması için bu ayarları da açıkça devre dışı bıraktığınızdan emin olun.

Sunucu Kümesi Ortamları Desteği

Genellikle bir sunucu kümesinde her düğüm bir WMS örneğini çalıştırır. Bir WMS örneği, birden çok örnek deposu izleyebilir. Bir düğüm, farklı Windows kimlikleri altında birden çok WMS örneği çalıştırabilir. Bir düğümde bulunan örnek deposu için yalnızca bir WMS örneği çalıştırmanızı öneririz. Bir düğümde aynı örnek deposunu izleyen birden çok WMS örneği çalıştırırsanız ölçeklenebilirlik konusunda sorun yaşayabilirsiniz.

Önceden herhangi bir düğüm üzerinde çalıştırılan örnek, WMS tarafından başka bir düğüm üzerinde alınıp bu düğüm üzerinde etkinleştirilebilir. Bu, sunucu kümesinde WMS'nin iş yükünü dengelemeye yardımcı olur.

İş akışı örneği için bir denetim komutu verdiğinizde, bu iş akışı örneği grubun herhangi bir yerinde çalışıyor olabilir veya olmayabilir. WMS, komutu iş akışını çalıştıran bilgisayara aktarır veya yerel bilgisayara iş akışını yüklemesi ve komutu yürütmesi için talimat verir. Böylece örneğin hangi bilgisayar tarafından çalıştırıldığını bilmeden bir örneğe komut verebilirsiniz.

Bağımlı Özellikler

Aşağıdaki noktalar İş Akışı Yönetimi Hizmeti (WMS) için geçerlidir:

  • WMS, yalnızca IIS/WAS ortamında WorkflowServiceHost kullanılarak barındırılan iş akışı hizmet örneklerine yönelik komutları etkinleştirir ve yürütür. WMS, başka bir konak kullanılarak barındırılan veya başka bir barındırma ortamında bulunan iş akışı hizmetlerini desteklemez.

  • WMS, dayanıklı durum kalıcılığı için örnek deposu kullanan iş akışı hizmet örneklerini etkinleştirir.

  • WMS, Hizmet Yönetimi Hizmeti'ni sağlayan bir uygulamaya ait olan iş akışı hizmet örneklerini etkinleştirir. WMS, örnek deposundan bir örnek yükleyecek olan hizmet konağını etkinleştirmek için Hizmet Yönetimi Hizmeti'ni kullanır.

  • WMS, net.pipe bağlamasının siteye eklenmesini ve net.pipe protokolünün hizmeti içeren uygulamada etkinleştirilmesini gerektirir. Uygulamada net.pipe protokolü etkinleştirilmemişse, WMS olay günlüğüne bir hata kaydeder.

  • WMS, iş akışı hizmet örneğinin bir örnek denetimi uç noktasını (ICE) göstermesini gerektirir. WMS bu uç noktayı, iş akışı hizmet örneklerine Askıya Al veya Sürdür gibi komutlar vermek için kullanır.

  • WMS, bir örnek deposu sağlayıcısı ve bir örnek denetimi sağlayıcısı ile birlikte gelen tüm örnek depoları ile çalışır.

  • WMS, bir örnek etkinleştirilebilir olduğunda bir örnek deposunun HasActivatableWorkflowsEvent olayını tetiklemesini gerektirir.

Not

WMS'ye yönelik güvenlikle ilgili bilgiler için bkz. Kalıcılık Depoları İçin Güvenlik Yapılandırması.

Güvenlik

İş Akışı Yönetimi Hizmeti'nin (WMS) iş akışı hizmet örneklerini denetlemek için iş akışı hizmet konağı tarafından gösterilen Örnek Denetimi Uç Noktası'na (ICE) ve iş akışı hizmet konağını başlatmak ve daha sonra iş akışı hizmet örneklerini yüklemek için bir Web uygulaması tarafından gösterilen Hizmet Yönetimi Uç Noktası'na bağlanması gerekir. AS_Administrators grubunun her iki uç noktaya da erişim izni vardır. AppFabric İş Akışı Yönetimi Hizmeti'nin Güvenlik Tanımlayıcısı (SID) bu grubun bir üyesidir. Bu nedenle WMS'nin altında çalıştığı hesabı açık olarak AS_Administrators grubuna eklemenize gerek yoktur.

Aşağıdaki listede WMS'nin kullandığı örnek depolarını ve yapılandırma dosyalarını güvenlik altına almaya ilişkin yönergeler sağlanmaktadır:

  • WMS, bağlantı dizeleri dahil olmak üzere yapılandırma bilgilerini yapılandırma dosyalarından belleğe okutur. WMS şu anda şifrelenmiş bağlantı dizelerini işlememektedir, bağlantı dizesi bu nedenle basit metin biçiminde olmalıdır. Kötü amaçlı bir kullanıcı bellekte bulunan önemli bilgilere (bağlantı dizesinde kullanıcı adı ve parola gibi) erişebilir. Bu nedenle, yapılandırma dosyasında tanımlanan bir bağlantı dizesinde önemli bilgiler belirtmeyin.

    Web.config dosyalarında depolanan bağlantı dizeleri için tümleşik Windows kimlik doğrulamasını kullanmanızı öneririz. Tümleşik Windows kimlik doğrulamasını kullanamıyorsanız ve bir Web.config dosyasında tanımlanan bir bağlantı dizesinde kullanıcı adı ve parola belirtiyorsanız, yapılandırma dosyalarında uygun ACL'leri (Erişim Denetim Listeleri) ayarlayın. AS_Administrators grubunun, WMS tarafından erişilmesi gereken Web.config dosyalarına erişebilmesini sağlayın. Ancak ACL ayarlarının, kötü amaçlı bir kullanıcının bellekten bağlantı dizesi bilgilerine erişmesini engellemediğini dikkate alın.

  • SQL bağlantı dizesine “;Encrypt=yes” ekleyerek şifrelenmiş SQL iletişimini etkinleştirin. Bağlantı dizesi oluşturmak için SqlConnectionStringBuilder sınıfını kullanıyorsanız Şifrele özelliğini true olarak ayarlayın. Sunucuda şifreli iletişimi etkinleştirme hakkında ayrıntılar için bkz.https://go.microsoft.com/fwlink/?LinkID=187283. Uygulamanız ve SQL Server arasındaki iletişimi korumazsanız kötü amaçlı bir kullanıcı SQL Server veritabanına karşı komutları yönetebilir veya yürütebilir.

  • Bir komut sırası hiçbir kimlik bilgisini korumaz. WorkflowAdministrators SQL rolü ile eşlenen AS_Administrators grubunun üyesi olan bir kullanıcı, yalnızca belirli örnek türlerini değil örnek deposunda olan tüm örnekleri denetleme hakkına sahiptir. Bu nedenle başka kullanıcılar tarafından denetlenmesi öngörülmeyen örnekler başka örnek depolarında depolanmalıdır ve bu örnek depoları için WorkflowAdministrators SQL rolü farklı Windows grupları ile eşlenmelidir.

  • Bir Web.config dosyası her değiştirildiğinde WMS dosyayı okur ve dosyaya depo tanımı eklendiğini veya dosyadan depo tanımı çıkarıldığını kontrol eder. Yetkisiz kullanıcıların WMS dosya işlemesini tetiklemelerini önlemek için Web.config dosyalarına yazma erişimini sınırlamanızı öneririz.

  • İzleme düzeyine bağlı olarak AppFabric izleme özelliği büyük miktarlarda veri toplar. İzleme ve kalıcılık depolarını aynı veritabanında bulundurmamanızı öneririz. Böylece izleme deposunun taşması durumunda kalıcılık alt sistemi etkilenmez.

Aşağıdaki tabloda, komut sırasına ve kalıcılık veritabanına erişimi güvenlik altına alan SQL rolleri açıklanmıştır. Bu tablonun içeriği yalnızca SQL İş Akışı Örnek Deposu için geçerlidir.

SQL Rolü Açıklama Windows Grubu

WorkflowAdministrators

Bu rolün üyeleri komutları kalıcılık veritabanının bir parçası olan komut sırasına sokabilir (komutları ekleyebilir). Örnekleri denetlemek isteyen bir kullanıcı (örneğin, Windows PowerShell cmdlet'lerini kullanarak) bu rolün bir üyesi olmalıdır.

AS_Administrators

WorkflowManagementServiceUsers

Bu rolün üyeleri komutları, komut sırasından çıkartabilir (komutları kaldırabilir). WMS'nin komut sırasında depolanmış komutları alabilmesi için altında çalıştığı hesabın bu rolün bir üyesi olması gerekir.

AS_Administrators

WorkflowActivationUsers

Bu rolün üyeleri, kalıcılık veritabanında kalıcı hale getirilen ve çalıştırılmaya hazır olan iş akışı hizmet örneklerini etkinleştirebilir.

AS_Administrators

InstanceStoreObservers

Bu rolün üyeleri, örnek deposunda örnekleri sorgulayabilir ve depodaki komut sırasından komut alabilir.

AS_Administrators ve AS_Observers

InstanceStoreUsers

Bu rolün üyeleri, örnekleri yükleyip kaydedebilir. Yükleme ve kaydetme eylemleri, iş akışını çalıştıran bir hizmet konağı tarafından gerçekleştirilir.

Hizmet1 hizmetinin örnekleri Depo1 deposunda kalıcı hale getirilmişse, hizmet konağını çalıştıran UygHavuzu1 uygulama havuzu, Depo1'de Kullanıcı hakları olan bir kimlik altında çalıştırılmalıdır.

IIS_USRS

Kalıcılık için senaryo tabanlı güvenlik yönergeleri ile ilgili olarak bkz. Kalıcılık Depoları İçin Güvenlik Yapılandırması.

Ayrıca bkz.

Kavramlar

Kalıcılık Depoları İçin Güvenlik Yapılandırması
İş Akışı Yönetimi Hizmeti'ni Yükleme ve Yapılandırma

  2011-12-05