Web Hizmetleri nedir? Mimari, Tipler, Örnek

İçindekiler:

Anonim

Web Hizmeti nedir?

Web hizmeti , World Wide Web üzerindeki istemci ve sunucu uygulamaları arasındaki iletişimi yaymak için standartlaştırılmış bir ortamdır. Web hizmeti, belirli bir dizi görevi gerçekleştirmek için tasarlanmış bir yazılım modülüdür.

  • Bulut bilişimdeki web hizmetleri ağ üzerinden aranabilir ve buna göre de çağrılabilir.
  • Çağrıldığında, web hizmeti, istemciye bu web hizmetini çağıran işlevselliği sağlayabilecektir.

Bu Web Hizmeti eğitiminde, Web hizmetlerinin temellerini öğreneceksiniz.

  • Web Hizmetleri Nasıl Çalışır?
  • Neden bir Web Hizmetine ihtiyacınız var?
  • Web Hizmeti Türü
  • Web Hizmetleri Avantajları
  • Web Servis Mimarisi
  • Web Servis Özellikleri
  • Web Hizmetleri Nasıl Çalışır?

    Web Hizmetleri Nasıl Çalışır?

    Yukarıdaki şema, bir web hizmetinin gerçekte nasıl çalışacağına dair çok basit bir görünümü göstermektedir. İstemci, gerçek web hizmetini barındıracak bir sunucuya yapılan istekler yoluyla bir dizi web hizmeti çağrısı başlatabilir.

    Bu istekler, uzaktan yordam çağrıları olarak bilinen yöntemle yapılır. Uzaktan Prosedür Çağrıları (RPC), ilgili web servisi tarafından barındırılan yöntemlere yapılan çağrılardır.

    Örnek olarak Amazon, amazon.com üzerinden çevrimiçi satılan ürünler için fiyat sağlayan bir web hizmeti sunmaktadır. Ön uç veya sunum katmanı .Net veya Java'da olabilir, ancak her iki programlama dili de web hizmeti ile iletişim kurabilir.

    Bir web servis tasarımının ana bileşeni, istemci ile sunucu arasında aktarılan verilerdir, yani XML'dir. XML (Genişletilebilir biçimlendirme dili), HTML'nin karşılığıdır ve birçok programlama dili tarafından anlaşılan ara dili anlamak kolaydır.

    Yani uygulamalar birbirleriyle konuştuğunda aslında XML olarak konuşuyorlar. Bu, çeşitli programlama dillerinde geliştirilen uygulamaların birbirleriyle konuşmak için ortak bir platform sağlar.

    Web hizmetleri, uygulamalar arasında XML verilerini göndermek için SOAP (Basit Nesne Erişim Protokolü) olarak bilinen bir şey kullanır. Veriler normal HTTP üzerinden gönderilir. Web servisinden uygulamaya gönderilen verilere SOAP mesajı denir. SOAP mesajı bir XML belgesinden başka bir şey değildir. Doküman XML olarak yazıldığından, web servisini çağıran istemci uygulaması herhangi bir programlama dilinde yazılabilir.

    Neden bir Web Hizmetine ihtiyacınız var?

    Günümüzün modern iş uygulamaları, web tabanlı uygulamalar geliştirmek için çeşitli programlama platformlarını kullanır. Bazı uygulamalar Java'da, diğerleri .Net'te, bazıları ise Angular JS, Node.js, vs.'de geliştirilebilir.

    Çoğu zaman, bu heterojen uygulamaların aralarında bir tür iletişime ihtiyacı vardır. Farklı geliştirme dilleri kullanılarak inşa edildikleri için, uygulamalar arasında doğru iletişimi sağlamak gerçekten zor hale geliyor.

    İşte burada web hizmetleri devreye giriyor. Web hizmetleri, çeşitli programlama dilleri üzerine inşa edilmiş birden çok uygulamanın birbiriyle iletişim kurma yeteneğine sahip olmasına izin veren ortak bir platform sağlar.

    Web Hizmeti Türü

    Esas olarak iki tür web hizmeti vardır.

    1. SABUN web hizmetleri.
    2. RESTful web hizmetleri.

    Bir web hizmetinin tam olarak işlevsel olabilmesi için, yerinde olması gereken bazı bileşenler vardır. Web hizmetini programlamak için hangi geliştirme dili kullanılırsa kullanılsın, bu bileşenlerin mevcut olması gerekir.

    Bu bileşenlere daha detaylı bakalım.

    SOAP (Basit Nesne Erişim Protokolü)

    SOAP, aktarımdan bağımsız bir mesajlaşma protokolü olarak bilinir. SOAP, XML verilerinin SOAP Mesajları olarak aktarılmasına dayanır. Her iletinin XML belgesi olarak bilinen bir şeyi vardır. İçeriği değil, yalnızca XML belgesinin yapısı belirli bir kalıbı takip eder. Web servislerinin ve SOAP'ın en iyi yanı, hepsinin standart web protokolü olan HTTP aracılığıyla gönderilmesidir.

    İşte bir SOAP mesajının içeriği

    • Her SOAP belgesinin öğesi olarak bilinen bir kök öğesine sahip olması gerekir. Kök öğe, bir XML belgesindeki ilk öğedir.
    • "Zarf" sırasıyla 2 parçaya bölünmüştür. Birincisi başlık, sonraki ise gövde.
    • Başlık, temelde XML belgesine hangi istemciye gönderilmesi gerektiğini söyleyen bilgi olan yönlendirme verilerini içerir.
    • Gövde gerçek mesajı içerecektir.

    Aşağıdaki şema, SOAP üzerinden iletişimin basit bir örneğini göstermektedir.

    SABUN Protokolü

    SABUNU bu derste ayrıntılı olarak tartışacağız.

    WSDL (Web hizmetleri açıklama dili)

    Bulunamazsa bir web hizmeti kullanılamaz . Web hizmetini çağıran istemci, web hizmetinin gerçekte nerede bulunduğunu bilmelidir.

    İkinci olarak, istemci uygulamasının web hizmetinin gerçekte ne yaptığını bilmesi gerekir, böylece doğru web hizmetini çağırabilir. Bu, Web hizmetleri açıklama dili olarak bilinen WSDL'nin yardımıyla yapılır. WSDL dosyası yine XML tabanlı bir dosyadır ve temelde istemci uygulamasına web hizmetinin ne yaptığını söyler. WSDL belgesini kullanarak, istemci uygulaması web hizmetinin nerede bulunduğunu ve nasıl kullanılabileceğini anlayabilecektir.

    Web Servis Örneği

    WSDL dosyasının bir Web hizmetleri örneği aşağıda verilmiştir.

    
    
    
    

    Web hizmetlerinin yukarıdaki WSDL beyanı örnekleri hakkında dikkat edilmesi gereken önemli hususlar aşağıdaki gibidir:

    1. - WSDL tanımındaki mesaj parametresi, web hizmeti tarafından gerçekleştirilen her işlem için farklı veri öğelerini tanımlamak için kullanılır. Bu nedenle, yukarıdaki web hizmetleri örneklerinde, web hizmeti ile istemci uygulaması arasında değiş tokuş edilebilen 2 mesajımız var, biri "Eğitim Talebi" ve diğeri "Eğitici Yanıt" işlemi. TutorialRequest, string türünde olan "TutorialID" adlı bir öğe içerir. Benzer şekilde, TutorialResponse işlemi, aynı zamanda bir tür dizesi olan "TutorialName" adlı bir öğe içerir.
    2. - Bu aslında bizim durumumuzda Eğitim olarak adlandırılan web hizmeti tarafından gerçekleştirilebilecek işlemi açıklar. Bu işlem 2 mesaj alabilir; biri giriş mesajı, diğeri ise çıkış mesajıdır.
    3. - Bu öğe, kullanılan protokolü içerir. Yani bizim durumumuzda, onu http ( http://schemas.xmlsoap.org/soap/http ) kullanacak şekilde tanımlıyoruz . Ayrıca işlemin gövdesi için ad alanı ve mesajın kodlanıp kodlanmayacağı gibi diğer ayrıntıları da belirtiyoruz.

    Bu eğitimde "WDSL" yi ayrıntılı olarak tartışacağız.

    Evrensel Açıklama, Keşif ve Entegrasyon (UDDI)

    UDDI, belirli bir hizmet sağlayıcı tarafından sağlanan web hizmetlerini açıklamak, yayınlamak ve keşfetmek için bir standarttır. Bilgilerin web servislerinde barındırılmasına yardımcı olan bir şartname sağlar.

    Şimdi WSDL ve Web hizmetinin gerçekte ne yaptığına dair bilgileri nasıl içerdiğiyle ilgili önceki başlıkta tartıştık. Ancak bir istemci uygulaması, bir web hizmeti tarafından sunulan çeşitli işlemleri anlamak için bir WSDL dosyasını nasıl bulabilir? Dolayısıyla UDDI, bunun cevabıdır ve WSDL dosyalarının barındırılabileceği bir depo sağlar. Böylece istemci uygulaması, tüm WSDL dosyalarını içeren bir veritabanı görevi gören UDDI'ye tam erişime sahip olacaktır.

    Bir telefon rehberinin belirli bir kişinin adı, adresi ve telefon numarasına sahip olması gibi, UDDI kaydının da web hizmeti için ilgili bilgilere sahip olacağı gibi . Böylece bir istemci uygulaması nerede bulunabileceğini bilir.

    Web Hizmetleri Avantajları

    Web servislerinin neden ilk başta ortaya çıktığını, farklı uygulamaların birbirleriyle konuşmasına izin verebilecek bir platform sağlamak olduğunu zaten anlıyoruz.

    Ancak, web servislerini kullanmanın neden önemli olduğu konusunda web servislerinin avantajlarının listesine bakalım.

    1. Ağda İş İşlevselliğini Açığa Çıkarma - Bir web hizmeti, istemci uygulamalarına veya son kullanıcılara bir tür işlevsellik sağlayan bir yönetilen kod birimidir. Bu işlevsellik HTTP protokolü üzerinden çağrılabilir, bu da internet üzerinden de çağrılabileceği anlamına gelir. Günümüzde tüm uygulamaların internette olması, Web servislerinin amacını daha kullanışlı hale getirmektedir. Bu, web hizmetinin internette herhangi bir yerde olabileceği ve gerektiği şekilde gerekli işlevselliği sağlayabileceği anlamına gelir.

    2. Uygulamalar arasında birlikte çalışabilirlik - Web hizmetleri, çeşitli uygulamaların birbiriyle konuşmasına ve kendi aralarında veri ve hizmetleri paylaşmasına izin verir. Her tür uygulama birbiriyle konuşabilir. Bu nedenle, yalnızca belirli uygulamalar tarafından anlaşılabilen belirli bir kod yazmak yerine, artık tüm uygulamaların anlayabileceği genel kod yazabilirsiniz.

    3. Herkesin anladığı Standartlaştırılmış Protokol - Web hizmetleri iletişim için standartlaştırılmış endüstri protokolü kullanır. Dört katmanın tümü (Hizmet Aktarımı, XML Mesajlaşma, Hizmet Tanımı ve Hizmet Keşfi katmanları) web hizmetleri protokol yığınında iyi tanımlanmış protokoller kullanır.

    4. İletişim maliyetinde azalma - Web hizmetleri, HTTP protokolü üzerinden SOAP kullanır, böylece web hizmetlerini uygulamak için mevcut düşük maliyetli internetinizi kullanabilirsiniz.

    Web Servis Mimarisi

    Her çerçevenin, tüm çerçevenin web hizmetlerinde benzer şekilde istendiği gibi çalışmasını sağlamak için bir tür mimariye ihtiyacı vardır. Web Hizmetleri Mimarisi aşağıda verildiği gibi üç farklı roller oluşur:

    1. Sağlayıcı - Sağlayıcı , web hizmetini oluşturur ve onu kullanmak isteyen istemci uygulamasının kullanımına sunar.
    2. Talep Eden - Talep eden , bir web hizmetiyle iletişim kurması gereken istemci uygulamasından başka bir şey değildir. İstemci uygulaması bir .Net, Java veya bir web hizmeti aracılığıyla bir tür işlevsellik arayan herhangi bir dil tabanlı uygulama olabilir.
    3. Broker - Broker , UDDI'ye erişim sağlayan uygulamadan başka bir şey değildir. Önceki başlıkta tartışıldığı gibi UDDI, istemci uygulamasının web hizmetini bulmasını sağlar.

    Aşağıdaki şema, Hizmet sağlayıcısının, Hizmet talebinde bulunanın ve Hizmet kaydının birbirleriyle nasıl etkileşimde bulunduğunu göstermektedir.

    Web Servis Mimarisi
    1. Yayınlama - Bir sağlayıcı, hizmeti istemciler için erişilebilir kılmak için aracının yayınlama arayüzünü kullanarak aracıyı (hizmet sicilini) web hizmetinin varlığı hakkında bilgilendirir.
    2. Bul - İstekte bulunan, yayınlanmış bir web hizmetini bulması için aracıya danışır
    3. Bağlama - Aracıdan (hizmet sicilinden) web hizmeti hakkında edindiği bilgilerle, talepte bulunan kişi web hizmetini bağlayabilir veya çağırabilir.

    Web servis Özellikleri

    Web hizmetleri aşağıdaki özel davranış özelliklerine sahiptir:

    1. XML Tabanlılar - Web Hizmetleri, verileri temsil ve veri taşıma katmanlarında temsil etmek için XML kullanır. XML herkes tarafından anlaşılan ortak dil olduğundan, XML kullanmak her türlü ağ, işletim sistemi veya platform bağımlılığını ortadan kaldırır.

    2. Gevşek Bağlanmış - Gevşek bağlı, istemcinin ve web hizmetinin birbirine bağlı olmadığı anlamına gelir; bu, web hizmeti zamanla değişse bile, istemcinin web hizmetini arama şeklini değiştirmemesi gerektiği anlamına gelir. Gevşek bağlı bir mimarinin benimsenmesi, yazılım sistemlerini daha yönetilebilir hale getirme eğilimindedir ve farklı sistemler arasında daha basit entegrasyona izin verir.

    3. Eşzamanlı veya Eşzamansız işlevsellik - Eşzamanlılık, istemcinin hizmetin yürütülmesine bağlanmasını ifade eder. Eşzamanlı işlemlerde, istemci aslında web hizmetinin bir işlemi tamamlamasını bekleyecektir. Bunun bir örneği, muhtemelen bir veritabanı okuma ve yazma işleminin gerçekleştirildiği bir senaryodur. Veriler bir veritabanından okunur ve ardından diğerine yazılırsa, işlemler sıralı bir şekilde yapılmalıdır. Eşzamansız işlemler, bir istemcinin bir hizmeti çağırmasına ve ardından diğer işlevleri paralel olarak yürütmesine izin verir. Bu, belirli bir işlem gerçekleştirilirken diğer hizmetlerin durdurulmamasını sağlamak için yaygın ve muhtemelen en çok tercih edilen tekniklerden biridir.

    4. Uzaktan Prosedür Çağrılarını (RPC'ler) destekleme yeteneği - Web hizmetleri, istemcilerin XML tabanlı bir protokol kullanarak uzak nesneler üzerindeki prosedürleri, işlevleri ve yöntemleri çağırmasına olanak tanır. Uzaktan prosedürler, bir web hizmetinin desteklemesi gereken girdi ve çıktı parametrelerini ortaya çıkarır.

    5. Belge Değişimini Destekler - XML'in en önemli avantajlarından biri, yalnızca verileri değil aynı zamanda karmaşık belgeleri de temsil etmenin jenerik yoludur. Bu belgeler, geçerli bir adresi temsil etmek kadar basit olabilir veya bir kitabın tamamını temsil etmek kadar karmaşık olabilir.