Yazılan programların, geliştirilen protokollerin, hazırlanan web sitelerin kısaca bilgisayar ile ilgili yapılan her eylemin temelinde yatan amaç; bilgiye daha hızlı ve zahmetsizce ulaşmak olmuştur. Şu an kullanmakta olduğumuz gelişmiş uygulamaların ortak noktası farklı bilgisayarların, farklı ağların ve farklı programların aralarında bilgi alışverişi sırasında yaşadığı engellerdir. XML’in çıkışıyla birlikte bu farklı dünyaların birbiriyle haberleşmesi büyük bir ölçüde rahatlamıştır. Artık üzerinde çalıştıkları işletim sistemi, kullandıkları veritabanı, yazılmış oldukları programlama dili farketmeksizin bir XML dosyasını okuma ve parse etme becerisine sahip her ortam birbiriyle rahatlıkla iletişim kurabilir hale gelmiştir.
1998 senesinde Sun ve IBM in ortak çalışmaları sonucu ortaya çıkardıkları Web Servisleri, farklı ortamların birbiriyle zahmetsizce haberleşmesi konusunda önemli bir adım oldu. Fakat gerek Web Servislerinin oluşturulması ve kullanılmasının ileri derece programalama bilgisi gerektirdiği gerekse pazarlama ve tanıtımına gerektiği önemin verilmemesinden dolayı pek kullanıl(a)madı.
Web Servisleri için ikinci önemli adım ise Microsoft’un Visual Studio .NET geliştirme ortamı ile zahmetsizce hazırlanıp kullanılabilir hale getirilmesidir. Microsoft Web Servisleri konusunda yaptığı çalışmalar sonucu kullanıcı dostu ( user friendly ) hale getirmesi ve pazarlama ve tanıtım çalışmalarına verdiği öneme rağmen beklediği ilgiyi görememiştir. Bunun nedeni ise kamuoyunda Web Servislerinin Microsoft un tekelinde gelişen ve özel bir alanı olduğu önyargısının oluşmasıdır.
Çalışma Mantığı

Web in çalışma mantığına göz attığımızda veri alışverişinin istemci-sunucu arasında gerçekleştiğini görürüz. Veritabanı kullanan web sitelerinde ise istemci-sunucu-veritabanı arasında bir veri alışverişi yaşanır. Web Servislerini kullandığımız web uygulamalarımızda istemci-sunucu-veritabanı üçlemesinde veritabanın yerine Web Servislerini koyabiliriz. Peki Web Servislerinin yapıpta veritabanının yapamadığı nedir ? Veritabanı sunucuları gibi bilgi saklayabilir, saklanan bilgiyi istendiğinde geri verebilir ve bunun yanısıra istediğimiz bilgiyi istenen formatta ( integer, string, array, dataset ) ve platform gözetmeksin elde edebiliriz.
Web Servislerini Anlamak
Web Servisleri nesne ve metodlarını HTTP prokolünü kullanarak bir masaüstü uygulaması yada bir web sitesine dahil edebiliriz. HTTP (Hyper Text Transfer Protocol ) nin açılımı "Zengin Metin Taşıma Protokolü" dür ve metin bazlı verilerin taşınmasına olanak sağlar. Web Servislerinde kullandığımız diğer veri tipleri ( integer,string, array, dataset, object ) nin transferi ise SOAP ( Simple Object Access Protocol ) sayesinde gerçekleşir.
Web Servislerini oluşturmak Visual Studio .NET ile oldukça kolaylaştırılmıştır. Aşağıda bir ASP.NET uygulamasında C# kullanarak oluşturulmuş HelloWorld isimli bir class örneğini incelyelim
public class hello
{
public string HelloWorld()
{
return "Hello World";
}
}
Yukarıdaki HelloWorld isimli class çağrıldığında geriye string bir değer döner. Bu class’ı bir webservisine dönüştürmek için yapacağımız şey class içinde bulunan metodun başına bir WebMetodu olduğunu bildirmekten ibaret
public class hello
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
Visual Studio .NET ile oluşturduğumuz .asmx uzantılı sayfamızda [WebMethod] ifadesi otomatik olarak yazılacaktır.
Bir Web Servisi Hazırlamak

Visual Studio .NET i açalım ve File Menüsünden New Sekmesine gelelim. Açılacak menüden ise Project i seçelim.

Açılan Project Penceresinden Soldaki Project Types bölümünden (1) Visucal C# Projects i seçelim, sağ taraftaki Templates bölümübde ise (2) ASP.NET Web Service i seçelim ve son olarak (3)Projemimizin ( yani Web Servisimizin ) ismini yazalım.
OK tuşunua basmamızla birlikte Visual Studio .NET, Web Servisimizin çalışması için gererkli dosyları oluşturmaya başlayacaktır. Şu an elimizde AssemblyInfo.cs, Global.asax, Service1.asmx, Web.config isimki 4 adet dosyamız var. Bizim işimiz asmx uzantılı dosya ile. Service1.asmx dosyamızı açalım ve "click here to swicth to code view" üzerine tıklayarak işimize başlayalım.
"Code view" e geçtiğimizde dosyanın başında Web Servisimizin çalışması için ihtiyaç duyduğu sınıfların using komutuyla projemize dahil edildiğinizi görürüz. Biraz aşağılara göz attığımızda ise yukarıda örneğini verdiğimiz bir HelloWorld isimli metodun satır başındaki yorum işaretleri ile pasifize edilmiş bir şekilde bizi beklediğinizi görürüz.
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
Bu satırbaşındaki yorum işaretlerini ( // ) işaretlerini kaldıralım ve Web Servisimizin çalışıp çalışmadığını kontrol edelim. Projemizi Debug menüsünden Start diyerek ( yada kısaca F5 e basarak ) çalıştıralım.

Projemizi çalıştırdığımızda Web Servisimiz Internet Explorer üzerinde bu şekilde gözükecektir. Gördüğünüz gibi HelloWorld isimli fonksiyonumuz listelenmiş. Şimdi üzerine tıklayarak neler olacağını görelim.

HelloWorld Fonksiyonumuzun linkine tıkladığımızda fonksiyonumuz için ayrı bir sayfa açılır ve bu sayfa da fonksiyonumuzu tetikleyecek Invoke tuşu bulunur. Invoke tuşuna basalım ve fonksiyonumuzu çıktısını görelim

Görüldüğü gibi fonksiyonumuzun çıktısı olan "Hello World" XML formatında bize sunulmuştur.
Basit olarak bir XML Web Servisi bu şekilde çalışır. Ve Visual Studio .NET ile bir Web Servisini projemizde kullanmak bundan daha basittir.
Web Servisini Kullanmak

Bir Web Servisini projemizde kullanabilmek için Visual Studio .NET içindeki Solution Exploerer da bulunan References üzerine sağ tıklayıp "Add Web Reference" seçeneğine tıklayalım.

Daha sonra açılan pencerede ( 1 )URL hanesine kullanacağımız Web Servisinin adresinin yazarak Go tuşuna basalım. (2) Web Servisine için proje içinde kullanacağımız bir isim verelim. (3) Add Reference tuşuna basarak Web Servisini projemize dahil edelim.

Artık Web Servisimiz Projemize dahil oldu ve onu kullanmaya başlayabiliriz. Projemizde bulunan WebForm1.aspx isimki dosyamınızın Page_Load fonksiyonuna aşağıdaki şekilde değiştirelim
private void Page_Load(object sender, System.EventArgs e)
{
mutasyon.Service1 WebServisim = new mutasyon.Service1();
string strTest = WebServisim.HelloWorld();
Response.Write(strTest);
}

Projemizi çalıştırdığımızda Web Servsimiz Dünyaya Merhaba diyecektir.
Web Servislerini Kaydetmek
iyelim illerin hava durumunu bildiren güzel bir Web Servisi hazırladık. Fakat bunu eşimiz dostumuz ve ulaşıp pazarladığımız kişiler dışında daha geniş bir kitleye ulaştırmak istiyoruz. O halde Web Servislerinin Google’ı olarak tanımlayabileceğim www.uddi.org a gidip Web Servisimizi kaydetmemiz gerekiyor. UDDI ( Universal Description Discovery Integration ) , Ariba, IBM ve Microsoft ’un oluşturduğu bir Web Servislerinin daha büyük kitleler tarafından bulunup kullanılmasını amaçlayan bir oluşumdur.
Yararlanılarn Kaynaklar :
Adım Adım Asp.NET (Arkadaş Yayınevi - Microsoft Press ) Developing .Net Web Service with XML ( syngers.com )
Ayrıca Web Servisleri ile iligi aşağıdaki linklerde çeşitli kaynaklara ulaşabilirsiniz
Kaynak: Cyber- Warrior
Hiç yorum yok:
Yorum Gönder
~ Anonim Olarak Yorum Yapabilirsiniz
~ Yorumlarınız Onaylandıkdan Sonra Gösterilir