WSDL -SOAP Murat tezgider 08260051
Web Servisi Nedir? web servisi :standart formatları kullanarak programlama dili, işletim sistemi ve platformdan bağımsız olarak bilgiyi paylaşan programlardır. Girdileri ve çıktıları yapısal bir şekilde formatlamış olarak sunar ve ne gibi fonksiyonları gerçekleştirebileceğini söyler. murat tezgider 08260051
Bir web servisinin genel yapısı: murat tezgider 08260051
XML Web Servisi Standartları: SOAP ve WSDL SOAP (Simple Object Access Protocol): XML web servislerini işleyen protokollerden bir tanesi SOAP'tır. Bilgisayarlar birbirleriyle iletişim için belli başlı protokoller kullanmak zorundadırlar. Çünkü iletişimin standart , kuralları belli, platform bağımsız kurulması için protokollere ihtiyacı vardır. SOAP ‘da platform bağımsız bir protokoldür. XML tabanlı bir protokol olup çok basit bir şekilde bilgiyi sunmaktadır. SOAP mesajın içeriğinin ne olduğu, mesajı nasıl işleme sokacağını ve mesajdaki hangi değerlerin zorunlu ve de hangilerinin tercihe bağlı olarak gönderileceğini söyler. murat tezgider 08260051
NİÇİN SOAP KULLANIRIZ? SOAP ‘ı kullanarak 2 önemli işlem yapılmaktadır: Doküman aktarımı ve Uzaktan Metod Çağırma. murat tezgider 08260051
<SOAP-ENV:Body> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:DovizAlis xmlns:m="http://abc.com/Doviz"> <symbol>Dolar</symbol> </m:DovizAlis> </SOAP-ENV:Body> </SOAP-ENV:Envelope> murat tezgider 08260051
WSDL 2001 de Microsoft ve Ariba, IBM tarafından W3C Note olarak sunuldu WSDL (Web Service Description Language – Webservis Belirtme Dili) web servis belirtimi için model sağlayan , web servisleri(adresleri) ve onlara nasıl erişileceğini tanımlayan XML tabanlı bir dildir. WSDL ile web servisinin metodları ve adresleri belirtilir. murat tezgider 08260051
WSDL NİÇİN KULLANILIR? Web servisin adı Yapılabilecek yordam çağrıları Bu yordam çağrılarının alabileceği parametreler Parametrelerin tipleri Döndürülecek cevap ve biçimi Hata zamanında döndürülecek mesaj -sonuç (Fault) Web servis çağrılarının yapılacağı adresi (EndpointURI) tanımlamayı sağlar. murat tezgider 08260051
Sunucu tarafında da istemci tarafında da aynı wsdl kullanılır Sunucu tarafında da istemci tarafında da aynı wsdl kullanılır. Çünkü wsdl’in temel amacı budur. Yani ortak bir yapı kurarak servisler arası iletişimi sağlamak. İstemci wsdl dosyasına bakarak hangi metodu nasıl , ne parametreler ile çağıracağını ve ne sonuç döneceğini bilir. Sunucu ise hangi servisi çalıştıracağını ve ne sonuç döndüreceğini wsdl yardımı ile bilir. murat tezgider 08260051
WSDL VERİ YAPISI murat tezgider 08260051
Abstract(soyut) part:Açıklama Mesajların gönderilmesi ve alınması tanımlanır. Mesaj modellerinin metodlarla ilişkilerini tanımlar. Concrete part : specifies(belirtim) İnterfacelerin formatı ve iletimi belirlenir. Bir portun bağlanma ile a bir ağ adresini belirtir Eğer bir çok port varsa bunların hangi interface implementasyonları kullandığını belirtir murat tezgider 08260051
<types> :genellikle xml şemaları kullanılarak tanımlanan web servisi tarafından kullanılan veri tiplerini tanımlanır. Örnek: <s:element name="DaireAlan"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="r" type="s:double" /> </s:sequence> </s:complexType> </s:element> murat tezgider 08260051
<message> Message kısmında, web servisinin kabul edeceği ve geri döndüreceği mesajlara ait özet bilgiler yer alır. Bir başka deyişle, SOAP mesajları içine konan ve SOAP mesajları ile geri dönen parametreler tanımlanmaktadır. Örnek <message name="DaireAlanSoapIn"> <part name="parameters" element="s0:DaireAlan" /> </message> <message name="DaireAlanSoapOut"> <part name="parameters" element="s0:DaireAlanResponse" /> </message> murat tezgider 08260051
<portType> PortType kısmında ise, her bir web servisi metodu için birer operasyon tanımlaması yapılır. Bu sayede, web servisi üzerinden gerçekleştirilebilecek operasyonların tanımlamaları yapılmaktadır. Operasyon isimleri, web servisindeki metot isimleri ile aynıdır. Buradaki eleman isimleri ile fiziki metotlar binding kısmında eşleştirilecektir. Örnek <portType name="Geometrik_x0020_HesaplamalarSoap"> <operation name="DaireAlan"> <documentation>Daire Alan Hesabi Yapar</documentation> <input message="s0:DaireAlanSoapIn" /> <output message="s0:DaireAlanSoapOut" /> </operation> murat tezgider 08260051
Operation Tipleri Type Definition One-way Operation bir mesaj alır fakat bir şey return etmez Request-response Bir istek alır ve cevabını return eder Solicit-response Operation bir istek gönderir ve cevabını bekler. Notification Operation bir istek gönderir fakat cevabını beklemez murat tezgider 08260051
Concrete part Service: InterfaceBinding: Binding kısmında, WSDL dokümanındaki her bir operasyon için, bu operasyona web servisinde karşılık gelecek metod tanımlamaları yapılır. Bir başka deyişle her bir operation elemanı için fiziki olarak metod adresleri belirlenir. Bu adresler için kullanılacak operasyonlar belirli olduğu için, bu operasyonlara bağlı mesajlarda, fiziki adreslere bağlanmış olur. Binding: nitelikleri 1-) name(herhangi bir isim) 2-)type (abstract partta tanımlanan port type ları referans alır) Soap:binding :nitelikleri 1-) style( rpc / document) 2-)transport(Communication protocol : SOAP, Transport protocol : HTTP/SMTP) operation element input and output kodlanması (literal(document için )/SOAP( rpc için)) Service: Son olarak service kısmında ise, tanımlanan port’ ların gerçekte fiziki olarak hangi adrese bakacağı tanımlanır. murat tezgider 08260051
murat tezgider 08260051
Örnekler Sağlık bakanlığı tarafından geliştirilen mernis sistemi murat tezgider 08260051
Kaynaklar http://www.csharpnedir.com/ http://www.w3.org/TR/2003/WD-wsdl12-20030303/ http://www.cs.colorado.edu/~kena/classes/7818/f06/lectures/WSDL.pdf http://w2ks.dei.isep.ipp.pt/labdotnet/recursos/wsdl.pdf http://www.verivizyon.com/ murat tezgider 08260051
Teşekkürler… murat tezgider 08260051