Makale Özeti

Şimdiye kadarki 3 yazıda basit bir web servisinin oluşturulmasından,WSDL ve SOAP dan bahsettik. WSDL kullanan ve SOAP paketleri halinde bilgi ileten bir web servisiniz olduğunu var sayalım. Peki kullanıcılar sizin web servisinizi nereden bulacak?

Makale

XML Web Servisleri IV

Şimdiye kadarki 3 yazıda basit bir web servisinin oluşturulmasından,WSDL ve SOAP dan bahsettik. WSDL kullanan ve SOAP paketleri halinde bilgi ileten bir web servisiniz olduğunu var sayalım. Peki kullanıcılar sizin web servisinizi nereden bulacak? İlk bakışta anlamsız gibi gelecektir, zira her web servisinin sunulduğu bir url si var. Kullanıcı şayet biliyorsa bu url adresine ?WSDL ekleyerek WSDL dokumanına ve genel tüm özelliklerine ulaşabilir. Peki durum böyleyken neden bu yazıda "Web Servis Keşfi" ni ele aldık?

Yukarıdaki olasılık sadece web servisini belli bir kurumun standardında çalıştırmada işe yarayacaktır.Ancak web servislerinin sayısı arttıkça ve web servisleri web üzerinde iş tak,ibiniz açısından genel bir dil haline geldiğinde -ki buna service orianted yazılım geliştirme demek yanlış olmaz- yukarıdaki olasılıkta kendi başınıza yaptığınız işlem gittikçe pratik olmaktan çıkacaktır. Web servisini kullanack kişilere url adresini e-mail ile göndermek hem verimsiz hemde zaman alan bir iş olacaktır. URL nin telefon ile kullanacak birime verilmesi daha da kullanılamaz bir yöntemdir. Tüm web servis adreslerini içeren HTML bir dokuman hazırlamak mantıklı gibi görünsede güncellenmesi gerekecek ve yine insan bağımlı bir hal alacaktır.

Disco Standardı
Disco standardı, az önce örneğini verdiğimiz web servis adreslerinin HTML dokumanda sunulması fikrinin bittiği yerde başlar. Disco standardına uygunluk için web servisinizin nerede bulunduğunu belirten .disco uzantılı bir dosya hazırlamanız gerekir. Visual Studio bu dosyayı okuyup karşılık gelen web servislerini listeleyebilir.Disco dosyasının yapısı şöyledir:

<disco:discovery xmlns:disco="http://schemas.xmlsoap.org/disco"
xmlns:wsdl="http://schemas.xmlsoap.org/disco/wsdl">
<wsdl:contractRef
ref="http://localhost/MaxiASPNetWebService/service.asmx?WSDL"/>
</disco:discovery>

Disco dosyasının avantajlarına değinirsek:

- Sadece web servisleri tarafından kullanılır.
- Web servislerinin tamamı için tek bir disco dosyasına istediğiniz kadar <disco> öğesi ekleyebilirsiniz.

Dinamik Keşif
Bir dinamik keşif dosyası oluşturduğunuzda dosyanın keşif faaliyeti sonucunda elinizin altında güncel tüm web servislerinin bir listesini bulabileceğinizden emin olabilirsiniz.

Bir <dynamicDiscovery> öğesi, belli bir dizin altındaki tüm web servislerini bulmak üzere arama emri gönderir. Örnek vermek gerekirse:

<?xml version="1.0" encoding="utf-8" ?>
<dynamicDiscovery
xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-17">
<exclude path="_vti_cnf" />
<exclude path="_vti_pvt" />
<exclude path="_vti_log" />
<exclude path="_vti_script" />
<exclude path="_vti_txt" />
<exclude path="Web References" />
</dynamicDiscovery>

UDDI
UDDI(Universal Description,Dicovery and Integration), Microsoft tarafından oluşturulmuş, her sunucu üzerindeki web servislerini bulmanızı kolaylaştıran bir sistemdir.
Keşif dosyalarında istemci yinede keşif dosyasının bulunduğu belli bir adresi bilmek zorundadır..Birden fazla web servisinin tek bir dizin altında toplanması şüphesiz işlemi kolaylaştıracaktır ancak yinede web sitesi içinde dolaşarak .disco bağlantılarını aramaksızın şirketin sunduğu web servislerini incelemenizi kolaylaştırmaz.
UDDI ın bu bağlamda amacı işletmelerin sahibi oldukları web servislerini tanıtabilecekleri, tanımını yapabilecekleri bir alan sağlamaktır. Yani UDDI ın yaptığı şey aslında bir arama motorundan farksızdır.

UDDI için üç ana başlık vardır:

- İş için iletişim sağlayan beyaz sayfalar.
- XML Web Servisleri ni kategoriler halinde listeleyen sarı sayfalar.
- Her bir servis hakkında ayrıntılı teknik bilgi sağlayan yeşil sayfalar.

Aslında UDDI kaydının kendisi de bir web servisidir. Size web servis adres ve tanımlarını listeleyen bir web servisi (:

Ayrıntılı bilgi için

http://uddi.microsoft.com

Bir sonraki yazımızda ele alacağımız konu "Web Servislerinin Temelleri" ve "Web Servislerinin Oluşturulması".

Bu kadar teknik bilgiden sonra artık web servislerini yazmaya ve kullanmaya başlıyoruz.