Veb xidməti - bu nədir. XML Veb Xidmətləri. Texnologiyaya baxış

Veb xidmətləri ideyası Sun, Oracle, HP, Microsoft və IBM kimi kompüter sənayesi nəhəngləri tərəfindən hazırlanmışdır. Bu ideya yeni bir şey deyil, lakin internet üzərindən proqramlara daha asan daxil olmaq yolunda irəliyə doğru böyük bir addımdır. Standart kommunikasiya formatlarına əsaslanaraq, veb-xidmətlər veb saytları necə yaratmalı olduğumuz barədə düşüncə tərzimizi tamamilə dəyişə bilər.

Veb xidməti nədir?

Veb xidmətləri sayəsində istənilən proqramın funksiyaları İnternet üzərindən istifadəyə verilə bilər. Beləliklə, PHP, ASP, JSP skriptləri, JavaBeans, COM obyektləri və bütün digər sevimli proqramlaşdırma alətlərimiz kimi proqramlar indi başqa serverdə (yəni veb xidməti) işləyən bəzi proqrama daxil ola və ondan öz veb-saytında alınan cavabdan istifadə edə bilər və ya tətbiq.

Tutaq ki, hansısa proqramlaşdırma tapşırığını yerinə yetirməli olsam və çox məşğul olsam (yaxud özüm təkəri yenidən kəşf etmək fikrim yoxdursa), saytımın İnternet vasitəsilə daxil olacağı veb xidmətin xidmətlərindən istifadə edə bilərəm. Parametrləri olan sorğunu veb xidmətə ötürməklə, sorğumun icrasının nəticəsini ehtiva edən cavab almağı gözləyirəm.

İndiyə qədər işləmiş hər kəs Son vaxtlar ilə Hotmail, artıq qismən veb-xidmətlərlə qarşılaşıb: Passport istifadəçinin autentifikasiyası sistemi Microsoft .NET təşəbbüsünə daxil olan xidmətlərdən biridir. Hal-hazırda pulsuzdur, ona görə də veb sayt yaradıcıları asanlıqla öz saytında istifadəçi autentifikasiyasını həyata keçirə bilərlər.

Əsaslar

Veb xidmətlərinin arxasında duran prinsiplər təəccüblü dərəcədə sadədir. Onlar paylanmış hesablama və İnternet dünyasına yeni heç nə əlavə etmirlər:

  • veb-xidmətə cavabdeh şəxs öz veb-xidmətinə sorğuların formatını və onun cavablarını müəyyən edir
  • şəbəkədəki hər hansı bir kompüter veb xidmətinə sorğu göndərir
  • veb xidməti sorğunu emal edir, bəzi hərəkətləri yerinə yetirir və sonra cavab göndərir

Bu hərəkət, məsələn, birja kotirovkasının göstərilməsi, müəyyən bir məhsulun qiymətinin göstərilməsi, görüş təqvimində qeydin saxlanması, mətnin bir dildən digərinə tərcümə edilməsi və ya kredit kartı nömrəsinin yoxlanılması ola bilər.

Əsasında standartlar

Hamımızın birdən-birə veb-xidmətlərlə maraqlanmasının səbəbi onların standartlara, məlumat mübadiləsi və ötürülməsi üçün açıq protokollara əsaslanmasıdır.

Bundan əvvəl bir çox şirkət öz mülkiyyət standartlarını və formatlarını inkişaf etdirdi. İndi işləmək üçün sadəcə köhnə tanış HTTP protokolu ilə ötürülən sadə XML (genişləndirilə bilən işarələmə dili) bilməliyik. Bu o deməkdir ki, veb xidmətlərinin necə işlədiyi barədə məlumat hər kəs üçün əlçatandır və bu texnologiyalarla peşəsi ilə tanış olan veb tərtibatçıları bu gün veb xidmətləri ilə oynamağa başlaya bilərlər.

Tərtibatçıların qarşılaşdığı digər texnologiyalardan (məsələn, DCOM, adlı borular, RMI) fərq ondan ibarətdir ki, veb-servislər açıq standartlara əsaslanır, onları öyrənmək asandır və bu standartlar bütün dünyada geniş şəkildə dəstəklənir və Windows platformaları.

Simple Object Access Protocol (SOAP) W3C tərəfindən hazırlanmış standart protokoldur. O, veb-xidmətlərə sorğuların formatını müəyyən edir.

Veb xidməti və onun istifadəçisi arasındakı mesajlar SOAP zərflərində qablaşdırılır. Mesajlarda ya hansısa hərəkətin yerinə yetirilməsi tələbi, ya da bu hərəkətin nəticəsi olan cavab var. Zərf və onun məzmunu XML-də kodlaşdırılıb və başa düşmək kifayət qədər asandır. HTPP vasitəsilə veb xidmətinə göndərildikdə sadə SOAP sorğusu belə görünür:

xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/Postcode">
WC1A8GH
Böyük Britaniya


SOAP zərfinin əsas elementlərini tapmaq olduqca asandır: bunlar iki parametrdir ( ("poçt kodu") və ("ölkə")) adlı element daxilində olan . Bu element sorğu göndərdiyimiz veb xidmətin adıdır. Mətn kodlaşdırması və SOAP versiyası kimi zərfdəki digər məlumatlar veb xidmətinə sorğunun düzgün işləməsinə kömək edir.

Və cavab belə görünəcək:

xmlns:env="http://www.w3.org/2001/06/soap-envelope" >

env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/Postcode">
Bəli


Bu mesajı deşifrə etmək daha asandır. Element sorğumuzda elementə dəyişdirildi sorğuya cavab olaraq. Bu element yalnız bir elementdən ibarətdir , dəyəri poçt indeksimizin düzgün olub-olmadığını göstərir. Beləliklə, SOAP-ın sehri vasitəsilə bizim üçün faydalı bir iş görən bir sorğu yaratdıq. Şəbəkə vasitəsilə cavab olaraq biz XML-də müəyyən növ cavab alırıq.

İndi UDDI haqqında

SOAP protokolu sadə olsa da, onları tapmaq üçün heç bir yolumuz olmasaydı, veb xidmətləri az istifadə edərdi. Xoşbəxtlikdən, IBM, Microsoft və Ariba Universal Təsvir, Kəşf və İnteqrasiya (UDDI) layihəsini inkişaf etdirdilər və yaratdılar ki, bu layihə İnternetdəki bütün veb xidmətlərinin ümumi kataloquna çevriləcək.

UDDI sistemi şirkətlərə veb xidmətlərini ictimaiyyətə təqdim etməyə imkan verir. Bu kataloq bütün veb xidmətləri üçün telefon kitabçası kimi çıxış edir. UDDI qovluğunda qeydiyyat pulsuzdur və layihənin təsisçiləri ümid edirlər ki, bu kataloq İnternetdə bütün, bütün, bütün xidmətlərin təsvirini ehtiva edəcək, beləliklə istədiyiniz veb xidmətini tapmaq üçün yalnız birinə müraciət etmək kifayət edəcəkdir. UDDI kataloqu.

Hamısı necə işləyir

Beləliklə, düzgün veb xidmətini necə tapa bilərəm?

Təsəvvür edək ki, mən veb sayt tərtibatçısıyam və müştərim məndən sayta əlavə etməyimi istədi yeni xüsusiyyət: Siz qeydiyyat formasına poçt kodu çeki əlavə etməlisiniz.

Bu yoxlamanı həyata keçirmək üçün mən şirkətimizin fəaliyyət göstərdiyi bütün 30 ölkədə bütün poçt indekslərinin məlumat bazasını yaratmalı və sonra qeydiyyat zamanı poçt indeksinin qeydiyyatda göstərilən şəhərə uyğun olduğunu yoxlamalıyam. Ancaq məndə bu məlumat yoxdur və düşünürəm ki, bu cür məlumatların toplanması xeyli pul xərcləməli olacaq.

Verilənlər bazası almaq, kodu özüm yazmaq, bütün məlumatların bütövlüyünü və düzgünlüyünü təmin etmək və skriptləri sazlamaq üçün pul xərcləmək əvəzinə, mən sadəcə olaraq UDDI kataloquna gedirəm və bu işi görə biləcək bir veb xidmətin olub-olmadığını görürəm. mən. www.uddi.org saytına gələrək axtarışa başladım və XYZ Corp-dan əla xidmət tapdım.

Mən veb xidmət formatının tərifini diqqətlə nəzərdən keçirirəm (tərif WSDL (Web Services Description Language) ilə yazılıb), xidmətin tam olaraq mənə lazım olanı yerinə yetirdiyinə əmin oluram. Sonra həmkarlarımla XYZ Corp.-un nüfuzunu yoxlayıram və öyrənirəm. onun möhkəm olduğunu və sonra qiymət sualı ilə XYZ Corp ilə əlaqə saxlayın. Əgər xidmətə daxil olmaq üçün qiymət mənim büdcəmə uyğundursa, mən saytım üçün XYZ Corp-un veb xidmətini çağıran sadə JSP səhifəsi yazıram və bax, ani yoxlama. poçt kodu saytda görünür.

Vaxtınıza dəyər

Proqramlaşdırma və ya veb saytların hazırlanması texnologiyaları ilə heç bir əlaqəniz olmasa belə, veb xidmətləri daha çox öyrənməyə dəyər. Bir müştəri ilə yeni veb-saytı necə müzakirə etdiyinizi, yeni layihənin bütün funksiyalarını müzakirə etdiyinizi təsəvvür edin. Hər şey əla gedir: büdcə müştərinin gözləntilərinə cavab verir, sayt planının eskizini bəyəndi və interfeys nümunələrini bəyəndi. Deyəsən hər şey işləyir.

Və birdən onlar çox mürəkkəb funksiyanı xatırlayırlar. Sadəcə olaraq, veb tərtibatçınızın üzü yaşıl olur və o, boğulmağa və öskürməyə başlayır. Bu tərtibatçı sizə bu xüsusiyyəti inkişaf etdirməyin çox pul və vaxt tələb edəcəyini və ya belə bir büdcə ilə sadəcə mümkün olmadığı barədə siqnal verir.

Qorxunuzu buraxın! Mən zəmanət verə bilərəm ki, İnternetdə artıq sizə lazım olan funksiyanı təqdim etməyə hazır olan veb-xidmət mövcuddur və bu veb-xidmətdən istifadənin dəyəri onun analoqunu müstəqil şəkildə inkişaf etdirmək qiymətindən xeyli aşağı olacaqdır. Bu yolla tərtibatçınızı lazımsız başağrılarından, müştərinizi isə xilas edirsiniz lazımsız tullantılar UDDI kataloquna bir neçə dəqiqə vaxt sərf etməklə pul qazanın.

Xidmətin inkişafı

Əlbəttə ki, tərtibatçılar sadəcə başqaları tərəfindən yaradılmış veb xidmətləri ilə kifayətlənmək məcburiyyətində deyillər. Aşağıdakı alət dəstlərindən birini istifadə edərək, siz öz veb xidmətinizi yarada və onun xidmətlərini digər İnternet istifadəçilərinə təqdim edə bilərsiniz.

Veb xidmətlərinin inkişafı üçün alətlərin seçimi genişdir. Buraya Sun (Open Net), Microsoft (.NET), (e-xidmətlər) və IBM (Web Services) kimi şirkətlərin alətləri daxildir. Açıq mənbə çərçivələri də var. Məsələn, Mono Layihəsi Unix də daxil olmaqla bütün platformalarda eyni veb xidmətlərini işə salmaq üçün tərtibçilər, icra müddəti və kitabxanalar təqdim etməklə Microsoft-un .NET alət dəstini əvəz etmək məqsədi daşıyır.

Serverlərin və veb-xidmətin inkişaf etdirilməsi vasitələrinin müxtəlifliyinə baxmayaraq, onların hamısı eyni SOAP protokolunu, XML dilini və UDDI sistemini dəstəkləyir.

Minuslar

Bir proqramçı kimi karyeramdan tamamilə imtina etməzdən və özümü veb-xidmətlərdən istifadə etməyə həsr etməzdən əvvəl özümə sual verməliyəm: "Bu, çox çəhrayı bir şəkildir?" Təəssüf ki, veb xidmətlərinin böyük potensialı bir qiymətə gəlir:

  • XML-i məlumat ötürmə formatı kimi istifadə etmək, mesajlarınızın çox böyük ölçüdə olacağı deməkdir: XML teqlərinin özləri çox yer tutur və bu, mesajları yaratmaq, ötürmək və şərh etmək üçün bizə müəyyən bir yük qoyur.
  • İstifadə etdiyimizdən uzaq kompüterlər Müəyyən funksiyaları yerinə yetirmək üçün biz tamamilə İnternetə güvənirik ki, bu da veb serverimiz və veb xidməti arasında zəncirdə həddən artıq etibarsız əlaqələr yaradır.
  • Bu gün az sayda şirkət veb-servislər yaradır və onlardan az sayda şirkət istifadə edir. Veb xidmətləri sisteminin sazlanması və təkmilləşdirilməsi hələ uzun müddət tələb edir.
  • Veb xidmətlərindən istifadə üçün lisenziyalaşdırma və ödəniş sistemi hələ tərtibatçılar tərəfindən qəbul edilməmişdir. Veb-xidmətlərin hələ də çox az olması səbəbindən əksər şirkətlər xidmətlərin qiymətini bilərəkdən aşağı salmaqla və əlverişli lisenziya şərtləri təklif etməklə potensial müştərilərində yaxşı təəssürat yaratmağa çalışırlar. Veb xidmətlərinin real dəyərinin aydınlaşmasına hələ bir müddət keçəcək.

Veb xidmətləri öz yerini tutduqda və hər kəs üçün əlçatan olduqda, veb tərtibatçıları üçün əvəzolunmaz köməkçi olacaqlar. Onlar bizə şəbəkədəki bütün kompüterlərin tam gücünə çevik giriş imkanı verəcək. Veb sayt qurucuları üçün veb xidmətlərlə maraqlanmağın və onlardan nə əldə edə biləcəkləri haqqında daha çox öyrənməyin vaxtıdır.

Annotasiya: İstifadə sahələri. Üstünlüklər. .NET platforması üçün veb xidmətlərinin işlənib hazırlanması xüsusiyyətləri. Veb xidmətinin təsviri və kəşfi

XML Veb Xidməti nədir?

İnformasiya texnologiyaları inkişaf etdikcə proqramların yazılmasına müxtəlif yanaşmalar yarandı: modul proqramlaşdırma, hadisəyə əsaslanan proqramlaşdırma, komponent yönümlü proqramlaşdırma və dizayn. Bu yanaşmaların məntiqi davamı xidmət yönümlü idi proqram təminatının inkişafı.

Xidmət yönümlü yanaşmaların istifadəsi mikro səviyyədə (obyekt səviyyəsi) fərqli olaraq, makro səviyyədə (xidmət səviyyəsində) təkrar istifadə haqqında danışmağa imkan verir. Xidmət yönümlü yanaşma sadə və ümumi qəbul edilmiş standartlardan istifadə edir ki, bu da müxtəlif proqramların bir-birinin funksionallığını paylaşmasına imkan verir. Xidmətlər müxtəlif platformalarda müxtəlif proqramlaşdırma dillərindən istifadə etməklə yazıla bilər. Bundan əlavə, xidmətlər ayrıca və ya proqram paketinin bir hissəsi kimi istənilən yerdə yerləşdirilə bilər qlobus və bununla da onların funksionallığına şəbəkə üzərindən çıxış təmin edəcək.

zəng edək xidmət iş funksiyasını həyata keçirən və aşağıdakı xüsusiyyətlərə malik olan resurs:

  • təkrar istifadə edilə bilər;
  • bir və ya bir neçə açıq texnologiyadan asılı olmayan interfeys ilə müəyyən edilir;
  • digər oxşar resurslara sərbəst şəkildə bağlıdır və resursların bir-biri ilə qarşılıqlı əlaqədə olmasına imkan verən rabitə protokolları vasitəsilə işə salına bilər.

Xidmətin xüsusi halı XML veb xidmətidir.

XML Veb xidməti xüsusi bir veb proqram növüdür:

  • veb serverdə yerləşdirilir;
  • xarici müştərilər tərəfindən çağırıla bilən veb metodlarını dərc edir;
  • veb metodlarına zəng etmək üçün əmrlər olan HTTP sorğularının alınmasını gözləyir;
  • veb metodlarını icra edir və nəticələri qaytarır.

Ənənəvi veb proqramdan fərqli olaraq, veb xidmətində istifadəçi interfeysi yoxdur. Əvəzində onun proqramlaşdırma interfeysi var, yəni veb xidməti uzaqdan (məsələn, İnternet üzərindən) çağırıla bilən funksiyaları (veb metodlarını) ifşa edir. Veb xidməti son istifadəçilərə xidmət etmək üçün nəzərdə tutulmayıb. Onun işi veb proqramlar, GUI proqramları və ya konsol proqramları olsun, digər proqramlara xidmət göstərməkdir.

Veb xidməti səhm qiymətləri haqqında real vaxt məlumatı təqdim edə, kredit kartlarını yoxlaya və ya hava proqnozu barədə məlumat verə bilər. Veb xidmətləri adi proqramlar kimi müxtəlifdir.

Veb xidmətləri müəyyən bir şirkətin mülkiyyəti deyil. Açıq protokollara (SOAP, HTTP və s.) əsaslanan sənaye standartıdır. Veb xidmətləri müxtəlif platformalarda (o cümlədən Windows və ya UNIX ilə işləyən serverlərdə) yerləşdirilir. Veb xidmətləri bir çox inkişaf alətlərindən istifadə etməklə hazırlana bilər (dan mətn redaktoru Microsoft Visual Studio ailəsinə).

Əksər veb xidmətlərinin metodları SOAP mesajlarını ehtiva edən HTTP sorğuları ilə çağırılır. SOAP HTTP və digər protokollar üzərindən uzaq prosedurları çağırmaq üçün XML dilidir (XML lüğətidir) (SOAP-ın tam təsviri http://www.w3.org/TR/SOAP) .

Veb xidmətlərinin digər uzaqdan zəng texnologiyaları arasında yeri

Bir neçə uzaqdan çağırış protokolları və texnologiyaları var: Microsoft Paylanmış Komponent Obyekt Modeli (DCOM), Obyekt İdarəetmə Qrupunun Ümumi Obyekt Sorğu Broker Arxitekturası (CORBA), Günəşin Uzaqdan Metod Çağırması (RMI), . NET Remoting, XML Veb Xidmətləri.

Bütün bu komponent əsaslı texnologiyalar (DCOM, CORBA və RMI) uzun illərdir ki, İntranet proqramlarında uğurla istifadə olunur. Onlar etibarlı, genişlənə bilən bir arxitektura təmin edir. Bununla belə, internetdə bu texnologiyalardan istifadə ilə bağlı iki ciddi problem var. Birincisi, onlar bir-biri ilə yaxşı münasibət qurmurlar. Bütün texnologiyalar obyektlər üzərində işləyir, lakin təfərrüatlarda əhəmiyyətli dərəcədə fərqlənir: həyat dövrünün idarə edilməsi, konstruktor dəstəyi və miras dəstəyinin dərəcəsi. İkinci, daha vacib cəhət ondan ibarətdir ki, RPC qarşılıqlı əlaqəsinə diqqət obyekt metodlarına açıq çağırışlara əsaslanan sıx əlaqəli sistemlərin qurulmasına gətirib çıxarır.

Bu texnologiyalardan fərqli olaraq, XML Veb Xidmətləri və. NET Remoting tam şəkildə həyata keçirilir obyekt yönümlü yanaşma veb proqramlaşdırma üçün.

XML Veb Xidməti- İnternet müştərilərini bir sıra API funksiyaları və ya veb metodları ilə təmin edən komponent. XML ada daxildir, çünki veb xidmətləri və onların müştəriləri məlumat mübadiləsi üçün istifadə edirlər. Veb xidmətləri HTTP, XML (Genişləndirilə bilən İşarələmə Dili), SOAP (Sadə Obyekt Giriş Protokolu - HTTP və digər protokollardan istifadə edərək tətbiqlərin qarşılıqlı əlaqədə olmasını, yəni bir-birinin metodlarına zəng edə biləcəyini təsvir edən bir Intenet standartı) kimi açıq standartlara əsaslanır. Veb xidmətlərinin əsas vəzifəsi proqramlararası qarşılıqlı əlaqəni təmin etməkdir. Bir çoxları UNIX serverlərində işləyir və onlara Windows müştəriləri tərəfindən daxil olur. Veb xidmətlərinə göndərilən məlumatlar XML-də seriallaşdırılır və SOAP paketlərində göndərilir. Bu cür mesajların məzmunu haqqında metaməlumatlar WSDL müqaviləsi və XSD sxemlərində veb-servisdə saxlanılır. Bu yanaşmanın əsas üstünlüyü metadatanın oxunaqlılığıdır. Tərtibatçı asanlıqla veb xidmətin bütün təsvirinə baxa və hətta SOAP paketlərini təhlil edən öz modulunu yarada bilər.

.NET Remoting paylanmış obyektlər üçün infrastruktur təmin edir. O, sadə mesaj ötürən veb xidmətləri arxitekturasından qat-qat mürəkkəbdir. . NET Remoting-ə istinad və dəyərlə keçid parametrləri, geri çağırışlar, çoxsaylı obyekt aktivasiyası və həyat dövrünün idarə edilməsi siyasətləri daxildir. Bu funksiyalardan istifadə etmək üçün müştəri tətbiqi bütün texnologiyalarda təcrübəli olmalıdır. Məlumat c. NET Remoting ikili və ya SOAP formatında ötürülür. Bununla belə, istənilən halda ötürülən informasiyanın strukturu haqqında metadata ümumi dil icra mühitində yer alır. Ümumi dil işləmə vaxtı (CLR) olmadan müştəri tətbiqi dilə xas olanları təhlil edə bilməyəcək. NET Remoting SOAP başlıqları. Yəni. NET Remoting veb xidmətləri ilə müqayisədə xeyli yüksək tələblər qoyur.

.NET platformasında veb xidmətlərin inkişafı

Veb xidmətləri yazmağın bir çox yolu var. Onlar əl ilə və ya Microsoft, IBM və s. tərəfindən təmin edilən SOAP alətlərindən istifadə etməklə hazırlana bilər. Microsoft istifadə edərək veb xidmətlərinin yazılması. NET-in iki üstünlüyü var:

  • .NET Framework sinif kitabxanasını təmin etməklə və fərdi inkişaf mərhələlərini avtomatlaşdırmaqla inkişaf prosesini xeyli asanlaşdırır;
  • .NET Framework ilə yazılmış veb xidmətləri idarə olunan proqramlardır. Yəni, bu cür proqramlarda yaddaş sızması, səhv başlatılmış göstəricilər və digər tipik proqramlaşdırma problemləri ilə bağlı problemlər yoxdur.

yaradılış

Gəlin iki ədəd əlavə edən sadə AdditionService veb xidmətini inkişaf etdirək. Onun yalnız bir Add metodu olacaq, hansı ki, parametr kimi iki tam ədəd götürür və həmçinin tam ədədi qaytarır. AdditionService Microsoft .NET Framework istifadə edərək veb xidmətlərinin proqramlaşdırılmasının bir neçə mühüm prinsiplərini nümayiş etdirir.

  • Veb xidmətləri ASMX faylları kimi həyata keçirilir. ASMX əsas ASP .NET Machine.config konfiqurasiya faylında ASP .NET (daha doğrusu, ASP.NET HTTP Handler) üçün qeydiyyatdan keçmiş xüsusi fayl adı uzantısıdır.
  • ASMX faylları @WebService direktivi ilə başlayır. Bu direktivdə ən azı veb xidmətin hansı sinfdən ibarət olduğunu göstərən Class atributu olmalıdır.
  • Veb xidməti sinifləri isteğe bağlı WebService atributlarına malik ola bilər. IN bu misalda Bu atribut istifadəçi brauzerdə AdditionService.asmx-ə zəng etdikdə HTML səhifəsində göstərilən veb xidmət adını və təsvirini müəyyən edir.
  • Veb metodları WebMethod atributunu Veb xidmət sinfinin ictimai metodlarına təyin etməklə elan edilir. Daxili olaraq istifadə edilən, lakin xarici müştərilər üçün əlçatan olmayan köməkçi metodlar üçün bu atribut sadəcə göstərilməyib.
  • HTTP, XML və SOAP "görünməzdir". .NET Framework XML məlumatlarını və SOAP mesajlarını idarə edir.

AdditionService.asmx<%@ WebService language="C#" Class="AddService" %>System.Web.Services sinfindən istifadə edərək Sistemdən istifadə AddService ( public int Add (int a, int b) ( a + b ) qaytarın )

Kiçik ölçüsünə baxmayaraq, AdditionService.asmx ASP.NET ilə veb serverdə quraşdırıldığı təqdirdə tam hüquqlu veb xidmətidir. Onun metodları SOAP, HTTP GET və HTTP POST istifadə edərək adlanır və o, nəticələri SOAP cavabları və ya sadə XML sarğıları kimi qaytara bilər.

Fon kodundan istifadə edərək veb xidmət sinifləri asmx fayllarından ayrı fayllara köçürülə bilər.

Veb xidmətləri istifadəni dəstəkləyir mürəkkəb məlumat növləri giriş və ya çıxış parametrləri kimi. Kompleks məlumat növləri dəstəklənir, çünki XML əksər məlumat növlərini asanlıqla seriallaşdırmağa imkan verir. Bununla belə, veb xidməti avtomatik sınaqdan keçirərkən, ASP .NET qəbul edən metodlar üçün test səhifələri yaratmır mürəkkəb növlər data. Bu, HTTP GET və POST istifadə edərək mürəkkəb məlumat növlərini veb metoduna ötürə bilmədiyiniz üçün baş verir.

Veb xidmətləri onların metodlarını çağırmağa imkan verir asinxron. Asinxron zəng, veb xidmətinə zəngi emal etmək üçün nə qədər vaxt tələb etməsindən asılı olmayaraq dərhal nəzarəti qaytarır. Asinxron zənglər, zəngi emal etmək xeyli vaxt apardıqda faydalıdır. Tətbiq zəng edir, sonra zəngin nəticəsini gözləmədən işləməyə davam edir və daha sonra asinxron zənginin nəticələrini alır. Nəticə, tətbiq üçün əlverişli vaxtda yenidən veb metoduna zəng etməklə və ya veb xidməti (nümayəndə mexanizmi) tərəfindən zəngin emalının başa çatması haqqında bildirişə abunə olmaqla əldə edilir.

kimi alətlərdən istifadə etməklə veb xidmətləri yaradıla bilər Microsoft Visual Studio 2005. Onun təmin etdiyi veb xidmətləri yaratmaq üçün ayrı növü ASP .NET Web Service layihəsi. Visual Studio asmx faylını, veb-xidmət siniflərini təsvir etmək üçün fon kodu olan faylı, veb-xidmət konfiqurasiya faylını və s. yaradır. Layihə icra üçün işə salındıqda xidmət sinifləri tərtib edilir və brauzer pəncərəsində asmx faylı açılır. .

Müqavilələrdən istifadə edərək veb xidmətlərinin təsviri

Digər tərtibatçıların AdditionService-dən istifadə etməsi üçün onlar onun hansı üsulları təmin etdiyini, hansı protokolları dəstəklədiyini, metod imzalarını və veb xidmət ünvanını (URL) bilməlidirlər. Bütün bu və digər məlumatlar WSDL (Web Service Description language) ilə təsvir edilə bilər.


Veb xidmət kəşfi

Digər tərtibatçılar AdditionService-in mövcudluğunu necə bilirlər?

Birincisi, DISCO (kəşf sözünün qısaltması) - yerli veb xidmətlərinin axtarışı üçün fayl əsaslı mexanizm, yəni veb serverlərdə yerləşən DISCO fayllarından mövcud veb xidmətlərinin siyahısını əldə etmək mexanizmi. Bundan əlavə, DISCO faylları mövcud xidmətlərin WSDL müqavilələrinin yerləşdiyi yerin qeydlərini ehtiva edir. DISCO faylı qeydləri olan XML faylıdır.

DISCO fayllarına bənzəyən VSDISCO fayllarından da istifadə etmək mümkündür, lakin onların məzmunu göstərilən kataloqlarda və bütün alt kataloqlarda veb xidmətləri üçün dinamik axtarışın nəticəsidir. ASP .NET .vsdisco fayl adının genişləndirilməsini HTTP işləyicisi ilə əlaqələndirir, o, verilmiş kataloqu və onun alt kataloqlarını asmx və diskoteka üçün axtarır və dinamik şəkildə yaradılmış DISCO sənədini qaytarır. Təhlükəsizlik səbəbləri ilə dinamik axtarış .NET Framework-ün bəzi versiyalarında deaktiv edilib, lakin siz Machine.config faylındakı qeydləri redaktə etməklə onu aktivləşdirə bilərsiniz.

Qlobal şəbəkədə veb xidmətlərini necə axtarırsınız? Qlobal şəbəkədə veb xidmətlərini axtarmaq üçün Microsoft, IBM və Ariba birgə UDDI (Universal Description Discovery and Integration) - veb-xidmətləri axtarmağa imkan verən paylanmış verilənlər bazası yaratmaq üçün spesifikasiya işləyib hazırlamışdır. UDDI yüzlərlə şirkət tərəfindən dəstəklənir. UDDI saytlarının özləri veb xidmətləridir. Hər kəs UDDI əsaslı reyestrini dərc edə bilər. Əksər tərtibatçılar heç vaxt UDDI API-dən birbaşa istifadə etmirlər. Bunun əvəzinə, UDDI reyestrlərinə inkişaf alətləri vasitəsilə daxil olur. Onlar həmçinin aşkar edilmiş və seçilmiş veb xidmətləri üçün sarğı sinifləri yaradırlar.

Nəticələr

XML Veb xidməti çoxunun istifadə edə biləcəyi funksionallığı təmin edən proqram komponentidir müxtəlif sistemlər, XML və HTTP kimi standartları dəstəkləyən Veb xidməti müştəriləri həm yerli, həm də uzaq proqramlar ola bilər. Veb xidmətləri sadə, ümumi qəbul edilmiş standartlar əsasında müxtəlif sistemlərin inteqrasiyasını asanlaşdıran strukturlar yaratmağa imkan verir.

Veb xidmətləri ideyası Sun, Oracle, HP, Microsoft və IBM kimi kompüter sənayesi nəhəngləri tərəfindən hazırlanmışdır. Bu ideya yeni bir şey deyil, lakin internet üzərindən proqramlara daha asan daxil olmaq yolunda irəliyə doğru böyük bir addımdır. Standart kommunikasiya formatlarına əsaslanaraq, veb-xidmətlər veb saytları necə yaratmalı olduğumuz barədə düşüncə tərzimizi tamamilə dəyişə bilər.

Veb xidməti nədir?

Veb xidmətləri sayəsində istənilən proqramın funksiyaları İnternet üzərindən istifadəyə verilə bilər. Beləliklə, PHP, ASP, JSP skriptləri, JavaBeans, COM obyektləri və bütün digər sevimli proqramlaşdırma alətlərimiz kimi proqramlar indi başqa serverdə (yəni veb xidməti) işləyən bəzi proqrama daxil ola və ondan öz veb-saytında alınan cavabdan istifadə edə bilər və ya tətbiq.

Tutaq ki, hansısa proqramlaşdırma tapşırığını yerinə yetirməli olsam və çox məşğul olsam (yaxud özüm təkəri yenidən kəşf etmək fikrim yoxdursa), saytımın İnternet vasitəsilə daxil olacağı veb xidmətin xidmətlərindən istifadə edə bilərəm. Parametrləri olan sorğunu veb xidmətə ötürməklə, sorğumun icrasının nəticəsini ehtiva edən cavab almağı gözləyirəm.

Bu yaxınlarda Hotmail ilə işləmiş hər kəs artıq bir qədər veb-xidmətlərə məruz qalıb: Passport istifadəçinin autentifikasiyası sistemi Microsoft .NET təşəbbüsünə daxil olan xidmətlərdən biridir. Hal-hazırda pulsuzdur, ona görə də veb sayt yaradıcıları asanlıqla öz saytında istifadəçi autentifikasiyasını həyata keçirə bilərlər.

Əsaslar

Veb xidmətlərinin arxasında duran prinsiplər təəccüblü dərəcədə sadədir. Onlar paylanmış hesablama və İnternet dünyasına yeni heç nə əlavə etmirlər:

  • veb-xidmətə cavabdeh şəxs öz veb-xidmətinə sorğuların formatını və onun cavablarını müəyyən edir
  • şəbəkədəki hər hansı bir kompüter veb xidmətinə sorğu göndərir
  • veb xidməti sorğunu emal edir, bəzi hərəkətləri yerinə yetirir və sonra cavab göndərir

Bu hərəkət, məsələn, birja kotirovkasının göstərilməsi, müəyyən bir məhsulun qiymətinin göstərilməsi, görüş təqvimində qeydin saxlanması, mətnin bir dildən digərinə tərcümə edilməsi və ya kredit kartı nömrəsinin yoxlanılması ola bilər.

Əsasında standartlar

Hamımızın birdən-birə veb-xidmətlərlə maraqlanmasının səbəbi onların standartlara, məlumat mübadiləsi və ötürülməsi üçün açıq protokollara əsaslanmasıdır.

Bundan əvvəl bir çox şirkət öz mülkiyyət standartlarını və formatlarını inkişaf etdirdi. İndi işləmək üçün sadəcə köhnə tanış HTTP protokolu ilə ötürülən sadə XML (genişləndirilə bilən işarələmə dili) bilməliyik. Bu o deməkdir ki, veb xidmətlərinin necə işlədiyi barədə məlumat hər kəs üçün əlçatandır və bu texnologiyalarla peşəsi ilə tanış olan veb tərtibatçıları bu gün veb xidmətləri ilə oynamağa başlaya bilərlər.

Tərtibatçıların qarşılaşdığı digər texnologiyalardan (məsələn, DCOM, adlı borular, RMI) fərq ondan ibarətdir ki, veb-servislər açıq standartlara əsaslanır, onları öyrənmək asandır və bu standartlar bütün dünyada geniş şəkildə dəstəklənir və Windows platformaları.

Simple Object Access Protocol (SOAP) W3C tərəfindən hazırlanmış standart protokoldur. O, veb-xidmətlərə sorğuların formatını müəyyən edir.

Veb xidməti və onun istifadəçisi arasındakı mesajlar SOAP zərflərində qablaşdırılır. Mesajlarda ya hansısa hərəkətin yerinə yetirilməsi tələbi, ya da bu hərəkətin nəticəsi olan cavab var. Zərf və onun məzmunu XML-də kodlaşdırılıb və başa düşmək kifayət qədər asandır. HTPP vasitəsilə veb xidmətinə göndərildikdə sadə SOAP sorğusu belə görünür:

Xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/Postcode">
WC1A8GH
Böyük Britaniya

SOAP zərfinin əsas elementlərini tanımaq olduqca sadədir: bunlar ad altında elementin içərisində olan iki parametrdir (("poçt kodu") və ("ölkə")). Bu element sorğu göndərdiyimiz veb xidmətin adıdır. Mətn kodlaşdırması və SOAP versiyası kimi zərfdəki digər məlumatlar veb xidmətinə sorğunun düzgün işləməsinə kömək edir.

Və cavab belə görünəcək:

Xmlns:env="http://www.w3.org/2001/06/soap-envelope" >

Env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/Postcode">
Bəli

Bu mesajı deşifrə etmək daha asandır. Sorğumuzdakı element sorğuya cavabdakı elementə dəyişdi. Bu element yalnız bir elementdən ibarətdir, onun dəyəri poçt indeksimizin düzgün olub-olmadığını göstərir. Beləliklə, SOAP-ın sehri vasitəsilə bizim üçün faydalı bir iş görən bir sorğu yaratdıq. Şəbəkə vasitəsilə cavab olaraq biz XML-də müəyyən növ cavab alırıq.

İndi UDDI haqqında

SOAP protokolu sadə olsa da, onları tapmaq üçün heç bir yolumuz olmasaydı, veb xidmətləri az istifadə edərdi. Xoşbəxtlikdən, IBM, Microsoft və Ariba Universal Təsvir, Kəşf və İnteqrasiya (UDDI) layihəsini inkişaf etdirdilər və yaratdılar ki, bu layihə İnternetdəki bütün veb xidmətlərinin ümumi kataloquna çevriləcək.

UDDI sistemi şirkətlərə veb xidmətlərini ictimaiyyətə təqdim etməyə imkan verir. Bu kataloq bütün veb xidmətləri üçün telefon kitabçası kimi çıxış edir. UDDI qovluğunda qeydiyyat pulsuzdur və layihənin təsisçiləri ümid edirlər ki, bu kataloq İnternetdə bütün, bütün, bütün xidmətlərin təsvirini ehtiva edəcək, beləliklə istədiyiniz veb xidmətini tapmaq üçün yalnız birinə müraciət etmək kifayət edəcəkdir. UDDI kataloqu.

Hamısı necə işləyir

Beləliklə, düzgün veb xidmətini necə tapa bilərəm?

Təsəvvür edək ki, mən veb sayt tərtibatçısıyam və müştərim məndən sayta yeni funksiya əlavə etməyimi xahiş etdi: Mən qeydiyyat formasına poçt kodu çeki əlavə etməliyəm.

Bu yoxlamanı həyata keçirmək üçün mən şirkətimizin fəaliyyət göstərdiyi bütün 30 ölkədə bütün poçt indekslərinin məlumat bazasını yaratmalı və sonra qeydiyyat zamanı poçt indeksinin qeydiyyatda göstərilən şəhərə uyğun olduğunu yoxlamalıyam. Ancaq məndə bu məlumat yoxdur və düşünürəm ki, bu cür məlumatların toplanması xeyli pul xərcləməli olacaq.

Verilənlər bazası almaq, kodu özüm yazmaq, bütün məlumatların bütövlüyünü və düzgünlüyünü təmin etmək və skriptləri sazlamaq üçün pul xərcləmək əvəzinə, mən sadəcə olaraq UDDI kataloquna gedirəm və bu işi görə biləcək bir veb xidmətin olub-olmadığını görürəm. mən. Www.uddi.org saytına gələrək axtarış apardım və XYZ Corp-dan əla xidmət tapdım.

Mən veb xidmət formatının tərifini diqqətlə nəzərdən keçirirəm (tərif WSDL (Web Services Description Language) ilə yazılıb), xidmətin tam olaraq mənə lazım olanı yerinə yetirdiyinə əmin oluram. Sonra həmkarlarımla XYZ Corp.-un nüfuzunu yoxlayıram və öyrənirəm. onun möhkəm olduğunu və sonra qiymət sualı ilə XYZ Corp ilə əlaqə saxlayın. Əgər xidmətə daxil olmaq üçün qiymət mənim büdcəmə uyğundursa, mən saytım üçün XYZ Corp-un veb xidmətini çağıran sadə JSP səhifəsi yazıram və bax, ani yoxlama. poçt kodu saytda görünür.

Vaxtınıza dəyər

Proqramlaşdırma və ya veb saytların hazırlanması texnologiyaları ilə heç bir əlaqəniz olmasa belə, veb xidmətləri daha çox öyrənməyə dəyər. Bir müştəri ilə yeni veb-saytı necə müzakirə etdiyinizi, yeni layihənin bütün funksiyalarını müzakirə etdiyinizi təsəvvür edin. Hər şey əla gedir: büdcə müştərinin gözləntilərinə cavab verir, sayt planının eskizini bəyəndi və interfeys nümunələrini bəyəndi. Deyəsən hər şey işləyir.

Və birdən onlar çox mürəkkəb funksiyanı xatırlayırlar. Sadəcə olaraq, veb tərtibatçınızın üzü yaşıl olur və o, boğulmağa və öskürməyə başlayır. Bu tərtibatçı sizə bu xüsusiyyəti inkişaf etdirməyin çox pul və vaxt tələb edəcəyini və ya belə bir büdcə ilə sadəcə mümkün olmadığı barədə siqnal verir.

Qorxunuzu buraxın! Mən zəmanət verə bilərəm ki, İnternetdə artıq sizə lazım olan funksiyanı təqdim etməyə hazır olan veb-xidmət mövcuddur və bu veb-xidmətdən istifadənin dəyəri onun analoqunu müstəqil şəkildə inkişaf etdirmək qiymətindən xeyli aşağı olacaqdır. Bu yolla siz UDDI kataloquna bir neçə dəqiqə vaxt sərf etməklə tərtibatçınızı lazımsız baş ağrılarından, müştərinizi pul israfından xilas etmiş olursunuz.

Xidmətin inkişafı

Əlbəttə ki, tərtibatçılar sadəcə başqaları tərəfindən yaradılmış veb xidmətləri ilə kifayətlənmək məcburiyyətində deyillər. Aşağıdakı alət dəstlərindən birini istifadə edərək, siz öz veb xidmətinizi yarada və onun xidmətlərini digər İnternet istifadəçilərinə təqdim edə bilərsiniz.

Veb xidmətlərinin inkişafı üçün alətlərin seçimi genişdir. Buraya Sun (Open Net), Microsoft (.NET), HP (e-xidmətlər) və IBM (Web Services) kimi şirkətlərin alətləri daxildir. Açıq mənbə çərçivələri də var. Məsələn, Mono Layihəsi Unix də daxil olmaqla bütün platformalarda eyni veb xidmətlərini işə salmaq üçün tərtibçilər, icra müddəti və kitabxanalar təqdim etməklə Microsoft-un .NET alət dəstini əvəz etmək məqsədi daşıyır.

Serverlərin və veb-xidmətin inkişaf etdirilməsi vasitələrinin müxtəlifliyinə baxmayaraq, onların hamısı eyni SOAP protokolunu, XML dilini və UDDI sistemini dəstəkləyir.

Minuslar

Bir proqramçı kimi karyeramdan tamamilə imtina etməzdən və özümü veb-xidmətlərdən istifadə etməyə həsr etməzdən əvvəl özümə sual verməliyəm: "Bu, çox çəhrayı bir şəkildir?" Təəssüf ki, veb xidmətlərinin böyük potensialı bir qiymətə gəlir:

  • XML-i məlumat ötürmə formatı kimi istifadə etmək, mesajlarınızın çox böyük ölçüdə olacağı deməkdir: XML teqlərinin özləri çox yer tutur və bu, mesajları yaratmaq, ötürmək və şərh etmək üçün bizə müəyyən bir yük qoyur.
  • Müəyyən funksiyaları yerinə yetirmək üçün uzaq kompüterlərdən istifadə etdiyimiz üçün biz tamamilə İnternetə etibar edirik ki, bu da veb serverimiz və veb xidməti arasında zəncirdə həddən artıq çox etibarsız əlaqələr yaradır.
  • Bu gün az sayda şirkət veb-servislər yaradır və onlardan az sayda şirkət istifadə edir. Veb xidmətləri sisteminin sazlanması və təkmilləşdirilməsi hələ uzun müddət tələb edir.
  • Veb xidmətlərindən istifadə üçün lisenziyalaşdırma və ödəniş sistemi hələ tərtibatçılar tərəfindən qəbul edilməmişdir. Veb-xidmətlərin hələ də çox az olması səbəbindən əksər şirkətlər xidmətlərin qiymətini bilərəkdən aşağı salmaqla və əlverişli lisenziya şərtləri təklif etməklə potensial müştərilərində yaxşı təəssürat yaratmağa çalışırlar. Veb xidmətlərinin real dəyərinin aydınlaşmasına hələ bir müddət keçəcək.

Veb xidmətləri öz yerini tutduqda və hər kəs üçün əlçatan olduqda, veb tərtibatçıları üçün əvəzolunmaz köməkçi olacaqlar. Onlar bizə şəbəkədəki bütün kompüterlərin tam gücünə çevik giriş imkanı verəcək. Veb sayt qurucuları üçün veb xidmətlərlə maraqlanmağın və onlardan nə əldə edə biləcəkləri haqqında daha çox öyrənməyin vaxtıdır.

Tərcümə: Alexander Kachanov (http://webmascon.com)

Biz nəzərdən keçirdik ümumi anlayışlar mexanizmdən istifadə « Veb-xidmətlər". Gəlin bir az biliyi təzələyək.

Veb xidmətləri server və müştəri arasında məlumat mübadiləsi üçün istifadə olunur; XML formatı rabitənin hər iki iştirakçısı arasında qarşılıqlı anlaşma məqsədi ilə məlumatları “paketləmək” üçün istifadə olunur.

FƏSİLI

TƏRƏCƏ EDİLMƏNİN NÜMUNƏSİWEB- 1C:MÜŞƏKİLƏ SİSTEMİNDƏ XİDMƏT

VƏZİFƏ: Müştərilərin öz tətbiqlərində bütün lazımi məlumatları müəyyən edə biləcəyi bir veb xidməti yaratmaq lazımdır.

Tapşırıq nümayiş xarakteri daşıyır və mexanizmi başa düşmək və öyrətmək üçün yalnız nümunə kimi xidmət edirveb-xidmətlər.

HƏLL:

Addım 1. Yeni konfiqurasiya hazırlamaq üçün konfiqurasiya olmadan yeni məlumat bazası yaradaq.

Addım 2. Konfiqurasiyaya bir neçə yeni obyekt əlavə edək

"Müştərilər" kataloqu;

"Ərizə" sənədi;

"Müraciət statusları" sadalanması.

Addım 3. Gəlin yeni XDTO paketi yaradaq.

XDTO paketini nə üçün və hansı məqsədlə yaradırıq? XDTO mexanizmindən istifadə haqqında ətraflı məlumatı “Fəsil 16. Tərtibatçının Bələdçisi” və .

Qısaca qeyd edək ki, XDTO mexanizmi müxtəlif xarici məlumat mənbələri və proqram sistemləri ilə qarşılıqlı əlaqə üçün məlumatların təqdim edilməsinin universal üsuludur.

Bizim vəziyyətimizdə veb xidmətin qaytarma dəyərini təsvir etmək üçün XDTO paketi yaradılır.

Gəlin “Ümumi” filialını genişləndirək → “XDTO paketləri” → Əlavə edin…

XDTO paketinin adını dəqiqləşdirək " DocumentsData"və onun ad sahəsi http://localhost/request və ya http://192.168.1.76/request (anlaşma və öyrənmə prosesini asanlaşdırmaq üçün veb serverin quraşdırıldığı kompüterin yerli IP ünvanını göstəririk (dəstəklənən veb serverlər: IIS və ya Apache)). Hər bir Veb xidməti öz adı və aid olduğu ad sahəsinin URI-si ilə unikal şəkildə müəyyən edilə bilər.

Paketimizdə iki növ XDTO obyekti var:

1) Müştəri- “Müştərilər” kataloq elementindən məlumatları ötürmək üçün.

- ad ;

2) Sənəd- “Tətbiq” sənədindən məlumatların ötürülməsi

Bu XDTO obyekt növü aşağıdakı xüsusiyyətləri ehtiva edəcəkdir:

- Müştəri- http://192.168.1.76/request ad sahəsindən müştəri növü; yuxarıda müəyyən etdiyimiz XDTO obyektinə istinadı təmsil edir;

- Vəziyyət- http://www.w3.org/2001/XMLSchema ad sahəsindən sətir tipi;

- Nömrə- http://www.w3.org/2001/XMLSchema ad sahəsindən sətir növü.

Addım 4. Konfiqurasiyaya yeni Veb xidməti əlavə edək

“Ümumi” → “Veb xidmətləri” filialını genişləndirək → Əlavə et…

Veb xidməti üçün biz aşağıdakı əmlak dəyərlərini təyin edirik:

ad - DocumentsData

Ad sahəsi URI - http://192.168.1.76/request

XDTO Paketləri - DocumentsDatavə yahttp://192.168.1.76/request

Nəşr faylının adı - sorğu.1cws

Addım 5. Yaradılmış Veb xidməti üçün əməliyyatı təyin edəcəyik " GetData»

Əməliyyat mülkiyyəti dəyərləri:

Qayıdış növü - Sənəd (http://192.168.1.76/request)

Ola bilsin ki, boş dəyər - Doğru

Prosedurun adı - GetData.

Addım 6Əməliyyatda GetData ilə Сustomer parametrini təyin edək aşağıdakı dəyərlərlə xassələri:

Dəyər növü - növü simli http://www.w3.org/2001/XMLSchema ad sahəsindən;

Transfer istiqaməti - giriş.

Addım 7 Yaradılmış Web xidmətin modulunu açıb onun içinə bu Veb xidməti çağırıldıqda yerinə yetiriləcək Get() funksiyasını yerləşdirək.

GetData(Customer) funksiyası // XDTO obyektlərinin növlərini əldə edin ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Sənəd"); // Müştərini alın ClientLink = Clients.FindByName(Customer); ValueFilled deyilsə(ClientRef) Onda Müəyyən edilməmiş qaytarın; endIf; Sorğu = Yeni Sorğu; Request.Text = "ÜST 1-i SEÇİN | Tətbiq.Link, | NÜMAYƏNDƏ (Tətbiq.Status) Status, | Tətbiq.Nömrə |FROM | Sənəd.Tətbiq KİMİ Tələb |HARADA | Application.Client = &Client"; Request.SetParameter("Müştəri", ClientLink); RequestResult = Request.Execute(); QueryResult.Empty() varsa, Müəyyən edilməmiş qaytarın; endIf; Seçim = Sorğu Nəticəsi.Select(); Selection.Next(); Sənəd = Selection.Link.GetObject(); // Sifarişin XDTO obyektini yaradın Sifariş = FactoryXDTO.Create(OrderType); Ərizə.Numder = Nümunə.Nömrə; Müştəri = FactoryXDTO.Create(ClientType); Client.Name = ClientLink.Name; Application.Customer = Müştəri; Application.Status = Seçim.Status; // Sorğunu qaytarın Ərizəni qaytarın; EndFunction

Addım 8 Yaradılmış Veb xidməti veb serverdə dərc edək.

Menyu elementi Konfiqurator: “İdarəetmə” → “Veb serverdə nəşr”.

"Veb xidmətləri" sekmesinde, "Veb xidmətləri dərc et" qutusunu seçin və yeni Veb xidmətimizin yanındakı qutuyu işarələyin.

FƏSİLII

MÜRACİƏT NÜMUNƏSİWEB-ÜÇÜNCÜ TƏRƏF TƏTBİQLƏRİNDƏN 1C:MÜŞƏKİLƏ SİSTEM XİDMƏTİNƏ

1C: Enterprise sistemində Veb xidmətləri mexanizminin əsas məqsədi lazımi məlumatları üçüncü tərəf proqramlarına ötürməkdir.

Bu məqalənin birinci hissəsindən bizim veb xidmətimizə zəng edən Delphi-də proqram hazırlamaq nümunəsini nəzərdən keçirək.

Addım 1. Yaradaq yeni layihə və formada bir neçə nəzarət elementi yerləşdirin

Mətn sahəsi - veb-xidmətdən alınan məlumatları göstərmək üçün istifadə olunur;

İki düymə - mətn sahəsini təmizləmək və veb xidmətə daxil olmaq;

Giriş sahəsi veb xidmətinə ötürülən parametrdir.

Addım 2. WSDL faylının idxalı

Nəticədə yeni modul alırıq xahiş(biz bu adı birbaşa 1C-də təyin etdik). Bu modul internet xidməti haqqında bütün lazımi məlumatları ehtiva edir.

Addım 3. Gəlin veb xidmət zəng idarəçisini yazaq

DocumentDataPortType dəyişəni artıq modulda müəyyən edilib xahiş

Addım 4. Proqramı işə salın və testi işə salın.

FƏSİLIII

MÜRACİƏT NÜMUNƏSİWEB-1C:MÜŞƏKİLƏ SİSTEMİNDƏ XİDMƏT

Addım 1. Gəlin "WEB_Service" adı ilə yeni xarici emal yaradaq.

Addım 2. Emal üçün yeni forma müəyyən edək

Addım 3. Formada bir neçə detalı göstərəcəyik

Müştəri - "String" yazın

ClientReturn - "String" yazın

NumberReturn - "String" yazın

StatusReturn - "String" yazın.

Təfərrüatları formada göstərəcəyik.

Addım 4. Gəlin forma əmri əlavə edək " Məlumat əldə etmək üçün»

Komanda işləyicisini təyin edək

&OnClient Proseduru GetData(Command) GetDataOnServer(Client); Prosedurun sonu GetDataOnServer(Client) // Link əsasında WS proksi yaradın və Get() əməliyyatını yerinə yetirin Tərif = Yeni WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proksi = Yeni WSProxy(Tərif, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); Tətbiq Məlumatı = Proxy.GetData(Müştəri); Tətbiq Məlumatı = Müəyyən edilməmişsə ClientReturn = "Müəyyən edilməmiş"; StatusReturn = "Müəyyən edilməmiş"; ReturnNumber = "Müəyyən edilməmiş"; Qayıdış; endIf; CustomerReturn = Application Data.Customer.Name; StatusReturn = Application Data.Status; Qaytarma Nömrəsi = Tətbiq Məlumatı.Numder; Prosedurun Sonu

1C: Müəssisə sistemi digər provayderlər tərəfindən təqdim olunan veb-xidmətlərdən iki şəkildə istifadə edə bilər:

İstifadə etməklə statik konfiqurasiya ağacında yaradılmış bağlantılar;

"artı": yüksək sürət;

"minus": konfiquratordan istifadə edərək WSDL təsvirinin yenidən idxalı və dəyişdirilmiş konfiqurasiyanın saxlanması.

İstifadə etməklə dinamik daxili dil alətləri ilə yaradılmış bağlantılar

(müvafiq olaraq, dinamik olanlar üçün statik olanların "eksiklikləri" "müsbət"dir)

FƏSİLIV

1C:MÜŞƏKİLƏ SİSTEMİNDƏ VEB XİDMƏTLƏRİNİN SAHİB EDİLMƏSİ

Yerli veb xidməti üçün sizə lazımdır:

Addım 1. Faylı 1C sisteminin işlədiyi müştəriyə yerləşdirin webservicecfg.xml aşağıdakı məzmunla

Addım 2. Sənədləşdirmək default. vrd konfiqurasiya əlavə xəttini dərc edin

Addım 3. Konfiquratorda menyu elementini seçin

“Debug” → “Bağlantı” → “Avtomatik qoşulma” → “Serverdə veb xidmətləri”

Addım 4."OK" düyməsini basın

Server seçimi üçün siz həmçinin açarla 1c serverini sazlama rejimində işlətməlisiniz /debug

Veb xidməti, veb xidməti - veb ünvanı ilə müəyyən edilmiş proqram sistemi standartlaşdırılmış interfeyslərlə.

Veb xidmətləri bir-biri ilə və üçüncü tərəf proqramları ilə xüsusi protokollara əsaslanan mesajlar vasitəsilə əlaqə qura bilər =

  • XML-RPC
  • və s.

Veb xidməti, xidmət yönümlü proqram arxitekturasından istifadə edərkən modulluq vahididir.

Ümumi dillə desək, veb-xidmətlər İnternetdə təqdim olunan xidmətlərdir.
Bu istifadədə termin aydınlaşdırma tələb edir, axtarışdan, veb-poçtdan, sənədlərin, faylların, əlfəcinlərin saxlanması və s.
Bu cür veb-xidmətlərdən İnternetə, kompüterə və ya brauzerə daxil olduğunuz yerdən asılı olmayaraq istifadə edilə bilər.

Memarlıq

Şəkildə göstərildiyi kimi, veb xidməti daxilində qarşılıqlı əlaqədə olan üç instansiya var. Gəlin onların adlarını müştəri, podratçı və kataloq (Service Requestor, Service Provider və Service Broker) kimi tərcümə edək.

Xidmət inkişaf etdirildikdə, podratçı onu potensial müştərilərin tapa biləcəyi kataloqda qeyd edir. Müştəri kataloqda uyğun xidmət taparaq, oradan öz WSDL spesifikasiyasını idxal edir və ona uyğun olaraq öz xidmətini inkişaf etdirir. proqram təminatı. WSDL iş prosesi zamanı sifarişçi və podratçı arasında mübadilə edilən sorğu və cavabların formatını təsvir edir. Qarşılıqlı işləməyi təmin etmək üçün aşağıdakı standartlardan istifadə olunur:

  • Strukturlaşdırılmış məlumatların saxlanması və ötürülməsi üçün nəzərdə tutulmuş genişləndirilə bilən işarələmə dili;
  • XML əsaslı mesajlaşma protokolu;
  • : XML-ə əsaslanan veb xidmətin xarici interfeyslərini təsvir etmək üçün dil;
  • Universal kəşf, təsvir və inteqrasiya interfeysi.

Veb xidmətlərinin kataloqu və ictimaiyyətə və ya xüsusi şirkətlərə veb xidmətləri göstərən şirkətlər haqqında məlumat. İndiyə qədər UDDI yalnız kiçik mülkiyyət şəbəkələrində mövcuddur və açıq İnternetdə hələ də geniş istifadəni tapmamışdır.

İnkişaf üsulları

Bölünmüş veb xidmətlərinin inkişafının avtomatlaşdırılması üçün alətlər var iki əsas qrupa bölünür.

Aşağıdan yuxarıya doğru inkişafda əvvəlcə tətbiq sinifləri yazılır və xidməti sənədləşdirən WSDL faylları onların mənbə kodundan yaradılır. Bu metodun dezavantajı Java sinifləri tez-tez dəyişikliklərə məruz qalır. Yuxarıdan aşağıya yanaşmada əvvəlcə WSDL hazırlanır və ondan xidməti həyata keçirən Java sinifinin skeleti yaradılır. Bu yol daha çətin hesab edilir, lakin daha təmiz və daha yaxşı qorunan həllərə gətirib çıxarır. Sifarişçi ilə podratçı arasında mübadilə edilən mesajların formatı dəyişmədikcə, onların hər birindəki dəyişikliklər qarşılıqlı əlaqəni pozmur. Bu texnika bəzən "ilk müqavilə" adlanır, çünki başlanğıc nöqtəsi WSDL (sifarişçi ilə podratçı arasında "müqavilə")dir.

Üstünlüklər

  1. Veb xidmətləri təmin edir platformasından asılı olmayaraq proqram sistemlərinin qarşılıqlı əlaqəsi. Məsələn, Windows C# müştərisi Linux altında işləyən Java serveri ilə əlaqə saxlaya bilər.
  2. Veb xidmətləri açıq standartlar və protokollar əsasında qurulur. XML-dən istifadə sayəsində Veb xidmətlərinin inkişafı və sazlanması asanlığı əldə edilir.
  3. İnternet protokolunun istifadəsini təmin edir Firewall vasitəsilə proqram sistemlərinin HTTP qarşılıqlı əlaqəsi. Bu, CORBA, DCOM və ya Java RMI kimi texnologiyalar üzərində əhəmiyyətli bir üstünlükdür. Digər tərəfdən, veb xidmətləri HTTP ilə sıx bağlı deyil - digər protokollardan istifadə edilə bilər.

Qüsurlar

  1. Daha az məhsuldarlıq və daha böyük ölçüşəbəkə trafiki XML mətn mesajlarının istifadəsinə görə RMI, CORBA, DCOM texnologiyaları ilə müqayisədə. Bununla belə, bəzi veb serverlər şəbəkə trafikini sıxışdırmaq üçün konfiqurasiya edilə bilər.
  2. Təhlükəsizlik Aspektləri. Məsul veb xidmətləri şifrələmədən istifadə etməli və ehtimal ki, istifadəçinin autentifikasiyasını tələb etməlidir. HTTPS-dən istifadənin burada kifayət olub-olmaması və ya XML İmzası, XML Şifrələmə və ya SAML kimi həllərin üstünlük təşkil edib-etməməsi, tərtibatçı tərəfindən qərarlaşdırılmalıdır.

Nümunələr

Aviaşirkətlər və turizm agentlikləri arasında əməkdaşlıq. Birincilər veb xidmətləri vasitəsilə təmin edilir faydalı məlumat, sonuncular müştərilərinə optimal təkliflər axtararkən istifadə edirlər.

Google, 2002-ci ildən 2009-cu ilə qədər müştərilərə eyni şəkildə İnternetdə məlumat axtarmağa imkan verən bir veb xidməti təqdim etdi. daimi istifadəçilər. Rahatlıq baxımından bu, məsələn, Google səhifələrində HTML mətninin avtomatik təhlili ilə müqayisə olunmazdır.

Amazon.com müxtəlif veb-əsaslı xidmətlər təqdim edən veb xidmətinə malikdir (“xidmət kimi” – bulud texnologiyaları)