Serap Şen

Bilişim hakkında herşey…

Web Servisleri

Merhaba Arkadaşlar,
Bahsedeceğim konular:
A-Web servisleri nedir?
B-Web servisleri modelleri
C-Web servisinin işleyişi
D-Web servisi standartları
E-XML Web servisleri web method özellikleri
A-Web servisleri nedir?
•Web servislerindeki temel amaç işletme bilgi sistemlerindeki program modüllerinin etkileşimini sağlamaktır.
•Web servisleri web ortamında yayınlanabilen, aranıp bulunabilen ve çağrılarak erişilebilen modüler uygulama fonksiyonlarıdır.
Web Servisi = SOAP + WSDL + UDDI
Web ortamındaki gelişmeleri üç safhada inceleyebiliriz:
1.Belge Web’i (Document Web) :Belge web’i ile web’in ilk aşamadaki kullanımı, yani HTTP protokolü ile HTML dilinde biçimlendirilmiş statik belgelerin kullanıcılara sunumunu ifade ediyor.
2.Uygulama Web’i (Application Web) : Bu yapı işletmelerin müşterilerine web
üzerinden bazı iş süreçlerini yaptırma gereksinimi sonucunda ortaya çıktı. Bu yapıda sunucu tarafında çalışan programlar (server-side programs) vasıtasıyla hazırlanan dinamik HTML belgeleri ile kullanıcı ve iş uygulaması arasında etkileşim sağlandı.
3.Servis Web’i (Services Web) : İşletmelerin diğer işletmelerle olan iş süreçlerini bütünleştirme gereksinimi sonucunda ortaya  çıkan ve gelişmekte olan yeni bir yapıdır.  Bu yapının temel taşı web servisleridir.
B-Web servisleri modelleri

Web servisleri modeli üç ana birimin etkileşimine dayanır.
Servis Sağlayıcı (Servis Provider):Servis sağlayıcı istemcilerin sağlayıcıda bulunan servislere erişimini sağlar. Servis sağlayıcı kendi sitesinde bulunan web servisleri tanımını servis kayıt birimine (service registry) kaydederek bu servisinin nasıl çağrılacağı belirtir.
–Servis İstemcisi (Service Requester) : Servis sağlayıcısında bulunan web
servislerini çağırarak kullanan istemci uygulamalardır. Web servisinin nasıl
çağrılacağı ve ilgili parametreleri servis kayıt biriminden arayarak bulur ve
çağırır.
–Servis Kayıt Birimi (Service Registry) : Servis sağlayıcılarının
yayınladıkları web servisi tanımlarını saklar ve aranıp bulunmasını sağlar.
Servis sağlayıcıları servis kayıt birimini tarayarak istediği servisler
hakkında bilgi alabilir. Servis kayıt birimi her servisin nasıl çağırılacağı
konusunda tanım bilgileri içerir.
C-Web servisinin işleyişi
1.Eğer kullanılacak XML Web Servisinin adresi bilinmiyorsa bir UDDI dizini yardımı ile bir XML Web Servisi bulunur.
2.Discovery dosyasına (.disco) yapılan istek ile web servisinin tanımlama dosyasına yönelinir.
3.Web Servisinin açıklama dosyası olan WSDL dosyasına istek yapılır. Servis biçimi öğrenilir.
4.Artık XML Web Servisinin metodları çalıştırılmaya hazır olarak istemcinin hizmetindedir. XML Web servisinin metodları çalıştırılır.
D-Web servisi standartları
1.SOAP(Simple Object Access Protocol) : Internet üzerinde web servislerini
çalıştırmak için kullanılan protokol
2.WSDL (Web Services Description Language) : Web servislerini tanımlama dili
3.UDDI (Universal Description, Discovery and Integration) : Web servislerinin indekslenip bulunduğu kayıt servisi
SOAP (Simple Object Acess Protocol)
•SOAP uygulama bütünleştirmesi için geliştirilmiş XML ile formatlanmış bilgilerin
iletişimini sağlayan bir protokoldür.
•SOAP istemcilerin sunucularda olan nesne yöntemlerini çağırmasını ve sonuçların
alınmasını sağlayan basit istek/yanıt (request/response) protokolüdür.
WSDL (Web Services Description Language)
•Bir uygulamanın bir web servisini kullanması için web servisinin nasıl çağırılacağının,
arayüzünün, hangi protokollerin ve kodlama standartlarının belirtilmesi gerekir.
•WSDL web servisini tanımlayan bir XML belgesidir.
•Bir anlamda dağıtık programlamada kullanılan IDL’e (Interface Definition Language – Arayüz Tanımlama Dili) benzer.
•Web servisi tanımı  işlemler, giren ve çıkan mesaj formatları, ağ ve port adresleri gibi
bilgileri içerir.
Bir web servisi tanım belgesi aşağıdaki temel elemanları içerir:
–Types: Mesajlarda kullanılacak veri tiplerini belirtir.
Message:İletişimde kullanılacak mesajları tanımlar.
PortType: Web servisinin içerdiği işlemleri (methods) ve ilgili mesajları tanımlar.
–Binding:İşlem ve mesajlarda kullanılacak veri formatlarını tanımlar.
–Port: Binding ve web adresinden oluşan servis noktasını tanımlar. Web adresi servisin
çalıştırılacağı URL’dir.
–Service:Kullanılan port’lar kümesidir.
UDDI (Universal Description Discovery and Integration)
•Bir web servisini kullanmak için kullanıcının web servisi sağlayan kurumları
ve bu kurumların verdikleri web servislerinin neler olduğunu bilmesi gerekir.
•UDDI  kısaltmasında geçen Evrensel, Tanım, Buluş ve Bütünleştirme kelimelerinin ifade ettiği gibi UDDI kurumların kendilerini ve sağladıkları servisleri yayınlayarak tanıtmalarını ve bu bilgilerin daha sonra diğer kurumlarca taranıp bulunmasını
sağlayan bir standarttır.
•UDDI Kurum Kayıt Servisleri (UDDI Business Registry) kurum ve web servisleri bilgilerini saklayan ve yayınlayan sunuculardır.
•Bu sunucular servis sağlayıcılarından gelen bilgilerini kendi veritabanlarına kayıt ederek diğer kurumların erişimine açar.
E-XML Web servisleri web method özellikleri
1-BufferResponse
2-CacheDuration
3-Description
4-EnableSession
5-MessageName
6-TransactionOption
BufferResponse: Web Servislerde default olarak true değerine sahip olan bu özellik Web Servis den kullanıcılara gönderilecek olan cevap öncelikle önbelleklensin sonra mı gönderilsin yoksa önbellekleme yapılmadan gönderilsin mi, bunun kararını verir. Gönderilen cevabın önbelleklenmesi mesajın bütününün hazırlanması ve sonra gönderilmesi anlamındadır. BufferResponse false olarak tanımlanırsa veri bufferda tutulmadan 16 kb’lık iri parçalar halinde client’e gönderilir. False işlemi o metodun
büyük veriler göndermesi durumunda kullanılır. Çünkü büyük verilerin önbelleklenmesi önbelleği şişirecektir.
CacheDuration : CacheDuration özelliği ASP.NET sitelerinden alışık olduğumuz önbellekleme yani cache işlemi için geçerlidir. Saniye cinsinden bir parametre ister.
[WebMethod(CacheDuration=120)] gibi
Yukarıdaki bildirim de web servis metodu 2 dakika boyunca kullanıcılara aynı cevabı verecektir. Ufak bir açıklama: gelen her parametre degerine göre ayrı bir cache otomatik olarak oluşturulacaktır.
Description: Bu özellik ile XML Web Servisi altyapısı tarafından otomatik olarak oluşturulan yardım sayfasında bu metodun altında gözükecek açıklama belirlenir. Bu özellik varsayılan olarak boş string değer almaktadır.
CacheDuration özelliği çin örneklediğimiz metoda ikinci bir özellik olarak Description özelliğini eklemek istersek iki özelliği virgul ile ayırmamız yeterlidir.
[WebMethod(CacheDuration=120, Description="tanımlama")]
EnableSession : Default değeri false olan bu özelliğin amacı webmethod içerisinde Session isimli nesnenin kullanılabilmesini sağlamaktır. Fakat bu özellikten faydalanırken Web Servislerindeki stateless yapıdan dolayı Client uygulama üzerinde CookieContainer kullanılmalıdır.
Herhangi bir kullanıcı Sunucu tarafına ilk kez istekte bulunduğunda Sunucu bu kullanıcı için bir SessionID üretir ve kullanıcıya cevapla beraber SessionID’yi içeren bir
HttpCookie gönderir. Kullanıcı ve Sunucu arasında gerçekleşen daha sonraki
iletişimde Sunucu bu Cookie’yi kullanarak kullanıcının takibini yapar. ASP.NET eğer Session durum yönetimi etkinleştirilmişse her yeni yaratılan SessionID ile ilişkili bir HttpSessionState nesnesi oluşturur ve bu nesne kullanıcıya ait bilgilerin tutulması için kullanılır.
ASP.NET üzerinde temel olarak Session nesnesinin kullanımı etkin bırakılmıştır. Yalnız
istenildiği durumda Session kullanımı devre dışı bırakılabilir.
Session nesnesi kullanımı web servislerinde temel olarak devre dışı bırakılmıştır.
Çünkü web servislerinin temelindeki amaç, kullanıcı tarafından belirli bir metoda web üzerinden erişilmesi ve işin gerçekleştirimidir. Burada kullanıcının herhangi bir bilgisinin uygulama üzerinde tutulmayacağı öngörülür.
Eğer Session nesnesini bir web metod için etkinleştirmek istiyorsak çeşitli
tanımlamalar yapmak durumunda kalırız.
MessageName : MessageName özelliği ise Webservisler de Metod overloading yapmak istediğinizde kullanmak zorunda kalacağınız bir özelliktir. Web Servislerinde bir metotu overload ederseniz kurallara uygun olsa dahi, MessageName özelliğinin kullanılması gerektiğine dair bir hata alacaksınız. O yüzden kullanım aşağıdaki gibi olmalıdır.
[WebMethod(MessageName="HelloWorldSimple")]
public string HelloWorld() {
return “HelloWorld”;
}
[WebMethod(MessageName="HelloWorldAdvanced")]
public string HelloWorld(stringname)
{
return “Hello “+ name;
}
TransactionOption : Web Servislere Transaction özelliğinin eklenmesi ile birlikte artık COM+ mantığına yakın bir şekilde Transaction yönetimi yapabiliyorsunuz.
[WebMethod(TransactionOption = TransactionOption.RequiresNew)]

Tags: , , , ,


Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Follow Me

Microsoft Imagine Cup 2012 Repharm Project

Makalelerimi takip edebilirsiniz…

Arşivlerim

Readmee E-dergimiz

Anketler

Web Sitemi Beğendin mi?

  • Kötü (24%, 35 Votes)
  • Fena değil (8%, 12 Votes)
  • İdare eder (10%, 15 Votes)
  • İyi (18%, 27 Votes)
  • Çok iyi (40%, 57 Votes)

Total Voters: 146

Loading ... Loading ...

Kaç Kişi Online?