Şirketiniz için SOA - 1
-
MAKALE
-
Haber Merkezi
-
27 Nisan 2011 Çarşamba
-
- Yazdır
-
PDF
Günümüz iş ortamı hiç olmadığı kadar rekabetçi. Yaratıcı iş modelleri, geleneksel ve yeni nesil rakipler, hizmet kanallarının çeşitliliği, sürekli artan kalite ihtiyacı, yeni uyumluluk gereksinimleri ve artan maliyet baskıları CEO’ların gündemini sürekli olarak meşgul ediyor.
Yazar: Serhat Dirik
Sürekli yeni fikirler üretebilen ve fikirlerini çok hızlı markete sunabilen, esnek, çevik ve tepkisel bir şirket olabilmek her CEO’nun hedefi. İçsel ya da dışsal dinamiklerden doğacak taleplerin hayata geçirilebilmesi için de zaman eskiye görece çok daha kısıtlı. Oysa, yeniliklerin zamanında pazara sunulamaması çoğu kez pazar kaybıyla eşdeğer.
Tüm bunlar, doğal olarak fikirleri hızlıca hayata geçmesini sağlayacak teknolojilere olan ihtiyacı ve bu teknolojileri sunmakla görevli IT birimleri üzerindeki yükü hiç olmadığı kadar arttırmaktadır. Doğru teknoloji kullanımının stratejik önemi giderek artmakta ve dijital iş dünyası ile gerçek dünya arasındaki sınırlar giderek ortadan kalkmaktadır.
Dolayısıyla, artık şirketler içerisindeki IT departmanları, İş departmanları ile çok daha uyumlu ve birebir çalışmak durumundadır. IT departmanlarının taleplerin sürekliliği ve artan yoğunluğu ile başa çıkabilen, gelen talepleri hızlıca ve kurum içerisinde en az etki ile hayata geçiren bir yapıya adapte olması için yeni yaklaşımlar gerekmektedir. Servis odaklılık yaklaşımının mimari yansıması olan Servis Odaklı Mimari (SOA: Service Oriented Architecture) işte bu değişen iş ortamının gereklerini karşılamak için ortaya çıkmış, bir kurumsal mimari modelidir.
Forrester ve Gartner gibi firmalarca yürütülen araştırmalar SOA’den vaad edilen sonuçları alabilen firmaların, SOA’i bir kurumsal mimari modeli ve stratejik dönüşüm yaklaşımı olarak ele alan firmaların etkin sonuçlar elde edebildiğini gösteriyor. SOA’nin ciddi bir dönüşüm gerektirdiği, ancak aynı zamanda küçük, dikkatli adımlarla giden ve artarak ilerleyen bir süreçle ele alınması gerektiği muhakkak. SOA’nın vaad ettiği faydaların, gerçekleştirim sürecinin giderek olgunlaşmasıyla artarak devam ettiği göz önüne alınırsa, SOA’i sadece bir teknoloji olarak algılayıp, stratejik bir vizyondan yoksun olarak yola çıkan firmaların, büyük resmi kaçırmaları ve beklenen faydaları görememeleri, doğal bir sonuç olarak algılanmalıdır.
Bu yazıda servis odaklılık kavramları, iş dünyasına yansımaları ve stratejik SOA dönüşümlerinin nasıl ele alınması gerektiği üzerinde durulmuştur.
Servis Nedir?
Servis odaklı yaklaşımının temeli, doğal olarak servis kavramıdır. Bir servis, tutarlı bağlam çerçevesinde, birbirine uygun bir gurup tekrarlanabilir operasyondan oluşan, iyi tanımlanmış standard bir arabirime sahip, kavramsal bir bileşen olarak tanımlanabilir.
Dijital servisler gerçek dünyadaki oluşumların iyi tariflenmiş birer yansıması gibidir. Hemen hemen herkesin elektirik, su veya iletişim sağlayan şirketler ile bir müşteri olma hikayesi olmuştur. Bu firmalara işlemleriniz için uğradığınızda sizi “Müşteri Hizmetleri Birimi”’ne yönlendirirler. “Müşteri Hizmetleri Birimi” müşteriler için olası tüm operasyonları tek noktadan sunarak genel işleyişte bir verimlilik hedefler. Bu birimi SOA’de bir digital servis olarak tarifleseydik, “Müşteri Servisi” yaratıp, bu servise bağlı olarak da “Müşteri Bilgilerini Getir”, “Yeni Müşteri Yarat”, “Müşteri Bilgilerini Güncelle”, “Abonelik Sonlandır” gibi uygun operasyonlar tanımlayabilirdik.
Daha teknik bir örnek olarak bir yazıcı ünitesinin işlevlerini servis olarak tanımlamayı kullanabiliriz. “Yazıcı Servisi” muhtemelen “Belgeyi Yazır”, “Duraklat”, “İptal Et”, “Kapan”,”Açıl”,”Uyku Moduna Geç” gibi operasyonlar içerecektir.
Gerçek dünyada bulunan nesneleri bir servis olarak kavramlaştırmanın en kolay yolu, o şeyi bir kara kutu olarak düşünmek ve dışarıdan aldığı direktif ve bunlara cevaplarını birer operasyon olarak tanımlamaktır. Örneğin bir iş biriminine organizasyon yapısı, iş süreçleri ve benzeri karmaşık yapılarından sıyrılarak dışarıdan baktığımızda ne gibi işlevleri yerine getirdiğini kolayca servis olarak tanımlayabiliriz.
SOA’nin ortaya çıkışına yol açan en büyük neden, sık yaşanan değişimlerin etkilerini minimize etmek gayreti olarak tanımlanabilir. Bir başka deyişle, değişikliğe gittiğiniz bir nesnenin zincirleme değişiklikler reaksiyonuna yol açmasının önünü kesmek çabası olarak da nitelendirilebilir. Eğer bir bileşenin kendi görevlerini yerine getirmesi için bir diğer bileşenden faydalanması gerekiyor ise, bu ilişki bir bağlanım (coupling) olarak nitelendirilir. Satış departmanının bir satış işlemini tamamlaması için stok, lojistik ve muhasebe gibi departmanlara duyduğu ihtiyaç bir bağlanım örneğidir. Lojistik deparmanının mal teslimi için kabul formlarında yapacağı değişikliğin satış departmanı tarafından öğrenilmesi ve kendini buna göre adapte etmesi çalışması ise değişim etkisine (change impact) iyi bir örnektir.
Bir başka bağlanım örneği olarak iş süreçlerinin içerisine dahil edilen bir tedarikçi firma düşünün. İş süreçlerinde bu tedarikçi firmaya ihtiyaç duyan her şirket içi iş birimi ile tedarikçi arasında bir eşleme oluşturacaktır. Şimdi bu eşleme ilişkisinde doğal olarak tedarikçi ile olan ilişkiler, tedarikçinin gereksinimleri temin etme şekli (formlar, sipariş alma, durum takibi vb) ve diğer faktörler önemli olacaktır. Markette alternatifler oluşması ile tedarikçi sayısının zamanla arttığını düşünün. Her tedarikçi yeni ilişkiler, formlar, iş süreçlerini beraberinde getirecektir. Bir tedarikçinin değiştirilmesi zorunluluğu doğduğu zaman,o tedarikçi ile uyumluluğunu pekiştirmiş tüm iş birimlerinden homurtular yükselecektir.
.jpg)

Klasik yaklaşımda mevcut tedarikçiler ile sıkı bir ilişki içerisinde bulunulduğundan, her entegrasyon noktasında her yeni tedarikçi ile bir adaptasyon süreci yaşamanız zorunluluğu vardır. Bu adaptasyon için harcayacağınız enerji değişim etkisine bir başka örnek teşkil eder Değişim etkilerinin yüksek olduğu bir şirkette alınan her karar, yapılacak her değişiklik büyük efor ve zaman gerektireceğinden, şirketin hareket kabiliyeti doğal olarak kısıtlanır. Böyle bir durumda şirketin esnekliğinden ve çevikliğinden söz edilemez.
SOA, bu durumdan kurtulmak için bağlanım ilişkisinin gerçekleştirimler yerine sözleşmeler üzerinden kurulması ilkesini getirir (gevşek bağlanım). Servisler amaçlarını, sundukları yetenekleri, servisin nasıl kullanılacağını, mesaj yapılarını ve diğer özelliklerini bir servis sözleşmesi ile olası istemcilere sunarlar. Servisi alan taraf yani istemci, hizmetin nasıl ve kim tarafından sunulduğu ile değil, sunulmuş olan standart sözleşme ile bağımlıdır. Sözleşme yerine getirildiği sürece sözleşmenin arka planında olup biten değişiklikler istemciye yansımaz.
.jpg)

Tedarikçiler örneği için şirketlerin genellikle izlediği yol bir satın alma departmanı kurup iş birimlerinin taleplerinin standard yollar ile toplamaktır. Yeni tedarikçi ekleme ya da tedarikçi değişikliği örneğini ele alacak olursak servis odaklı bir şirket tedarikçi değişikliğini hemen hemen hiç hissetmeden, sadece satın alma biriminde küçük adaptasyonlar ile yapabilecektir. İşte bu SOA’nin vaad ettiği esneklik ve çevikliğin en önemli örneklerinden birisidir.
IT içinden bir örnek verecek olursak, "mainframe" uygulamaları gibi geleneksel uygulamaların açık sistemlere taşınması sırasında oluşacak etkiyi ele alabiliriz. Gerçekten de bu örnek pek çok CIO’nun başını ağrıtan bir sorundur. Tüm uygulamalar baştan sona günün gereklerine göre yeniden yazılabilir. Ancak değişmeyen tek şey değişim olduğundan, bir süre sonra yeni teknolojilerin ortaya çıkması ile bu teknolojilere adaptasyon gerekeceği aşikardır. Bu durumda oyunu tekrar baştan kurup, yeni baştan her şeyi ele almak gerekecektir. SOA bize bu noktada kavramsal düzeyde stabil olanı tanımlamayı (Servis Sözleşmeleri) ve tüm bağımlılıkları değişmesi muhtemel bileşenler yerine, daha stabil kavramlara doğru yapmamız gerektiğini söylemektedir. Bir yazılımın arabiriminin (servis ve operasyon tanımları), arabiriminin nasıl gerçekleştiğinden (operasyonların programlama dili ile kodlanması) daha stabil olduğundan biliyoruz.Bu sebeple, gerçekleştirimler yerine arabirimlere kurulacak bağlanım ilişkileri, bağımlı olan taraftaki değişiklik etkisini azaltır. Şu halde, SOA’e göre yapılacak şey aşikar olarak tüm bağımlılıkları iyi tanımlanmış servis arabirimleri üzerine çekerek arka plandaki değişiklikler için hareket kabiliyeti kazanmaktır. Bu sayede servislerinizin gerçekleştirimlerini bugün açık sistemler üzerine taşırken, yarın bulut sistemlere taşımanız ve arka plan kodlarınızı yenilemeniz hissedilmeyecek bir etki ile gerçekleşebilir.
SOA oluşturma stratejisi olarak servis sanallaştırma (Service Virtualization) ve servis otobüsü (Enterprise Servise Bus) gibi taktikler kullanmanın kurumsal değişimlerde etki indirgemenin en önemli araçlarından olduğunu da konuya yakın olan okuyucular için bir not olarak düşelim.
Yazının diğer bölümleri için aşağıdaki linkleri tıklayınız:
http://www.bilgicagi.com/Yazilar/5741-sirketiniz_icin_soa__2_servis_odakli_dizayn_prensipleri.aspx
http://www.bilgicagi.com/Yazilar/5743-sirketiniz_icin_soa__3_servis_tipleri.aspx
http://www.bilgicagi.com/Yazilar/5744-sirketiniz_icin_soa__4_stratejik_bir_yaklasim_olarak_soa.aspx