XML Web Hizmetleri. Teknolojiye Genel Bakış

Konu başlığı gerçekten bir soru çünkü Ben kendim ne olduğunu bilmiyorum ve ilk kez bu makale çerçevesinde onunla çalışmaya çalışacağım. Garanti edebileceğim tek şey, aşağıdaki kodun çalışacağıdır, ancak cümlelerim yalnızca tüm bunları nasıl anladığımla ilgili varsayımlar ve tahminler olacaktır. O zaman hadi gidelim...

Tanıtım

Web servisleri kavramının ne için yaratıldığı ile başlamamız gerekiyor. Bu kavram ortaya çıktığında, dünyada uygulamaların uzaktan etkileşime girmesine izin veren, bir programın başka bir programdaki bazı yöntemleri çağırabileceği ve daha sonra başka bir şehirde veya hatta ülkede bulunan bir bilgisayarda başlatılabileceği teknolojiler zaten vardı. Bütün bunlar RPC (Uzaktan Prosedür Çağrısı - uzaktan prosedür çağrısı) olarak kısaltılır. Örnekler arasında CORBA teknolojileri ve Java - RMI (Uzaktan Yöntem Çağırma - uzak yöntem çağırma) yer alır. Ve her şey onlarda iyi görünüyor, özellikle CORBA'da, çünkü onunla herhangi bir programlama dilinde çalışabilirsiniz, ancak yine de bir şey eksikti. CORBA'nın dezavantajının, herhangi bir güvenlik duvarını tarayacak olan basit HTTP yerine bazı ağ protokolleri aracılığıyla çalışması olduğuna inanıyorum. Bir web hizmeti fikri, HTTP paketlerine itilecek böyle bir RPC oluşturmaktı. Böylece standardın gelişimi başladı. Bu standardın temel kavramları nelerdir:
  1. SABUN. Bir uzak prosedürü çağırmadan önce, bu çağrıyı SOAP formatında bir XML dosyasında tanımlamanız gerekir. SOAP, web hizmetlerinde kullanılan birçok XML işaretlemesinden yalnızca biridir. HTTP üzerinden bir yere göndermek istediğimiz her şey önce bir XML SOAP açıklamasına dönüştürülür, ardından bir HTTP paketine konur ve TCP/IP üzerinden ağ üzerindeki başka bir bilgisayara gönderilir.
  2. WSDL. Bir web servisi var, yani. yöntemleri uzaktan çağrılabilen bir program. Ancak standart, bu programa “evet, yanılmadınız - bu gerçekten bir web hizmetidir ve ondan bu tür yöntemleri çağırabilirsiniz” diyen bir açıklamanın eklenmesini gerektirir. Bu açıklama, WSDL gibi farklı bir biçime sahip başka bir XML dosyasıyla temsil edilir. Şunlar. WSDL, yalnızca bir web hizmetini tanımlayan bir XML dosyasıdır ve başka bir şey değildir.
neden bu kadar kısa soruyorsun Daha fazla ayrıntıya giremez misin? Muhtemelen yapabilirsiniz, ancak bunun için Mashnin T. "Java Web Servisleri" gibi kitaplara başvurmanız gerekecek. Orada, ilk 200 sayfa için, SOAP ve WSDL standartlarının her etiketinin ayrıntılı bir açıklaması vardır. Buna değer mi? Bence hayır çünkü tüm bunlar Java'da otomatik olarak oluşturulur ve yalnızca uzaktan çağrılması gereken yöntemlerin içeriklerini yazmanız yeterlidir. Yani Java'da JAX-RPC gibi bir API var. Java'nın şu veya bu API'ye sahip olduğunu söylediğinde kimse bilmiyorsa, bu, söz konusu teknolojiyi içine alan bir dizi sınıfa sahip bir paket olduğu anlamına gelir. JAX-RPC, uzun bir süre sürümden sürüme gelişti ve sonunda JAX-WS'ye dönüştü. WS açıkçası WebService'in kısaltmasıdır ve bunun RPC'nin bu günlerde popüler bir moda sözcüğe basit bir şekilde yeniden adlandırılması olduğunu düşünebilirsiniz. Bu böyle değil, çünkü artık web servisleri orijinal fikirden uzaklaştı ve sadece uzak yöntemleri çağırmakla kalmayıp, aynı zamanda sadece SOAP formatında belge mesajları göndermeye de izin verdi. Buna neden ihtiyaç duyuluyor, henüz bilmiyorum, buradaki cevabın “her ihtimale karşı, aniden ihtiyaç duyulursa” olması pek olası değil. Ben kendim daha deneyimli yoldaşlardan öğrenmek istiyorum. Ve son olarak, RESTful olarak adlandırılan web servisleri için JAX-RS ortaya çıktı, ancak bu ayrı bir makalenin konusu. Bu tanıtım tamamlanabilir, çünkü. sonra JAX-WS ile nasıl çalışılacağını öğreneceğiz.

Genel yaklaşım

Web servislerinin her zaman bir istemcisi ve bir sunucusu vardır. Sunucu bizim web hizmetimizdir ve bazen uç nokta olarak adlandırılır (örneğin, istemciden gelen SOAP mesajlarının ulaştığı uç nokta gibi). Aşağıdakileri yapmamız gerekiyor:
  1. Web servisimizin arayüzünü tanımlayın
  2. Bu arayüzü uygula
  3. Web hizmetimizi başlatın
  4. Bir istemci yazın ve istediğiniz web hizmeti yöntemini uzaktan arayın
Bir web hizmetini farklı şekillerde başlatabilirsiniz: ya bir ana yöntemle bir sınıfı tanımlayın ve web hizmetini doğrudan bir sunucu olarak çalıştırın ya da onu Tomcat veya başka bir sunucuya dağıtın. İkinci durumda, kendimiz yeni bir sunucu başlatmıyoruz ve bilgisayarda başka bir bağlantı noktası açmıyoruz, ancak Tomcat servlet konteynerine “burada web servis sınıfları yazdık, lütfen bunları yayınlayın ki sizinle iletişime geçen herkes kullanabilsin” diyoruz. web hizmeti. Web hizmetinin nasıl başlatıldığına bakılmaksızın, aynı istemciye sahip olacağız.

sunucu

IDEA'yı başlatın ve yeni bir proje oluşturun Yeni Proje Oluştur. Bir ad belirtin merhabaweb servisi ve düğmeye basın Sonraki, ardından düğme Sona ermek. klasörde kaynak paket oluştur tr.javarush.ws. Bu pakette HelloWebService arayüzünü oluşturacağız: package ru. javarush. ws; // bunlar ek açıklamalardır, yani. sınıflarımızı ve yöntemlerimizi işaretlemenin bir yolu, // web servis teknolojisi ile ilgili olarak javax'ı içe aktarın. jws. WebYöntem; javax'ı içe aktarın. jws. internet servisi; javax'ı içe aktarın. jws. sabun. SABUN Bağlama; // Arayüzümüzün web servis olarak çalışacağını söylüyoruz@İnternet servisi // web servisinin metotları çağırmak için kullanılacağını söyle@SOAPBinding(style = SOAPBinding.Style.RPC) genel arayüzü HelloWebService( // bu yöntemin uzaktan çağrılabileceğini söyle@WebMethod public String getHelloString(String name) ; ) Bu kodda, WebService ve WebMethod sınıfları annotation olarak adlandırılır ve bizim arabirimimizi ve yöntemini bir web hizmeti olarak işaretlemekten başka bir şey yapmaz. Aynısı SOAPBinding sınıfı için de geçerlidir. Tek fark, SOAPBinding'in parametreler içeren bir açıklama olmasıdır. Bu durumda style parametresi, web servisinin belge mesajları üzerinden değil, klasik bir RPC olarak çalışacağını söyleyen bir değer ile kullanılır, yani. yöntemi çağırmak için. Arayüz mantığımızı uygulayalım ve paketimizde bir HelloWebServiceImpl sınıfı oluşturalım. Bu arada, Impl ile biten sınıfın, arayüzlerin uygulanmasının bu şekilde belirlendiği Java'da bir kural olduğunu not ediyorum (Impl - uygulama kelimesinden, yani uygulamadan). Bu bir gereklilik değildir ve sınıfı istediğiniz gibi adlandırmakta özgürsünüz, ancak görgü kuralları bunu gerektirir: paket ru. javarush. ws; // arayüz açıklamasıyla aynı açıklama, javax'ı içe aktarın. jws. internet servisi; // ama burada endpointInterface parametresiyle birlikte kullanılıyor, // web servisimizin arayüz sınıfının tam adını belirten@WebService(endpointInterface= "tr.javarush.ws.HelloWebService") genel sınıf HelloWebServiceImpl, HelloWebService'i uygular ( @Override public String getHelloString (String name) ( // sadece selamlamayı geri ver dönüş "Merhaba," + isim + "!" ; ) ) Web servisimizi bağımsız bir sunucu olarak çalıştıralım, yani. herhangi bir Tomcat ve uygulama sunucusunun katılımı olmadan (bu ayrı bir tartışma konusudur). Bunu yapmak için, klasördeki proje yapısında kaynak hadi bir ru.javarush.endpoint paketi oluşturalım ve bunun içinde main yöntemiyle bir HelloWebServicePublisher sınıfı oluşturalım: ru paketi. javarush. uç nokta; // web servisleri ile bir web sunucusu başlatmak için sınıf javax'ı içe aktarın. xml. ws. uç nokta; // web servisimizin sınıfı ithalat tr. javarush. ws. merhabawebserviceimpl; public class HelloWebServicePublisher( public static void main(String. . . args)( // web sunucusunu 1986 bağlantı noktasında başlat // ve ilk argümanda belirtilen adreste, // ikinci argümanda iletilen web servisini başlat uç nokta. Yayınla( "http://localhost:1986/wss/merhaba", yeni HelloWebServiceImpl () ); )) Şimdi bu sınıfı tıklayarak çalıştırın Üst Karakter+F10. Konsolda hiçbir şey görünmeyecek, ancak sunucu çalışıyor. Tarayıcınıza http://localhost:1986/wss/hello?wsdl yazarak bunu doğrulayabilirsiniz. Açılan sayfa bir yandan bilgisayarımızda (localhost) 1986 portunda çalışan bir web sunucumuz (http://) olduğunu kanıtlarken, diğer yandan web servisimizin WSDL açıklamasını göstermektedir. Uygulamayı durdurursanız, açıklamaya ve web hizmetinin kendisine erişilemez hale gelir, bu nedenle bunu yapmayacağız, ancak istemciyi yazmaya devam edeceğiz.

Müşteri

proje klasöründe kaynak hadi ru.javarush.client paketini ve bunun içinde HelloWebServiceClient sınıfını ana yöntemle oluşturalım: ru paketi. javarush. müşteri; // wsdl açıklamasını almak için gerekli // web servisinin kendisine ulaş java'yı içe aktarın. ağ. URL; // URL nesnesiyle çalışırken böyle bir istisna oluşacak java'yı içe aktarın. ağ. MalformedURLException; // xml'yi wsdl açıklamasıyla ayrıştırılacak sınıflar // ve içindeki servis etiketine ulaşın javax'ı içe aktarın. xml. ad alanı. Qname; javax'ı içe aktarın. xml. ws. hizmet; // web servisimizin arayüzü (daha fazlasına ihtiyacımız var) ithalat tr. javarush. ws. merhabawebservisi; public class HelloWebServiceClient( public static void main(String args) MalformedURLException( // wsdl açıklamasına bir bağlantı oluşturun URL url = yeni URL( "http://localhost:1986/wss/merhaba?wsdl") ; // İlk WSDL açıklama etiketinde bir sonraki kurucunun parametrelerine bakıyoruz - tanımlar // targetNamespace özelliğindeki 1. argümana bakın // name niteliğine 2. argüman bakışı QName qname = new QName ("http://ws.site/", "HelloWebServiceImplService"); // Artık wsdl açıklamasındaki servis etiketine ulaşabiliriz, Servis hizmeti = Servis. oluştur (url, qname); // ve sonra içinde yuvalanmış bağlantı noktası etiketine, böylece // bizden uzaktaki bir web hizmeti nesnesine referans alın HelloWebService merhaba = hizmet. getPort(HelloWebService.class) ; // Yaşasın! Artık uzak yöntemi çağırabilirsiniz. Sistem. dışarı. println(merhaba. getHelloString("JavaRush" ) ) ; ) ) Listedeki koda maksimum yorum verdim. Ekleyecek bir şeyim yok, bu yüzden çalıştırın (Shift + F10). Konsoldaki metni görmeliyiz: Merhaba, JavaRush! Görmediyseniz, muhtemelen web hizmetini başlatmayı unuttunuz.

Çözüm

Bu konuda, web servislerine kısa bir gezi sunuldu. Bir kez daha, yazdıklarımın çoğu nasıl çalıştığına dair benim tahminim ve bu nedenle bana çok fazla güvenilmemeli. Bilgili arkadaşlar düzeltirse sevinirim çünkü o zaman bir şeyler öğrenirim. UPD.

Bir web hizmeti (servis), siteler arasındaki etkileşimi düzenleyen bir programdır. Bir portaldan gelen bilgiler diğerine aktarılır.

Örneğin, bir havayolu var. Sırasıyla birçok uçuşu var, çok fazla bileti var. Bilgileri bir web hizmeti aracılığıyla tur seyahat toplayıcı sitesine iletir. Toplayıcıya giren bir kullanıcı, bu havayolu için tam oradan bilet satın alabilecek.

Web hizmetlerine başka bir örnek, belirli bir şehir veya ülkedeki hava koşulları hakkında bir bütün olarak bilgi sağlayan bir hava durumu izleme sitesidir. Bu bilgiler de sıklıkla üçüncü şahıslar tarafından kullanılmaktadır.

İnternetteki bilgiler çok çeşitlidir. Siteler farklı sistemler tarafından yönetilmektedir. farklı iletim ve şifreleme protokolleri kullanılır. Web servisleri, farklı siteler arasında bilgi alışverişini basitleştirir.

Web hizmetleri mimarisi ve protokolleri

Birbiriyle etkileşime giren 3 örnek tanımlayabilirsiniz: katalog, yüklenici ve müşteri. Hizmeti oluşturduktan sonra, sanatçı onu kataloğa kaydeder ve müşteri hizmeti orada bulur.

Veri alışverişi mekanizması, Web Hizmetleri Açıklamasında oluşturulmuştur. Müşteri ile hizmet taşıyıcısı arasındaki bilgi alışverişinde kullanılan yönlendirme formatlarını, içerik türlerini, taşıma protokollerini kapsayan bir özelliktir.

Bugün, çeşitli web hizmetlerini uygulamak için en sık çeşitli teknolojiler kullanılmaktadır:

  1. TCP/IP, ana bilgisayarlardan taşınabilir cihazlara ve PDA'lara kadar hemen hemen her ağ ekipmanı tarafından anlaşılan bir protokoldür.
  2. HTML, içeriği tüketici cihazlarına görüntülemek için kullanılan evrensel bir biçimlendirme dilidir.
  3. XML, her türlü veriyi işlemek için evrensel bir araçtır. Diğer bilgi alışverişi protokolleri de kendi temelinde çalışabilir: SOAP ve WSDL.
  4. UDDI, evrensel bir tanıma, entegrasyon ve tanımlama kaynağıdır. Kural olarak, özel ağlarda çalışır ve henüz yeterli dağıtım bulamadı.

Sunulan teknolojilerin çok yönlülüğü, web servislerini anlamanın temelidir. Uygulama satıcılarından ve diğer ağ kaynaklarından bağımsız standart teknolojiler üzerinde çalışırlar. Herhangi bir işletim sisteminde, uygulama sunucularında, programlama dillerinde vb. kullanılabilir.

Avantajlar

  • Platformdan bağımsız olarak yazılım bileşenlerinin etkileşimi için gerekli koşulların oluşturulması.
  • Web servisleri açık standart protokollere dayanmaktadır. XML'in tanıtılmasıyla, web servislerini oluşturmak ve yapılandırmak kolaydır.
  • HTTP kullanımı, ağlar arası erişim yoluyla sistemlerin etkileşimini garanti eder.

Kusurlar

  • Metin bağlamında XML mesajlarının kullanılması nedeniyle RMI, CORBA, DCOM sistemlerine kıyasla düşük performans ve büyük miktarda trafik.
  • Güvenlik seviyesi. Tüm modern web servisleri kodlama uygulamalı ve kullanıcı yetkilendirmesi gerektirmelidir. HTTPS'nin burada yeterli olup olmadığı veya XML Şifreleme, SAML vb. gibi daha güvenilir protokollerin gerekli olup olmadığına geliştirme sırasında karar verilir.

Web hizmeti görevleri

Web servisleri birçok alanda kullanılabilir.

B2B işlemleri

Süreçlerin entegrasyonu, insanların katılımı olmadan hemen gerçekleşir. Örneğin, bir çevrimiçi mağazanın kataloğunu yeni ürünlerle güncellemek. Depoya getirilirler ve depo sahibi veritabanına varışını işaretler. Bilgiler otomatik olarak çevrimiçi mağazaya aktarılır. Ve alıcı, ürün kartında "Stokta yok" işaretlemek yerine miktarını görür.

Kurumsal hizmet entegrasyonu

Şirket kurumsal programlar kullanıyorsa, web hizmeti ortak çalışmalarını kurmaya yardımcı olacaktır.

İstemci-sunucu sisteminin oluşturulması

Hizmetler, istemci ve sunucu işlemlerini özelleştirmek için kullanılır. Bu size aşağıdaki faydaları sağlar:

  • yazılımın kendisini satamazsınız, ancak web hizmetine ücretli erişim sağlayabilirsiniz;
  • üçüncü taraf yazılımı kullanarak sorunları çözmek daha kolay;
  • sunucunun içeriğine ve malzemelerine erişimi düzenlemek daha kolaydır.

Web hizmeti, kaynak etkileşimlerinin teknik yapılandırmasını basitleştiren bir uygulamadır.

Bugün, WEB hizmetleri hemen hemen her yerde kullanılıyor - bize uçak ve tren uçuşları, döviz kurları ve hava durumu hakkında bilgi veriyorlar. 1C'nin hem tedarikçi hem de tüketici olarak hareket etmenizi sağlayan kendi WEB hizmetlerini oluşturma yeteneğine sahip olması şaşırtıcı değildir. Bu mekanizma 1C:Enterprise 8.3 platformunda yerleşiktir ve geliştiriciler standart yapılandırmaya WEB hizmetleri türünden kendi nesnelerini bile ekleyebilir. Mimarileri, diğer yazılımlarla bilgi alışverişinde bulunmanıza izin veren bir dizi hizmet üzerine kuruludur.

Bir web servisinin oluşturulması 1C

1C WEB servislerinin ana avantajlarından biri, bilgi güvenliği verilerine doğrudan erişim verme ihtiyacının olmamasıdır. Düzgün yapılandırılmış 1C web hizmeti, diğer uygulamaların işlevleri dışarıdan kullanmasına izin verir. Bu gibi durumlarda, geliştirici tarafından belirtilen kurallara göre belirtilen parametrelere göre veri kullanım hakkını işlevin kendisi belirlemelidir.

1C'de bir web servisi nasıl oluşturulur?

1C sisteminin belirli bir işlevinin harici yazılım tarafından kullanılabilir hale gelmesi için, aşağıdaki eylem algoritmasını gerçekleştirmelisiniz:

  1. Yapılandırmaya gidin ve ağacın belirli bir dalına bir WEB hizmet nesnesi ekleyin;
  2. İşlevselliğimizin gerçekleştirebileceği tüm işlemleri açıklayın. İşlevlerin açıklaması, yerleşik 1C dilinde modülde yapılır;
  3. Web hizmeti işlevlerinin parametrelerinin bir açıklamasını ekleyin. Lütfen veri türlerinin, 8.1 sürümü platformunda sunulan XDTO mekanizmasının mevcut türleri dikkate alınarak açıklandığını unutmayın;
  4. Oluşturulan WEB servisini sunucuda yayınlayın. 1C platformunda yerleşik mekanizma aşağıdaki standartları destekler:
  • SSL/TLS
  • WS-I BP

Basit bir WEB hizmeti oluşturma örneği

WEB hizmetleri mekanizmasının işleyişini en açık şekilde göstermek için bir örnek oluşturalım - girilen dizginin uzunluğunu belirleyen bir işlev. Yazılım, bir sorgu parametresi olarak bir dize iletecek ve 1C'de açıklanan işlev, karakter sayısını döndürecektir. Oluştururken, bu mekanizmanın yayınlanmasının çeşitli yazılımların ona erişmesini mümkün kılacağını hatırlamanız gerekir. Her yazılım Kiril alfabesini algılayamadığından, yapılandırma nesnelerini Latin karakterlerini kullanarak adlandıracağız.

Konfigüratörü açın, ağaçta "WEB servisleri" dalını bulun ve yeni bir servis "wa_LengthString" ekleyin. Ayrıca "İşlemler" sekmesinde yeni bir işlem eklemeniz gerekiyor. Buna "CalcLengthString" diyelim, döndürülen değerin tipini - int veya tamsayı belirttiğimiz özelliklerde ve içinde "InputString" parametresini oluşturalım. Değer türünü dize olarak bırakın.


Şimdi CalcLengthString işlevinin eylemini WEB hizmet modülüne kaydetmek gerekiyor. Bunu yapmak için, oluşturulan fonksiyonun özelliklerini açın ve "Prosedür adı" giriş alanının yanında sağda büyüteç şeklindeki düğmeye basın. 1C, WEB servis modülümüzde otomatik olarak bir fonksiyon oluşturacak ve CalcLengthString eylemini tanımlayabilmemiz için onu açacaktır. Bundan yararlanalım ve giriş dizesinin uzunluğunu belirleyen işlevin eylemini yazalım.


Aslında bu, en basit WEB hizmetinin oluşturulmasını tamamlar. Şimdi, üçüncü taraf yazılımların veya diğer 1C sistemlerinin bu işlevi kullanabilmesi için bu hizmeti kamu alanına "koymanız" gerekiyor.

Oluşturulan web servisini işlevselliği ile yayınlayabilmemiz için siteye erişimimizin olması gerekir. Hizmeti yayınlamaya başlamadan önce, oluşturulan wa_LengthString modülünün özelliklerinde dosya adını kontrol etmemiz gerekiyor. Açık, basit ve "1cws" uzantısına sahip olmalıdır.


Şimdi sıra sunucu üzerinde oluşturduğumuz WEB servisini yayınlamaya geldi. Bu özellik, platformun 8.3 sürümünde ortaya çıktı ve birçok şirket bu işlevin tüm faydasını zaten fark etti. Yayınlamaya başlamak için, yapılandırıcıda “Yönetim/Web sunucusunda yayınlama…” formunu açmanız gerekir.


Açılan pencerede 1C Web servislerini kurmamız ve belirli alanları doldurmamız gerekiyor:

  • İsim. Web servisimizin açıklamasının saklanacağı web sunucusundaki bir klasörü belirtir. Sunucular bazen büyük harf ve küçük harf arasında ayrım yaptığından, büyük/küçük harfe dikkat edin;
  • Web sunucusu. Bilgisayarda kurulu olanlardan bir sunucu seçmelisiniz;
  • Katalog. Bağlantıyı kurmak için web sunucusu verilerinin depolandığı klasörün yolunu seçmelisiniz. Yalnızca Latin harfleri kullanılır;
  • "Boole" türünün iki özelliği. İlki, web istemcisi aracılığıyla yapılandırmaya erişimi yapılandırmamız gerekirse bizim için yararlıdır. 1C hizmetini yayınlamak için ikinci bir işaret koymalısınız.

Sadece istenen WEB hizmetinin ilk sütunda bir onay kutusu olup olmadığını kontrol etmek için kalır ve "Yayınla" yı tıklayın.


Bu mekanizma henüz çok yeni olduğu için "Dosya işlemi yapılırken hata oluştu..." gibi bir hata ile karşılaşabilirsiniz. Bu durumda, "Yayınla" düğmesini tekrarlamanız yeterlidir. Çoğu durumda, bu yardımcı olur ve web hizmeti yayınının tamamlandığını belirten bir mesaj görürsünüz.

tr//ws/.1cws?wsdl

Böyle bir adres talebine yanıt olarak, tarayıcının XML dosyasının yapısını görüntülemesi gerekir. Boş bir sayfa, hata veya garip karakterler (kodlama sorunları) görürseniz, tüm adımları tekrar kontrol etmeniz gerekir. Sunucunun doğru şekilde kurulduğundan ve sunucuya erişiminizin olduğundan emin olmak da iyi bir fikirdir. 1C WEB hizmetinin başarılı bir şekilde yayınlanmasından sonra, üçüncü taraf uygulamalar onu kullanabilecektir.

WEB hizmeti - (İngilizce web hizmetinden, eşanlamlı - çevrimiçi hizmetten). Web servisleri, internette özel programlar kullanılarak sağlanan hizmetlerdir. Örneğin, barındırma, e-posta, İnternette çeşitli bilgilerin depolanması (dosyalar, yer imleri), takvim vb. gibi hizmetler yaygındır. Bir web hizmetinin önemli bir özelliği, sağlayıcınıza, bilgisayarınıza veya tarayıcınıza bağlı olmamasıdır - dünyanın herhangi bir yerinde erişime sahip olduğunuz herhangi bir yerde verilerinizle çalışabilirsiniz.

Knyazev A.A. Kitle İletişim Ansiklopedik Sözlüğü. - Bişkek: KRSU Yayınevi. A. A. Knyazev. 2002 .

Diğer sözlüklerde "WEB hizmetinin" ne olduğunu görün:

    internet servisi

    internet servisi- İnternet servisi. Web hizmeti, web hizmeti (İngilizce web hizmeti), XML'de tanımlanmış bir dizi arayüz ile tanımlanan ve İnternet protokolleri kullanılarak iletilen bir yazılım sistemidir. Bir web hizmeti, kullanıldığında bir modülerlik birimidir ... ... Wikipedia

    Web Önbelleği İletişim Protokolü- (WCCP) Cisco tarafından geliştirilen İçerik Yeniden Yönlendirme Protokolü. Trafik akışlarını gerçek zamanlı olarak yeniden yönlendirmek için bir mekanizma sağlar. Yerleşik ölçeklendirme, yük dengeleme, hata toleransına sahiptir. Cisco IOS ... ... Vikipedi

    Web Haritası Hizmeti- (WMS Rus web harita hizmeti) bir GIS veri tabanından alınan verilere dayalı olarak bir haritalama sunucusu tarafından oluşturulan coğrafi olarak referanslı görüntülerin İnternet üzerinden sunulması için standart bir protokol. Bu standart geliştirildi ve ilk kez ... ... Wikipedia

    Web Otel Salvador- (Salvador, Brezilya) Otel kategorisi: 2 yıldızlı otel Adres: Rua das Alfazemas … Otel kataloğu

    Web Otel Aparecida- (Aparecida, Brezilya) Otel kategorisi: 3 yıldızlı otel Adres: Av. Isaac Ferrei … Otel Rehberi

    Servis Odaklı Mimari- Kuruluşun iş süreçleri, Müşteri'nin mevcut uygulamaları tarafından sağlanan hizmetler bazında uygulanmaktadır. Uygulamalar hizmet sağlama yeteneğini desteklemiyorsa (Web Servisleri), ürün uygulaması gelişir ... ... Teknik Çevirmenin El Kitabı

    ağ 2

    Web 2.0- Web 2.0 ile İlişkili Temel Kavramlar Web 2.0 (Tim O'Reilly tarafından tanımlanmıştır), ağ etkileşimlerini hesaba katarak, daha fazla insan kullandıkça daha iyi hale gelen sistemleri tasarlamak için bir tekniktir. Web 2.0 özelliği. ilkedir ... ... Wikipedia

    İnternet sitesi- "Web sitesi" sorgusu buraya yönlendirilir. Görmek ayrıca başka anlamlar. Tek bir alan adı veya IP adresi altında birleştirilmiş bir bilgisayar ağındaki web sitesi (İngilizce Web Sitesinden: web web ve site "yer") özel bir kişiye veya ... ... Wikipedia

Kitabın

  • Turizm endüstrisinde bilgi teknolojileri, VN Shitov. Kılavuz, popüler Microsoft Office 2010 paketlerini ve alternatif kompleksleri kullanan genel amaçlı bilgisayar teknolojilerini ayrıntılı olarak tartışıyor ... 546 ruble için satın al
  • PHP'de 75 Web Siteniz İçin Hazır Çözümler , Steinmetz W., Ward B.. Kendi web sitesini yapan veya yapacak olan herkes kaçınılmaz olarak bir takım görev ve zorluklarla karşı karşıya: sitede blog nasıl yapılır…. Oylamayı "hızlandırın", kesin kapatın...

Web hizmeti mimarisine dayanarak, web hizmetleri uygulamasının bir parçası olarak aşağıdaki iki bileşeni oluşturuyoruz:

Servis sağlayıcı veya yayıncı

Bu bir web servis sağlayıcısıdır. Servis sağlayıcı bu servisi uygular ve internet veya intranet üzerinde kullanılabilir hale getirir. .NET SDK kullanarak basit bir web servisi yazıp yayınlayacağız.

Servis sağlayıcı veya tüketici

Bu, web hizmetinin herhangi bir tüketicisidir. İstek sahibi, bir ağ bağlantısı açıp bir XML isteği göndererek mevcut bir web hizmetini kullanır. Ayrıca web hizmetleri için iki istek yazacağız: bir web tüketicisi (ASP.NET uygulaması) ve Windows uygulamalarına dayalı başka bir tüketici.

Aşağıda, bir hizmet sağlayıcı olarak çalışan ve uygulamalar tarafından kullanılacak web hizmetleri olarak iki yöntemi (add ve SayHello) ortaya koyan ilk web hizmeti örneğimiz verilmiştir. Bu, bir web hizmeti için standart şablondur. .NET hizmetleri .asmx uzantısını kullanır. Web hizmeti olarak sunulan bir yöntemin WebMethod özniteliğine sahip olduğunu unutmayın. Bu dosyayı IIS sanal dizininde FirstService.asmx olarak kaydedin (IIS kurulumunda açıklandığı gibi, örneğin c:\MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>Sistemi kullanarak; System.Web.Services'i kullanarak; System.Xml.Serialization kullanarak; public class FirstService: WebService ( public int Add(int a, int b) (dönüş a + b; ) public String SayHello() (dönüş "Merhaba Dünya"; ) )

Bir web hizmetini test etmek için yayınlanmış olması gerekir. Bir web hizmeti, bir intranette veya internette yayınlanabilir. Bu web hizmetini yerel makinede çalışan IIS'ye yayınlayacağız. IIS'yi ayarlayarak başlayalım.

  • Başlat → Ayarlar → Denetim Masası → Yönetimsel Araçlar → İnternet Hizmetleri Yöneticisi'ni açın.
  • Genişletin ve Varsayılan Web Sitesi'ne sağ tıklayın; Yeni → Sanal Dizin'i seçin. Sanal Dizin Oluşturma Sihirbazı açılır. Sonrakine tıkla.
  • Sanal Dizin ekranı görünür. Sanal dizin için bir ad girin. Örneğin, MyWebServices. ve İleri'ye tıklayın.
  • "Web İçeriği Dizini" ekranı açılır.
  • Sanal dizin için bir dizin adı girin. Örneğin, c:\MyWebServices İleri'ye tıklayın.
  • Erişim İzni ekranı görünür. Ayarları gereksinimlerinize göre değiştirin. Bu alıştırma için varsayılan ayarları koruyalım.
  • Sonrakine tıkla". IIS kurulumunu tamamlar.
  • Kurulumu tamamlamak için "Bitir"e tıklayın.

IIS'nin doğru yapılandırılıp yapılandırılmadığını kontrol etmek için HTML dosyasını (örneğin x.html) yukarıda oluşturulan sanal dizine (C:\MyWebServices) kopyalayın. Şimdi Internet Explorer'ı açın ve http://localhost/MyWebServices/x.html adresini girin. x.html dosyasını açmalıdır.

Not. Bu işe yaramazsa, localhost'u cihazınızın IP adresiyle değiştirmeyi deneyin. Hala çalışmıyorsa, IIS'nin çalışıp çalışmadığını kontrol edin; IIS ve sanal dizini yeniden yapılandırmanız gerekebilir.

Bu web hizmetini test etmek için FirstService.asmx'i yukarıda oluşturulan IIS sanal dizinine (C:\MyWebServices) kopyalayın. Web hizmetini Internet Explorer'da açın (http://localhost/MyWebServices/FirstService.asmx). Web servis sayfasını açmalıdır. Sayfa, uygulamamıza web hizmetleri olarak sunduğumuz iki yönteme bağlantı içermelidir. Tebrikler!İlk web servisinizi yazdınız!

Web hizmeti testi

Az önce gördüğümüz gibi, .NET Framework'te web servisleri yazmak kolaydır. .NET ortamında web servisleri yazmak da kolaydır; ancak, biraz daha aktiftir. Daha önce tartışıldığı gibi, iki tür hizmet tüketicisi yazacağız: biri bir web sitesi, diğeri ise kullanıcı tabanlı bir Windows uygulaması. İlk web servis tüketicimizi yazalım.

Ağ hizmetleri

Aşağıda verilen bir web tüketicisi yazınız. WebApp.aspx olarak adlandırın. Bunun bir ASP.NET uygulaması olduğunu unutmayın. Bunu web hizmeti sanal dizinine kaydedin (c:\MyWebServices\WebApp.axpx). Bu uygulama, kullanıcıdan eklenecek sayıları almak için kullanılan iki metin alanına sahiptir. Tıklandığında Add ve SayHello web hizmetlerini alan bir Çalıştır düğmesi vardır.

WebApp.axpx

<%@ Page Language="C#" %>

Eklenecek İlk Numara: 4< /asp:TextBox>

Eklenecek İkinci Numara: 5

Web Servis Sonucu -

merhaba dünya servisi : etiket< /asp:Label>

Hizmet Ekle : & etiket

Tüketiciyi oluşturduktan sonra web servisini tüketmek için bir proxy oluşturmamız gerekiyor. Eklenen web servisine atıfta bulunduğumuzda bu çalışma bizim için Visual Studio .NET tarafından otomatik olarak yapılır. İzlenecek adımlar şunlardır:

  • Web hizmetini kullanmak için bir proxy oluşturun. Proxy, .NET SDK ile sağlanan WSDL yardımcı programı kullanılarak oluşturulur. Bu yardımcı program bir web hizmetinden bilgi alır ve bir proxy oluşturur. Proxy sunucusu yalnızca belirli bir web hizmeti için geçerlidir. Diğer web hizmetlerini kullanmanız gerekiyorsa, o hizmet için de bir proxy oluşturmanız gerekir. Visual Studio .NET, bir web hizmeti başvurusu eklendiğinde otomatik olarak bir proxy oluşturur. .NET SDK ile sağlanan WSDL yardımcı programını kullanarak web hizmeti için bir proxy oluşturun. Geçerli dizinde bir FirstSevice.cs dosyası oluşturacaktır. Web servisi için FirstService.dll (proxy) oluşturmak için onu derlememiz gerekiyor.
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Derlenmiş proxy'yi web hizmeti sanal dizininin (c:\MyWebServices\bin) bin dizinine yerleştirin. Internet Information Services (IIS), bu dizinde bir proxy sunucusu arar.
  • Tıpkı bizim yaptığımız gibi bir hizmet tüketicisi oluşturun. Web hizmeti proxy nesnesinin tüketicide oluşturulduğunu unutmayın. Bu proxy, hizmetle etkileşime girer.
  • Test etmek için tüketici URL'sini IE'ye girin (örneğin, http://localhost/MyWebServices/WebApp.aspx).

Windows uygulamalarına dayalı Web hizmeti tüketicisi

Windows uygulamalarına dayalı bir web hizmeti uygulaması yazmak, diğer herhangi bir Windows uygulamasını yazmaya benzer. Sadece bir proxy oluşturmanız (ki bunu zaten yaptık) ve uygulamayı derlerken bu proxy'ye başvurmanız gerekir. Web servisini kullanan windows uygulamamız aşağıdadır. Bu uygulama bir web hizmeti nesnesi (elbette bir proxy) oluşturur ve bunun üzerindeki SayHello ve Add yöntemlerini çağırır.

WinApp.cs

Sistemi kullanarak; System.IO kullanarak; ad alanı SvcConsumer ( class SvcEater ( public static void Main(String args) ( FirstService mySvc = new FirstService()); Console.WriteLine("Merhaba Dünya Hizmetini Çağırmak: " + mySvc.SayHello()); Console.WriteLine("Calling Add( 2, 3) Hizmet: " + mySvc.Add(2, 3).ToString()); )) )

c: \> csc /r:FirstService.dll WinApp.cs ile derleyin. Bir WinApp.exe dosyası oluşturacaktır. Uygulamayı ve web hizmetini test etmek için çalıştırın.

Şimdi soru şu: Bu uygulamanın gerçekten bir web servisini çağırdığından nasıl emin olabilirsiniz?

Kontrol etmek kolaydır. Web hizmetiyle bağlantı kurulamaması için web sunucunuzu durdurun. Şimdi WinApp uygulamasını başlatın. Çalışma zamanında bir istisna atar. Şimdi web sunucusunu yeniden başlatın. Çalışmalı.