SOA nedir? Hizmet Odaklı ArchiYapı İlkeleri

SOA Nedir (Hizmet Odaklı) Archidoku)?

Hizmet Odaklı Archidoku (SOA) bilgisayar yazılımı tasarımında uygulama bileşenlerinin bir iletişim protokolü aracılığıyla diğer bileşenlere hizmet sağladığı, tipik olarak bir ağ üzerinden mimari bir desendir. Hizmet odaklılığın ilkeleri herhangi bir ürün, satıcı veya teknolojiden bağımsızdır.

SOA, çeşitli ağlar üzerindeki yazılım bileşenlerinin birbirleriyle çalışmasını kolaylaştırır.

SOA mimarisine göre oluşturulan web servisleri web servisini daha bağımsız hale getirme eğilimindedir. Web servisleri birbirleriyle veri alışverişinde bulunabilir ve oluşturuldukları temel prensipler nedeniyle herhangi bir insan etkileşimine ihtiyaç duymazlar ve ayrıca herhangi bir kod değişikliğine ihtiyaç duymazlar. Bir ağdaki web servislerinin birbirleriyle sorunsuz bir şekilde etkileşime girebilmesini sağlar.

Servis Odaklı Archidoku (SOA) İlkeleri

Aşağıda belirtilen 9 tür SOA tasarım ilkesi vardır.

1. Standartlaştırılmış Hizmet Sözleşmesi

Hizmetler bir hizmet açıklamasına uygundur. Bir hizmetin, hizmetin neyle ilgili olduğunu açıklayan bir tür açıklaması olmalıdır. Bu, istemci uygulamalarının hizmetin ne yaptığını anlamasını kolaylaştırır.

2. Gevşek Kaplin

Less birbirlerine bağımlılık. Bu, web servislerinin temel özelliklerinden biridir ve web servisleri ile web servisini çağıran istemci arasında mümkün olduğunca az bağımlılık olması gerektiğini belirtir. Yani servis işlevselliği herhangi bir zamanda değişirse, istemci uygulamasını bozmamalı veya çalışmasını engellememelidir.

3. Hizmet Soyutlaması

Hizmetler, kapsadıkları mantığı dış dünyadan gizler. Hizmet, işlevselliğini nasıl yürüttüğünü açıklamamalıdır; istemci uygulamasına sadece ne yaptığını anlatmalıdır, nasıl yaptığını değil.

4. Hizmetin Yeniden Kullanılabilirliği

Mantık, yeniden kullanımı en üst düzeye çıkarmak amacıyla hizmetlere bölünmüştür. Herhangi bir geliştirme şirketinde yeniden kullanılabilirlik büyük bir konudur çünkü açıkçası kimse aynı kodu gerektiren birden fazla uygulamada tekrar tekrar oluşturmak için zaman ve çaba harcamak istemez. Bu nedenle, bir web hizmetinin kodu yazıldıktan sonra çeşitli uygulama türleriyle çalışabilme yeteneğine sahip olmalıdır.

5. Hizmet Özerkliği

Hizmetler, kapsülledikleri mantık üzerinde kontrole sahip olmalıdır. Hizmet, sunduğu işlevsellik hakkında her şeyi bilir ve bu nedenle içerdiği kod üzerinde de tam kontrole sahip olmalıdır.

6. Hizmet Vatansızlığı

İdeal olarak, hizmetlerin durum bilgisi olmayan olması gerekir. Bu, hizmetlerin bir durumdan diğerine bilgi saklamaması gerektiği anlamına gelir. Bunun istemci uygulamasından yapılması gerekir. Örnek olarak bir alışveriş sitesinde verilen sipariş verilebilir. Artık size belirli bir ürünün fiyatını veren bir web hizmetine sahip olabilirsiniz. Ancak ürünler alışveriş sepetine eklendiğinde ve web sayfası ödeme yaptığınız sayfaya yönlendiriliyorsa, ödeme sayfasına aktarılacak ürünün fiyatının sorumluluğu web servisine ait olmamalıdır. Bunun yerine web uygulaması tarafından yapılması gerekiyor.

7. Hizmetin Keşfedilebilirliği

Hizmetler keşfedilebilir (genellikle bir hizmet kayıt defterinde). Bunu zaten web servisi hakkında bilgi tutabilen bir kayıt işlemi gerçekleştiren UDDI kavramında görmüştük.

8. Hizmet Şekillendirilebilirliği

Hizmetler büyük sorunları küçük sorunlara böler. Bir uygulamanın tüm işlevselliği hiçbir zaman tek bir hizmete dahil edilmemelidir; bunun yerine, hizmet, her biri ayrı iş işlevselliğine sahip modüllere bölünmelidir.

9. Hizmet Birlikte Çalışabilirliği

Hizmetler, çeşitli abonelerin hizmeti kullanmasına izin veren standartları kullanmalıdır. Web hizmetlerinde standartlar XML ve HTTP üzerinden iletişim, bu prensibe uygunluğunu sağlamak için kullanılır.