Pazar, Şubat 20, 2011

SOA ne değildir?

Uzun zamandır kavram karmaşasının bol olduğunu düşündüğüm bu konuda yazmak istiyorum. Umarım faydalı bir şeyler yazmayı becerebilirim.


Aslında elbetteki SOA'nın ne demek olduğunu anlatmaya çalışacağım, ama karıştırıldığı konuları vurgulayarak anlatmaya çalışacağımdan "SOA ne değildir?" gibi bir başlık seçtim yazıma.

Neyse lafı uzatmadan konuya gireyim.


* SOA bir arakatman teknolojisi değildir.


SOA en başta bir arakatman teknolojisi olarak algılanmakta, oysa SOA en başta şirketin üst düzey yöneticileri hatta şirketin İnsan Kaynakları birimi tarafından doğru şekilde algılanması gereken şirketin işleyişini belirleyecek soyut bir kavramdır.



Arakatman teknolojisi olarak algılanmasına neden olan başlıca sebep; şirketlerin teknik mimarisi içerisinde bir arakatman teknolojisi olarak kullanılan ESB (Enterprise Service Bus - açıkçası Türkçesini bildiğimden emin değilim ama "Kurumsal Servis Katmanı" diye ifade etsem herhalde çok yanlış olmaz :-) ) içinde yer alan "servis" kelimesinin SOA (Service Oriented Architecture) içerisinde yer alan "servis" kelimesi ile aynı anlamı ifade ettiğinin zannedilmesi diye düşünüyorum.


* SOA, Türkçemize "Servis Odaklı Mimari" olarak değil "Hizmet Odaklı Mimari" olarak çevrilmeli!


Hem bakın kısaltması da ne kadar eğlenceli oluyor HOM Hom hommm :-)


Şirket yöneticileri ve hatta İK(İnsan Kaynakları) tarafından anlaşılması gereken soyut bir kavram diye ifade etmemin sebebi esas olarak bu "Hizmet" anlayışı. HOM geçişinin ilk adımı şirket bünyesinde yer alan iç ve dış müşterilere verilmekte olan hizmetlerin tanımlanması olmalı.

Bu mimarinin en büyük prensibi hizmetlerin tanımlanması ve yönetilmesidir. Teknik olarak mimarinin uyarlamasında ne kullanırsanız kullanın bu tanımlama ve yönetme prensiplerini oturtmadıktan sonra HOM'u şirketinizde yaşatamazsınız. Yöneticiler tarafından iş akışları hizmet odaklı mimariye uygun olarak modellenmeli, İK tarafından ise organizasyonel şema bu mimariye uygun hale getirilmelidir.

Tanımlama ve yönetilme konularına detaylı olarak ileride yazacağım yazılarda değinmek istiyorum ama bu yazının amacı çerçevesinde HOM geçişinin "İlk adımı", "Başlangıç aşaması", "Olmazsa olmaz" bir konu olduğunu vurgulamak yeterli olur.


* SOA "Webservis", "ESB" ve "BPM" teknolojilerini kullanmak değildir.


En çok karşılaştığım yanlışlardan biri ise yukarıda ifade ettiğim teknolojilerin kullanılması ile HOM geçişinin yapıldığının sanılmasıdır. Burada bir çok kişi için anlaşılmasını kolaylaştıracağını düşündüğüm bir analoji yapmak istiyorum. OOP (Object Oriented Programming) kavramı soyut bir kavramdır. Java, C++ gibi OOP desteği olan programlama dillerini kullanarak yazdığınız uygulamaların OOP uygulamalar olamayacağı gibi, bu programlama dillerininin yanlış yada bilgi düzeyi düşük programcılar tarafından kullanılması ile prosedürel kodlama gerçekleştirilmesi nasıl mümkün ise HOM geçişinde kullanacağınız bu Webservis(SOAP yada RESTful), ESB ve BPM(Business Process Management) teknolojilerini kullanıyor olmak Hizmet Odaklı Mimari ile çalışıyorsunuz anlamına gelmemektedir.

Şimdilik bu kadar ;-) SOA ile ilgili yazılarıma devam edeceğim. Bu mimarinin disiplinini, uygulamadaki yaklaşımları, kullandığımız teknolojileri daha detaylı bulacağınız yazılarda karşılaşmak dileğiyle...