Makale Özeti

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

Makale

GXA - Küresel Web Servisleri Mimarisi -1

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. 

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

VB .NET MVP (Microsoft Most Valuable Professional)