Burak IŞIKLI :))

Web Services(Web Servis) Nedir?

Posted in Web Services by Burak IŞIKLI on 4 Temmuz 2009

Web servisleri Haziran 2000’de ortaya çıkan bir çok yazılım firması tarafından yoğun bir destek bulan bir modeldir. Web servisleri açık internet standartlarına dayanır. Henüz gelişme ve olgunlaşma aşamasında olan bu modelle ilgili olarak bu aşamada ortaya çıkan ve kullanılan çekirdek standartlar SOAP, WSDL ve UDDI’dır.  Web servisleri anlayabilmeniz için öncelikle HTML ve XML dillerinin temelini anlamanız gerekiyor.

Web servisler, Object Management Group(OMG), Common Object Request Broker Architecture (CORBA), Microsoft‘s Distributed Component Object Model (DCOM)  veya SUN‘s Java/Remote Method Invocation (RMI) gibi diğer yaklaşımlarla fonksiyonellik bakımından çok benzerlik gösteriyor.

Web servisleri modelini destekleyen Microsoft, IBM, Sun, HP, Oracle ve daha bir çok firma bu konuda yoğun bir şekilde çalışmakta ve web servisleri yazılım ve uygulama geliştirme araçlarını geliştiricilere sunmaktadırlar. Bu konudaki firmaların yoğun desteğinden dolayı uygulama bütünleştirmesi konusunda ortaya çıkacak hakim ortamın web servisleri modeline dayanacağı yönündedir.

Peki ama 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 temeline dayanır yani XML tabanlı bir teknolojidir.

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)

Web Servislerin iki temel kullanımı vardır.

1-) Reusable application-components(Yeniden kullanılabilir uygulama bileşenleri)

Bazı uygulama bileşenleri birden fazla yerde değişik şekillerde kullanılabilir. Web servisler bunu sağlayabilir. Örneğin para birimi dönüşümü, hava durumu raporları veya dil tercümanlığını dahi servis olarak uygulama bileşeni halinde sunabilir.

2-) Connect existing software

Web Servisler verilen farklı uygulamaların veri bağlantısı için birliktelik(interoperability) problemini çözmenize yardım edebilir. Web Servisleri ile veriyi farklı uygulamalar ve farklı platformlar arasında değiştirebilirsiniz.

SOAP(Simple Object Access Protocol):

SOAP, XML tabanlı uygulamalarda HTTP üzerinden bilgi değişimine izin veren protokoldür. Basitçe SOAP, Web Servis erişimi için protokoldür. RPC (Remote Procedure Call, DCOM, IIOP (Internet Inter-ORB Protocol) ve Java RMI bu çözümlerden bazılarıdır.

  • 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.

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.

Web Service Example

Geçen yıllardaki gelişmelerden sonra bugünkü web ortamı olmadan ağ tabanlı bilgi sistemlerinin düşünülmesi çok zordur. Web’in bu kadar başarılı olmasının nedeni basitlik ve yaygınlığıdır (ubiquity). Web ortamındaki gelişmeleri üç safhada inceleyebiliriz:

  • Belge Web’i (Document Web) : Belge web’i ile web ilk aşamadaki kullanımı, yani HTTP protokolü ile HTML dilinde biçimlendirilmiş statik belgelerinin kullanıcılara sunumunu ifade ediyor.
  • 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ı.
  • 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 yapıdır. Bu yapının temel taşı web servisleridir. 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. Bu fonksiyonlar değişik kurumsal iş süreçlerini gerçekleştireceklerdir.

WebserviceWeb Servis

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 servislere hakkında bilgi alabilir. Servis kayır birimi her servisin nasıl çağırılacağı konusunda tanım bilgileri içerir.

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.

Yeni nesil web uygulamaları web servisleri modeline dayanacaktır. Web servisleri ile, kurumlar işbirliği yaptığı satıcı, müşteri ve banka gibi diğer kurumlardaki iş süreçlerini birleştirerek daha iyi işlevsellik ve daha az maliyet gibi bir çok avantajlar sağlayacaklardır.

Web servisleri modeli XML, SOAP, WSDL ve UDDI gibi açık internet standartlarına dayanır. Bu konudaki firmaların yoğun desteğinden dolayı uygulama bütünleştirmesi konusunda ortaya çıkacak hakim ortamın web servisleri modeline dayanacağı yönündedir. Web servisleri modelini ciddi olarak benimseyen Microsoft, IBM, Sun, HP, Oracle ve daha bir çok firma bu konuda yoğun bir şekilde çalışmakta ve web servisleri yazılım ve uygulama geliştirme araçlarını geliştiricilere sunmaktadırlar.

Kaynaklar:

http://www.godoro.com/divisions/ehil/Mecmua/Magazines/Articles/txt/html/article_WebServices.html

http://en.wikipedia.org/wiki/Web_service

http://www.w3schools.com/webservices/default.asp

8 Yanıt

Subscribe to comments with RSS.

  1. Aslan said, on 8 Kasım 2010 at 23:45

    güzel bir makale olmuş. ellerine sağlık hocam.

  2. dahi said, on 26 Mart 2011 at 13:48

    gayet detaylı, güzel bir anlatım…

  3. Atahan Elmacioglu said, on 27 Haziran 2011 at 14:55

    cok güzel bir anlatim. tesekkür ederim

  4. mcan said, on 29 Haziran 2011 at 13:03

    Çok iyi bir çalışma olmuş ellerine sağlık…

  5. ilyas tavukcu said, on 6 Temmuz 2011 at 12:50

    Merhaba,

    Gelirler idaresinin elektronik fatura projesi kapsamında entegrasyon uygulama yazıyoruz. İstenilen xml formatında fatura oluşturduk fakat oluşturduğumuz faturayı gelirler idaresine yollamak için mtom (mesaj transfer optimizasyon mekanizması) kullanmamız gerekiyormuş. Bu konu hakkında bilgi verebilirmisiniz.

  6. kaliteli web tasarım said, on 10 Aralık 2015 at 22:00

    İyi içerik olmuş teşekkürler

  7. kaliteli web tasarım said, on 13 Aralık 2015 at 3:17

    Konunuzu beğendim çok teşekkürler

  8. web yazılım said, on 13 Aralık 2015 at 3:21

    Bir konuyu araştırırken sitenizi gördüm iyi paylaşım olmuş teşekkür ederim


Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: