SOA Patterns > Basics > SOA Manifesto > SOA Manifesto (Annotated) > Turkish > Açiklamali SOA Manifestosu
SOA Manifesto >
Açiklamali SOA Manifestosu
Açiklamali SOA Manifestosu
Açiklamali SOA Manifestosu
Thomas Erl tarafindan SOA Manifestosunun içyüzü hakkinda yorumlar
Servis yönelimi, yaptiginiz seyleri çevreleyen bir paradigmadir. Servis-yönelimli mimari (SOA) ise servis yöneliminin uygulanmasi sonucu ortaya çikan bir mimari tipidir.
Ilk baslarda, bu manifesto birbirinden ayri, ancak birbiri ile yakindan alakali iki konu hakkinda oldugu düsünüldü: servis yönelimli mimari modeli ve mimarinin tanimlandigi bir paradigma olan servis yönelimi. Manifestonun biçimi Çevik Manifestodan sonra modellenmistir. Bu biçimin içerigi, tutkulari ve degerleri hayata geçirebilmek için açiklayan yol gösterici kisa ifadelerden olusur. Bu manifesto bir sartname, bir referans model ya da bir beyaz sayfa degildir. Bu önsözü, gerçek tanimlarina deginmeden, varolan terimlerin manifesto belgesinde nasil ve neden bahsedildigini aydinliga kavusturmak için eklenmeye karar verdik.
Servis yönelimi uyguluyoruz…
Servis yönelim paradigmasi, en dogru sekilde söylemek gerekirse, stratejik amaç ve faydalar olarak da tanimlanabilecek belli bir hedef durumu gerçeklestirmek için kullanilan bir yöntem ya da yaklasim olarak görülebilir. Servis yönelim uyguladigimizda, bu hedef durumu gerçeklestirmek ugruna yazilimlari ve teknoloji mimarilerini sekillendiririz. Bu, teknoloji mimarilerini servis yönelimli olarak tanimlamamizin nedenidir.
…artan çeviklik ve maliyet verimliligi ile sürekli sürdürülebilir is degeri üreten organizasyonlara yardim edebilmek amaci ile…
Giris cümlesinin devami olan bu satir, servis yönelimli yazilimlarin bazi belirgin ve genel kabul görmüs stratejik faydalarini vurgulamaktadir. Bu faydalari anlamak, servis yöneliminin uygulanmasi sonucu gerçeklesen yukarida bahsedilen hedef duruma biraz daha isik tutacaktir.
Is seviyesinde çeviklik, organizasyonlarin cevap verebilme yetenekleri ile karsilastirilabilir. Bir organizasyon is degisikliklerine ne kadar kolay ve etkili cevap verebilirse, degisikligin etkilerine o oranda etkin ve basarili sekilde uyum saglayabilir.
Servis yönelimi, servisleri, gelistirilip yayinlanmasi için gerekli ilk yatirimin çok üzerinde ve sürekli bir deger katmasi beklenen, bir bilisim varligi olarak konumlandirir Maliyet verimliligi, beklenen yatirim karliligi ile dogrudan iliskilidir. Bir çok sekilde, maliyet verimliligindeki artma çeviklikteki artma ile el ele vermis gibidir; eger mevcut servisleri tekrar kullanabilme firsati bulunabilirse, yeni çözümler getirebilmek için gerekli olan masraflar genel olarak düsecektir.
Sürdürülebilir is degeri, servis yöneliminin uzun vade hedefleri ile iliskilidir. Sürekli olarak yeni çözümlere parçalanarak dönüsebilme esnekligine sahip olarak gelisen bu yazilimlar, degisken is gereksinimlerine uyum saglayabilmek adina evrimlesebilir.
…degisen is ihtiyaçlari ile örtüsen bir sekilde
Bu ifadeler, servis yönelimli yazilim felsefesini anlayabilmenin anahtarlaridir. Süregelen bir düzende is degisimine uyum saglama ihtiyaci, servis yönelimi için temeldir ve herseyi kucaklayan stratejik bir hedeftir.
Çalismamiz ile önceliklerimizi söyle belirledik:
Birazdan gelecek ifadeler, daha degerli oldugu düsünülenlerin önceliklendirildigi bir grup degeri belirtmektedir. Bu degerlendirme sisteminin amaci, servis yönelimli hesaplamanin stratejik hedef ve faydalari isiginda düzenli olarak yapilmasi gereken zorlu seçimleri adreslemektir.
Teknik strateji yerine is degerine
Biraz evvel belirttigim gibi, is degisikliklerine uygun hale gelebilmek kapsayici stratejik bir hedeftir. Bu nedenle, servis yönelimin uyarlanmasinin sonucu olan servis yönelimli mimari ve her tür yazilimin, çözüm ve ekosistemin kalitesi is odakli olmasi ile yakindan iliskilidir. Isin yönünü belirleyen sey teknoloji degil, teknolojiyi en iyi sekilde kullanmayi amaçlayan is vizyonudur.
Bu önceliklendirme, bilisim kuruluslarinda dalgalanma etkisi yaratir. Nasil planlayip otomasyon çözümlerimize kaynak bulacagimizdan, nasil gelistirip yönetecegimize kadar proje gelistirme ve yayinlama sürecinin her parçasinda degisikliklere neden olur.
Projeye özel fayda yerine stratejik hedeflere
Birçok BT projesi, yalnizca günümüzde mevcut olan is süreçleri gereksinimlerini otomatize edecek sekilde tasarlanmis uygulamalar gelistirmeye odaklanir. Böylece mevcut (taktiksel) ihtiyaçlar gerçeklestirilir. Ancak tek bir amaca hizmet eden uygulamalarin sayisi arttikça, BT kurumlari mantik ve veri adalarindan olusan uygulama “silo”lari ile dolar. Yeni gereksinimler geldikçe, ya yeni silolar yaratilir, ya da silolar arasi entegrasyon kanallari olusturulmaya çalisilir. Ve iste daha fazla degisiklik olustukça entegrasyon kanallari arttirilir, hatta yeni silolar da eklenir. Böylece BT kurumsal manzara daha karmasik, daha külfetli, daha pahali ve evrilmesi daha yavas olur.
Birçok açidan servis yönelimi bu tür sorunlara cevap olarak ortaya çikmistir. Bu paradigma, inatla uzun vadeli stratejik hedeflerin basarilmasini önceliklendirerek, proje bazli, silo bazli ve entegre uygulama gelistirmeye bir alternatif getirir. Savundugumuz servis yönelim ile ortaya çikan durum, geleneksel uygulama silolari olmak zorunda degildir. Hatta servis yönelim uyguladigimiz ortamlarda bulunan eski ve köhne kaynak ve uygulamalar olsa bile, hedeflenen durum bunlarin daha uyumlu çalismasidir.
Özellesmis entegrasyonlar yerine gerçek anlamda birlikte çalisabilirlige
Veri paylasan yazilimlar beraber çalisabilmelidir. Eger yazilimlar uyumlu olacak sekilde tasarlanmazsa, büyük bir olasilikla beraber de çalisamazlar. Birbiri ile uyumsuz yazilimlar, arasindaki isbirligini arttirmak için entegre olmalari gerekir. Bu nedenle entegrasyon birbirinden tamamen farkli yazilimlar arasi isbirligini arttirmak için yapilmasi gereken çabadir.
Gerçi çogu zaman gerekli olsa da, özellestirilmis entegrasyonlar pahalidir, zaman isterler ve gelismesi külfetli kirilgan mimarilere neden olurlar. Servis yönelimin bir hedefi de birbiri ile dogal yollarla uyumlu olmayan yazilimlari sekillendirerek gereken özellesmis entegrasyon ihtiyaçlarini en aza indirmektir. Servis yönelim paradigmasi, gerçek anlamda birlikte çalisabilirlige erisebilmek için birçok tasarim sablonunu ile çevrelemistir.
Yazilimlari karakteristigi olan gerçek anlamda birlikte çalisabilirlik, artan maliyet verimliligi ve çeviklik gibi stratejik faydalari gerçeklestirmek için anahtar rol oynar.
Özel amaçli uygulamalar yerine paylasimli servislere
Biraz evvel açikladigim gibi, servis yönelimi birkaç tasarim sablonundan olusan bir tasarimsal yaklasimdir. Anlamli sekilde uygulandiginda, bu prensipler yaziliminizi mesru olarak servis olarak adlandirabilecegimiz servis yönelimli mantiksal birimlere dönüstürür.
Servisler, (ki bazilari gerçek anlamda birlikte çalisabilirligi saglarlar) daha önce bahsettigimiz hedef durumu destekleyen somut özelliklerle bezenmistir. Bu özelliklerden bir tanesi, farkli is süreçlerinin otomasyonunu desteklemek için paylasilabilen ve tekrar kullanilabilen, bir çok amaca hizmet eden is mantiklarini kapsamaktadir. Bir paylasimli servis kendisini, harcamalari ve yeni otomasyon çözümleri için gerekli eforu düsürürken, düzenli olarak is degeri üreten bir varlik olarak ortaya koyar. Her ne kadar planlanmis is gereksinimlerini çözen geleneksel, tek amaçli uygulamalarin degeri olsa da, paylasimli servisleri kullanmak servis yönelimli hesaplamanin stratejik hedeflerini gerçeklestirmesi açisindan (ki bu maliyet verimliligi ve çevikligin artmasi demektir) daha büyük bir deger üretir.
Optimizasyon yerine esneklige
Bu muhtemelen deger verdigimiz öncelikler arasinda en genis olanidir. Bu, tekli ve çoklu servislerin gelismesi ve yayinlanmasi sirasinda ortaya çikan düsünceleri en iyi sekilde önceliklendirmemizi saglayan yol gösterici felsefe olarak da görülebilir.
Optimizasyon öncelikli olarak uygulamanin tasariminda ince ayarlar yaparak ya da ani ihtiyaçlarin karsilanmasini hizlandirarak planli kazanimlarin gerçeklestirilmesi olarak adlandirilabilir. Esnekligin saglanmasi için uygun önceliklendirme yapilmadiginda daha önce bahsedilen silo tabanli ortamlarin olusmasina neden olmasi disinda, bunda hos karsilanmayan birsey yok. Örnegin, esneklik özelligi, servislerin verimli (ve gerçek anlamda) veri paylasabilmesinin ötesindedir. Gerçek manada degisen is gereksinimlerine karsilik verebilmek için, servisler nasil bilesik çözümler olusturabilecegini bilecek sekilde esnek olmak zorundadir. Ögelerine parçalanabilmesi gerçegine ragmen çogunlukla daha statik olan geleneksel dagitik uygulamalardan farkli olarak, servis bilesenleri sürekli artan bir esneklik ile tasarlanmasi gereklidir. Bu, ne zaman mevcut is süreçleri degisse ya da yeni süreçler eklense, asgari entegrasyon eforu harcayarak bilesen tabanli mimari çerçevesinde yeni servisler ekleyebilmemiz, eskileri çikartabilmemiz ve mevcutlari genisletebilmemiz demektir. Bu nedenle, bilesenlerine ayrilabilen servisler, anahtar öneme sahip servis yönelimli tasarim prensiplerinden biridir.
Baslangiçtaki mükemmellik arayasi yerine evrimsel iyilestirmeye
Servis yönelim ile alakali “çeviklik” terimine geldigimizde genelde kafamiz karisiyor. Bazi tasarim yaklasimlari anlik kazanimlar için yazilimin hizli bir sekilde gelistirilip yayinlanmasini savunurlar. Bu, taktiksel ve kisa vadeli faydaya odaklandigi için “taktiksel çeviklik” olarak düsünülür. Servis yönelimi, organizasyonel veya is sevileyelerinde çevikligin basarilmasi gerekliligini savunur. Bunda, bir bütün olarak degisiklige cevap verebilmek için organizasyonlari güçlendirme niyeti vardir. Bu tür bir organizasyonel çeviklik “stratejik çeviklik” olarak adlandirilir. Bunu nedeni olarak, gelistirip yayinladigimiz her yazilim ile uzun vadeli stratejik degerlere hizmet eden çevik bir ortamda çalismak gösterilebilir.
BT kurumlarinin, organizasyonel çevikligi basarabilmek için müsteri ile koordine bir sekilde evrimlesmesi gerekir. Biz genellikle isin zamanla nasil gelisecegini tahmin edemeyiz. Bu nedenle ilk anda mükemmel servisler gelistiremeyiz. Ayni zamanda, çogunlukla SOA projelerinin analizi ve modellenmesi asamasinda kullanmak üzere organizasyonlarin mevcut is aklinda genis ve zengin bir bilgi birikimi de vardir.
Bu bilgi, servis yönelim prensipleri ve ispatlanmis yöntemler ile birlikte zaman içinde isin nasil degistigini görüp ona uyum saglarken, bugün isin nasil varoldugunu ve nasil çalistigini yakalayan yeni servisleri bulmamiza ve tanimlamamiza yardimci olur.
Soldaki maddelere deger vermekle beraber, sagdaki maddeleri daha degerli bulmaktayiz
Bu degerlerin nasil önceliklendirildigini arastirdikça, servis yönelim ile diger paradigmalar arasindaki farklari daha iyi anliyoruz. Bu tür bir kavrayis bilisim çalisanlarina çesitli sekillerde yardimci olabilir. Örnegin, verilen organizasyon ya da BT kurumunda servis yönelimin uygunlugunu anlamamiz için gereken temel kriterleri saglayabilir. Hangi servis yöneliminin uygulanabilir oldugunu, hangisinin uygulanmasi gerektigini farketmemizde yardimci olabilir.
Ayrica, ana degerlerin anlasilmis olmasi bizlere belli ortamlarda SOA projeleri basarmanin ne kadar zorlayici oldugunu anlamamiza da yardim edebilir. Örnegin, buradaki bazi öncelikler, mevcut inanç ve tercihlerimiz ile kafa kafaya çarpisabilir. Bu durumda, servis yöneliminin faydalari, efor ve (sadece teknoloji üzerinde degil, organizasyon ve BT kültüründe) uyum saglama üzerindeki etkisine bakarak degerlendirilmelidir.
Birazdan gelecek rehber prensipler, bahsedilen zorluklari adreslemek için olusturulmustur.
Su ilkeleri takip ediyoruz:
Su ana kadar, manifesto ile bir vizyon ve vizyon ile iliskili temel degerlerin alti çizildi. Bildirinin geri kalani degerlere bagli kalmak ve vizyonu gerçeklestirmek için gerekli olan rehberligi sunacak prensiplerden olusmaktadir.
Unutulmamalidir ki, bu rehber prensipler manifestoya özeldir. Servis yönelim tasarim paradigmalarindan olusan, tamamen farkli bir takim tasarim prensipleri ve servis yönelimi ve servis yönelimli mimariye özel belgelenmis daha birçok pratik ve sablon halihazirda vardir.
Organizasyonlarin sosyal ve güç yapilarina saygi gösterin
SAO’nin düstügü yaygin tuzaklardan biri, benimsenme sürecini teknoloji merkezli bir inisiyatif olarak algilamaktir. Yapildiginda, kaçinilmaz organizasyonel etkilerine hazirliksiz yakalanmamiz nedeniyle hemen hemen her zaman basarisizliga neden olur.
Servis yöneliminin benimsenmesi, is süreçlerini otomatiklestirme seklimizin dönüsümü ile ilgilidir. Ancak, bu dönüsümü gerçeklestirmek için ne kadar plan yaparsak yapalim, organizasyonu, yapisini, hedeflerini ve kültürünü kavramaya çalismaktan baslamaliyiz. Servis yönelimin benimsenmesi tamamen insanlarin deneyimleri ile ilgilidir. Yetkili kisilerden destege ihtiyaç duyar, ve sonra bilisim, kültürde stratejik, topluluk merkezli bir zihniyetin olusmasini ister. Bu seviye bir organizasyonel degisimi tanimali ve planlamaliyiz, ki servis yönelimi basarabilmek için gerekli, uzun vadeli taahhütler verilebilsin.
Bu tür düsüneler, bizlerin sadece SOA inisiyatifi ile en iyi sekilde nasil devam edebilirizi anlamamizi saglamaz, ayrica en dogru kapsam ve yöntemi tanimlamamiza da yardimci olur.
SOA’nin eninde sonunda birçok seviyede degisiklik talep edeceginin farkinda olun
Bir söz vardir: “Basari firsatlara hazir olmaktir”. Sanirim SOA projelerinden edindigim bir numarali ders, servis yönelimi sonucunda olusacak degisikligin hacmi ve genisligini tamamen anlamamiz, planlamamiz ve hazirlikli olmamiz zorunlugudur. Iste birkaç örnek.
Servis yönelimi, yazilimlari uzun vadeli, tekrarlayan is degeri sahibi varliklar olarak tanimlayarak, onlari gelistirme seklimizi degistirir. Yapilacak ön-incelemeler bu varliklari içeren ortamlari olusturmak için, süregelen taahhütler ise degerlerini korumak ve kollamak için gereklidir. Özün sözü, degisim her halükarda BT kurumlarindaki sistemlere kaynak bulmak, ölçmek ve bakimini yapmak için gereklidir.
Buna ek olarak, servis yönelimin kurum içinde kaynak olarak yer bulmasinin asil nedeni, sistemin farkli parçalarinda olan degisiklikler ve tasarim ve kullanimdaki düzenlemelerdir. Altyapida sürekli ölçeklenebilirlik ve güvenilirligi garanti etmek için gerekli degisiklikleri dile getirmek asla degildir.
SOA farkli sekillerde benimsenebilir. Çabalari yönetilebilir ve sinirlar içinde anlamli degerlerde tutun
Yaygin efsanelerden biri de servis yönelimli hesaplamayi gerçeklestirebilmek için servis yönelimin kurum seviyesinde benimsenmis olmasi gerekliligidir. Bu, tasarim ve endüstri standartlarinin kurum içinde yerlesmesi ve kullanilmasina zorlanmasi demektir. Her ne kadar bu fikirde bir yanlislik yoksa da, özellikle büyük çapli birçok organizasyonlar için gerçekçi bir hedef degildir.
SAO’nin benimsenmesi açisindan en uygun kapsam, pragmatik tartismalar isiginda yapilan plan ve analiz sonucunda belirlenmelidir. Bu tartismalar, yetki alanlari ve gelisen kültürel degisiklikler gibi organizasyonel yapida olusan etkiler üzerinde olabilir.
Bu tür etkenler, bizim yönetilebilir bir dönüsümün kapsamini belirlememize yardimci olur. Bilisim kurumunu umdugumuz stratejik duruma dönüstürmek için gerekli her efor için, kapsam anlamli da olmalidir. Bir baska deyisle, kapsam silolar arasinda da anlamli olmali. Böylece birbiri ile iliskili servis gruplari, belirlenmis sinirlar içinde gelistirilip yayinlanabilir. Yine bir baska deyisle, biz “servis kitalari” olusturmak istiyoruz, “servis adalari” degil.
Kurum içinde birbirinden bagimsiz gelistirilen ve yönetilen servis öbekleri olusturma kavrami, yaygin olarak bilinen ismiyle “bing-bang” SOA projelerinin riskini azaltirken, organizasyonel ve teknik degisikliklerin etkilerini de azaltir. Bir seferde tek servis öbeginin olusmasi nedeniyle, bu bir kademeli dönüsüm yöntemidir.
Ürünler ve standartlar size ne SOA’yi, ne de servis yönelim paradigmasini verir
Bu prensip iki farkli birbiri ile iliskili efsane ile ilgilidir. Ilki, SOA’yi modern teknolojik ürünler kullanarak satin alabilirsiniz der, ikincisi ise (XML, WSDL, SCA gibi) endüstri standartlarina geçisin dogal bir sonucu olarak SOA dönüsümün basarilabileceginin düsünür. Ürün saglayici/satici ve endüstri standartlari topluluklari tescilli olmayan framework’ler ve platformlar ile modern servis teknolojilerinde yenilikler gelistirebileceklerini sanmaktadirlar. Sanallastirmadan bulut hesaplamaya ve grid hesaplamaya kadar hersey, bize gelismis ve karmasik servis yönelimli potansiyel çözümlerin gelisimi hakkinda yardimci olur. Ancak bilinmelidir ki, bu teknolojilerden hiçbiri SOA’ya özel degildir. Silo tabanli sistemleri -kendi özel sunucularinizda oldugu gibi- bulut üzerinde rahatlikla olusturabilirsiniz.
“Kutusunda SOA Çözümü” gibi birsey yoktur. Servis yönelimli mimariye sahip olabilmek için, servis yönelimi basarili bir sekilde uygulanmalidir. Bu, tasarladigimiz ve gelistirdigimiz herseyin tek bir yön, vizyon ve is gereksinimi tarafinda yönlendirilmesini gerektirir.
SOA çok çesitli teknoloji ve standart kullanarak gerçeklestirilebilir
Servis yönelimi teknoloji-bagimsiz ve satici/saglayici-bagimsiz bir paradigmadir. Servis yönelimli mimari ise teknoloji-bagimsiz ve satici/saglayici-bagimsiz bir mimari modeldir. Servis yönelimli hesaplama dagitik hesaplamanin özel bir türü olarak görülebilir. Bu nedenle servis yönelimli çözümler ancak dagitik hesaplamaya uygun teknolojiler ve endüstri standartlari ile gelistirilebilir.
Bazi teknolojilerin (özellikle endüstri standartlari temelli olanlarin) servis yönelimi tasarim prensiplerini uygulayabilme potansiyelinin artmasina ragmen, en uygun teknoloji ve endüstri standardini aslinda is gereksinimlerini gerçeklestirme potansiyeli belirler.
Endüstri temelli, genel geçer kabul gören, topluluk standartlarina uygun kurumsal standartlar ve politikalar gelistirin
Endüstri standartlari, kisiye ya da kuruma özel olmayan, mimari için kabul görmüs temel niteliklerin (veri nakli, arayüz ve mesaj formati gibi) olusmasina yardim eden teknoloji sartnameleridir. Endüstri standartlarini kullanmak servislerin karsilikli çalisabilir olmasini garanti etmez.
Iki yazilimin tamamen uyumlu olabilmesi için, (veri modeli ve ilkeleri gibi) ek kurallarina bagli kalmak gerekir. Bu nedenledir ki, bilisim sektörü tasarim standartlarini olusturmali ve kullanmaya zorlamalidir. Verilen bir alan içinde, standartlastirma ve standartlastirma süreçlerini düzenlemede yasanan sikintilar, birçok stratejik faydanin dayandigi karsilikli çalisabilme özelliginde yikima neden olmaya baslar.
Bu prensip sadece kurumsal tasarim standartlarini savunmaz, ayrica bizlere ne zaman mümkün ve olasi olursa, özellesmis tasarim standartlarinin genel olarak endüstri ve topluluklarda halihazirda kullanilan standartlari içermesi gerektigini de savunur.
Içeride çesitlilige izin verirken disarida benzerligin pesinde kosun
Birlesiklik birbirinden tamamen farkli varliklarin birlesmesine denir. Her varlik kendi içinde bagimsiz bir sekilde yönetilirken, hepsi bir ortak, birlesik bir önyüze bagli kalirlar.
Servis yönelimli mimarinin temel parçalarindan biri de, uygulamadaki detaylari soyutlastiran birlesik bir iletisim noktasi katmani olusturmasidir. Bunu basarmak için çogunlukla endüstri ve tasarim standartlarini tek potada eritmek gerektir. Gerçek anlamda karsilikli çalisabilmek için bu birlesimin tutarliligi anahtar rol oynar.
Birlesik iletisim noktasi katmani satici/saglayicilar arasinda seçme firsatinin artmasina yardimci olur. Örnegin bir servisin digerlerine nazaran tamamen farkli bir platform üzerine insa edilmesi gerekebilir. Servislerde uyumlu iletisim noktalari oldugu sürece, uygulamalarin yönetimi de birbirinde bagimsiz olacaktir. Bu sadece servislerin farkli gelistirme ortamlari (EJB, .NET, SOAP, REST gibi) üzerinde insa edilebilecegini vurgulamaz, ayrica farkli araci platform ve teknolojinin birbiri ile gerektiginde uyumlu çalisabilecegini de gösterir.
Bilinmelidir ki, bu tip bir farkliligin bir ücreti vardir. Bu prensip farklilasmayi savunmaz, basit bir sekilde gerektiginde farklilastirmamizi da önerir. Böylece son teknoloji ve platformlar is gereksinimlerini gerçeklerken de kullanilabilir.
Is ve teknoloji paydaslari ile isbirligi ile servisleri belirleyin
Teknik çözümlerin is odakli olabilmesi için teknolojinin is ile senkronize olmasi gerekir. Bu nedenle, servis yönelimli hesaplamanin bir baska hedefi de teknoloji ve isi ortak noktalarda bulusturmaktir. Bu bulusmanin gerçeklesmesi, çogunlukla servis gelistirme ve yayina almadan çok daha önce olan analiz ve modelleme süreçleri sirasinda olur.
Servis yönelimli analizi çikarabilmek için gerekli önemli bir etken de, is ve teknoloji uzmanlarinin olasi aday servisleri beraberce el ele tanimlamaya çalismasidir. Örnegin, is uzmanlari islevleri dogru bir sekilde çikarmaya yardimci olurken, teknoloji uzmanlari kavramsal servislerin tanimlarindan ve içindeki tanecikli yapidan emin olabilmek için pragmatik girdiler saglayabilirler.
Mevcuttaki ve gelecekteki kullanim seklini de göz önünde bulundurarak servis kullanimini en üst seviyeye çikarin
Verilen bir SOA projesinin kapsami kurum çapinda yada kurumun bir alaniyla sinirli olabilir. Kapsam ne olursa olsun, bir servis envanteri çikarabilmek için ön-tanimli sinirlar belirlenir. Bu servisler gelistirilmeden önce kavramsal olarak modellenmelidir. Birbiri ile alakali birden fazla servisi modellerken, sonunda gelistirdigimiz servislerin bir planini çikaririz. Bu modelleme egzersizi farkli çözümler arasinda paylasilan servisleri de belirler ve tanimlarken kritik bir öneme sahiptir.
Servis yönelimli analiz asamasini gerçeklestirmek için birçok farkli yöntem ve yaklasim mevcuttur. Hepsi için ortak yöntemlerden biri servislerin islevlerinin gereksizlerden ayiklanmasi için normalize edilmesidir. Normalize servislerin yeniden kullanilabilir servisler olmasina da gerek yoktur. Isin içine servislerin tanecikli yapisi, özerkligi, durum yönetimi, ölçeklenebilirligi, birlesikligi ve yeniden kullanilabilirligi girer.
Is ve teknoloji ihtisasi tarafindan yönlendirilen bu tip düsünceler, gelecek degisikliklere uyum için gereken esneklige sahip olurken mevcut kullanim gereksinimlerini tespit ederek servisleri tanimlamamiza firsat verir.
Servislerin is gereksinimlerini ve hedeflerini yerine getirdigini teyit edin
Herseyde oldugu gibi servisler de yanlis kullanilabilir. Bir servis portföyü gelistirir ve yönetirken, is gereksinimlerini gerçeklestirmedeki verimliligi ve kullanim sekli ölçülmeli ve dogrulanmalidir. Bir çok araç, servisin nasil kullanildiginin gözlemlenmesi ve ölçülmesi için ortam sunar. Ancak su göz ardi edilmemelidir ki, servisler sadece varoldugu için kullanilmaz, is ihtiyaçlarini ve beklentileri karsilayip karsilamadiginin dogrulanmasi için de kullanilir.
Bu birden fazla bagimliligi bulunan ortak servisler için de özellikle dogrudur. Ortak servislerin, onlari kullanan tüm çözümlerde ölçeklenebilirlik ve güvenilebilirligi garanti altina alabilmek için uygun bir altyapiya sahip olmalari yetmez, ayrica islevlerin bozulmamasi için büyük bir dikkat ile tasarlanmasi ve genisletilmesi de gereklidir.
Gerçekteki kullanimina bakarak servisleri ve servislerin düzenini evrimlestirin
Bu rehber prensip, is ve teknolojinin ortak bir noktada bulusabilmesini hedefleyen bir amaç oldugu kadar, dogrudan “Baslangiçtaki mükemmellik arayasi yerine evrimsel iyilestirmeye” deger ifadesi ile iliskilidir.
Servislerin tanecikli yapisini, islevlerini ya da nasil bir kompozisyonda olacagini belirlerken varsayimlara asla itimat etmemeliyiz. Ilk basta hazirladigimiz analiz neye dayanirsa dayansin, bir servis bir islevi belirler ve bir ya da birden fazla servis bilesimini ilgilendiren bir ya da birden fazla islevsel özellik içerir.
Gerçek hayattaki is gereksinimleri ve ortamlari degistikçe, servislerin arttirilmasi, genisletilmesi, yeniden yapilandirilmasi ve hatta degistirilmesi gerekebilir. Servis yönelimi tasarim prensipleri, servis mimarisine dogal bir esneklik katar. Böylece gerçek dünya kullanim sekline bir cevap olarak degisebilmek için, servisler de kendi kendine toparlanirlar ve degisim ile uyumlu olurlar.
Farkli oranlarda farkli yönleri degisen sistemleri ayirin
Yekpare ve silo tabanli sistemleri böylesine sert ve kirilgan yapan sey, mevcut kullanim üzerinde önemli etkisi olan degisimin kendisidir. Bu nedenle çogunlukla, yeni silo tabanli uygulamalar yaratmak, mevcut olanlari arttirip genisletmekten daha kolaydir.
Islerin ayriligi (“separation of concerns”, genel olarak bilinen bir yazilim mühendisligi teorisi) altinda yatan mantikli açiklama sudur. Büyük bir problem daha ufak is ve problemlere parçalandiginda daha verimli çözülürler. Islerin ayriligina servis yönelimi uyguladiginiz zaman, her bir isi çözebilmek için çözüm mantigini içeren ilgili birimleri yaratmis oluruz. Dolayisiyla bu yöntem, farkli ayarlar ile farkli problemleri çözebildigi gibi, daha büyük problemleri çözmek için birimleri bir araya getirmeye izin vermis de olur.
Servis yeniden-kullanilabilirligini tesvik ederken, bu yöntem birçok soyutlastirma katmani olusturarak, servis sistemlerini degisimin etkilerinden korur. Bu tür bir soyutlastirma farkli seviyelerde bulunabilir. Örnegin, eger eski kaynaklari içeren bir servisin degistirilmesi gerekirse, servisin orijinal iletisim noktalari ve islevsel davranislarini korudugu ölçüde degisimin etkileri de azaltilmis olur.
Bir baska örnek ise bagimlidan bagimli olmayan mantigin ayrismasidir. Eger çok amaçli ise ve degisim ihtimali az ise, bagimli mantigin yeniden kullanilma potansiyeli fazladir. Diger taraftan, bagimli olmayan mantik ise tek amaçli is süreç mantigini temsil eder, ki bu çogu zaman geçicidir. Farkli servis katmanlarinda bu mantik tiplerini ayristirmak yeni soyutlastirma katmanlarinin tanimlanmasina neden olur. Bu ise servis ve onlari kullanan çözümleri degisimin etkilerinden korurken, servis yeniden kullanilabilirligini arttirir.
Gizli bagimliliklari azaltin ve tüm dis bagimliliklari dayanikliligi arttirmak ve degisimin etkilerini azaltmak için yayinlayin
Bilinen en taninmis servis yönelim tasarim prensibi, gevsek baglasimdir (loose coupling). Servislerin içeride nasil yapilandigi ve onlari kullanan programlar ile nasil bir iliskide oldugu, hepsi servis mimarisinin parçalari üzerindeki bagimliliklar ile ilgilidir.
Soyutlastirma katmanlari, degisimin etkilerini kontrollü bölgelere yerlestirerek evrimsel degisimi kolaylastirir. Örnegin, gelistirme bagimliliklarini en aza indirmek için, gelistirmeyi daha soyut hale getirdigi için mimari içinde servis facade’lari kullanilabilir.
Diger taraftan, yayinlanan teknik sözlesmeleri, servisler ile etkilesimde bulunabilmek için müsterilere bagimliliklari bildirmelidir. Degisim olustugunda teknik sözlesmeleri etkileyecek iç bagimliliklardaki azaltarak, müsteriler üzerindeki degisimin etkilerini çogaltmaktan kaçinmis oluruz.
Tüm soyutlama seviyelerinde, her servisi birbirine bagli ve yönetilebilir islev birimleri çevresinde düzenleyin
Her servis iyi tanimli bir isleve ihtiyaç duyar. Bu islev servisin islev sinirlari içinde ne gibi bir mantigin olmasi ya da olmamasi gerektigine karar verir. Kapsamin belirlenmesi ve islev sinirlarinin tanecikligi servis gelistirme ve yayinlanma süreçleri içindeki en kritik sorumluluklardan biridir.
Büyük islevsel sorumluluklari olan servisler, verimlilik açisindan daha sert ve kirilgan olabilirler, özellikle de yeniden kullanilmasi beklendiginde. Diger taraftan, asiri küçük sorumluluklara sahip servisler, sayilari artan bilesenleri içerebilmek için altyapi külfetine neden olabilirler.
Islev kapsami ve taneciklik arasindaki dogru dengeyi bulabilmek, is ve teknoloji ihtisasinin bilesimine ihtiyaç duyar. Ayrica, servislerin verilen sinirlar içinde digerleri ile nasil iliskide oldugunun anlasilmasini gerektirir.
Bu manifestoda bahsedilen birçok rehber prensip, her servisi bilisim kurumlarini hedef duruma itme yetenegine sahip bir bilisim varligi olarak tanimlayarak ve servis yönelimli hesaplanmanin stratejik faydalarinin farkina vararak, ilgili kararlari verebilmemize yardimci olur.
Son olarak, sunu belirtebiliriz. Kavramlarin belirlenmesinden yayin asamasina, oradan tekrarlanan kullanim sekillerine, bu, servis yönelimli islev birimlerinin evrimsel yolunu belirleyen gerçek dünya is degerlerinin bir basarisi olacaktir.
Tesekkür: Ben bu sayfadaki içerigi 21-22 Kasim 2009 tarihlerindeki haftasonunda, o zaman için halen üzerinde çalistigim “Yeni Nesil SOA” kitabi için yazdim. Orijinal SOA Manifestosuna ilave olarak bu sitede yayinlamama izin veren Prentice Hall’a tesekkür ederim. Ayrica, ilettikleri geribildirimler ve açiklamalardaki yardimlari için SOAPatterns.org topluluguna ve çalisma grubu üyelerine de tesekkür ederim. Birçok çalisma grubu üyesi kendi yazilarin, bloglarini ve makalelerini yayinladi. Ileri yorum ve düsünceleri görmek için onlari incelemenizi tavsiye ederim.
Tesekkür: Ben bu sayfadaki içerigi 21-22 Kasim 2009 tarihlerindeki haftasonunda, o zaman için halen üzerinde çalistigim “Yeni Nesil SOA” kitabi için yazdim. Orijinal SOA Manifestosuna ilave olarak bu sitede yayinlamama izin veren Prentice Hall’a tesekkür ederim. Ayrica, ilettikleri geribildirimler ve açiklamalardaki yardimlari için SOAPatterns.org topluluguna ve çalisma grubu üyelerine de tesekkür ederim. Birçok çalisma grubu üyesi kendi yazilarin, bloglarini ve makalelerini yayinladi. Ileri yorum ve düsünceleri görmek için onlari incelemenizi tavsiye ederim.
– Thomas Erl