internet pencereler Android

Web servisleri - örnekler. Web Hizmeti Nedir? Genel Web Hizmetleri

1C:Enterprise Web hizmetleri mekanizması, aynı ada sahip meta veri nesnelerinin kullanımına dayanır, yani. "Web hizmetleri" dalından yapılandırma nesneleri.

1. GENEL TANIMLAR

"Web hizmeti" teriminin genelleştirilmiş bir tanımını vermeye çalışalım.

-hizmet sağlayan bir ağ teknolojisidir. programlar arası etkileşim(farklı uygulamalar arasında) dayalı ağ standartları. Web servisleri, bir uygulamadan diğerine erişmeyi ve aynı zamanda belirli işlevleri gerçekleştirmeyi mümkün kılar.

Bir web hizmeti, bir URI (Tekdüzen Kaynak Tanımlayıcı) ​​dizesi ile tanımlanır - tek tip bir kaynak tanımlayıcısı (bu, bir kaynağı tanımlamanıza izin veren bir karakter dizisidir).

Web hizmeti, formatta sunulan bir programlama arayüzüne sahiptir. WSDL(Web Hizmetleri Açıklama Dili) - XML ​​diline (http://www.w3.org/TR/wsdl belirtimi) dayalı olarak web hizmetlerini tanımlamak ve bunlara erişmek için kullanılan bir dil. Bir web hizmetinin harici arabirimlerinin birleşik bir sunumu için tasarlanmıştır ve başka bir programın bu programın böyle bir "hizmeti" olduğunu bilmesi için kullanılır (yani web sitesindeki ilk program, hizmetleriyle ilgili bilgileri WSDL dosyasında düzenler). biçim).

Diğer sistemler, SOAP (Basit Nesne Erişim Protokolü) mesajlarını değiş tokuş ederek web hizmetiyle etkileşime girer - dağıtılmış bir bilgi işlem ortamında yapılandırılmış mesajların değiş tokuşu için bir protokol (http://www.w3.org/TR/soap belirtimi). Herhangi bir metin tabanlı protokol gibi, SOAP da herhangi bir uygulama katmanı protokolüyle kullanılabilir: SMTP, FTP, HTTPS ve daha fazlası, ancak çoğu zaman SOAP HTTP üzerinden kullanılır.

Şekil 1. Web hizmeti kavramı.

SOAP, keyfi XML mesajlaşma ve uzaktan prosedür çağrısı (RPC) için kullanılır.

Böylece web servisi ile uygulama arasında XML belgeleri mesaj şeklinde değiş tokuş edilir. Web hizmetleri standartları şunları tanımlar:

Mesaj formatı, mesajın gönderildiği arayüz;

Mesajın içeriğinin hizmeti uygulayan uygulamaya bağlanması ve bunun tersi için kurallar;

Arayüzleri yayınlamak ve aramak için mekanizmalar.

Web servislerinin en basit ve en bariz kullanımı, internette mevcut olan kamu hizmetlerinden referans verileri elde etmektir. Örneğin, Aeroflot uçuşları hakkında bir Web hizmeti aracılığıyla bilgi sağlar, Rusya Merkez Bankası - döviz kurları, menkul kıymetler, kredi kuruluşları hakkında bilgi - birçok seçenek olabilir.

2. - "1C: ENTERPRISE" SİSTEMİNDEKİ HİZMETLER

1C:Enterprise 8 uygulama çözümü şunlar olabilir:

Web Servis Sağlayıcı;

1C:Enterprise 8 sisteminde Web servisleri diğer bilgi sistemleri ve kendi aralarında 1C:Enterprise 8 uygulamaları ile entegrasyon için kullanılan platform mekanizmalarından biridir.

Başka bir deyişle, 1C:Enterprise, işlevselliğini Web hizmetleri aracılığıyla dışa aktarabilir. Tanımları konfigürasyon ağacında belirlenir ve isteğe bağlı bilgi sistemleri tarafından kullanılabilir hale gelir. bunları bir web sunucusunda yayınlayarak.

1C:Enterprise'daki Web hizmetleri mekanizması, Hizmet Odaklı Mimariyi (SOA) desteklemenin bir yoludur; bu, programların birbirleriyle veri alışverişi yapmak için "hizmetleri" kullandığı anlamına gelir.

1C:Enterprise'ın işlevselliğinin Web hizmetlerinin harici tüketicilerine sunulabilmesi için aşağıdakileri yapmanız gerekir:

Yapılandırmada gerekli sayıda Web hizmeti oluşturun;

Bir Web hizmeti oluşturmak:

Web hizmeti yapılandırma nesnesinin meta veri ağacına ek olarak;

Bu Web hizmetinin gerçekleştirebileceği işlemlerin açıklaması;

Çalışma parametrelerinin açıklaması.

Web hizmeti yapılandırma nesnesi, belirli Web hizmeti işlemleri çağrıldığında yürütülen yerleşik dilde prosedürler oluşturan bir modül içerir. Web hizmeti işlem parametre türleri, XDTO türleri kullanılarak tanımlanır ve XDTO değerleri veya XDTO nesneleri olabilir.

Web hizmetine yapılan çağrı şu şekildedir:

Bağlantı havuzundan bilgi tabanına uygun bir bağlantı seçilir; gerekli bir bağlantının yokluğunda bir bağlantı oluşturulur;

Yeni bir oturum oluşturulur;

İstenen Web hizmeti yöntemi çağrılır.

1C:Enterprise'da uygulanan Web hizmetleri mekanizması aşağıdaki standartları destekler:

WS-I Temel Profil 1.1;

SSL 3.0/TLS 1.0.

3. ÇALIŞMASI- "1C: ENTERPRISE" SİSTEMİNDEKİ HİZMETLER

Web servisleri, diğer bilgi sistemleri ile entegrasyon için kullanılan platform mekanizmalarından biridir. Uygulamaları ve bilgi sistemlerini entegre etmek için modern standart olan hizmet odaklı mimari olan SOA'yı (Hizmet Odaklı Mimari) desteklemenin bir yoludur.

Hizmet odaklı mimarinin önemli bir avantajı, mevcut çözümleri yok etmeden işletmenin altyapısını homojen bir şekilde geliştirmenize olanak sağlamasıdır. Kullanımı, heterojen ve eski sistemleri modern kurumsal ortama entegre ederek maliyetleri en aza indirmenize olanak tanır. Yeniden kullanılabilirliklerini en üst düzeye çıkarmak için gevşek bağlı yazılım bileşenlerinin uygulanmasına izin verir.

Hizmet odaklı mimari, büyük satıcılar tarafından aktif olarak geliştirilmekte ve desteklenmektedir. Hizmetler temelinde inşa edilir, özerk veya dışarıdan yönetilir. Web servisleri, bunları uygulamak için tercih edilen yoldur. Platformdan bağımsız, kendi kendine yeten ve evrensel olarak desteklenirler.

Uygulama çözümü 1C:Enterprise 8, hem web hizmetleri sağlayıcısı hem de diğer sağlayıcılar tarafından yayınlanan web hizmetlerinin tüketicisi olabilir.

Tüketiciler, keyfi donanım ve yazılım platformlarını kullanan sistemler olabilir. Web hizmetleri teknolojisi platformdan bağımsızdır.


Web servislerinin teknik uygulaması

Uygulama çözümü bir web servis sağlayıcı ise, işlemin hem dosya hem de istemci-sunucu sürümlerinde, uygulama çözümü ile web hizmeti tüketicileri arasındaki etkileşim, web sunucusu uzantı modülü kullanılarak web sunucusu üzerinden gerçekleştirilir.

Bu durumda tüketici uygulama çözümü web servisine eriştiğinde web servis modülü çalıştırılır. Bu modül konfigürasyonda bulunur ve web hizmetinin belirli işlemleri çağrılırken yürütülen prosedürleri içerir.

Bir istemci-sunucu işlemi olması durumunda, bu modül bir kümede yürütülecektir. İşin dosya versiyonu durumunda - web sunucusu uzantı modülünde.

Uygulama çözümü bir üçüncü taraf web hizmetinin tüketicisiyse, uygulama çözümü ile web hizmeti sağlayıcısı arasındaki etkileşim istemci uygulaması tarafından gerçekleştirilir. Web servisinin belirli işlemlerini çağırır ve alınan verileri işler.

Bir web hizmeti tüketicisi olarak hareket eden 1C:Enterprise platformu, MTOM protokolü aracılığıyla ikili verilerin optimize edilmiş aktarımını destekler. MTOM modu, 1C:Enterprise'da otomatik olarak etkinleştirilir.

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ğırma: " + 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ı.

Dipnot: Kullanım alanları. Avantajlar .NET platformu için web hizmetleri geliştirmenin özellikleri. Bir web hizmetinin tanımı ve keşfi

XML Web Hizmeti nedir?

Bilgi teknolojisinin gelişmesiyle birlikte, program yazmaya yönelik farklı yaklaşımlar ortaya çıkmıştır: modüler programlama, olay odaklı programlama, bileşen odaklı programlama Ve tasarım. Bu yaklaşımların mantıksal devamı hizmet odaklıydı. yazılım geliştirme.

Hizmet odaklı yaklaşımların kullanılması, mikro düzeyden (nesne düzeyinde) ziyade makro düzeyde (hizmet düzeyi) yeniden kullanım (yeniden kullanım) hakkında konuşmamızı sağlar. Hizmet odaklı bir yaklaşım, çok çeşitli uygulamaların birbirinin işlevselliğini kullanmasına izin veren basit ve genel kabul görmüş standartların kullanımını içerir. Hizmetler, çeşitli platformlarda çok çeşitli programlama dilleri kullanılarak yazılabilir. Ek olarak, hizmetler dünyanın herhangi bir yerinde ayrı ayrı veya bir yazılım paketinin parçası olarak konuşlandırılabilir ve böylece ağ üzerinden işlevlerine erişim sağlar.

Hadi arayalım hizmet bir iş işlevini uygulayan ve aşağıdaki özelliklere sahip bir kaynak:

  • yeniden kullanılabilir;
  • bir veya daha fazla açık teknolojiden bağımsız arayüz tarafından tanımlanır;
  • diğer benzer kaynaklara gevşek bir şekilde bağlıdır ve kaynakların birbirleriyle etkileşime girmesine izin veren iletişim protokolleri aracılığıyla çağrılabilir.

Hizmetin özel bir durumu, bir XML web hizmetidir.

XML Web Hizmetiözel bir web uygulaması türüdür:

  • bir web sunucusunda konuşlandırılmış;
  • harici istemciler tarafından çağrılabilecek web yöntemlerini yayınlar;
  • web yöntemlerini çağırma komutları olan HTTP isteklerinin alınmasını bekler;
  • web yöntemlerini yürütür ve sonuçları döndürür.

Geleneksel bir web uygulamasından farklı olarak, bir web hizmetinin kullanıcı arayüzü yoktur. Bunun yerine bir API'si vardır, yani bir web hizmeti, uzaktan (örneğin İnternet üzerinden) çağrılabilen işlevler (web yöntemleri) sağlar. Web hizmeti, son kullanıcılara hizmet vermek için tasarlanmamıştır. Görevi, web uygulamaları, GUI uygulamaları veya konsol uygulamaları olsun, diğer uygulamalara hizmet sağlamaktır.

Bir Web hizmeti, hisse senedi fiyatları hakkında gerçek zamanlı bilgi sağlayabilir, kredi kartlarını kontrol edebilir veya hava durumunu bildirebilir. Web servisleri, geleneksel uygulamalar kadar çeşitlidir.

Web hizmetleri belirli bir şirketin mülkiyetinde değildir. Açık protokollere (SOAP, HTTP, vb.) dayalı bir endüstri standardıdır. Web hizmetleri çeşitli platformlarda (Windows veya UNIX çalıştıran sunucular dahil) dağıtılır. Web hizmetleri birçok geliştirme aracı kullanılarak geliştirilebilir (bir metin düzenleyiciden Microsoft Visual Studio ailesine kadar).

Çoğu web hizmetinin yöntemleri, SOAP mesajlarını içeren HTTP istekleri tarafından çağrılır. SOAP, HTTP ve diğer protokoller üzerinden uzak prosedürleri çağırmak için bir XML dilidir (XML sözlüğü) (SOAP'ın tam açıklaması http://www.w3.org/TR/SOAP) .

Web servislerinin diğer uzaktan arama teknolojileri arasındaki yeri

Çok sayıda uzaktan başlatma protokolü ve teknolojisi vardır: Microsoft Dağıtılmış Bileşen Nesne Modeli (DCOM), Nesne Yönetim Grubu'nun Ortak Nesne İstek Aracısı Mimarisi (CORBA), Sun'ın Uzak Yöntem Çağırma (RMI), . NET Uzaktan İletişim, XML Web Hizmetleri.

Bu bileşen odaklı teknolojilerin tümü (DCOM, CORBA ve RMI) Intranet uygulamalarında uzun yıllardır başarıyla kullanılmaktadır. Sağlam, ölçeklenebilir bir mimari sağlarlar. Ancak, bu teknolojileri internette kullanmanın iki büyük sorunu vardır. İlk olarak, birbirleriyle iyi etkileşime girmiyorlar. Tüm teknolojiler nesneler üzerinde çalışır, ancak ayrıntılarda önemli ölçüde farklılık gösterir: yaşam döngüsü yönetimi, yapıcılar için destek ve devralma desteğinin derecesi. İkinci, daha önemli yön, RPC etkileşimlerine odaklanmanın, açık nesne yöntemi çağrılarına dayalı olarak sıkı bir şekilde bağlanmış sistemlerin oluşturulmasına yol açmasıdır.

Bu teknolojilerin aksine, XML Web Servisleri ve . NET Remoting'in tam olarak uygulanması nesne yönelimli yaklaşım web programlama için.

XML Web Hizmeti- İnternet istemcilerine bir dizi API işlevi veya web yöntemi sağlayan bir bileşen. XML, adın bir parçasıdır, çünkü web hizmetleri ve istemcileri onu veri alışverişi için kullanır. Web hizmetleri, HTTP, XML (Genişletilebilir İşaretleme Dili), SOAP (Basit Nesne Erişim Protokolü - uygulamaların nasıl etkileşime girebileceğini, yani HTTP ve diğer protokolleri kullanarak birbirlerinin yöntemlerini çağırabileceğini açıklayan bir İnternet standardı) gibi açık standartları temel alır. Web servislerinin temel görevi, programlar arası etkileşimi sağlamaktır. Birçoğu UNIX sunucularında çalışır ve bunlara Windows istemcileri tarafından erişilir. Web servislerine iletilen veriler XML'e serileştirilir ve SOAP paketlerinde gönderilir. Bu tür mesajların içeriğiyle ilgili meta veriler, web hizmetinin WSDL sözleşmesinde ve XSD şemalarında saklanır. Bu yaklaşımın ana avantajı, meta verilerin okunabilirliğidir. Bir geliştirici, bir web hizmetinin tüm açıklamasını kolayca görüntüleyebilir ve hatta SOAP paketlerini ayrıştıran kendi modülünü oluşturabilir.

.NET Uzaktan İletişim dağıtılmış nesneler için altyapı sağlar. Mesaj geçişine dayalı basit bir web hizmetleri mimarisinden çok daha karmaşıktır. . NET Remoting, parametreleri referansa ve değere göre geçirmeyi, geri aramaları, çoklu nesne aktivasyonunu ve yaşam döngüsü yönetimi ilkelerini içerir. Bu özellikleri kullanmak için, istemci uygulamasının tüm teknolojilerde yetkin olması gerekir. Veri girişi. NET Remoting, ikili veya SOAP biçiminde gönderilir. Bununla birlikte, her durumda, iletilen bilgilerin yapısı hakkındaki meta veriler, ortak dil çalışma zamanında bulunur. Ortak dil çalışma zamanı (CLR) olmadan, istemci uygulaması . NET Remoting SOAP başlıkları. Yani. NET Remoting, web hizmetlerinden önemli ölçüde daha yüksek gereksinimlere sahiptir.

.NET platformunda web servislerinin geliştirilmesi

Web servisleri yazmanın birçok yolu vardır. Elle veya Microsoft, IBM ve diğerleri tarafından sağlanan SOAP araçları kullanılarak geliştirilebilirler.Web servislerini Microsoft ile yazmak. NET'in iki avantajı vardır:

  • .NET Framework, bir sınıf kitaplığı sağlayarak ve bireysel geliştirme adımlarını otomatikleştirerek geliştirme sürecini büyük ölçüde basitleştirir;
  • .NET Framework ile yazılan web servisleri, yönetilen uygulamalardır. Yani, bu tür uygulamalarda bellek sızıntısı, yanlış başlatılan işaretçiler ve diğer tipik programlama sorunları gibi sorunlar yoktur.

oluşturma

İki sayının toplamını gerçekleştiren basit bir AdditionService web hizmeti geliştirelim. Parametre olarak iki tamsayı alan ve bir tamsayı döndüren yalnızca bir Add yöntemine sahip olacaktır. AdditionService, Microsoft .NET Framework kullanarak web hizmetlerini programlamak için birkaç önemli ilkeyi gösterir.

  • Web servisleri ASMX dosyaları olarak uygulanmaktadır. ASMX, ana ASP .NET Machine.config yapılandırma dosyasında ASP .NET'e (daha özel olarak ASP.NET HTTP İşleyicisi) kayıtlı özel bir dosya adı uzantısıdır.
  • ASMX dosyaları @WebService yönergesi ile başlar. Bu yönerge en azından web hizmetinin oluşturduğu sınıfı belirten Class özniteliğini içermelidir.
  • Web hizmeti sınıfları, isteğe bağlı Web Hizmeti özniteliklerine sahip olabilir. Bu örnekte, bu öznitelik, web hizmetinin adını ve kullanıcı tarayıcıda AdditionService.asmx'i aradığında HTML sayfasında görüntülenen açıklamayı belirtir.
  • Web yöntemleri, Web hizmeti sınıfının genel yöntemlerine WebMethod özniteliği atanarak bildirilir. Dahili olarak kullanılan ancak harici istemciler tarafından kullanılamayan yardımcı yöntemler için bu öznitelik basitçe atlanır.
  • HTTP, XML ve SOAP "görünmezdir". XML verileri ve SOAP mesajları .NET Framework tarafından işlenir.

AdditionService.asmx<%@ WebService language="C#" Class="AddService" %>System.Web.Services sınıfını kullanarak System kullanarak AddService ( public int Add (int a, int b) ( a + b döndür ) )

Küçük boyutuna rağmen AdditionService.asmx, bir ASP.NET web sunucusuna kurulduğunda eksiksiz bir web hizmetidir. Yöntemleri SOAP, HTTP GET ve HTTP POST ile çağrılır ve sonuçları SOAP yanıtları veya basit XML sarmalayıcıları olarak döndürebilir.

Arka plan kodu kullanılarak web servis sınıfları asmx dosyalarından ayrı dosyalara alınabilir.

Web servisleri kullanımı destekler karmaşık veri türleri giriş veya çıkış parametreleri olarak. Karmaşık veri türleri desteklenir, çünkü XML çoğu veri türünü serileştirmeyi kolaylaştırır. Ancak, bir web hizmetini otomatik olarak test ederken ASP .NET, karmaşık veri türlerini kabul eden yöntemler için test sayfaları oluşturmaz. Bunun nedeni, HTTP GET ve POST kullanarak karmaşık veri türlerini web yöntemine iletememenizdir.

Web servisleri kendi yöntemlerinizi çağırmanıza izin verir asenkron olarak. Zaman uyumsuz bir çağrı, web hizmetinin çağrıyı işlemesi ne kadar sürerse sürsün hemen geri döner. Zaman uyumsuz çağrılar, bir çağrının işlenmesi uzun zaman aldığında kullanışlıdır. Uygulama aramayı yapar, ardından aramanın sonucunu beklemeden çalışmaya devam eder ve daha sonra eşzamansız aramanın sonuçlarını alır. Sonuç, web yöntemi uygulama için uygun bir zamanda yeniden çağrıldığında veya web hizmeti tarafından çağrı işlemenin sona erdiğiyle ilgili bir bildirime abone olarak (temsilci mekanizması) elde edilir.

Web servisleri gibi araçlar kullanılarak oluşturulabilir. Microsoft Visual Studio 2005. Web servisleri oluşturmak için ayrı bir ASP .NET Web Service proje türü vardır. Visual Studio, bir asmx dosyası, web hizmeti sınıflarını açıklamak için arka plan koduna sahip bir dosya, bir web hizmeti yapılandırma dosyası vb. oluşturur. Proje yürütülmek üzere başlatıldığında, hizmet sınıfları derlenir ve asmx dosyası bir tarayıcı penceresinde açılır.

Sözleşmeleri Kullanarak Web Servislerini Tanımlama

Diğer geliştiricilerin AdditionService'i kullanabilmesi için, hangi yöntemleri ortaya koyduğunu, hangi protokolleri desteklediğini, yöntem imzalarını ve web hizmeti adresini (URL) bilmeleri gerekir. Tüm bunlar ve diğer bilgiler WSDL'de (Web Hizmeti Açıklama dili) açıklanabilir.


Web Hizmeti Keşfi

Diğer geliştiriciler AdditionService'in varlığını nasıl biliyor?

İlk olarak, DISCO'nun yardımıyla (keşif için kısa) - yerel web hizmetlerini aramak için bir dosya mekanizması, yani web sunucularında barındırılan DISCO dosyalarından mevcut web hizmetlerinin bir listesini elde etmek için bir mekanizma. Ek olarak, DISCO dosyaları, mevcut hizmetlerin WSDL sözleşmelerinin konumunun kayıtlarını içerir. DISCO dosyası, kayıtları olan bir XML dosyasıdır.

DISCO dosyalarına benzeyen VSDISCO dosyalarını kullanmak da mümkündür, ancak içerikleri, belirtilen dizinlerde ve tüm iç içe alt dizinlerde web hizmetleri için dinamik bir aramanın sonucudur. ASP .NET, .vsdisco dosya adı uzantısını, verilen dizini ve alt dizinlerini asmx ve disko için arayan ve dinamik olarak oluşturulmuş bir DISCO belgesi döndüren bir HTTP işleyicisine eşler. Güvenlik nedeniyle, .NET Framework'ün bazı sürümlerinde dinamik arama devre dışı bırakılmıştır, ancak bunu Machine.config dosyasındaki girişleri düzenleyerek etkinleştirebilirsiniz.

Ancak küresel ağda web servislerini aramak nasıl? Küresel ağda web hizmetlerini aramak için Microsoft, IBM ve Ariba ortaklaşa UDDI'yi (Evrensel Tanım Keşfi ve Entegrasyon) geliştirdi - web hizmetlerini aramanıza olanak tanıyan dağıtılmış veritabanları oluşturmaya yönelik bir özellik. UDDI yüzlerce şirket tarafından desteklenmektedir. UDDI sitelerinin kendileri web hizmetleridir. Herkes kayıt defterini UDDI'ye dayalı olarak yayınlayabilir. Çoğu geliştirici, UDDI API'sini hiçbir zaman doğrudan kullanmaz. Bunun yerine, UDDI kayıtlarına geliştirme araçları tarafından erişilir. Ayrıca keşfedilen ve seçilen web hizmetleri için sarmalayıcı sınıfları oluştururlar.

Sonuçlar

XML Web hizmeti, XML ve HTTP gibi standartları destekleyen çok çeşitli sistemler tarafından kullanılabilen işlevsellik sağlayan bir yazılım bileşenidir.Web hizmeti istemcileri hem yerel hem de uzak uygulamalar olabilir. Web hizmetleri, basit, yaygın olarak kabul edilen standartlara dayalı olarak farklı sistemleri entegre etmeyi kolaylaştıran yapılar oluşturmanıza olanak tanır.

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 (dosyalar, yer imleri), takvim vb. saklanması 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 servisi, web servisi (İngilizce web servisi), 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...