Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Sefer Algan
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ı : 42297
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜ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.
 
.net TV RSS 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.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SOAP(Simple Object Access Protocol) Mesajları
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
Neden örnek kodları göremiyorum, lütfen yardımcı olabilir misinz?
HAZ
25
2010
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
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
Neden makalelerdeki kod veya benzeri ekranlar tam olarak görünmüyor yada ben bi bihaberim yapılması gereken şeyden??
OCA
18
2008
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