WCF - Mimari

WCF, çeşitli dağıtılmış uygulamaları geliştirmek için yeterli destek sunan katmanlı bir mimariye sahiptir. Mimari aşağıda ayrıntılı olarak açıklanmıştır.

Sözleşmeler

Sözleşmeler katmanı, uygulama katmanının hemen yanındadır ve bir hizmetin işleyişini ve yapacağı erişilebilir bilgilerin türünü belirten gerçek dünya sözleşmesine benzer bilgiler içerir. Sözleşmeler temel olarak aşağıda kısaca tartışılan dört türden oluşur -

  • Service contract - Bu sözleşme, müşteriye olduğu kadar dış dünyaya da uç noktanın teklifleri ve iletişim sürecinde kullanılacak protokoller hakkında bilgi sağlar.

  • Data contract- Bir hizmet tarafından alınıp verilen veriler bir veri sözleşmesi ile tanımlanır. Hem müşteri hem de hizmet veri sözleşmesiyle uyumlu olmalıdır.

  • Message contract- Bir veri sözleşmesi, bir mesaj sözleşmesi ile kontrol edilir. Öncelikle SOAP mesaj parametrelerinin tür biçimlendirmesini özelleştirir. Burada WCF'nin iletişim amacıyla SOAP formatını kullandığını belirtmek gerekir. SOAP, Basit Nesne Erişim Protokolü anlamına gelir.

  • Policy and Binding- Bir hizmetle iletişim için belirli ön koşullar vardır ve bu koşullar politika ve bağlayıcı sözleşme ile tanımlanır. Bir müşterinin bu sözleşmeye uyması gerekir.

Hizmet Çalışma Zamanı

Hizmet çalışma zamanı katmanı, sözleşmeler katmanının hemen altındadır. Çalışma sırasında ortaya çıkan çeşitli hizmet davranışlarını belirtir. Yapılandırmadan geçebilen ve hizmet çalışma zamanına giren birçok davranış türü vardır.

  • Throttling Behavior - İşlenen mesajların sayısını yönetir.

  • Error Behavior - Herhangi bir dahili servis hatası oluşumunun sonucunu tanımlar.

  • Metadata Behavior - Dış dünya için meta verilerin kullanılabilirliğini belirtir.

  • Instance Behavior - İstemci için kullanılabilir hale getirmek için oluşturulması gereken örneklerin sayısını tanımlar.

  • Transaction Behavior - Herhangi bir arıza durumunda işlem durumunda değişiklik sağlar.

  • Dispatch Behavior - Bir mesajın WCF altyapısı tarafından işlenme şeklini kontrol eder.

  • Concurrency Behavior - İstemci-sunucu iletişimi sırasında paralel çalışan işlevleri kontrol eder.

  • Parameter Filtering - Çağrılmadan önce bir yönteme parametrelerin doğrulanması sürecini içerir.

Mesajlaşma

Birkaç kanaldan oluşan bu katman, esas olarak iki uç nokta arasında iletilecek mesaj içeriğiyle ilgilenir. Bir dizi kanal bir kanal yığını oluşturur ve kanal yığınını oluşturan iki ana kanal türü aşağıdakilerdir:

  • Transport Channels - Bu kanallar bir yığının alt kısmında bulunur ve HTTP, TCP, Eşler Arası, Adlandırılmış Borular ve MSMQ gibi aktarım protokollerini kullanarak mesaj göndermek ve almaktan sorumludur.

  • Protocol Channels - Bir yığının en üstünde bulunan bu kanallar, katmanlı kanallar olarak da bilinir, mesajları değiştirerek kablo düzeyinde protokoller uygular.

Aktivasyon ve Barındırma

WCF mimarisinin son katmanı, hizmetlerin gerçekte barındırıldığı veya istemci tarafından kolay erişim için yürütülebildiği yerdir. Bu, aşağıda kısaca tartışılan çeşitli mekanizmalarla yapılır.

  • IIS- IIS, İnternet Bilgi Hizmeti anlamına gelir. Bir hizmet tarafından HTTP protokolünü kullanarak sayısız avantaj sunar. Burada, servis kodunu etkinleştirmek için ana bilgisayar koduna sahip olmak gerekli değildir; bunun yerine servis kodu otomatik olarak etkinleştirilir.

  • Windows Activation Service- Bu, popüler olarak WAS olarak bilinir ve IIS 7.0 ile birlikte gelir. Burada hem HTTP tabanlı hem de HTTP tabanlı olmayan iletişim, TCP veya Namedpipe protokolleri kullanılarak mümkündür.

  • Self-hosting- Bu, bir WCF hizmetinin konsol uygulaması olarak kendi kendine barındırıldığı bir mekanizmadır. Bu mekanizma, istenen protokolleri seçme ve kendi adresleme şemasını ayarlama açısından inanılmaz esneklik sunar.

  • Windows Service - Bu mekanizma ile bir WCF hizmetinin barındırılması avantajlıdır, çünkü hizmetler daha sonra çalıştırma zamanı aktivasyonu olmaması nedeniyle etkin ve istemci tarafından erişilebilir durumda kalır.