Yazılım Mimarisi ve Yazılım Mühendisliği hakkında herşey...

20070120

İyi Servis, Memnun Müşteri

Servis Yönelimli Mimari (SOA) bugünlerde çok konuşulan bi mevzu, ancak şunu demek istiyorum ki SOA'nın bir yaklaşım mı, yoksa yazılım mimarisi mi olduğu daha netleştirilebilmiş değil. Hayır, SOA konusunda kafa karıştırıcı bi yazı yazmayı düşünmüyorum. Benim üzerinde duracağım sadece Servis kavramı.

Servis dediğimizde doğal olarak Web Servisleri aklımıza gelse de aslında XML Web Servisleri bu kavramın sadece bir uygulaması. Yani CORBA veya RMI üzerinde de Servis oluşturulabilir.

Diyelim ki o veya bu şekilde bir servis yaratacaksınız. Bu servisi tasarlarken en başta düşünmeniz gereken konu servis kalitesi. Servis Kalitesi yüksek olmayan (yüksek??? bu ayrı bir yazı konusu) bir servis üzerine inşa edilen bir yazılım sisteminin memnuniyet yaratması söz konusu olamaz.

Ayrıca, servis tasarımında öngörülmesi gereken bir konu da servisin bakım ve yönetim kolaylığıdır. Yönetimi ve bakımı kolay olan bir servis tasarlamak için de bağımlılıklarınızı iyi bilmeniz gerekmektedir.

Konuyu bağlayacağım nokta şu:

Geçen gün Java Web Servisleri konusunda çalışırken Tomcat 4.1 üzerine Axis 1.2 kurdum. Yaptığım Web Servisi gayet şık ve smart-ass denilen türden işler başarıyor olsa da çalıştırdığım platform kararsız olduğu için bir çok şikayete yol açtı. Alternatif olarak JWSDP-1.3 kurdum ve onda da servisi ayağa kaldırdım ancak bir süre sonra benzeri kararsız durumları o da sergiledi. Bu uygulamaların farklı sürümlerini ve içlerindeki temel kütüphanelerin farklı sürümleri türlü kombinasyonlarla denediysem de bir türlü kararlı duruma getiremedim. Tek seçenek olarak elimde bu uygulamaları source kodlarından tekrar derlemek kaldıysa da bezginliğimden uğraşmadım.

Sonuç:
1. Java Web Servisi geliştirirken çokbin $ ve J2EE ye bulaşmamak için iki alternatifiniz var:
Axis ve JWSDP.
2. Axis kullanımı kolay ama kararlı değil (binary sürüm)
3. JWSDP productive sistem olarak kullanılması düşünülmemiş bir ürün.
4. Tomcat üzerinde Web Servis diyorsanız Axis kullanmalısınız.
5. Her halükarda Web Servisiniz güzel de olsa platformunuz kararlı değilse "Hadi canım sen de!" şeklinde tepkilerle karşılaşıyorsunuz.
6. .NET ile Web Servisi geliştirmek Java'ya göre daha kolay.
7. Sırf hava olsun, "SOA kullanıyoruz biz, siz kullanmıyor musunuz?" diye geyikler çevirmek için Web Servisi yapmayın. Web Servisine gerçekten ihtiyacınız var mı? yoksa gidin RMI, CORBA, Remoting, ... gibi daha kararlı ve oturmuş sistemler kullanın. Unutmayın, SOAP en nihayetinde HTTP ile çalışan ve birçok servisi eksik olan bir protokol ve SOA dediğiniz Web Servisi değildir.
8. Kullanıcıyı düşünün, kim takar sizin sunduğunuz servisin nasıl gerçeklendiğini?

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home