FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. WSDL-SOAP MURAT TEZGİDER
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. 2
Bir web servisinin genel yapısı: 3
XML Web Servisi Standartları: SOAP ve WSDL SOAP (Simple Object Access Protocol): 4 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.
NİÇİN SOAP KULLANIRIZ? SOAP ı kullanarak 2 önemli işlem yapılmaktadır: Doküman aktarımı ve Uzaktan Metod Çağırma. 5
<SOAP-ENV:Envelope xmlns:soap- ENV="http://schemas.xmlsoap.org/soap/envelope/ " SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/s oap/encoding/"> <SOAP-ENV:Body> <m:dovizalis xmlns:m="http://abc.com/doviz"> <symbol>dolar</symbol> </m:dovizalis> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 6
2001 de WSDL 7 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.
Web servisin adı WSDL NİÇİN KULLANILIR? 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. 8
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. 9
WSDL VERİ YAPISI 10
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 11
12 <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>
<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> 13
<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> 14
Operation Tipleri 15 Type One-way Request-response Solicit-response Notification Definition Operation bir mesaj alır fakat bir şey return etmez Bir istek alır ve cevabını return eder Operation bir istek gönderir ve cevabını bekler. Operation bir istek gönderir fakat cevabını beklemez
Concrete part 16 Service: Son olarak service kısmında ise, tanımlanan port ların gerçekte fiziki olarak hangi adrese bakacağı tanımlanır. 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))
17
18 Örnekler Sağlık bakanlığı tarafından geliştirilen mernis sistemi
Kaynaklar http://www.csharpnedir.com/ http://www.w3.org/tr/2003/wd-wsdl12-20030303/ 19 http://www.cs.colorado.edu/~kena/classes/7818/f06/ lectures/wsdl.pdf http://w2ks.dei.isep.ipp.pt/labdotnet/recursos/wsdl.p df http://www.verivizyon.com/
20 Teşekkürler