Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Sefer Algan
http://www.seferalgan.com
İletişme geçmek için
tıklayın
.
71
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
XML / Web Serv.
Sefer Algan
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
XML / Web Serv.
Yayınlanma Tarihi
:
7.1.2003
Okunma Sayısı
:
42272
Yorum Sayısı
:
5
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
22.11.2024
Turhal Temizer
Mac OS/X Removing CUDA
22.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
22.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
22.11.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
XML / Web Serv.
/
SOAP(Simple Object Access Protocol) Mesajları
SOAP(Simple Object Access Protocol) Mesajları
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
XML Web servisleri için SOAP en temel protokoldür, bu yazımızda SOAP 'ı daha yakından tanımak için SOAP ile iletilen mesajlar hakkında bilgi edineceğiz.
SOAP ve XML Web Servisleri hakkında ön bilgi sahibi olmak için
"Web Servislerine Giriş"
adlı makaleyi okumanızı öneririm.
SOAP web üzerinden fonksiyonları kullanmak için geliştirilmiş bir sistemin XML tabanlı kurallar topluluğudur diyebiliriz. Yani SOAP web servisi ile istemci arasındaki ilişkinin nasıl olacağını belirler. Bu ilişki daha doğrusu istemci ile web servisi arasındaki bu iletişim W3C standartlar komitesinin belirlediği formatta olmaktadır. Bu formatı oluşturan bütün kümeye SOAP denilmektedir. SOAP ile veri iletimi ya da mesaj iletimi XML formatında olduğu için web servisleri ortamdan bağımsız çalışmaktadır. Yani SOAP sayesinde JAVA ile yazılmış bir programımızdan C# ile yazılmış bir web servisine ait bir metodu çalıştırabilir ve metodun geri dönüş değerini istediğimiz gibi kullanabiliriz. İşte tam bu noktada şu soruyu sormamız gerekir : JAVA istemcisi web motuduna isteğini nasıl gönderecek ve web servisi sunucusu istemciye nasıl bir cevap verecektir? Bu sorunun cevabı için bu yazıyı yazıyorum diyebilirim.
SOAP ile ilgili bütün mesajlar XML formatında iletilir. Temel olarak bir SOAP mesajı 3 şekilde oluşabilir.
Metod Çağırımı (Web servisinden istekte bulunmak)
Cevap Mesajı (Web Servisinin istemciye vereceği cevap)
Hata Mesajı
Şimdi bu mesajların nasıl oluşabileceği hakkında kısa bigiler vereyim. Metod çağrımları şeklindeki mesajlar web servisindeki metodun adını ve metoda ait parametrelerin iletilmesidir. Mesela iki sayıyı carpan bir web metodundan faydalanabilmek için metodun ismini bilmemiz gerekir. Bu yetmez ayrıca metodun parametrik yapısını bilip ona göre pramatre göndermemiz grekir. Cevap Mesajları, web servisine ait metodun istemciye geri gönderdiği mesaj ya da mesajların tamamıdır. Hata mesajları ise, bu iki tür mesajların oluşturulamadığı ya da beklenmedik durumların ortaya çıktığı zaman sunucunun istemciye gönderdiği mesajdır. Unutulmaması gereken nokta hata mesajları ancak ve ancak istemcinin sunucu ile iletişime geçildiği zaman oluşturulabilir.
Şimdi bütün bu bilgilerden sonra basit bir SOAP mesajının formatının nasıl olduğuna bakalım :
....
....
....
....
Bütün SOAP mesajları yukarıda gördüğünüz Envelope elemanı içine yazılır. Envelope elemanı içindeki Header elemanı olabilir ya da olmayabilir fakat her Envelope elemanı içinde mutlaka Body elemanı bulunur. SOAP standartları ile ilgili olan Envelope, Body, Header gibi elemanlar http://schemas.xmlsoap.org/soap/envelope/ isimalanı içinde tanımlanmışlardır. Bu isim alanı Envelope elemanına ilişkin xmlns tanımlamasından mevcuttur.
Yukarıda görülen en temel SOAP mesajındaki elemanları tek tek açıklayalım.
Envelope
Bütün SOAP mesajlarının içinde oluğu elemandır. SOAP mesajına ilişkin XML belgesinin root elemanı olmak zorundadır. Envelope elemanı içinde B ody veya Header gibi elemanlar bulunur. Envelope elemanının içinde her zaman bir Body elemanı vardır fakat Header elemanı olmak zorunda değildir. SOAP standartlarına göre eğer Envelope elemanı içinde Header elemanı varsa bu eleman Envelope elemanının içindeki ilk eleman olmalıdır.
Header
SOAP mesajlarındaki Header elemanını HTML standartlarında bulunan etiketlerine benzetebiliriz. Header bölümü metot çağrımı ile doğrudan ilişkili değildir. Header bölümü ile meta-data dediğimizi bilgiler gönderilir. Header kullanımına örnek olması açısından aşağıdaki yapıyı inceleyin. Header bölümü ile web servisine istekte bulunan istemcinin IP adresi gönderiliyor.
192.158.10.10
....
....
SOAP standartlarında bulunmayan elemanlar için isim alanı tanımlaması yukarıdaki mavi ile yazılı alanda gördüğünüz gibi yapılır. Burda CS adlı isimalanı tanımlıyoruz ve IPAdres elemanının bu isimalanında olmasını sağlıyoruz.
Body
Body elemanı SOAP mesajının en önemli kısmını oluşturur. Metod çağrımı mesajlarını ele alalım. Bu tür mesajlarda Body bölümünde web metodunun adı ve metodun parametrik bilgileri XML formatında gönderilir. Cevap mesajında ise metodun geri dönüş değeri Body bölgesine eklenir. Metodun parametrik yapısının bu şekilde XML formatında yazılmasına SOAP Serialization denir. Son olarak Hata mesajlarında ise Body bölümünde hatanın adı ve tanımı gibi bilgiler bulunur.
Şimdi bu 3 SOAP mesajı için, mesajların gönderim formatlarını inceleyelim.
Web metodumuz iki sayıyı çarpacak şekilde aşağıdaki gibi tanımlanıyor olsun :
int SayiCarp (int sayi1, inr sayi2);
Bu metoda iliişkin SOAP çağırımının Body bölümü aşağıdaki gibi olmaktadır.
5
6
Burada sayi1 ve sayi2 elemanlarının isimleri ve özelliklerinin oluşmasını WSDL(Web Service Definition Language) kuralları belirledi. WSDL ile ilgili daha detaylı bilgiye bundan sonraki makalemde ulaşabilirsiniz.
Şimdi de bu SOAP çağrımına karşı verilecek cevap mesajını inceleyelim :
11
Gördüğünüz gibi web servisi return elemanı ile metodun geri dönüş değerini XML formatlı mesaj şeklinde istemciye göndermektedir. Yine yukarıda gördüğünüz üzere SayiCarpResponse gibi bir elaman isminin oluşması da tamamen WSDL belgesindeki tanımlara bağlıdır. Yani cevap elemanının adının ne olacağı hakkındaki bilgi WSDL belgesinden alınır.
3. ve son olarak hata mesajlarının nasıl gönderildiğine bakalım :
Bir SOAP mesajındaki hatalar Fault elemanı içerisine yazılır. Hata ile ilgili dört temel bilgi tanımlanmıştır. Bunlar faultcode(hatanın tipini belirtir bir kod), faultstring(Hatanın kısa açıklaması), faultactor(hatanın hangi server'da olduğu) detail(Hata ile ilgili detaylı bilgi) olarak sıralanır. Detail elamanı özel hata durumlarındaki detay bilgileri içerir. Detail elemanı da birkaç alt elemandan oluşabilmektedir. Aşağıda klasik bir SOAP hata mesajı görmektesiniz.
Hata No : 258596
Zaman aşımına uğradı..
WS.csharpnedir.com
Gösterici Hatası...message>
Evet, SOAP mesajlarını daha yakından tanıdık ve böylece SOAP kavramını soyut bir kavramdan öteye taşımış olduk. Bir sonraki yazımda SOAP'ın yapısında bulunan ve veri türlerini temsil eden anahtar sözcükleri inceleyeceğiz.
Makale:
SOAP(Simple Object Access Protocol) Mesajları XML ve Web Servisleri Sefer Algan
Yazılan Yorumlar
Yorum Yaz
EKİ
24
2010
omer fırat
/
üye hakkında
Neden örnek kodları göremiyorum, lütfen yardımcı olabilir misinz?
HAZ
25
2010
hilal atış
/
üye hakkında
Ahmet ve Onur beye katılıyorum kodlar gözükmüyor sadece bu makalede değil bir çok makalede aynı skıntı var.
HAZ
11
2010
ahmet kahriman
/
üye hakkında
Onur Atilla / üye hakkında Neden makalelerdeki kod veya benzeri ekranlar tam olarak görünmüyor yada ben bi bihaberim yapılması gereken şeyden?? Onur beye katılıyorum kodlar görünmüyor.
MAY
31
2010
Onur Atilla
/
üye hakkında
Neden makalelerdeki kod veya benzeri ekranlar tam olarak görünmüyor yada ben bi bihaberim yapılması gereken şeyden??
OCA
18
2008
Huseyin Kucuk
/
üye hakkında
Soap protokolü hakkında yeterince türkçe kaynak yok maalesef. Bu makale gayet anlaşılır bir dille yazılmış. Teşekkürler.
Sayfalar :
1
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl