Sunday, January 17, 2016

WSDL (Web Services Description Language)

WSDL dokümanları, web servislerin nasıl tanımladığı bilgisini içeren XML dokümanlarıdır. 2007 yılından itibaren W3C tarafından tavsiye edilmektedir. Bir WSDL dokümanı aşağıdaki tablodaki etiketleri kullanarak web servisleri tanımlarlar.



Bir WSDL dokümanı genel olarak aşağıda verilen kod bloğu tarafından tanımlanır.
<definitions>
<types>   Veri tipleri  </types>
<message>   Mesajlar </message>
<portType>   Operasyonlar </portType>
<binding>   Protokol veri veri formatı tanımlamaları </binding>
</definitions>

Port types (Port tipleri) 

Port tipleri operasyonların ve ilgili mesajların tanımlandığı kısımdır. Aşağıda tanımlanabilecek operasyon tipleri verilmiştir.



Çift yönlü operasyona örnek olarak aşağıdaki kod bloğu gösterilebilir.

<wsdl:message name="HizmetCetvelInsertRequest">
<wsdl:part element="impl:HizmetCetvelInsert" name="parameters">
</wsdl:part> </wsdl:message>
<wsdl:portType name="Hitap4cWEBBean" >
<wsdl:operation name="HizmetCetvelInsert">
<wsdl:input message="impl:HizmetCetvelInsertRequest" name="HizmetCetvelInsertRequest"> </wsdl:input>
<wsdl:output message="impl:HizmetCetvelInsertResponse" name="HizmetCetvelInsertResponse"> </wsdl:output>
</wsdl:operation>
</portType >

Kod bloğunda “HizmetCetvelInsertRequest” mesajı şema içerisinde tanımlanmış “HizmetCetvelInsert” elementinden oluşan bir mesajdır. “HizmetCetvelInsert” operasyonu “HizmetCetvelInsertRequest” ve “HizmetCetvelInsertResponse” mesajları ile işlem yapan bir fonksiyonu tanımlamaktadır.   Servislerde en çok kullanılan yapı istek-cevap yapısıdır. Yukarıda verilen örnek bu durumuma uygundur.

Binding (Bağlayıcı)  

Protokol ve mesaj formatlarının detaylı olarak tanımlandığı kısımdır. Web servisin SOAP (Simple Object Access Protocol) ile ilişkisi burada tanımlanmaktadır. Örnek olarak aşağıdaki kod bloğu verilmiştir.

<wsdl:binding name="Hitap4cWEBBeanSoapBinding" type="impl:Hitap4cWEBBean"> <wsaw:UsingAddressing wsdl:required="false"/>
 <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="HizmetCetvelInsert">
 <wsdlsoap:operation soapAction="HizmetCetvelInsert"/>
<wsdl:input name="HizmetCetvelInsertRequest">
 <wsdlsoap:body use="literal"/>
</wsdl:input>
 <wsdl:output name="HizmetCetvelInsertResponse">
 <wsdlsoap:body use="literal"/>
 </wsdl:output>
</wsdl:operation>
 </wsdl:binding>

“Binding” elementi “name” ve “type” olmak üzere iki özelliğe sahiptir. “name” özelliği bağlamanın adını tanımlarken “type” özelliği portu belirtir. “soap:binding” elementi “style” ve “transport” olmak üzere iki özelliğe sahiptir. “style” özelliği “rpc” ve “document” değerlerini alabilmektedir. “transport” özelliği SOAP protokolünü tanımlamaktadır. Örnekte HTTP kullanılmıştır. SOAP mesajının nasıl kodlanacağını belirtmek için “literal” kullanılmıştır.

WSDL ve UDDI (Universal Description Discovery and Integration) 

OASIS (Yapılandırılmış Bilgi Standartları Örgütü) tarafından desteklenen bir girişim olan UDDI, kurumların sağladıkları servisleri yayınlamasını, bu bilgilerin daha sonra diğer kurumlarca taranıp bulunmasını, servislerin ve yazılım uygulamalarının internet üzerinde nasıl iletişimde olduğunu tanımlamasını sağlayan bir standarttır. UDDI üzerindeki servis kayıtları, güncellemeleri ve tarama işlemleri SOAP mesajları kullanılarak gerçekleştirilir.


No comments:

Post a Comment