SOA – Simplicity Oriented Architecture.. (Bir şeyler yanlış mı oldu?)
Aslında Service Oriented Architecture olan SOA; hizmet odaklı mimari anlamına geliyor. Daha açık bir ifadeyle; ihtiyaç olan işi mükemmel yapan bir hizmet noktası oluşturup, aynı iş için hep bu hizmet noktasının kullanılıyor olmasıdır. Eğer bir işi yapan birden fazla hizmet noktası varsa , o işin sürecindeki herhangi bir değişiklik, tüm hizmet noktalarında ayrı ayrı değişikliği gerektirir. Bu nedenledir ki, iyi bir aytici olmak için artık bu işin felsefesini de bilmek gerekmiştir. Sofi'nin Dünyası adlı kitabta yazar, zaten felsefeyi bir bebeğin hayret edebilme yetisi olarak tanımlıyor ve o halde tüm bebekler filozof olarak doğuyor diyordu. BT'nin Dünyası'nda da hergün yeni gelişmelere önce hayret edip sonrasında sürekli araştırıp öğrenmiyor muyuz? Bu nedenle bence rahat olalım.. Kendimizi filozof olarak görmek bu açıdan mümkün olabilir 🙂
Tekrar SOA konusuna dönecek olursak, yıllar önce adı konulmadan bu yaklaşımı yapan çok sayıda mimarlar vardı elbet. Ne yaptıklarını biliyor ama sürece her bir mimar farklı bir ad veriyordu. Sonrasında web servisler çıktı ve hayat biraz değişti. Kapalı olan sistemler, -küresel dünyada çevresindeki ülkelerle işbirliği yapmak zorunda kalan ülkeler gibi- çevresindeki yazılımlar ile etkileşebilmek için küreselleşme ihtiyacı hissetti.. Yazılım da aslında dünyadaki tüm gerçekliklerin sanal ortamda simüle edilmesi değil mi? Gümrük birliği yapan ülkelerin bir gümrük noktası ve ortak standart kuralları olduğu gibi birlik kurmak isteyen uygulamalar da gümrük noktası olarak web servisleri, ortak standart olarak genişletilebilir işaretleme dilini (XML) i kullanmaya başladılar.
(Ülkelerin bu birlikteliklerine karşı çıkan gençlik hareketleri olmasına karşın, bilgisayar dünyasındaki bu küreselleşmeye karşı çıkan kimsenin olmaması garip değil mi? Düşünebiliyor musunuz? Bir inisiyatifin aynı adla bir virüsü var ve web servisinizin çalışmasını engellmeye çalışıyor ve küreselleşmeyi protesto etmesi ne kadar trajikomik olurdu.)
Ve bu yazıyı bir fırsat bilerek, SOA için dünya da ilk kez yeni bir açılım yapıyorum ve tanımını Simplicity Oriented Architecture olarak değiştiriyorum. Aslında biraz daha felsefi düşünecek olursak hizmet odaklı mimarinin temelinde de basitlik yatıyor. İşlerimizi en hızlı, en kaliteli ve en iyi şekilde yapabilmek için o işin aslında kolay olması gerekmiyor mu?
Örneğin OpenID uygulamasının sunduğu servis. Bir kullanıcı adınız ve şifreniz var ve internetteki tüm login işlemlerinizde bu kullanıcı adınızı ve şifrenizi kullanabiliyorsunuz. Şifrenizi değiştirmek istediğinizde tek yerden değiştirmeniz ve tek şifreyi hatırlamanız yetiyor. Hepimizin ihtiyaç duyduğu ama adını koyamadığı (SOA) için son bir örneği verelim ve yazıyı sonlandıralım. Güzel ve Yalnız Ülkemiz de her bir kredi kartı ekstremizin, telefon faturalarımızın geldiği farklı sistemlerde kayıtlı bir ev adresimiz var. Evimizi değiştirdiğimizde bu adres değişikliğini her bir sistemde teker teker yapmamız gerekiyor. Halbuki ben ve adresim tek. Devletimizin bir SOA hizmeti olsa ve bir kereliğine internetteki bu adresten girip adresimi, telefon numaramı vs güncellesem güzel olmaz mı? Ve her fatura basılırken adresi buradan alsa.
SOA bu yüzden bence kolaylık odaklı mimari olmalı.
Bu arada SOA için Simplicity Oriented Architecture kavramı yabana gitmesin.. Bu kavramı ilk kez kullanıyorum ve sizlerde şahitsiniz 🙂