Merhaba WebService – (Web Service Tutorial)

Merhaba Arkadaşlar;

Artık android’te de çok kullandığım, Artık iş hayatımında bir parçası olan web service kavramlarından, JAX-WS, JAX-RS örnekleriyle Soap, ve REST’i anlatmaya çalışacağım. Artık kaç yazı olursa..

Bu yazı temel olarak tüm kavramların anlatımını kapsamaktadır. İleriki derslerde jax-ws ve jax-rs’i sırasıyla ele alacağım. Ayrıca soapui ile kontrollerini göstereceğim. Eee tabi android sever olduğum içinde size sıfırdan webservice yazma, yazılan web service’i android üzerinde gösterme request,respond etme vs vs göreceğiz.

Şimdi Hadi başlayalım..

Web Service Nedir ?

Web servis, HTTP üzerinden haberleşmeyi sağlayan server-client uygulamalarıdır.

Web servis nerelerde kullanılıyor?

  • Web Servisler uygulama bileşenidir
  • Web Servisler açık protokolleri(open protocols) kullanarak haberleşir.
  • Web Servisler kendi kendine yetebilen ve kendinden tanımlıdırlar.
  • Web Servisler UDDI kullanılarak keşfedilebilir.
  • Web Servisler diğer uygulamalar tarafından kullanılabilir.
  • Web Servisler xml, json olarak tanımlanır.

Web servisler ile diğer programlama dilleri veya diğer platformlardan xml ile erişilebilir bu sayede platformdan ve programlama dilinden bağımsız olarak aynı uygulamayı yapabiliriz. Bunun için temel platform elemenleri şunlardır:

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universal Description, Discovery and Integration)
  • WSDL (Web Services Description Language)

Ayrıca Web Servisler REST olarak’ta kullanılabilirler. REST ise bize sadece xml kullanma mecburiyetinden kurtarıp json, html hatta text bile kullanmaya açık hale getirmiştir..

SOAP: Bilgisayar ağları üzerinde bilgilerin web üzerinde değişimini sağlayan protokoldür. Sunucu istemci mantığını kullanan protokol iletim işlemini yaparken XML formatını kullanır. SOAP mesajları method, cevap ve hatadan oluşur.

  • SOAP,  mesaj göndermek için bir formattır.
  • SOAP, Internet üzerinden iletişim kurmak amacıyla tasarlanmıştır.
  • SOAP, platformdan ve programlama dilinden bağımsızdır.
  • SOAP, firewall(güvenlik duvarına) gelebilmeye izin verir.
  • SOAP W3C standardıdır.

WSDL(Web Services Description Language):

WSDL, XML tabanlı web servisleri tanımlamak ve yerini belirtmek için tanımlanmış dildir. WSDL, W3C standardıdır. 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 tanımlar. 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 measjları 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.

REST(REpresentational State Transfer):

Client-Server arasındaki iletişimi HTTP protokolüyle kolay ve hafif (lightweight) bir şekilde sağlanmasına olanak veren bir yapıdır. REST’in açılımı Representational State Transfer olmakla birlikte 2000 yılında  Roy Fielding tarafından yapılmıştır. REST yapısıyla implemente edilen servislere RESTful servis denir . RESTful servislerin amacı temelde sunucu ve istemci arasındaki veri alışverişini platform bağımsız ve olabilecek en az veri yüküyle sağlamak olduğundan JSON, HTML, XML gibi bir çok response tipiyle çalışabilmektedir. JSON (JavaScript-Object-Notation) yaygın hale gelmesiyle ve mevcut data daha az boyutlu hale gelmesi ile sıklıkla tercih edilir hale gelmiştir.

Bir servis, RESTful sıfatını kazanabilmek için aşağıdaki koşulları sağlamasi gerekmektedir;

  • Client–server (Seperation of Concerns) İstemcilerin sunucu tarafında herhangi bir iç yapıyı bilmemesi, sunucuların da istemci hakkında kullanıcı arabirimini veya durumunu bilmemesi gibi, her iki yapının da birbirinden tamamen bağımsız, ancak ortak bir interface ile iletişimini sağlayabilmesi mantığıdır.
  • Stateless İstekler esnasında sunucuda client ile ilgili bir bilginin tutulmamasıdır. RESTful servis, istemcilerin request anında gönderdığı bir token, kimlik bilgisi veya benzeri ayırıcı bilgi ile client ayırımini yapar ve ilgili yanıtı kendisine gönderir.
  • Standart Http verb’leri desteklemesi gerekmektedir.

UDDI(Universal Description, Discovery and Integration):

UDDI, şirketlerin web servisler için kayıt edebildiği ve arayabildiği dizin servisidir. UDDI Kurum Kayıt Servisi (UDDI Business Registry) kurum ve web servisleri bilgilerini saklayan 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. Şu anda aktif olarak çalışan kurum kayıt sunucuları uddi.microsoft.com ve uddi.ibm.com ‘dur.

  • UDDI, web servisler hakkında bilgi depolandığı dizinlerdir.
  • UDDI, WSDL tarafından tanımlanmış web servis arayüz(interface) dizinidir.
  • UDDI, SOAP üzerinden iletişim kurar.
  • UDDI, Microsoft .NET platformu üzerine kurulmuştur.

Bir web servisi istemcisinin bir servis sağlayıcıdan bir servisi çağırma aşamasındaki temel adımları:

  • Web servisi istemcisi (SOAP Client) servis kayıt biriminden (UDDI) web servisini bulur.
  • İstemci bir SOAP mesajı hazırlar. SOAP mesajı bir XML belgesidir.
  • İstemci SOAP mesajını web server veya uygulama sunucusunda çalışan SOAP istek dinleyicisine gönderir. İstek dinleyici gelen isteklere cevap veren sunucu programlardır. Bu programlar bir JSP, ASP, CGI veya ISAPI programıdır.
  • SOAP sunucu gelen SOAP mesajını parse eder ve gerekli parametreleri göndererek istenen nesnenin istenen yöntemini çağırır.
  • Çağırılan nesnedeki yöntem çalışır ve sonuçları SOAP sunucuna’a gönderir. SOAP sunucusu gelen sonucu SOAP mesajı formatında biçimlendirerek istemciye gönderir.
  • İstemci gelen SOAP mesajının içindeki bilgileri alarak istekde bulunan programa gönderir.

Kısacası webService..

web-services

SOAP VE REST FARKLARI

No. SOAP REST
1) SOAP protokoldür. REST mimari’dir.
2) SOAP açılımı Simple Object Access Protocol. REST açılımı REpresentational State Transfer.
3) SOAP, protokol olduğu için REST’i kullanamaz. REST bir kavram olduğundan ve HTTP, SOAP gibi herhangi bir protokolü kullanabileceğinden SOAP web servislerini kullanabilir.
4) SOAP, iş mantığını ortaya çıkarmak için hizmetler arabirimleri kullanır. REST, iş mantığını ortaya çıkarmak için URI’yi kullanır.
5) JAX-WS–> java API for SOAP web services. JAX-RS–> java API for RESTful web services.
6) SOAP standartlarına uymaktadır. REST SOAP gibi çok fazla standart tanımlamaz.
7) SOAP, REST’den daha fazla bant genişliği ve kaynak gerektirir. REST, SOAP’tan daha az bant genişliği ve kaynak gerektirir.
8) SOAP kendi güvenliğini tanımlar RESTful web services inherits security measures from the underlying transport.
9) SOAP  XML ‘e olanak sağlam. REST birden fazla veri formatına izin verir. Plain text, HTML, XML, JSON etc.
10) SOAP REST’e göre daha az tercih edilir. REST SOAP’tan daha fazla tercih edilir.

Service Oriented Architecture-(SOA)-Hizmet Odaklı Mimari

SOA tasarım kalıbıdır. Protokol aracılığıyla diğer uygulamalara hizmet vermek üzere tasarlanmıştır. Bu yalnızca bir kavramdır ve herhangi bir programlama dili veya platformuyla bağlantılı değildir.

Web hizmetleri, SOA’nın bir teknolojisidir.

Post Author: umiitkose

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 class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">