18 Haziran 2012 Pazartesi

Web Servis Nedir Nerelerde Kullanılır ?

Web Servis web üzerinden HTTP protokolü ile hizmet veren program parçalarıdır. Bir kullanıcının HTTP üzerinden bir web servisi kullanmasına RPC(Remote Procedure Call) denmektedir HTPP üzerinden yapılan bu çağrımlara karşı SOAP(Simple Obect Access Protocol) dediğimiz protokol XML çıktıları üretir. Veri transferi bu XML çıktıları sayesinde yapıldığı için platform bağımsız bir yapısı vardır. Web servisi kullanmak istediğiniz program parçasının hangi dilde yazıldığının pek bir önemi yoktur.Çünkü sonuçta Web servisten alacağınız veri tipi XML'dir.Bundan dolayı C# ile yazılmış bir Web Servis Java tarafından Java ile yazılan bir Web Servis .Net teknolojileri tarafından kolayca kullanılabilmektedir.Bu yazılımların çalıştıkları platformalarında pek önemi yoktur Unix üzerinde çalışan bir uygulamayla Windows üzerinde çalışan bir uygulama aynı Web Servisi sorunsuzca kullanabilirler.
Bir web servisten veri okuyup , veri almak istediğinizde bilgisayarınızda veri transferinin gerçekleşmesi için bir port açılır ve bu portan veri okunup veri gönderilir.

Bir kaç örnekle Web Servisin kullanım alanlarından bahsedelim.
Merkez bankası hergün döviz kurlarını kendi sistemi üzerinde belirler ve bu "kur bilgisi" üzerinde işlem yapan kurumlar merkez bankasının Web Servisleri aracılığıyla gün içerisinde değişen kur bilgilerini kendi sistemlerine çekerler ve bu şekilde merkezi ve güncel bir yapının oluşması sağlanmış olur.

veya başka bir örnekle açıklamak gerekirse,

Aslında olay tamamen bu resimde gösterilen olaydan ibaret.
Aslında olay tamamen bu resimde gösterilen şemadan ibaret.

Windows Messenger tarzı bir uygulama yaptınız kullanıcılar internet siteniz aracılığıyla sisteminize kayıt oldular ve bilgileri Web Server üzerinde bulunan Database kaydedildi.Chat leşmeye başlayabilmek için'de bilgisayarlarına sizin geliştirmiş olduğunuz uygulamayı indirdiler.

Programı başlattıkları zaman programınız giren kullanıcının kim olduğunu tespit edebilmek için bu kullanıcıdan "Kullanıcı Adı" , "Parola" bilgisi istedi.Şimdi sizin kullanıcının Client'ında bulunan uygulamanızda "Kullanıcı Adı" , "Parola" bilgisi var fakat kayıtlı olan kullanıcıların bilgisi Web Server'da arada bir iletişim kurmak lazım işte bu noktada yardımımıza Web Servisler yetişmekte.

Yazmış olduğunuz ve Web Server üzerinde çalışan bir Web Servis'e bu parametreleri geçerek giren kullanıcının gerçekten sistem'de var olup olmadığını varsa arkadaş listesini ve benzeri bilgileri Client'a çekebilirsiniz.

Web servisler kurumlar arası iş birliği açısından son derece önemlidir çünkü kurumlar iş birliği yaptığı satıcı , müşteri bankalar ve benzeri kurumlardaki iş süreçlerini birleştirerek daha iyi işlevsellik ve daha az maliyetle zorlu proje süreçlerini tamamlamaktadırlar. Günümüzdeki Web tabanlı projelerin büyük bir çoğunluğu dışardaki bir çok sistemle veri alışverişinde bulunmaktadır.Hastaneye gidersiniz hastane yazılımı "Sağlık Bakanlığı'nın" merkezi randevü sistemine bağlanmaya çalışır.Okula gidersiniz okul "Milli Eğitim Bakanlığı'nın" sistemine bağlanıp bilgi alışverişinde bulunmaya başlar.Özel bir firmada yazılımcı olarak işe başlarsınız yaptığınız proje gereği birlikte çalıştığınız müşterilerinizin farklı yazılım sistemleri ile paralel veri alışverişinde bulunmanız gerekir işte bu tarz işlemlerin olduğu her yerde Web Servis güçlü ve kararlı bir yapı olarak karşımıza çıkmaktadır. Web Servisler halan büyük ve kurumsal firmalar tarafından çok güçlü bir şekilde desteklenmektedir bundan dolayı Web Servis teknoloji halen önemi'ni korumaktadır.

Biraz teknik olarak olayı özetlemek gerekirse.

  1. Kullanıcı bilgisayarında yada başka bir Web Serverda çalışan bir uygulama(Bunlara "İstemci" diyoruz) Veri alışverişinde bulunmak istediği Web Servisin bulunduğu sunucuya XML formatındaki bir SOAP Mesajı (SOAP Request) gönderir.
  2. XML formatındaki SOAP Mesajını alan Web Server gelen mesajı parçalayarak istenilen Web Servise bu parametreleri geçerek ilgili Web Methodu tetikler.
  3. Web Method gelen parametrelere göre ilgili işlemleri yapıp Oluşan sonucu Web Server'a iletir.
  4. Web Method'dan yanıt bekleyen Uygulama sunucumuz gelen veriyi XML formatında hazırlayıp bir SOAP Mesajı(SOAP Response) ile İstemci uygulamaya iletir.
  5. İstemci'mizde gelen XML türündeki veriyi talepte bulunan uygulamaya göndererek aradaki bağlantıyı sonlandırır

Son bir not olarak belirtmeliyimki Web Servis kullanırken dikkat edilmesi gereken noktalardan biride Uygulama Sunucusundaki yoğunluktur.Siz bir istemci olarak uygulama sunucusundaki bir web servisi tetiklediğiniz zaman istemci olarak bir soket açıp sunucudaki bir port'a veri yazarsınız ve bunun için özel bir ayarlama yapılmadığı takdir'de bu işlemin tamamlanması için öngörülen default süre 1 dakikadır.İstemci makine eğer 1 dk içerisinde bu soket üzerinde herhangi bir veri alışverişi olmazsa güvenlik önlemi olarak veri alışverişini sonlandırır.Ve çalışan uygulama zaman aşımı hatasına düşer.Fakat istemci uygulamanın bu hataya düşmüş olması uygulama sunucusunda ki işlemin'de bitmiş olduğu anlamına gelmez.Sunucudaki yoğunluğa göre yaptığınız işlem bir süre sonra gerçekleşecektir.

Buından dolayı eğer yaptığınız işlem "Zaman Aşımı" hatasına uğrarsa varsa eğer işlemin durumunu sorgulayıp iptal "İptal Webservisi ni" çağırmalısınız veya 1 dk olarak öngörülen Default Süreyi daha yukarı bir değere çekmeliyiz.

Bir sonraki makalemde bir Web Servis nasıl yazılır ve bir C# uygulaması ile bu Web Servis nasıl tetiklenir bunu inceliyeceğiz.

5 yorum:

  1. Günümüzde sıkça kullanılmaya başlayan bir sistem. İlaç takip sistemi, e-fatura bildirimleri vs. hep bu sistem üzerinden bilgi alış verişi yaparak çalışmaktadır.

    YanıtlaSil
  2. Çok güzel anlatmışsınız elinize sağlık.

    YanıtlaSil
  3. Çok açıklayıcı olmuş bu güzel bilgiler için çok teşekürler

    YanıtlaSil
  4. Başarılı bir anlatım. Çok teşekkür ederim.

    YanıtlaSil
  5. teşekkürler hocam açıklayıcı olmuş

    YanıtlaSil