5 Mart 2015 Perşembe

Web service

Web servis nedir?

Web servisler uygulamaların internet üzerinden birbirleriyle haberleşebilmelerini sağlar.

Web servis aslında SOA : Service Oriented Architecture yani Servis Yönelimli Mimari kavramının gerçek hayatta uygulanmış halidir.
SOA, adı üzerinde servis yani hizmet kavramını temel alır. Bir uygulama ya hizmet eder, ya da hizmet alır. Hizmet eden server, hizmeti alan ise client'tır.

SOA kavramında iki uygulama birbiri ile haberleşmektedir. Biri server, diğer client rolündedir.
Client serverdan istekte bulunur, server da bu isteğe cevap döner.
Serverlar servis açıklamalarını özel bir dizinde tutarlar.
Clientlar ise bu dizini sorgulayarak dilediği servisin listede olup olmadığına bakar.

Genellikle web servislerin çalışma prensibi şöyledir:
1. Client, web servise bir xml request yollayarak cevap beklemeye başlar.
2. Web servis client a xml response ile cevap verir.

Bu süreçteki en önemli detay, burada bahsedilen client ve serverın farklı işletim sistemleri, farklı programlama dilleri kullanabiliyor olmalarıdır.
Yani windows app ile Unix app bu şekilde internet üzerinden direkt olarak konuşabilir. Aynı şekilde bir Java app Python app ile konuşabilir.

En temel web service platformu HTTP + XML dir.
Bütün standart web servisleri şu birimleri kullanarak çalışır:
SOAP : Simple Object Access Protocol
UDDI : Universal Description, Discovery and Integration
WSDL Web Services Description Language

SOAP nedir?


HTTP üzerinden uygulamaların haberleşmesini sağlayan XML tabanlı bir protokoldür.
Yani SOAP esasen web servislere erişebilmek için kullanılan protokoldür.

UDDI nedir?

UDDI, web servislerini tanımlamak ve kullanılabilir durumda olanları listelemek için kurulan platform-bağımsız bir frameworktür. Web servisleri hakkındaki bilgilerin depolandığı bir dizindir.
Client ve server SOAP ile haberleşir.

WSDL nedir?

Web servislerin yeri ve yaptığı işi belirten standart bir dildir.
4 bölümden oluşur:
<types> : web servisin kullandığı veri tipleri
<message> : web servisinin kullandığı mesajlar
<portType> : web servisinin yaptığı işlemler
<binding> : web servisinin kullandığı haberleşme protokolleri

Not: WSDL dosyasında bunlardan başka elemanlar da olabilir. Örneğin bir dosyada birden fazla web servis tanımlanabilir.

WSDL'de 4 tip işlem vardır.
İşlem istek mesajını gönderdikten sonra:
1. One-way: cevap dönmez
2. Request-response : cevap döner (en çok kullanılan yöntemdir)
3. Solicit-reponse : cevabı bekler
4. Notification : cevabı beklemez

Bir web servis nasıl çalışır?

Bir web servis HTML, XML, WSDL ve SOAP gibi açık standartlar kullanarak iletişimde bulunur.
XML ile veriyi taglar/etiketler,
SOAP ile mesaj gönderir,
WSDL ile halihazırda kullanılabilen servislerini bildirir.

Örnek bir web servis verecek olursak, bir muhasebe sisteminde yeni bir hesap açıldığını farzedelim.
Muhasebe personeli client programı kullanarak, yeni hesap açmak ister.
Client program, kayıt için gereken bilgileri SOAP mesajı halinde paketler.
SOAP mesajı bir HTTP POST request body kısmında web servise gönderilir.
Web servis requestle beraber gelen SOAP paketini açarak gelen mesajı uygulamanın anlayacağı bir komut haline getirir.
Uygulama gelen bilgiyi işler ve yeni kayıt olan müşteri için unique bir hesap numarası döndürür.
Web servis bu cevabı bir SOAP mesajı halinde paketler ve önceden gelen HTTP requeste cevap olarak gönderdiği HTTP reponse mesajının body kısmına koyar.
Client program gelen SOAP paketini açarak yeni hesap kaydı işleminin sonucu olarak paketten çıkan bilgiyi döndürür.

RPC nedir?


Bir kullanıcının HTTP üzerinden bir web servisi kullanmasına RPC yani Remote Procedure Call adı verilir. HTTP üzerinden yapılan bu istekler SOAP protokolüne uyarak XML dosyası şeklinde transfer edilir. Bu yüzden platform-bağımsızdır.

Örneğin merkez bankasının web servislerini kullanarak anlık döviz kurlarını çekebiliriz.
Bu şekilde bütün kurumlar aynı merkezden ortak bir şekilde güncel veriyi elde etmiş olur.

Diyelim ki bir mesajlaşma uygulaması geliştirdiniz. Uygulamayı bilgisayarına kuran bir kullanıcı giriş ekranından giriş yapmak istediğinde verilen kullanıcı adı ve şifreyi web servis aracılığıyla kontrol ettirebiliriz. Ayrıca kullanıcının arkadaş listesi vb bilgileri de yine web servis aracılığıyla alabiliriz.

SOAP ile web servis işleyişi




Web servisler özellikle kurumsal uygulamalarda önem kazanıyor çünkü kurumlar devamlı satıcılar, bankalar vb diğer kurumlarla entegre olarak çalışıyorlar.
Örneğin hastane otomasyonu sağlık bakanlığının merkezi randevu sistemine bağlanır.
Okul yazılımları milli eğitim bakanlığı ile bilgi alıp-verir.
Kurumsal firmalar birçok müşterisindeki yazılımlarla veri alış-verişi yapar.



Anahtar kelimeler:


SOAP
UDDI
WSDL
SOA
XML


Hiç yorum yok:

Yorum Gönder