Daha önceki API Nedir yazımızda API kavramını ve sahip olduğu potansiyeli açıklamıştık. Bu yazımızda API’lerin en yaygın kullanım alanlarından web servisleri nedir? Sorusuna cevap bulacağız.
Web servisi özellikle dağıtık mimarili uygulamalar için düşünülmüştür. Web servisleri genel anlamda farklı uygulamaların ağ üzerinden haberleşmesini sağlayan ve iletişimini standart bir XML mesajlaşma sistemi kullanarak gerçekleştiren bir yazılım parçasıdır. Burada XML, bir web servisindeki tüm iletişimleri kodlamak için kullanılır. Örneğin, bir istemci bir XML iletisi göndererek bir web hizmetini çağırır, ardından karşılık gelen bir XML yanıtı bekler. Tüm iletişim XML türünden gerçekleştirildiği için web servisi herhangi bir işletim sistemine veya programlama diline bağlı değildir. Örneğin bir Windows sunucusu üzerinde C# kullanılarak kodlanmış uygulama Iphone için Swift dili ile geliştirilmiş bir başka yazılımla XML standartlarında web servisleri aracılığı ile iletişim kurabilir. Bu durum web servislerinin aslında bir API olmasından kaynaklanmaktadır. Sadece veri iletişimi ile sınırlı kalmazlar. Uygulamaların işlevselliklerinin paylaşımında da rol alırlar.
Web hizmetleri, doğrudan uygulama-uygulama etkileşimi için İnternet’i kullanan XML tabanlı bilgi alışverişi sistemleridir. Bu sistemler programlar, nesneler, mesajlar veya belgeler içerebilir.
Bir web servisi, uygulamalar veya sistemler arasında veri alışverişinde kullanılan açık protokol ve standartların bir toplamıdır. Çeşitli programlama dillerinde yazılmış ve çeşitli platformlarda çalışan yazılım uygulamaları, internet benzeri bilgisayar ağları üzerinden, IIS gibi bir servis sağlayıcı tarafından tek bir bilgisayarda işlemler arası iletişim benzeri şekilde veri alışverişinde bulunmak için web servisleri kullanılır. Bu birlikte işlerlik (örneğin, Java ve Python veya Windows ve Linux uygulamaları arasında) açık standartların kullanımından kaynaklanmaktadır.
Özetlemek gerekirse, bir web servisi ;
- İnternet veya özel (intranet) ağlar üzerinden kullanılabilir
- Verileri etiketlemek için standart bir XML mesajlaşma sistemi kullanır
- Herhangi bir işletim sistemine veya programlama diline bağlı değil
Web Servislerinin Bileşenleri
Temel web servisleri platformu XML + HTTP‘dir. Tüm standart web servisleri bu bağlamda aşağıdaki iletişim protokollerini kullanarak çalışır.
- SOAP (Basit Nesne Erişim Protokolü) : Bir ileti aktarmak için
- UDDI (Evrensel Tanımlama, Keşif ve Entegrasyon) : web servislerini tanımlama, yayınlama ve bulma işlemleri konusunda bir standarttır.
- WSDL (Web Hizmetleri Açıklama Dili) : Hizmetin kullanılabilirliğini açıklamak için
Örnek olarak;
Basit bir hesap yönetimi ve sipariş işleme sistemi düşünün. Muhasebe personeli, yeni hesaplar oluşturmak ve yeni müşteri siparişleri girmek için C# veya Java ile oluşturulan bir istemci uygulaması kullanmaktadır.
Bu sistemin bilgiyi depolamak için bir veritabanına ihtiyacı vardır. Bu veritabanı ise farklı lokasyonda bulunan bir Linux sunucusunda bulunabilir. İstemci uygulama verileri çekebilmek için sunucu sistemde bulunan veritabanı ile internet üzerinden etkileşime geçmelidir.
Bu işlemi gerçekleştirmek için gereken adımlar şunlardır:
- İstemci programı, hesap kayıt bilgilerini bir SOAP iletisi olarak hazırlar.
- Bu SOAP iletisi bir HTTP POST isteğinin gövdesi olarak web servisine gönderilir.
- Web servisi, SOAP isteği paketini açar ve uygulamanın anlayabileceği bir komut haline dönüştürür.
- Uygulama, bilgileri gerektiği gibi işler ve o müşteri için yeni bir benzersiz hesap numarasıyla yanıt verir.
- Daha sonra, web servisi yanıtını başka bir SOAP iletisine paketler ve HTTP isteğine yanıt olarak istemci programına geri gönderir.
- Müşteri programı, hesap kayıt işleminin sonuçlarını almak için SOAP iletisinin paketini açar ve istemci uygulaması üzerinde işler.
Sonuç olarak;
Mevcut yazılımlarınızın bir takım işlevselliklerini ağ üzerinden servis edebilmeniz, diğer yazılımların servis vasıtasıyla uygulamanızı kullanabilmesi, üstelik bütün bunların platform bağımsız gerçekleştirilebiliyor olması büyük bir avantajdır.
Hocam elinize sağlık. Yazılarınızı devamlı takip ediyorum. Bu konuyu da çok iyi bir şekilde anlatmıssiniz. Bu konuyla ilgili örneğinizi dört gözle bekliyorum. Saygılar.
Yazıları beğendiğin için teşekkürler.
Site içinde web servis ile ilgili aspx, php, javascript bağlantıları ile yapılmış farklı örnekler mevcuttur. Bir kaç tanesinin bağlantısını paylaşıyorum umarım yardımcı olur.
aspx: https://www.yazilimbilisim.net/c-sharp/web-services/asp-net-ile-asmx-web-servisi-olusturmak/
php: https://www.yazilimbilisim.net/web/php/php-ile-asmx-web-servisi-cagrisi-yapmak/
javascript(angularjs): https://www.yazilimbilisim.net/javascript/angularjs/angularjs-template-asp-net-webservice/
angularjs: https://www.yazilimbilisim.net/c-sharp/asp-net/angularjs-asp-net-servise-baglanma/
yakında php ile oluşturulmuş mysql veritabanı ile çalışan web servisi oluşturmaya yönelik bir örnek bitmek üzere.
En kısa sürede de java, wpf ile hazırlanmış asmx örnekleri paylaşmayı düşünüyoruz.