GXA – Küresel Web Servisleri Mimarisi

@ 01 Kasım 2007 tarihinde yazdı. Yazıya yorum yazın.

GXA Nedir ?

Son yıllarda web servisleri, internet/intranet üzerinde çalışan dağıtık mimarideki uygulamaların entegrasyonu sağlayan, fundamental yapı taşları durumuna gelmiş ve beklentiler doğrultusunda yaygınlaşmıştır. Bu başarının temel nedeni; hiç kuşkusuz web servislerinin SOAP, WSDL ve UDDI gibi açık standart’lar üzerine yapılandırılmış olmasında aranmalıdır.

Söz konusu çekirdek teknolojilerin oluşturduğu temel yapı, uygulama entegrasyonunu ve karşılıklı işleyebilirliği mümkün kılmaktadır. Ancak web servislerinin bugunkü konumu, dijital yaşam tarzı ve global ekonominin bir parçası olmayı hedefleyen kurumların ihtiyaçlarını tam olarak karşılayamamaktadır. Bu durum, “yüksek hacimli işlevsellik” başlığı altında toplayabileceğimiz (sözgelimi güvenlik, routing, güvenilir mesajlaşma ve transaction desteği gibi) çok da karşılıklı işleyebilir olmayan yöntemlerin önemini arttırmaktadır.

İşte bu noktada GXA, beraberinde getirdiği prensip ve spesifikasyonlarla, bugünün ihtiyacı olan daha kompleks ve sofistike görevlerin web servisleri tarafından yapılabilmesini sağlar. Bu cümleden hareketle, “GXA nedir” sorusuna şöyle bir cevap verebiliriz : “Dağıtık uygulamalar için SOAP tabanlı bir mimariyi öngören ve beraberinde getirdiği yeni özelliklerle, web servislerini geleceğe taşıyan teknolojidir”.

Microsoft ve IBM ‘i GXA teknolojisini geliştirmeye iten neden; hiç kuşkusuz web servislerinin bugunüne ilişkin kısıtlamalar ve yetersizliklerdir. Ancak bu yetersizliklerin neler olduğunu irdelemeden önce, -bir durum tespiti yapabilmek adına- web servislerinin hangi amaçlar için kullanıldığını kısaca gözden geçirmek yararlı olacaktır.

Kurumsal Uygulama Entegrasyonu (EAI): Web servislerinin marjinal faydası; farklı platformlar arasındaki entegrasyonu sağlamaktır. Uygulama geliştiriciler başından beridir web servislerini, heterojen yapıdaki sistemlere sahip kurumlardaki uygulamaların birbirleri ile konuşturulabilmesini sağlamak için kullanmaktalar.

İş Ortakları İle Birlikte Çalışabilme : Kurum içi entegrasyonun bir sonraki adımı; iş ortakları ile birlikte çalışabilmek biçiminde karşımıza çıkmaktadır.

Farklı Kurumlara İlişkin Sistemlerin Entegrasyonu : Bu durum, web servisleri adına ilave bir takım özellikleri gerektirmesi sebebi ile (sözgelimi global erişilebilirlik, güvenlik, güvenilirlik gibi) henüz tam olarak sağlanabilmiş değildir.

Web Servislerindeki Yetersizlik ve Kısıtlar

  • Standardize edilmiş bir güvenlik mekanizmasının bulunmayışı. Uçtan uca kimlik denetiminin (end-to-end authentication) ve efektif bir yetkilendirmenin planlanması gerekir. Keza pek çok uygulama için veri bütünlüğü ve gizliliği önemlidir. Bu noktada her ne kadar önerilmiyor olsa da farklı güvenlik mekanizmaların kombine kullanımı gerekebilir.
  • Birlikte çalışabilirlik (interoperability) pek çok durumda sorunlara neden olabilmektedir. Zira teknolojideki eksiklikler, farklı odaklar tarafından geliştirilen SOAP çözümlerinde uyumsuzluklara neden olmaktadır.
  • Var olan uygulamaları, web servislerini kullanabilecek hale getirmek de sorunlara yol açabilir. Birlikte çalışmak üzere tasarlanmamış bileşenler bağlı hale getirilmek istendiklerinde hız, ölçeklenebilirlik ve güvenlik çözüm bekleyen sorunlar olarak karşımıza çıkacaktır.
  • Bilindiği gibi SOAP protokolü ile şekillendirilen XML verilerinde boyut artışı kaçınılmazdır. Bu durum düşük bant genişliğine sahip ağ sistemlerinin tıkanmasına neden olabilir. Aynı şekilde, sık ve az veri aktarımı da bu istekleri işleyen uygulamayı kilitleyebilir. Durum çözümsüz gibi gözükse de bu iki karakteristiğin dengelenmesi gerekir.
  • Mesaj path’lerinin dinamik olarak nasıl eklenip çıkartılacağı sorunu.
  • Uzun süren transactional işlemler için nasıl bir davranış gösterileceği.

İş gereksinimleri, web servislerini daha komplike olmaya, yazılım geliştiricileri ise web servislerine ilişkin standartların çözüm bulamadığı sorunları çözecek ilave yetenekler (örneğin güvenlik, routing, güvenilir mesajlaşma veya transaction desteği gibi) geliştirmeye yöneltti.

GXA’in Doğuşu

IBM ve Microsoft, nisan 2001 ‘de gerçekleştirilen W3C toplantısında web servislerinin evrimine ilişkin bir mimari taslağı sundular. Söz konusu taslak, GXA teknolojisinin müjdesi oldu. GXA’in tasarımı dört temel prensibe dayandırılmıştır :

Genel Amaçlılık : GXA, genel amaçlı kullanıma yönelik, geniş erime sahip bir teknoloji olarak tasarlanmıştır. Bu anlamda çeşitli senaryoları (B2B, B2C, EAI, peer-to-peer gibi) kapsayacak perspektife sahiptir.

Modülarite : Üzerinde çalışılan sistemin gerektirdiği yeni özelliklerin, modüller biçiminde tasarlanıp, sisteme kolaylıkla eklenebilmesi anlamındadır.

Federatiflik : GXA, tümüyle dağıtık ve farklı organizasyonlar arasında, merkezi sunucular gerektirmeyen web servislerini detekleyecek şekilde tasarlanmıştır.

Standart tabanlı yaklaşım : GXA da önceki diğer spesifikasyonlarda olduğu gibi, standart tabanlı bir yaklaşıma dayalı tasarlanmıştır, bu nedenle son derece uyumlu bir teknolojidir.

GXA ‘in Bugunü ve Geleceği

WS-Routing : SOAP mesajlarını HTTP, TCP ya da UDP gibi çeşitli iletişim protokolleri üzerinden, stateless ve asenkron biçimde göndermeyi mümkün kılan, temel bir SOAP uzantısıdır.

WS-Referral : SOAP router’lar ile mesaj yollarını belirleme.

WS-Security : Web servisleri için standardize edilmiş bir güvenlik modelini öngörür. Bu anlamda mesaj bütünlüğü ve mesaj gizliliği gibi özellikleri ile karakterizedir. Mesaj bütünlüğü, mesajların imza ve lisanslar sayesinde bozulmaksızın (değiştirilmeksizin) iletilebileceği anlamına gelirken, mesaj gizliliği ise mesajların şifrelenerek gönderilebilmesini ifade eder.

WS-Licence : X.509, Kerberos gibi bazı ortak lisans formatlarının kullanımını sağlar. Ayrıca WS-Licence, gelecekte kullanılması muhtemel olan yeni lisans formatlarına da angaje olabilecek yapıda tasarlanmıştır.

Not : Yukarıda sayılanlar, ekim 2001 itibari ile yayınlanmış olan spesifikasyonlardır.

Güvenilir Mesajlaşma : Güvenilir mesajlaşma olgusu; mesajların iletimi noktasında herhangi birisinin kaybolmadan ve doğru sıra ile yerine ulaşabilmesinin yanı sıra, aynı mesajın birden fazla kez gitmemesi anlamına da gelir. Bu noktada, web servisleri internet/intranet ortamlarında her ne kadar güvenilir bir şekilde çalışmak zorunda olsalar da, üzerinde çalıştıkları protokollerin, ne derece güvenilir oldukları tartışmaya açıktır. Sözgelimi bugün yoğun olarak kullandığımız HTTP protokolü, gönderilen bir talep ya da cevabın, karşı tarafa sorunsuz ulaşabildiğini kesinleştirmeye yarayacak, herhangi bir mekanizmayı barındırmamaktadır. Öte yandan SOAP gibi protokoller, katastrofik hatalara (aranılan kaynağın bulunamaması gibi) karşı duyarlıdırlar.

Transaction Desteği (WS-Transaction & WS-Coordination) : Günümüzde kullanılmakta olan, two-phase commit protokol’lerin sadece belirli durumlara uygun olduğu, öte yandan yazılım geliştiricilerin daha loosely coupled (gevşek bağlı), örneğin exception veya compensation gibi mekanizmalara dayalı, tekniklere ihiyaç duydukları bir gerçektir. Söz konusu teknikler, transaction’ların daha geniş bir perspektif’te kullanılabilmesine imkan tanımaktadır. Böylece yazılımcılar web servisleri arasında iletilecek mesajları anlamlandırabilen, güçlü iş modelleme araçlarına sahip olacaklar.

SOAP & SOAP Modülleri

SOAP’ın öncelikli görevi; mesajların yapısını ve mesaj işleme modelini belirleme noktasında bir altyapı oluşturmaktır. SOAP, birleştirilebilir modüllerin HTTP gibi farklı protokoller üzerinde çalışabilmesi için uygun bir bir ortam sağlar. SOAP modülleri, diğer yapı elemanları (WS-Security, WS-Licence, WS-Routing gibi) ile birleştirilerek yüksek hacimli işlevsellik elde edilebilir. Örneğin WS-Security, WS-Routing başlığını kullanan bir SOAP mesajının dijital olarak nasıl imzalanacağını tanımlayabilir. Öte yandan GXA teknolojisine ilişkin bu spesifikasyon’ların tümü ileriye uyumludur. Yani tüm spesifikasyon’lar, ileride eklenecek yeni özelliklere entegre olmayı sağlayacak mekanizmaları bünyesinde barındırmaktadır.

GXA Güvenlik ve Lisanslama Modülleri (WS-Security & WS-Licence)

WS-Security ve WS-Licence, birarada kullanılarak hassas verilerin güvenli olarak iletilmesi sağlanır. Bu spesifikasyonların ilgi alanı; iletim sırasında veri gizliliği ve bütünlüğünün sağlanmasıdır. WS-Security; SOAP mesajlaşma mekanizmasına şu üç eklentiyi getirmiştir : mesaj bütünlüğü, mesaj gizliliği ve credential transferi. Gerçekte bu mekanizmaların hiç birisi, tek başına ve komple bir güvenlik çözümü değildir.

WS-Security : Uygulamaların güvenlik gereksinimlerini karşılamaya yönelik diğer protokoller ile bir arada kullanılabilen bir teknolojidir. WS-Security, spesifik bir format gerektirmeden, lisanslar (örneğin X.509 sertifikaları ya da Kerberos) ile mesajları birleştirmek adına, genel amaçlı bir mekanizma sağlar.

WS-Licence : Sıklıkla kullanılan bir dizi lisans türünü (credentials; dijital olarak imzalanmış bildirimler) ve bunların WS-Security tag’ı içerisine nasıl konumlandırılacağını belirtir. Spesifik olarak WS-Licence, (X.509 certificates ya da Kerberos tickets) gibi yapıların nasıl şifreleneceğini tanımlar. Ayrıca SAML (Security Assertion Markup Language) ve XrML (eXtensible rights Markup Language) dilleri de WS-Licence tarafından desteklenmektedir.

Ağ topolojisi bağımsızlığı ve yönlendirme (WS-Routing)

Kaynaklar :

Developing XML Web Services using Microsoft ASP.NET

Sonuç

Bu makalede hedeflenen olgu; GXA ‘in hangi ihtiyaçlar doğrusultusunda ortaya çıktığını ve temel getirilerini okuyucuya anlatabilmektir. Bu makalenin devamı niteliğindeki ikinci makalede söz konusu getiriler detaylı bir biçimde ele alınacaktır.

Aykut Taşdelen