Şirketiniz için SOA - 3 Servis Tipleri
-
MAKALE
-
Konuk Yazar
-
28 Nisan 2011 Perşembe
-
- Yazdır
-
PDF
Bir şirkette var olan tüm servisler aynı seviyede değerlendirilemez. Dizayn prensiplerinden hatırlayacağınız üzere servisler başka servislerin oluşumunda katılımcı olarak yer almaktadırlar.
Servisleri bu bileşim şekli açısından bir hiyerarşiye oturtacak olursak, en üst seviyede şirketin iş alanları ile bire bir eşlenmiş iş servisleri koyarken, daha alt seviyelere doğru ortak işlevsellikleri sunan servisleri, üst seviye servislerin oluşumu için teknik destek veren uygulama servislerini ve altyapı görevleri için altyapı servislerini konumlandırabiliriz.
Servisler üst seviyeye doğru gidildikçe, alt seviye servislerinin bir kompozisyonu ile oluşurken, alt seviyelerde daha fazla atomik yani başka servise ihtiyaç duymadan çalışan bağımsız servisler göze çarpar.
İş servisleri, bir şirketin yeteneklerinin (iç ve dış) dijital dünyaya birebir yansıması olarak algılanabileceğinden, SOA dünyasındaki en önemli servisleri oluştururlar. İşin aslı daha alt seviyedeki servisler hazırlanmadan iş servislerinin oluşturulabilmesi de zordur. Ancak iş departmanları ve IT’nin bir masa etrafında konuşacağı, servis seviyelerinin iş indikatörleri ile eşleşeceği servisler ağırlıklı olarak iş servisleri olacaktır.
SOA Sadece Servisler Dünyasından mı İbaret?
Kurumsal SOA projelerinden bahsedilirken, SOA kavramlarının içerisine çoğunlukla başka mimari stiller, eğilimler ve teknolojilerin de dahil edildiğine şahit olabilirsiniz. Bunun sebebi SOA’nin yeni nesil yaklaşımlar için bir temel teşkil etmesi, çoğu için katalizör olmasıdır. SOA şirket içerisindeki dağıtık yeteneklerin iyi tanımlanmış arabirimler olarak, standard yöntemler ile kullanıma sunulmasıdır. Kuruma adapte edilecek her yeni yaklaşım bu yeteneklerden en efektif şekilde faydalanma yoluna gidecektir.
Kurumsal çapta veya daha küçük çaptaki projelerde uygulanan katıksız tek bir yaklaşımdan bahsedilemez. Çoğunlukla çeşitli teknolojiler ve mimari stillerin uyumlu bir bileşimi bir arada uygulanır. SOA genellikle uygulanan yaklaşımların en öne çıkanı olmasından dolayı, bir şemsiye görevi gören ve anıldığında adı bir kaç yaklaşımı daha bir arada düşündüren bir kavram.
Bu yaklaşımların en önemlilerinden biri olan ve genellikle SOA ile birlikte anılan süreç yönelimli mimari (BPM: Business Process Management) bir sistemi süreçler, alt süreçler ve aktiviteler olarak görür. Servisleri bir sistemde bulunan yeteneklerin tanımlanması ve kullanımı için etkin bir yöntem olarak tanımlarsak, süreçler sistem içindeki bu servislerin ve iş gücünün orkestrasyonudur diyebiliriz. Bir süreci oluşturan aktiviteler, sistem içerisinde bulunan servis operasyonları tarafından yerine getirilir. Bir sistemin içerisinde bulunan tüm yeteneklerin kataloglanmış servisler halinde bulunması, süreçlerin oluşturulmasını ve hayata geçirilmesini son derece kolaylaştırır. Bir kurumda süreçlerin hazır halde olması halinde ise (en azından kavramsal düzeyde), sistemde gereksinim duyulan servislerin daha rahat tespit edilebilmesini sağlar. Bu nedenle bu iki yaklaşımın hemen hemen her zaman bir arada kullanımı son derece doğal ve gereklidir. Çok beğendiğim bir analoji bu iki yaklaşımı fıstık ezmesi ve reçele örneği ile ele almaktaydı. Ayrı ayrı da tüketebilirsiniz ancak bir arada mükemmel olurlar.
Yazılımlar açısından bakıldığında süreç yönelimli mimari iş akışı mantığının gömülü kod parçalarından ve insanların zihinlerinden (ya da masalarına asılı post-it’lerden) sıyrılarak tanımlı ve kontrollü bir şekilde işletilmesidir. Yazılımların sadeleşmesini sağladığı gibi, yazılımları kullanan insan gücünün de etkin kontrolünü, takibini ve bilgilendirmesini sağlar.
Bir sistemdeki iş süreçleri, genellikle uzun süreli olup, süreç içindeki aktiviteleri ve insan teknoloji etkileşimlerini kontrol eder. Bir satış sürecini ele alacak olursak sipariş alma, ödeme alma, tedarik etme, muhasebeleştirme, lojistik gibi alt adımlar bazen aylara yayılmış bir zaman diliminde tamamlanabilir.
SOA ile giderek daha fazla birlikte anılmaya başlanan Olay Yönelimli Mimari’nin (EDA: Event Driven Architecture), eskiden beri pek çok uygulamada kullanılan bir stil olduğu halde, kurumsal mimari düzeyinde etkisinin artması daha yakın zamanlarda olmuştur. EDA ve SOA’nin bir arada bulunduğu stil kimi yazarlar tarafından SOA 2.0 olarak adlandırılmaya başlanmıştır.
Ancak başta da söylediğimiz gibi mimari stiller çoğu zaman bir arada uygulanabilirler ve bu açıdan bakıldığında kafa karıştırıcı numaralandırmalar yerine bir mimaride uygulanan yaklaşımları tek tek belirtmenin çok daha açıklayıcı olacağı söylenebilir. Bu tarz isimlendirmelerin teknik gerekçelerden çok pazarlama amaçlı türetildiğini düşünüyorum.
EDA, sistem içindeki bileşenlerin , aldığı olay yada olaylar bildirilerine tepkisel olarak aksiyonlar işletebildiği bir mimari stildir. Sistem içerisinde oluşan olaylar, olay kaynakları tarafından yayınlanır ve olay gözlemcilerine ulaştırılır. Dinleyici konumundaki olay gözlemcileri oluşan olaylar kendilerine ulaştığı anda bir aksiyon alırlar. Alınacak aksiyonun ne olacağı ve işletilecek mantık olay gözlemcisinin otoritesi altındadır.
SOA bir sistemdeki yeteneklerin resmedilmesi ve kullanımının mükemmel bir yolu olarak görülebileceğinden, sistemde oluşacak olaylar sonucu alınacak aksiyonların hazırlanmasını son derece kolaylaştıracaktır. Bir mimaride EDA’nın da kullanımı sistemin daha proaktif, tepkisel ve çevik olmasını sağlayacaktır. Buzdolabınızda peynirinizin bittiğini farkedip, üzerinizi giyip marketten peynir almanız tembellik yapmak istediğiniz bir Pazar sabahında sizi sıkabilir. Buzdolabınızın peynirin bittiğini kendi kendine fark etmesi, en yakın marketten istediğiniz markayı sipariş vermesi güzel olmaz mıydı?
SOA şemsiyesi altında anılan yeni nesil yaklaşımlar ve teknolojilerin incelenmesi uzun bir konu. En önemli iki yaklaşım olan BPM ve EDA’ı kısaca ele aldıktan sonra, diğer yaklaşımlardan bazılarına da kısaca değinmek gerekir ise:
- BRM (İş Kuralları Yönetimi - Business Rule Management):
Sistem içerisindeki sık değişen iş kurallarının (örneğin vergi oranları, kar oranı, hesaplama sabitleri vb) servis gerçekleştirimlerinin içerisinde gömülü olarak tutulması yerine, ayrı bir noktada tanımlanması, kural erişimlerinin ortak bir servis üzerinden sağlandığı, kural değişikliklerinin anında tüm sisteme değişiklik gereksimi olmadan yansıtılabildiği bir yaklaşım olarak nitelendirilebilir. Bir sistemde BRM kullanımı tüm servislerin stabilitesini arttıracaktır.
- PDA (Politika Yönelimli Mimari – Policy Driven Architeture)
Sistem çalışma politikalarının yine gömülü kodlardan sıyrılarak dış bir ortamda tanımlanmasıdır. Sistem bileşenleri ve servislerin gerekli zamanlarda servisler üzerinden bu politikaları okuyarak davranışlarını düzenlemeleri hedeflenir.
- ESB (Kurumsal Servis Otobüsü)
İstemciler ile sunucular arasında bire bir bağlanım yapmak yerine, ek bir ara katman üzerinden konuşulmasını sağlayarak servis alınan noktaların istemcilerden tamamen gizlenmesi yaklaşımıdır. Bu yaklaşım, yapılan toplam bağlanım sayısını indirgeyeceği gibi karmaşık entegrasyon sorunlarını da istemcilerden gizleyecektir. İstemciler standart yöntemler ile ESB ile konuşurken, ESB geri planda farklı protokol ve servis sağlayıcılar ile haberleşebilir. Aslında “Servis Nedir?” bölümünde anlatılan iş birimleri ile tedarikçi ilişkilerinin bir satın alma departmanı standartlaştırılması bu yaklaşımın iş yaşamına uyarlanmasının güzel bir örneğidir.
- Aspect Oriented Arhitecture (Cephe Yönelimli Mimari)
Çok sayıda bileşen ya da servisi ilgilendiren ortak çalışma mantıklarının bu bileşen yada servisler içerisinde tek tek ele alınması yerine, tek bir noktada oluşturulması ve tüm ilgili noktalarda çalıştırılmak üzere otomatik enjeksiyonudur. Bu, filtreleme yöntemleri ile uygulanabildiği gibi, otomatik kod oluşturma teknikleriyle de yerine getirilebilmektedir. Servis erişimlerinde tek tek erişimi yapan istemciler hakkında güvenlik kontrolü yapmak yerine, ortak bir katman üzerinde (örneğin ESB) bu kontrollerin tamamlanarak servislerin yüklerinin hafifletilmesi ve sadece güvenli isteklerin servislere erişiminin sağlanması bu yaklaşıma iyi bir örnektir.
Yazının diğer bölümleri için aşağıdaki linkleri tıklayınız:
http://www.bilgicagi.com/Yazilar/5739-sirketiniz_icin_soa__1.aspx
http://www.bilgicagi.com/Yazilar/5741-sirketiniz_icin_soa__2_servis_odakli_dizayn_prensipleri.aspx
http://www.bilgicagi.com/Yazilar/5744-sirketiniz_icin_soa__4_stratejik_bir_yaklasim_olarak_soa.aspx