Makale Özeti

Bu yazımız ile birlikte XML Web Servislerine detaylı bir giriş yapacağız ve serinin takip eden yazılarında bolca örnek uygulama eşliğinde web servisleri kavramını derinlemesine öğrenmiş olacağız.

Makale

XML Web Servisleri - I

Bu yazımız ile birlikte XML Web Servislerine detaylı bir giriş yapacağız ve serinin takip eden yazılarında bolca örnek uygulama eşliğinde web servisleri kavramını derinlemesine öğrenmiş olacağız.

Her işte olduğu gibi internette bilgi sağlanması konusunda da işi ehline bırakmak en iyisi. İş yaşamının da bu yönde ilerlediğini söylemek yanlış olmayacaktır sanıyorum. Zira hedeflerinize ulaşmanın en sağlıklı yolu da budur. Çok iyi bilmediğiniz bir iş ile uğraşacağınıza bu işi en iyi şekilde yapanlar ile anlaşır ve siz kendi uzmanlık alanınız olan işe bakmaya devam edersiniz. Misal siz mobilya üreten bir firma iseniz ürünlerinizin taşınması konusunda bir lojistik firması ile, mali işleriniz konusunda bir müşavirlik firması ile anlaşırsınız. Nedeni bunun onların işi olmasıdır. Böylelikle sizin de tüm enerjinizi hedefleriniz doğrultusunda kullanmanızın yolu açılacaktır.

.Net ile beraber hayatımıza yerleşen Web Servislerinin de temelinde bu yatmaktadır. Bir işi en iyi yapan ; "Bu benim işim" diyen siteler tarafından üretilen veriyi kullanarak hem enerji kaybından kurtulursunuz hemde sağlıklı veriler ile çalışmanın rahatlığını yaşarsınız.

Peki nedir bu servis olarak alabileceğiniz şeyler?

Birçok sitede yer alan hava durumu, döviz kurları gibi ortak kaynaktan çıkan veriler en önce akla gelen örneklerden şüphesiz. Sonuç itibari ile döviz kur bilgilerinin T.C. sınırları içerisinde en sağlıklı alınabileceği kuruluş T.C. Merkez Bankası. Merkez bankası önceleri bu veriyi text olarak bize sunabiliyordu. Ve biz programcılar tearing işlemi ile bu verileri çekebiliyor ve sitemizde yayınlayabiliyorduk. Ancak neticede çalıştığımız şey bir text dosya ve bir insan tarafından hazırlanmasının getirebileceği hatalar ile beraber geliyor. Düşünebiliyor musunuz sizin Euro kuru için okuduğunuz satıra kontrolünüzde olmayan bir gün dolar kurunun yerleştiğini. Sadece bilgi amaçlı bu bilgiyi sunuyorsanız en fazla hatalı bilgi vermiş olursunuz peki ya bu veriler ışığında e-ticaret işi ile uğraşıyor ve ürün satıyorsanız. İşte bu sizin için uykusuz geceleri de beraberinde getirebilecek bir sorun olurdu herhalde.

Bu bir örnekti elbette, çok şükür ki TCMB artık bu bilgileri bize web servisleri yardımıyla sunuyor ve daha rahat çalışabiliyoruz.

Başlıktan da anlayacağınız üzere bu servis sisteminin temelinde yatan teknoloji "XML". XML konusuna daha önce detaylıca değinmiştik. Kısaca geçmek gerekirse tüm teknolojiler ile entegre çalışabilen, hem bilgisayar sistemleri hemde insanlar tarafından okunabilen, tasarımdan uzak veri iletim dilidir XML. Bu aşamada bize kolaylıklar sağlar. Örneklemek gerekirse: İş ortağı iki firma arasında veri paylaşımı yapılacağı zaman firma sistemlerinin birbiri ile çalışabilen yapıda olmasını umardık hep. Ne yazıkki çoğu zaman bu gerçekleşmez, bambaşka iki sistem ile karşı karşıya kalırdık. Bu aşamada kendi özel bileşenlerimizi yazmak ve her iki tarafa yüklemekten başka çaremiz kalmazdı. Bu hem yorucu hemde güvenlik seviyesi düşük bir çalışma metoduydu. Bu sebep ile IP kısıtlamaları gibi ek güvenlik önlemleri almaya çalışırdık. Neticede proje biterdi ancak yeni bir firma bu sisteme entegre edileceği zaman veya yeni iki sistem arasında haberleşme sağlanacağı zaman herşey yeniden başlardı. XML in bizesağladığı kolaylık burada açığa çıkıyor. Artık iki sistemin ne olduğu bizi çokda ilgilendirmiyor. Biz veriyi XML olarak veriyoruz ve şayet veri almamız gerekiyorsa yine XML şeklinde veriyi alıyor ve üzerinde çalışıyoruz.

Web servisleri yukarıda saydığım gibi XML tabanlı mimarisi ile internet üzerinde haberleşmeyi farklı bir boyuta taşıdı. Microsoftun 10 yıllık .Net vizyonunun da büyük bölümünü oluşturu XML Web Servisleri.

İlk örneğimizi yaparak devam edelim:

Yapacağımız örnek ilk olması ve konuyu kavrayabilme kolaylığı açısından 4 temel matematik işleminden biri olan çarpma olsun. Yukarıda verdiğimiz örneğe bağlı kalmak gerekirse biz "2 sayının çarpımını en iyi bulan firma benim" diyelim ve hizmeti vermek için ilk adımı atıp web servisimizi yazalım.


<%@ WebService Language="VB" Class="carpim_hesapcisi" %>
Imports System.Web.Services

Public Class carpim_hesapcisi:inherits WebService

<WebMethod()> Public Function carpim_hesapcisi(ByVal degisken1 As Integer, ByVal degisken2 As Integer) As Integer
Return(degisken1*degisken2)
End Function
End Class


Kısaca kodumuzu açıklayalım.
Web Servislerini kullanacağımız için projemize System.Web.Services NameSpace ini dahil ettik. Ardından yaptığımız işlem aslında klasik bir fonksiyon yazımı. Dikkat edilmesi gereken nokta <WebMethod()> ile başlaması. Web servislerinde bunu sürekli yapacağız.
Return fonksiyonu ile ise tanımladığımız degisken1 ve degisken2 değişkenlerinin çarpımını geri döndüreceğimizi belirtiyoruz.

Bu çalışma ekranını kaydettiğinizde dikkatinizi ilk çekecek şey sanırım ASP.Net e geçtikten sonra yavaş yavaş alışmaya başladığınız .aspx uzantısı yerine .asmx uzantısını taşıdığı olacaktır. Web servisleri klasik aspx sayfaları gibi browserda görüntülenmemesi gerektiği için bu uzantıyı almaktadır. Çalıştırdığınızda karşınıza aşağıdaki ekranın gelmesi gerekir.




Şimdi çalışıp çalışmadığını test etmemiz gerekiyor elbette. Bu sebep ile oluşan sayfada carpim_hesapcisi linkine tıklıyoruz.




Karşımıza üstteki resimdeki gibi bir test sayfasının gelmiş olması gerekiyor. Burada uygulamamıza ilk başlarken verdiğimiz sözü tutup tutamadığımızı yani iki sayıyı gerçekten çarpıp doğru değer döndürüp döndürmeyeceğimizi göreceğiz.

Test için girdiğimiz 2 verinin ardından "Invoke" butonuna bastığımızda sonuç XML olarak karşımıza geliyor.




Bu elbette basit bir örnekti. Database inizin bir bölümünde bu şekilde sorgu çalıştırılmasını sağlayabilirsiniz. Gelişmiş örnekler ve detaylar için bir sonraki yazımızda aynı konuya devam edeceğiz.