08260051-wsdl soap

Download Report

Transcript 08260051-wsdl soap

WSDL -SOAP
MURAT TEZGIDER
08260051
Web Servisi Nedir?
2
 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ı:
3
murat tezgider 08260051
XML Web Servisi Standartları: SOAP ve
WSDL
4
 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?
5
 SOAP ‘ı kullanarak 2 önemli işlem yapılmaktadır:
Doküman aktarımı ve Uzaktan Metod Çağırma.

murat tezgider 08260051
6
 <SOAP-ENV:Envelope xmlns:SOAP-





ENV="http://schemas.xmlsoap.org/soap/envelope/
" SOAPENV: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>
murat tezgider 08260051
WSDL
7
• 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?
8
 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
9
 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
10
murat tezgider 08260051
11
 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
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>
murat tezgider 08260051
13
 <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
14
<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
15
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
16
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
17
murat tezgider 08260051
18
Örnekler
Sağlık bakanlığı
tarafından geliştirilen
mernis sistemi
murat tezgider 08260051
Kaynaklar
19
http://www.csharpnedir.com/
http://www.w3.org/TR/2003/WD-wsdl1220030303/
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/
murat tezgider 08260051
20
Teşekkürler…
murat tezgider 08260051