Web Hizmetleri Nedir? Archidoku, Türler, Örnek
Web Hizmeti Nedir?
Web hizmeti WWW (World Wide Web) üzerinde 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 çağrılabilir.
- Çağrıldığında, web hizmeti müşteriye, o web hizmetini çağıran işlevselliği sağlayabilir.
Web Hizmetleri Nasıl Çalışır?
Yukarıdaki diyagram, bir web hizmetinin gerçekte nasıl çalışacağına ilişkin çok basit bir görünümü göstermektedir. İstemci, gerçek web hizmetini barındıracak bir sunucuya istekler yoluyla bir dizi web hizmeti çağrısı başlatır.
Bu istekler, uzaktan prosedür çağrıları olarak bilinen yöntemle yapılır. Uzaktan Prosedür Çağrıları (RPC), ilgili web servisinin barındırdığı yöntemlere yapılan çağrılardır.
Örnek olarak, Amazon amazon.com üzerinden çevrimiçi satılan ürünler için fiyatlar sağlayan bir web hizmeti sağlar. Ön uç veya sunum katmanı .Net veya Java ancak her iki programlama dili de web hizmetiyle iletişim kurma yeteneğine sahip olacaktır.
Bir web servis tasarımının ana bileşeni, istemci ile sunucu arasında aktarılan veriler yani XML'dir. XML (Genişletilebilir biçimlendirme dili) HTML'nin karşılığıdır ve birçok programlama dili tarafından anlaşılan, anlaşılması kolay bir ara dildir.
Yani uygulamalar birbirleriyle konuştuğunda aslında XML'de konuşurlar. Bu, çeşitli programlama dillerinde geliştirilen uygulamaların birbirleriyle konuşabilmesi için ortak bir platform sağlar.
Web hizmetleri, XML verilerini uygulamalar arasında göndermek için SOAP (Basit Nesne Erişim Protokolü) olarak bilinen bir şeyi 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. Belge XML dilinde yazıldığı için 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 iş uygulamaları, web tabanlı uygulamalar geliştirmek için çeşitli programlama platformlarını kullanır. Bazı uygulamalar geliştirilebilir Java, diğerleri .Net'te, bazıları ise Angular JS, Node.js vb.'de.
Çoğu zaman, bu heterojen uygulamalar arasında bir tür iletişimin gerçekleşmesi gerekir. Farklı geliştirme dilleri kullanılarak oluşturuldukları için, uygulamalar arasında doğru iletişimi sağlamak gerçekten zorlaşır.
İşte burada web hizmetleri devreye giriyor. Web hizmetleri, çeşitli platformlarda birden fazla uygulamanın kurulmasına olanak tanıyan ortak bir platform sağlar. Programlama dilleri birbirleriyle iletişim kurabilme yeteneğine sahip olmak.
Web Hizmeti Türü
Temel olarak iki tür web hizmeti vardır.
- SOAP web hizmetleri.
- RESTful web hizmetleri.
Bir web hizmetinin tam olarak işlevsel olabilmesi için bazı bileşenlerin mevcut olması gerekir. Web hizmetini programlamak için hangi geliştirme dilinin kullanıldığına bakılmaksızı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 dayanmaktadır. Her mesajın XML belgesi olarak bilinen bir şeyi vardır. Yalnızca XML belgesinin yapısı belirli bir modeli izler, içeriği izlemez. Web servislerinin ve SOAP'ın en iyi yanı, hepsinin standart web protokolü olan HTTP üzerinden gönderilmesidir.
İşte bir SOAP mesajının içeriği:
- Her SOAP belgesinin, olarak bilinen bir kök öğeye sahip olması gerekir. eleman. Kök öğe, bir XML belgesindeki ilk öğedir.
- “Zarf” da 2 parçaya bölünmüştür. Birincisi başlık, ikincisi ise gövdedir.
- Başlık, temel olarak XML belgesinin hangi istemciye gönderilmesi gerektiğini söyleyen bilgiler olan yönlendirme verilerini içerir.
- Gövde asıl mesajı içerecektir.
Aşağıdaki şemada SOAP aracılığıyla iletişimin basit bir örneği gösterilmektedir.
Bu yazıda SOAP'ı detaylı olarak tartışacağız. öğretici.
WSDL (Web hizmetleri açıklama dili)
Bir web hizmeti bulunamazsa kullanılamaz. Web hizmetini çağıran istemci, web hizmetinin gerçekte nerede bulunduğunu bilmelidir.
İkinci olarak, istemci uygulamasının doğru web hizmetini çağırabilmesi için web hizmetinin gerçekte ne yaptığını bilmesi gerekir. 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 temel olarak istemci uygulamasına web hizmetinin ne yaptığını bildirir. İstemci uygulaması, WSDL belgesini kullanarak web hizmetinin nerede bulunduğunu ve nasıl kullanılabileceğini anlayabilir.
Web Hizmeti Örneği
Aşağıda bir WSDL dosyasının Web servisleri örneği verilmiştir.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
Web hizmetlerinin yukarıdaki WSDL bildirim örnekleriyle ilgili dikkat edilmesi gereken önemli hususlar şunlardır:
- – WSDL tanımındaki mesaj parametresi, web servisi tarafından gerçekleştirilen her işlem için farklı veri elemanlarını tanımlamak için kullanılır. Yukarıdaki web servisleri örneklerinde, web servisi ile istemci uygulaması arasında değiş tokuş edilebilecek 2 mesajımız var, biri “TutorialRequest”, diğeri ise “TutorialResponse” işlemi. TutorialRequest, string türünde "TutorialID" adı verilen bir öğe içerir. Benzer şekilde, TutorialResponse işlemi de bir tür dizesi olan “TutorialName” adlı bir öğeyi içerir.
- – Bu aslında bizim durumumuzda Tutorial olarak adlandırılan web servisi tarafından gerçekleştirilebilecek işlemi açıklamaktadır. Bu işlem 2 mesaj alabilir; biri giriş mesajı, diğeri ise çıkış mesajıdır.
- – Bu öğe kullanılan protokolü içerir. Yani bizim durumumuzda, onu http () kullanacak şekilde tanımlıyoruz.http://schemas.xmlsoap.org/soap/http). Ayrıca, işlemin gövdesi için ad alanı ve mesajın kodlanıp kodlanmayacağı gibi diğer ayrıntıları da belirtiriz.
Bu yazımızda “WDSL”i detaylı olarak ele alacağız. öğretici.
Evrensel Descriptİyon, Keşif ve Entegrasyon (UDDI)
UDDI, belirli bir servis sağlayıcı tarafından sağlanan web servislerini tanımlamaya, yayınlamaya ve keşfetmeye yönelik bir standarttır. Web hizmetlerinde bilgilerin barındırılmasına yardımcı olan bir spesifikasyon sağlar.
Şimdi önceki başlıkta WSDL'yi ve bunun Web hizmetinin gerçekte ne yaptığına ilişkin bilgileri nasıl içerdiğini 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? Yani 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.
Tıpkı bir telefon rehberinde belirli bir kişinin adı, adresi ve telefon numarasının bulunması gibi, aynı şekilde UDDI kaydı da web hizmeti için ilgili bilgilere sahip olacaktır.. Böylece bir istemci uygulaması nerede bulunabileceğini bilir.
Web Hizmetleri Avantajları
Farklı uygulamaların birbirleriyle konuşmasına izin verebilecek bir platform sağlamak olan web hizmetlerinin neden ilk etapta ortaya çıktığını zaten anlıyoruz.
Ancak web servislerini kullanmanın neden önemli olduğunu anlamak için web servislerinin avantajları listesine bakalım.
- Ağdaki İş İşlevselliğini ortaya çıkarma – Web hizmeti, istemci uygulamalarına veya son kullanıcılara bir tür işlevsellik sağlayan, 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 internet üzerinde olması Web servislerinin amacını daha kullanışlı hale getirmektedir. Bu, web hizmetinin internette herhangi bir yerde olabileceği ve gerektiği gibi gerekli işlevselliği sağlayabileceği anlamına gelir.
- Uygulamalar arasında birlikte çalışabilirlik – Web hizmetleri, çeşitli uygulamaların birbirleriyle konuşmasına ve kendi aralarında veri ve hizmet paylaşımına olanak tanır. Her türlü uygulama birbiriyle konuşabilir. Böylece yalnızca belirli uygulamaların anlayabileceği özel kodlar yazmak yerine artık tüm uygulamaların anlayabileceği genel kod yazabilirsiniz.
- Herkesin anlayabileceği Standartlaştırılmış Bir Protokol – Web hizmetleri iletişim için standartlaştırılmış endüstri protokolünü kullanır. Dört katmanın tümü (Servis Aktarımı, XML Mesajlaşma, Servis Description ve Hizmet Keşif katmanları), web hizmetleri protokol yığınında iyi tanımlanmış protokoller kullanır.
- İletişim maliyetinde azalma – Web servisleri HTTP protokolü üzerinden SOAP kullanır, böylece web servislerini uygulamak için mevcut düşük maliyetli internetinizi kullanabilirsiniz.
Web Hizmetleri Archidoku
Her çerçevenin, tüm çerçevenin istenildiği gibi çalıştığından emin olmak için bir tür mimariye ihtiyacı vardır, benzer şekilde web servislerinde de Web Hizmetleri Archidoku aşağıda belirtildiği gibi üç farklı rolden oluşur:
- Provider – Sağlayıcı web servisini oluşturur ve onu kullanmak isteyen istemci uygulamasının kullanımına sunar.
- istek sahibi – İstek sahibi, bir web hizmetiyle iletişim kurması gereken istemci uygulamasından başka bir şey değildir. İstemci uygulaması bir .Net olabilir, Java, veya bir web hizmeti aracılığıyla bir tür işlevsellik arayan başka herhangi bir dil tabanlı uygulama.
- komisyoncu – Aracı, UDDI'ye erişim sağlayan uygulamadan başka bir şey değildir. UDDI, önceki konuda tartışıldığı gibi, istemci uygulamasının web hizmetini bulmasını sağlar.
Aşağıdaki şemada Hizmet sağlayıcının, Hizmet talep edenin ve Hizmet kaydının birbirleriyle nasıl etkileşimde bulunduğu gösterilmektedir.
- Yayınlamak – Bir sağlayıcı, hizmeti istemciler için erişilebilir kılmak üzere aracının yayınlama arayüzünü kullanarak aracıyı (hizmet kayıt defterini) web hizmetinin varlığı hakkında bilgilendirir.
- bulmak – İstek sahibi, yayınlanmış bir web hizmetini bulmak için aracıya danışır
- bağlamak – Talep sahibi, web servisine ilişkin brokerden (hizmet kayıt defteri) aldığı bilgilerle web servisini bağlayabilir veya çağırabilir.
Web hizmeti Özellikleri
Web servislerinin aşağıdaki özel davranışsal özellikleri vardır:
- XML Tabanlıdırlar – Web Servisleri, temsil ve veri taşıma katmanlarındaki verileri temsil etmek için XML kullanır. XML kullanımı, XML herkes tarafından anlaşılan ortak dil olduğundan, her türlü ağ, işletim sistemi veya platform bağımlılığını ortadan kaldırır.
- Gevşek bağlanmış – Gevşek bağlı, istemci ve web hizmetinin birbirine bağlı olmadığı anlamına gelir, bu da web hizmeti zamanla değişse bile istemcinin web hizmetini çağırma şeklini değiştirmemesi gerektiği anlamına gelir. Gevşek bağlı bir mimarinin benimsenmesi, yazılım sistemlerini daha yönetilebilir hale getirir ve farklı sistemler arasında daha basit entegrasyona izin verir.
- SyncHronous veya Asenkron işlevsellik - Synchronicity, 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ı bekler. Bunun bir örneği muhtemelen bir veritabanı okuma ve yazma işleminin gerçekleştirildiği bir senaryodur. Veriler bir veritabanından okunup daha sonra başka bir veritabanına 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 olanak tanır. Bu, belirli bir işlem yürütülürken diğer hizmetlerin durdurulmamasını sağlamak için yaygın ve muhtemelen en çok tercih edilen tekniklerden biridir.
- Uzaktan Prosedür Çağrılarını (RPC'ler) destekleme yeteneği – Web hizmetleri, istemcilerin XML tabanlı bir protokol kullanarak uzaktaki nesneler üzerindeki prosedürleri, işlevleri ve yöntemleri çağırmasına olanak tanır. Uzaktan prosedürler, bir web hizmetinin desteklemesi gereken giriş ve çıkış parametrelerini açığa çıkarır.
- Belge Değişimini Destekler – XML'in temel faydalarından biri, yalnızca verileri değil aynı zamanda karmaşık belgeleri de temsil etmedeki genel yoludur. Bu belgeler, güncel bir adresi temsil etmek kadar basit veya tüm bir kitabı temsil etmek kadar karmaşık olabilir.