Veb xidmətləri nədir və onlar nə üçün vacibdir? Sadə ingilis dilində "veb xidməti" nədir

Aleksandr Kaçanov

Veb xidmətləri ideyası Sun, Oracle, HP, Microsoft və IBM kimi kompüter sənayesinin nəhəngləri tərəfindən hazırlanmışdır. Bu ideya yeni bir şey deyil, lakin proqramların internet üzərindən daxil olmasını asanlaşdırmaqda irəliyə doğru böyük bir addımdır. Standart kommunikasiya formatlarına əsaslanaraq, veb-xidmətlər ümumiyyətlə veb saytları necə yaratmalı olduğumuz barədə anlayışımızı 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 bilər və ondan öz vebsaytında və ya tətbiqində alınan cavabdan istifadə edə bilər.

Deyək ki, hansısa proqramlaşdırma tapşırığını yerinə yetirməliyəmsə və çox məşğulamsa (yaxud təkəri özüm ixtira etmək fikrim yoxdur), mən 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ürərək, sorğumun nəticəsini ehtiva edən cavab almağı gözləyirəm.

Kiminlə işləmişsə isti poçt, artıq bəzi veb-xidmətlərlə qarşılaşıb: Passport istifadəçisinin autentifikasiyası sistemi Microsoft .NET təşəbbüsünə daxil olan xidmətlərdən biridir. pulsuz olaraq mövcuddur ki, veb-sayt yaradıcıları öz saytlarında istifadəçi autentifikasiyasını asanlıqla həyata keçirə bilsinlər.

Əsaslar

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

  • veb-xidmətə cavabdeh olan şəxs öz veb-xidmətinə sorğuların formatını və onun cavablarını müəyyən edir
  • şəbəkədəki istənilən kompüter veb xidmətə 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əqvim qeydinin 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-servislə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ətlər öz mülkiyyət standartlarını və formatlarını inkişaf etdirdilər. İndi isə iş üçün bizə sadəcə köhnə tanış HTTP protokolu ilə ötürülən sadə XML (eXtensible Markup Language) 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.

Veb xidmətləri ilə tərtibatçıların rastlaşdığı digər texnologiyalar (məsələn, DCOM, adlandırılmış borular - adlandırılmış borular, RMI) arasındakı fərq ondan ibarətdir ki, veb xidmətləri açıq standartlara əsaslanır, onları öyrənmək asandır və bu standartlar geniş şəkildə dəstəklənir. bütün Unix 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ərinə (SOAP zərfləri) yığı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 kodludur və başa düşmək kifayət qədər asandır. HTTP vasitəsilə veb xidmətinə göndərilən 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 asandır: bunlar iki parametrdir ( ("poçt kodu") və ("ölkə")) adlı elementin tərkibində olan . Bu element sorğu göndərdiyimiz veb xidmətin adıdır. Mətnin kodlaşdırılması 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 ilə bizim üçün faydalı iş görən bir sorğu yaratdıq. Cavab olaraq, şəbəkə vasitəsilə biz XML-də müəyyən növ cavab alırıq.

İndi UDDI haqqında

SOAP protokolunun sadəliyinə baxmayaraq, onları tapmaq üçün heç bir yolumuz olmasaydı, veb xidmətlərindən çox az istifadə olardı. Xoşbəxtlikdən, IBM, Microsoft və Ariba təşəbbüsü öz üzərilərinə götürərək Universal Təsvir, Kəşf və İnteqrasiya (UDDI) layihəsini 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ərinin telefon kitabçası kimi işləyir. UDDI kataloqunda qeydiyyat pulsuzdur və layihənin təsisçiləri ümid edirlər ki, bu kataloq İnternetdə bütün xidmətlərin təsvirini ehtiva edəcək, beləliklə, istədiyiniz veb-xidməti tapmaq üçün yalnız bir UDDI kataloqu kifayət edəcəkdir.

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 təsdiqini ə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ənin bütün poçt kodlarının 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. Amma məndə bu məlumat yoxdur və düşünürəm ki, belə məlumatların toplanması üçün xeyli pul xərclənməli olacaq.

Verilənlər bazası almaq, öz kodumu yazmaq, bütün məlumatların ardıcıl və düzgün olduğuna əmin olmaq və skriptləri sazlamaq əvəzinə, sadəcə olaraq UDDI kataloquna gedirəm və mənim işimə yaraya biləcək veb xidməti axtarıram. . Http://www.uddi.org/ ünvanına gələrək axtarış apardım və XYZ Corp-dan əla xidmət tapdım.

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ılmışdır), əmin olun ki, xidmət tam olaraq mənə lazım olanı edir. Sonra həmkarlarımdan XYZ Corp.-un reputasiyası barədə soruşuram, öyrənirəm ki, o möhkəmdir və sonra qiymət üçün XYZ Corp ilə əlaqə saxlayıram, əgər xidmətə daxil olmaq üçün qiymət mənim büdcəmə uyğundursa, saytım üçün XYZ Corp-un veb xidmətinə zəng edən sadə JSP səhifəsi yazıram və hey, ani ödəniş burada görünür. sayt.poçt kodu.

Vaxt ayırmağa 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 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 konturunu bəyəndi, 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ə özü də öskürəkdən boğulmağa başlayır. Bu, bu xüsusiyyətin inkişafının çox pul və vaxt tələb edəcəyini və ya belə bir büdcə ilə sadəcə mümkün olmadığını sizə siqnal verən tərtibatçıdır.

Qorxunu at! Mən mərc edə bilərəm ki, İnternetdə artıq sizə tələb olunan 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 özünüz hazırlamaq qiymətindən xeyli aşağı olacaq. Beləliklə, tərtibatçınızı lazımsız baş ağrılarından, müştərinizi isə xilas edirsiniz tullantı pul, sadəcə UDDI kataloqunu gəzməyə bir neçə dəqiqə sərf edir.

Xidmətin inkişafı

Əlbəttə ki, tərtibatçılar sadəcə başqaları tərəfindən yaradılan veb xidmətləri ilə kifayətlənməli deyillər. Aşağıdakı alət dəstlərindən birinin köməyi ilə siz öz veb xidmətinizi yarada və onun xidmətlərini şəbəkənin digər sakinlə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ət dəstlə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 kompilyasiya sistemi (tərtibçilər), kodun icrası (işləmə vaxtı) və kitabxanalar (kitabxanalar) təmin etməklə Microsoft .NET alət dəstini əvəz etməyə çalışır.

Serverlərin və veb-xidmətlərin 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

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 şəkil çox çəhrayıdır. Bunun nəyi pisdir?". Təəssüf ki, veb xidmətlərinin böyük potensialının ödənilməsi üçün bir qiymət var:

  • Məlumat ötürmə formatı kimi XML-dən istifadə mesajlarınızın çox böyük olması ilə nəticələnir: XML teqlərinin özləri çox yer tutur və bu, mesajların yaradılmasında, ötürülməsində və şərhində bizə müəyyən bir yük qoyur.
  • İstifadə etdiyimiz üçü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ətimiz arasında zəncirdə həddən artıq çox etibarsız əlaqələr yaradır.
  • Hal-hazırda az sayda şirkət veb xidmətləri yaradır və çox az şirkət onlardan istifadə edir. Veb xidmətləri sistemini sazlamaq və təkmilləşdirmək hələ çox vaxt aparır.
  • 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 dəqiqləşdirilməsinə hələ bir qədər vaxt lazımdır.

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ə İnternetdəki bütün kompüterlərin tam gücünə çevik giriş imkanı verəcək. Veb saytları yaradanların veb xidmətlərə maraq göstərmələrinin və onlardan nə əldə edə biləcəkləri haqqında daha çox öyrənmələrinin vaxtı gəldi.

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ının inkişafı ilə proqramların yazılmasına müxtəlif yanaşmalar yaranmışdır: 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ə (təkrar istifadə) haqqında danışmağa imkan verir. Xidmət yönümlü yanaşma sadə və ümumi qəbul edilmiş standartların istifadəsini nəzərdə tutur ki, bu da müxtəlif proqramların bir-birinin funksionallığından istifadə etməsinə 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ı-ayrılıqda və ya proqram paketinin bir hissəsi kimi dünyanın istənilən nöqtəsində yerləşdirilə bilər və beləliklə, 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 daha çox açıq-aydın texnologiyadan asılı olmayan interfeyslərlə 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ə çağırıla bilər.

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

XML Veb Xidməti xüsusi veb proqram növüdür ki:

  • veb serverdə yerləşdirilmiş;
  • 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. Bunun əvəzinə onun API-si var, yəni veb xidməti uzaqdan (məsələn, İnternet üzərindən) çağırıla bilən funksiyaları (veb metodları) təmin edir. Veb xidməti son istifadəçilərə xidmət göstərmək üçün nəzərdə tutulmayıb. Onun işi veb proqramlar, GUI proqramları və ya konsol proqramları olsun, digər tətbiqlərə xidmət göstərməkdir.

Veb xidməti real vaxtda səhm qiymətləri haqqında məlumat verə, kredit kartlarını yoxlaya və ya hava haqqında 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 (mətn redaktorundan Microsoft Visual Studio ailəsinə qədər) istifadə etməklə hazırlana bilər.

Ə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 uzaqdan 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 çox uzaqdan çağırış protokolları və texnologiyaları mövcuddur: Microsoft Paylanmış Komponent Obyekt Modeli (DCOM), Obyekt İdarəetmə Qrupunun Ümumi Obyekt Sorğu Broker Arxitekturası (CORBA), Günəşin Uzaqdan Metod Çağırışı (RMI), . NET Remoting, XML Veb Xidmətləri.

Bütün bu komponent yönümlü texnologiyalar (DCOM, CORBA və RMI) uzun illər ərzində İntranet proqramlarında uğurla istifadə olunur. Onlar möhkəm, genişlənə bilən bir arxitektura təmin edir. Bununla belə, bu texnologiyaların İnternetdə istifadəsi ilə bağlı iki əsas 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, konstruktorlara dəstək 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 açıq obyekt metodu çağırışlarına ə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 adın bir hissəsidir, çünki veb xidmətləri və onların müştəriləri məlumat mübadiləsi üçün ondan istifadə edirlər. Veb xidmətləri HTTP, XML (Extensible Markup Language), SOAP (Simple Object Access Protocol - 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 İnternet 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ə Windows müştəriləri tərəfindən əldə edilir. Veb xidmətlərinə ötürülən məlumatlar XML-ə seriallaşdırılır və SOAP paketlərində göndərilir. Bu cür mesajların məzmunu haqqında metadata veb xidmətin WSDL müqaviləsində və XSD sxemlərində saxlanılır. Bu yanaşmanın əsas üstünlüyü metadatanın oxunaqlılığıdır. Tərtibatçı asanlıqla veb xidmətinin 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. Mesaj ötürülməsinə əsaslanan sadə veb xidmətləri arxitekturasından daha mürəkkəbdir. . NET Remoting-ə istinad və dəyər, geri çağırışlar, çoxlu obyekt aktivasiyası və həyat dövrünün idarə edilməsi siyasətləri üzrə keçid parametrləri daxildir. Bu funksiyalardan istifadə etmək üçün müştəri tətbiqi bütün texnologiyalarda təcrübəli olmalıdır. Daxil olan məlumatlar. NET Remoting ikili və ya SOAP formatında göndərilir. Bununla belə, hər halda, ötürülən məlumatın strukturu haqqında metadata ümumi dil işləmə müddətində yer alır. Ümumi dil işləmə vaxtı (CLR) olmadan müştəri tətbiqi . NET Remoting SOAP başlıqları. Yəni. NET Remoting veb xidmətlərindən əhəmiyyətli dərəcədə yüksək tələblərə malikdir.

.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ə başqaları tərəfindən təmin edilən SOAP alətlərindən istifadə etməklə hazırlana bilər.Microsoft ilə veb xidmətlərin yazılması. NET-in iki üstünlüyü var:

  • .NET Framework sinif kitabxanası təmin etməklə və fərdi inkişaf addımlarını 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 tətbiqlərdə yaddaş sızması, səhv başlatılmış göstəricilər və digər tipik proqramlaşdırma problemləri ilə bağlı heç bir problem yoxdur.

yaradılış

Gəlin iki ədədin əlavə edilməsini həyata keçirən sadə AdditionService veb xidmətini inkişaf etdirək. Onun parametr kimi iki tam ədəd götürən və eyni zamanda tam ədədi qaytaran yalnız bir Add metodu olacaq. AdditionService Microsoft .NET Framework istifadə edərək veb xidmətlərinin proqramlaşdırılması üçün bir neçə mühüm prinsip 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) ilə qeydə alınmış xüsusi fayl adı uzantısıdır.
  • ASMX faylları @WebService direktivi ilə başlayır. Bu direktiv ən azı veb xidmətin ibarət olduğu sinfi təyin edən Class atributunu ehtiva etməlidir.
  • Veb xidmət sinifləri isteğe bağlı WebService atributlarına malik ola bilər. IN bu misal belə bir atribut veb xidmətin adını və istifadəçi brauzerdə AdditionService.asmx-ə zəng etdikdə HTML səhifəsində göstərilən təsviri 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ə olaraq buraxılmışdır.
  • HTTP, XML və SOAP "görünməzdir". XML məlumatları və SOAP mesajları .NET Framework tərəfindən idarə olunur.

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) ( qaytar a + b ) )

Kiçik ölçüsünə baxmayaraq, AdditionService.asmx ASP.NET veb serverində quraşdırıldıqda tam veb xidmətidir. Onun metodları SOAP, HTTP GET və HTTP POST ilə işə salını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 çıxarıla 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ərinin seriallaşdırılmasını asanlaşdırır. 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. Bunun səbəbi HTTP GET və POST istifadə edərək mürəkkəb məlumat növlərini veb metoduna ötürə bilməməyinizdir.

Veb xidmətləri sizə öz metodlarınızı çağırmağa imkan verir asinxron. Asinxron zəng, zəngi emal etmək üçün veb xidmətinin nə qədər vaxt aparmasından asılı olmayaraq dərhal geri qayıdır. Asinxron zənglər, zəng uzun müddət işləndikdə 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əngin nəticələrini alır. Nəticə, tətbiq üçün əlverişli vaxtda veb metodu yenidən çağırıldıqda və ya veb xidməti (nümayəndələr mexanizmi) tərəfindən zəng emalının başa çatması haqqında bildirişə abunə olunmaqla əldə edilir.

kimi alətlərdən istifadə etməklə veb xidmətləri yaradıla bilər Microsoft Visual Studio 2005. Veb xidmətləri yaratmaq üçün var 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ə asmx faylı brauzer pəncərəsində 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 onun hansı üsulları ifşa 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əti 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ı) köməyi ilə - yerli veb xidmətlərinin axtarışı üçün fayl mexanizmi, yəni veb serverlərdə yerləşdirilə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 qovluqlarda və bütün daxili alt kataloqlarda veb xidmətləri üçün dinamik axtarışın nəticəsidir. ASP .NET .vsdisco fayl adının uzantısını verilmiş qovluğu və onun alt kataloqlarını asmx və diskoteka üçün axtaran və dinamik şəkildə yaradılmış DISCO sənədini qaytaran HTTP işləyicisi ilə əlaqələndirir. Təhlükəsizlik səbəbi 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.

Bəs qlobal şəbəkədə veb xidmətlərinin axtarışı necədir? 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 tapmağa imkan verən paylanmış verilənlər bazası yaratmaq üçün spesifikasiyanı işləyib hazırlayıblar. 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 əsasında öz 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 ən çox funksionallığı təmin edən proqram komponentidir müxtəlif sistemlər, XML və HTTP Veb xidməti müştəriləri kimi standartları dəstəkləyən yerli və ya 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.

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

Veb xidmətlər 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 üçün məlumatları “paketləmək” üçün istifadə olunur.

FƏSİLI

TƏTBİQ NÜMUNƏSİWEB-"1C: MÜŞƏKİQƏ" SİSTEMİNDƏ XİDMƏT

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

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

HƏLL:

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

Addım 2 Konfiqurasiyaya bəzi yeni obyektlər əlavə edək

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

"Ərizə" sənədi;

"Müraciətlərin statusları" sadalanması.

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

Niyə və niyə XDTO paketi yaradırıq? XDTO mexanizmindən istifadə haqqında daha çox məlumatı "Fəsil 16. Tərtibatçının Təlimatı"nda 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.

“Ümumi” → “XDTO paketləri” filialını genişləndirin → Əlavə edin…

XDTO paketinin adını göstərin " DocumentsData” və onun ad sahəsi http://localhost/request və ya http://192.168.1.76/request (anlaşma və öyrənmə prosesinin asanlığı üçü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 onun 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 elementinin məlumatlarını ötürmək üçün.

- ad ;

2) sənəd- "Ərizə" sənədinin məlumatlarını ötürmək

Bu tip XDTO obyekti aşağıdakı xüsusiyyətlərə malik olacaq:

- 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ə istinaddır;

- Vəziyyət- http://www.w3.org/2001/XMLSchema ad məkanından sətir növü;

- Nömrə- http://www.w3.org/2001/XMLSchema ad məkanından sətir növü.

Addım 4 Konfiqurasiyaya yeni Veb xidməti əlavə edin

"Ümumi" → "Veb xidmətləri" filialını genişləndirin → Əlavə edin ...

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

ad - DocumentsData

URI ad məkanları - 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ı müəyyənləşdiririk " məlumat əldə edin»

Ə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ı - məlumat əldə edin.

Addım 6Əməliyyat məlumat əldə edin ilə Müştəri parametrini təyin edin aşağıdakı dəyərlər xassələri:

Dəyər növü - növü simli http://www.w3.org/2001/XMLSchema ad məkanından;

Transfer istiqaməti - giriş.

Addım 7 Yaradılmış Web xidmətin modulunu açaq və orada bu Veb xidmət ç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 əldə edin ClientReference = Directories.Clients.FindByName(Customer); Əgər Dəyər Doldurulmayıbsa(ClientReference) Onda Müəyyən edilməmiş qayıdın; EndIf; Sorğu = Yeni Sorğu; Request.Text = "İLK SEÇİN 1 | Bilet.İstinad, | NÜMAYƏNDƏ (Bilet.Status) Status, | Bilet.Nömrə |FROM | Sənəd.Bilet AS Bilet |HARA | Bilet.Client = &Müştəri"; Request.SetParameter("Müştəri", ClientReference); QueryResult = Query.Execute(); QueryResult.Empty() varsa, Müəyyən edilməmiş qaytarın; EndIf; Seçim = QueryResult.Select(); Seçim.Next(); Sənəd = Selection.Reference.GetObject(); // XDTO bilet obyekti yaradın Ticket = FactoryXDTO.Create(TicketType); Ərizə.Numder = Nümunə.Nömrə; Müştəri = FactoryXDTO.Create(ClientType); Client.Name = ClientReference.Name; Application.Customer = Müştəri; Application.Status = Seçim.Status; // Qaytarma sorğusu Qaytarma sorğusu; Son funksiyalar

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

Konfiqurator menyu elementi: "İdarəetmə" → "Veb serverdə nəşr".

"Veb xidmətləri" sekmesinde, "Veb xidmətləri dərc et" bayrağını təyin edin və həmçinin yeni Veb xidmətimizin yanındakı qutuyu işarələyin.

FƏSİLII

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

1C: Enterprise-də 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;

Daxiletmə 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 birbaşa 1C-də belə bir adı təyin etdik). Bu modul internet xidməti haqqında bütün lazımi məlumatları ehtiva edir.

Addım 3 Veb xidməti zəng idarəçisi yazın

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

Addım 4 Tətbiqi işə salın və yoxlayın.

FƏSİLIII

İSTİNAD NÜMUNƏSİWEB-"1C: MÜŞƏKİQƏ" SİSTEMİNDƏ XİDMƏT

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

Addım 2 Emal üçün yeni bir forma təyin edirik

Addım 3 Forma üçün bir neçə detalı göstərin

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

ClientReturn - "String" yazın

NumberReturn - "String" yazın

StatusReturn - "String" növü.

Detalları formada göstərəcəyik.

Addım 4 Forma əmrini əlavə edək " Məlumat əldə etmək üçün»

Komanda işləyicisini təyin edin

&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"); RequestData = Proxy.GetData(Müştəri); SifarişData = 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 = RequestData.Customer.Name; StatusReturn = RequestData.Status; ReturnNumber = RequestData.Numder; EndProcedure

1C:Müəssisə 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 iş sürəti;

"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 vasitəsilə yaradılan keçidlər

(müvafiq olaraq, dinamik olanlar üçün statikin "eksiler"i "artılardır")

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. 1C sisteminin işə salındığı faylı müştəriyə qoyun 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 versiyası üçün siz həmçinin açarla 1c serverini debug rejimində işlətməlisiniz /debug

Veb xidmətləri ideyası Sun, Oracle, HP, Microsoft və IBM kimi kompüter sənayesinin nəhəngləri tərəfindən hazırlanmışdır. Bu ideya yeni bir şey deyil, lakin proqramların internet üzərindən daxil olmasını asanlaşdırmaqda irəliyə doğru böyük bir addımdır. Standart kommunikasiya formatlarına əsaslanaraq, veb-xidmətlər ümumiyyətlə veb saytları necə yaratmalı olduğumuz barədə anlayışımızı 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 bilər və ondan öz vebsaytında və ya tətbiqində alınan cavabdan istifadə edə bilər.

Deyək ki, hansısa proqramlaşdırma tapşırığını yerinə yetirməliyəmsə və çox məşğulamsa (yaxud təkəri özüm ixtira etmək fikrim yoxdur), mən 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ürərək, sorğumun nəticəsini ehtiva edən cavab almağı gözləyirəm.

Kiminlə işləmişsə isti poçt, artıq bəzi veb-xidmətlərlə qarşılaşıb: Passport istifadəçisinin autentifikasiyası sistemi Microsoft .NET təşəbbüsünə daxil olan xidmətlərdən biridir. pulsuz olaraq mövcuddur ki, veb-sayt yaradıcıları öz saytlarında istifadəçi autentifikasiyasını asanlıqla həyata keçirə bilsinlər.

Əsaslar

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

  • veb-xidmətə cavabdeh olan şəxs öz veb-xidmətinə sorğuların formatını və onun cavablarını müəyyən edir
  • şəbəkədəki istənilən kompüter veb xidmətə 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əqvim qeydinin 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-servislə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ətlər öz mülkiyyət standartlarını və formatlarını inkişaf etdirdilər. İndi isə iş üçün bizə sadəcə köhnə tanış HTTP protokolu ilə ötürülən sadə XML (eXtensible Markup Language) 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.

Veb xidmətləri ilə tərtibatçıların rastlaşdığı digər texnologiyalar (məsələn, DCOM, adlandırılmış borular - adlandırılmış borular, RMI) arasındakı fərq ondan ibarətdir ki, veb xidmətləri açıq standartlara əsaslanır, onları öyrənmək asandır və bu standartlar geniş şəkildə dəstəklənir. bütün Unix 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ərinə (SOAP zərfləri) yığı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 kodludur və başa düşmək kifayət qədər asandır. HTTP vasitəsilə veb xidmətinə göndərilən 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 asandır: bunlar iki parametrdir ( ("poçt kodu") və ("ölkə")) adlı elementin tərkibində olan . Bu element sorğu göndərdiyimiz veb xidmətin adıdır. Mətnin kodlaşdırılması 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 ilə bizim üçün faydalı iş görən bir sorğu yaratdıq. Cavab olaraq, şəbəkə vasitəsilə biz XML-də müəyyən növ cavab alırıq.

İndi UDDI haqqında

SOAP protokolunun sadəliyinə baxmayaraq, onları tapmaq üçün heç bir yolumuz olmasaydı, veb xidmətlərindən çox az istifadə olardı. Xoşbəxtlikdən, IBM, Microsoft və Ariba təşəbbüsü öz üzərilərinə götürərək Universal Təsvir, Kəşf və İnteqrasiya (UDDI) layihəsini 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 kataloqunda qeydiyyat pulsuzdur və layihənin təsisçiləri ümid edirlər ki, bu kataloq İnternetdə bütün xidmətlərin təsvirini ehtiva edəcək, beləliklə, istədiyiniz veb-xidməti tapmaq üçün yalnız bir UDDI kataloqu kifayət edəcəkdir.

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 təsdiqini ə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ənin bütün poçt kodlarının 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. Amma məndə bu məlumat yoxdur və düşünürəm ki, belə məlumatların toplanması üçün xeyli pul xərclənməli olacaq.

Verilənlər bazası almaq, öz kodumu yazmaq, bütün məlumatların ardıcıl və düzgün olduğuna əmin olmaq və skriptləri sazlamaq əvəzinə, sadəcə olaraq UDDI kataloquna gedirəm və mənim işimə yaraya biləcək veb xidməti axtarıram. . Mən www.uddi.org saytına daxil olanda axtarış aparıram və XYZ Corp-dan əla xidmət tapıram.

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ılmışdır), əmin olun ki, xidmət tam olaraq mənə lazım olanı edir. Sonra həmkarlarımdan XYZ Corp.-un reputasiyası barədə soruşuram, öyrənirəm ki, o möhkəmdir və sonra qiymət üçün XYZ Corp ilə əlaqə saxlayıram, əgər xidmətə daxil olmaq üçün qiymət mənim büdcəmə uyğundursa, saytım üçün XYZ Corp-un veb xidmətinə zəng edən sadə JSP səhifəsi yazıram və hey, ani ödəniş burada görünür. sayt.poçt kodu.

Vaxt ayırmağa 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 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 konturunu bəyəndi, 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ə özü də öskürəkdən boğulmağa başlayır. Bu, bu xüsusiyyətin inkişafının çox pul və vaxt tələb edəcəyini və ya belə bir büdcə ilə sadəcə mümkün olmadığını sizə siqnal verən tərtibatçıdır.

Qorxunu at! Mən mərc edə bilərəm ki, İnternetdə artıq sizə tələb olunan 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 özünüz hazırlamaq qiymətindən xeyli aşağı olacaq. Beləliklə, siz tərtibatçınızı lazımsız başağrılarından, müştərinizi pul israfından, sadəcə olaraq UDDI kataloqunu gəzməyə bir neçə dəqiqə sərf etməkdən xilas edirsiniz.

Xidmətin inkişafı

Əlbəttə ki, tərtibatçılar sadəcə başqaları tərəfindən yaradılan veb xidmətləri ilə kifayətlənməli deyillər. Aşağıdakı alət dəstlərindən birinin köməyi ilə siz öz veb xidmətinizi yarada və onun xidmətlərini şəbəkənin digər sakinlə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ət dəstlə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 kompilyasiya sistemi (tərtibçilər), kodun icrası (işləmə vaxtı) və kitabxanalar (kitabxanalar) təmin etməklə Microsoft .NET alət dəstini əvəz etməyə çalışır.

Serverlərin və veb-xidmətlərin 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

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 şəkil çox çəhrayıdır. Bunun nəyi pisdir?". Təəssüf ki, veb xidmətlərinin böyük potensialının ödənilməsi üçün bir qiymət var:

  • Məlumat ötürmə formatı kimi XML-dən istifadə mesajlarınızın çox böyük olması ilə nəticələnir: XML teqlərinin özləri çox yer tutur və bu, mesajların yaradılmasında, ötürülməsində və şərhində 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ətimiz arasında zəncirdə həddən artıq çox etibarsız əlaqələr yaradır.
  • Hal-hazırda az sayda şirkət veb xidmətləri yaradır və çox az şirkət onlardan istifadə edir. Veb xidmətləri sistemini sazlamaq və təkmilləşdirmək hələ çox vaxt aparır.
  • 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 dəqiqləşdirilməsinə hələ bir qədər vaxt lazımdır.

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ə İnternetdəki bütün kompüterlərin tam gücünə çevik giriş imkanı verəcək. Veb saytları yaradanların veb xidmətlərə maraq göstərmələrinin və onlardan nə əldə edə biləcəkləri haqqında daha çox öyrənmələrinin vaxtı gəldi.

IBM Lotus Domino 7-də Veb xidmətlərindən praktiki istifadə

Veb xidmətləri nədir və onlar nə üçün vacibdir?

Məzmun seriyası:

Bu məzmun # məqalələr seriyasının # hissəsidir: IBM Lotus Domino 7-də Veb xidmətlərindən praktiki istifadə

https://www..jsp?series_title_by=ibm+lotus+domino+7-də veb-xidmətlərdən praktiki istifadə

Bu seriyada yeni məqalələr üçün bizi izləyin.

Texniki məqalələrdə Web xidmətlərinə istinadlara rast gələ bilərsiniz, proqram məhsulları və ya hətta həmkarları ilə dialoqlarda. Göründüyü kimi, kiminsə Veb xidmətlərinə ehtiyacı var və vacibdir, lakin "mesajlaşma üçün son nöqtələr dəstlərinin müəyyən edilməsi üçün XML qrammatikası" kimi təriflərlə tanış olduqdan sonra belə mürəkkəb şeylərə toxunmamaq qərarına gəldiniz.

Xoşbəxtlikdən, Veb xidmətləri, hamısının necə işlədiyinin təfərrüatlarına girmədən hər kəsin başa düşəcəyi şəkildə izah edilə bilər. Veb xidmətlərinin nə olduğunu anlamağa çalışmalısınız, çünki onların (və əlaqəli xidmət yönümlü arxitektura, SOA) İT dünyasında tətbiqlərinin əhatə dairəsi daim genişlənir.

Veb xidmətlərini avtomobil kimi təsəvvür etmək olar: pistonların, eksantrik valların və yanacaq injektorlarının necə işlədiyini texniki səviyyədə bilməyə ehtiyac yoxdur - siz avtomobil ala, onu idarə edə və dostlarınızla avtomobillər haqqında danışa bilərsiniz (əgər əlbəttə, onlar mexanikdir). Veb xidmətləri ilə də eyni şeydir, bir İT mütəxəssisi olaraq, onlara nə üçün ehtiyacınız olduğunu anlamaq üçün sadəcə onların nə olduğunu və necə işlədiyini başa düşməlisiniz.

Gizli aşağı səviyyəli texnologiyalara toxunmadan Veb xidmətləri ilə işləmək indi çox asandır, çünki proqram təminatçıları və açıq mənbə icması son bir neçə il ərzində Veb xidmətləri interfeysini aşağı səviyyəli tapşırıqlardan ayırmaq üçün çox şey ediblər. Bu, uzun XML mesaj formatlama sənədlərini araşdırmadan sadəcə komponentləri birləşdirərək işləməyə imkan verəcək.

Bu məqalələr seriyası Domino tərtibatçılarına IBM Lotus Domino V7.0-da Veb xidmətlərini başa düşməyə və istifadə etməyə kömək edəcək. Bu giriş məqaləsi kifayət qədər ehtiva edir faydalı məlumat, və Veb xidmətlərinin nə olduğunu anlamaq istəyən hər kəs üçün faydalıdır. Lotus Domino V7.0-dakı texnologiyalar tərtibatçılar üçün Veb xidmətləri yaratmağı və istehlak etməyi asanlaşdırır və biz buna daha sonra ətraflı toxunacağıq.

Əvvəlcə Veb xidmətinin nə olduğunu anlayaq.

Veb xidməti nədir?

Sadə dillə desək, Veb xidməti kompüter proqramlarının bir-biri ilə standartlaşdırılmış şəkildə əlaqə saxlamasına imkan verir.

Üç və ya daha çox maşın arasında əlaqə

Nümunələr bir və ya iki maşın daxilindəki əməliyyatlara əsaslansa da, Veb xidmətlərindən bir neçə maşın arasında əlaqə yaratmaq üçün də istifadə edilə bilər. Məsələn, əməliyyatlar aralıq cihaz tərəfindən yönləndirilə və ya saxlanıla bilər və ya bir serverdəki Veb xidmətinə edilən zəng digər serverdəki xidmətə zəngə səbəb ola bilər.

Bu məqalənin sonunda biz real SOA-ya nəzər saldıqda, bir çox maşınlar arasında qarşılıqlı əlaqədə olan Veb xidmətləri haqqında danışacağıq, çünki SOA həmişə belə işləyir.

İnsan söhbəti anlayışı mücərrəd olduğu kimi Veb xidməti də mücərrəd komponentdir. Dialoq iki və ya daha çox insanın bildikləri dildə danışmasını əhatə edir. Onların dili istifadə etdikləri sözləri və bu sözlərin cümlələri necə təşkil etdiyini müəyyənləşdirir. Adətən, dialoq sual-cavab quruluşuna malikdir, o zaman kimsə sual verir və ya bəyanat verir və həmsöhbət ona cavab verir. İnsanlar yaxınlıqda ola, telefonla danışa, bir-birinə poçt və ya söhbət vasitəsilə mesaj göndərə bilər.

Hər halda dialoq var mürəkkəb quruluş və ünsiyyət quran insanların sayından, kommunikasiya texnologiyaları üçün istifadə olunan ünsiyyət dilindən, təbii ki, əgər varsa, müxtəlif yollarla baş verə bilər.

Veb xidmətlərindən istifadə edən kommunikasiyaların strukturuna bu məqalədə toxunacağımız bir çox element daxildir. Bununla belə, ideya adi dialoqdakı kimi qalır - proqramlar bildikləri dildən istifadə edərək, bəzən şəbəkə vasitəsilə ünsiyyət qurur. Proqramlar ya eyni kompüterdə yerləşə bilər, ya da dünyanın müxtəlif yerlərində müxtəlif maşınlarda yerləşdirilə, marşrutlaşdırıcılar və serverlər vasitəsilə İnternet vasitəsilə birləşdirilə bilər. Yaxşı xəbər odur ki, proqramlar və kompüterlər eyni olmamalıdır. Veb xidmətləri ilə eyni noutbukda iki Microsoft .NET proqramı, həmçinin Çindən Linux kompüterində C++ proqramı ilə Kanada iSeries serverində Java proqramı əlaqə saxlaya bilər.

Veb xidmətləri kommunikasiyaları aşağıdakı standart texnologiyalardan istifadə edir:

  • xml. Veb xidmətləri komponentləri tərəfindən istifadə olunan dil (məlumat formatı).
  • SOAP protokolu. Proqramlar arasında mübadilə edilən XML mesajları
  • Veb Xidmətlərin Təsviri Kitabxanası (WSDL). SOAP mesajlarının formatını və onların necə göndəriləcəyini müəyyən edən XML faylı

Universal Təsvir, Kəşf və İnteqrasiya (UDDI) kimi tanınan standart texnologiya da Veb xidmətləri arasında əlaqə yaratmaq üçün istifadə edilə bilər. Biz bunu məqalədə daha sonra nəzərdən keçirəcəyik, lakin UDDI isteğe bağlı olduğu üçün bir çox Veb xidmətləri ondan istifadə etmir.

Bəzi Terminologiya: Veb Xidmətlərin Nəşriyyatı və İstifadəsi

Şərtlərimizi izah etməyə başlamazdan əvvəl gəlin Veb xidmətləri ilə bağlı bəzi terminologiyaya nəzər salaq.

Veb xidmətinin nəşri haqqında danışarkən biz WSDL faylını dərc edən və digər proqramlara müvafiq xidmətdən istifadə etməyə icazə verən proqramı nəzərdə tuturuq. Veb xidmətlərini dərc edən proqramlara provayderlər deyilir.

Veb xidmətindən istifadə haqqında danışarkən biz başqa bir maşında Veb xidmətinə zəng edən proqramı nəzərdə tuturuq. Veb xidmətlərinin istifadəçiləri müştərilər adlanır.

XML: doğma dil

XML Web xidmət komponentləri arasında əlaqə yaratmaq üçün istifadə olunur. Proqramlar arasında göndərilən mesajlar, həmçinin Veb xidmətini təyin edən fayllar XML formatındadır. Şəkil 1 sadə XML faylının strukturunu göstərir.

Şəkil 1. Əsas XML strukturu

Gördüyünüz kimi, fayldakı bəzi məlumatlar (ad, soyad kimi) üçbucaqlı mötərizədə yazılmış etiketlərlə əhatə olunub. John adı kimi göstərilir John. Digər elementlərin, məsələn, elementin içində yerləşdiyi elementlər də var İç-içə elementlər , .

XML-də veb xidmətləri yazmağın bir çox üstünlükləri var, o cümlədən:

  • XML-in strukturu və qrammatikası digər proqramlaşdırma dillərininkinə bənzəyir, ona görə də Veb xidmətləri ilə qarşılıqlı əlaqədə olan proqramlar birbaşa XML fayllarını təhlil etməyə ehtiyac duymur.
  • XML faylları mətn fayllarıdır və insan tərəfindən oxuna bilər (başqa sözlə, XML dilini bilirsinizsə, mətn redaktorunda XML faylını aça və məzmununu başa düşə bilərsiniz). Bu, sazlamaya kömək edə bilər.
  • XML mesajlarda istənilən standart kodlaşdırmadan istifadə etməyə imkan verir ki, siz ingilis, rus və ya yapon dillərində mesaj yaza bilərsiniz.
  • XML sizə ad məkanı adlanandan istifadə etməyə imkan verir ki, orada müəyyən bir adla fayl elementinin istədiyiniz strukturunu əvvəlcədən təyin edə bilərsiniz. Məsələn, siz həmişə float olmalı olan Qiymət elementini və ya iki sətir alt elementini, Adı və Soyadını ehtiva edən ŞəxsinAdı təyin edə bilərsiniz.

    Bundan əlavə, zəruri hallarda ad boşluqları eyni ada malik bir neçə elementin fərqli təriflərə malik olmasına imkan verir. Məsələn, bir ad məkanında StockPrice elementi ticker simvolu və qiyməti ehtiva edə bilər, digər ad məkanında isə o, qiymət simvolundan, gündəlik aşağı və yüksək qiymətdən və 12 aylıq ən yüksəkdən ibarət ola bilər.

XML-in yeganə çatışmazlıqları, əgər həqiqətən çatışmazlıqlardırsa, bunlardır:

  • XML dili sərtdir, ona görə də XML mesajının hər hansı səhv formatlaşdırılması bütün mesajın təhlilinin uğursuzluğuna səbəb olacaq (hətta problemi şərh etmək və ya qaçırmaq asan olsa belə). Bununla belə, XML faylları yaratmaq üçün standart kitabxanadan istifadə edirsinizsə (bu, veb xidmətləri yaratdığınız zaman edirsiniz), kitabxana özü düzgün formatlaşdırmanı yoxlayır.
  • XML mesajı düz mətn faylında saxlanılır və buna görə də onun başqa formatdakı ekvivalentindən (məsələn, bölünmüş, ikili və ya "öz-özünə hazırlanmış" formatda) daha çox yer tutur.

Lakin bu məsələlər XML formatının üstünlükləri ilə müqayisədə əhəmiyyətsizdir.

SOAP: göndərilən mesajlar

Bilirsiniz ki, Veb xidmətləri XML formatında ünsiyyət qurur, lakin bu, problemin yalnız yarısını həll edir. Proqramlar mesajı təhlil edə bilər, lakin təhlil edilmiş nəticə ilə nə edəcəyini necə bilirlər?

Veb xidmətləri üçün XML mesajının formatlaşdırılması qaydalarını təsvir edən təlimat SOAP kimi tanınır. O, mesaj strukturunu müəyyən edir ki, proqramlar məlumatı necə göndərməyi və şərh etməyi bilsin. SOAP mesajının əsas strukturu Şəkil 2-də göstərilmişdir.

Şəkil 2. Əsas SOAP mesaj strukturu

XML-də bu belə görünür:

FOO

Əsas halda sizin SOAP gövdəsi və ötürüləcək məlumatları ehtiva edən bir SOAP paketiniz var. Bəzən əlavə məlumat ehtiva edən isteğe bağlı SOAP başlığı (gövdədən əvvəl paketin içərisində) var.

SOAP təlimatları

SOAP formatının standart olmasına və eyni təlimatlara malik olmasına baxmayaraq, fərqli istehsalçıların bu təlimatları bir qədər fərqli şəkildə həyata keçirə biləcəyini xatırlamaq lazımdır. Məsələn, Apache Axis tərəfindən yaradılan SOAP mesajında ​​ad boşluqlarının və XML-in strukturu Microsoft .NET tərəfindən yaradılan strukturdan çox fərqli ola bilər. Bununla belə, yaxşı yazılmış müştəri və ya server SOAP təlimatlarına uyğun olaraq yaxşı yazılmış istənilən mesajı emal edə bilər.

Bundan əlavə, WSDL 1.1 və WSDL 2.0 təlimatları arasında bəzi mühüm fərqlər var. Yazı zamanı 2.0 təlimatı hələ son mərhələdə olsa da, tezliklə 1.1 versiyasının yerini almağa başlayacaq.

əvvəllər heç vaxt WSDL faylı ilə rastlaşmamısınızsa və onu açıb oxumağa çalışırsınızsa, oradan bütün məlumatları çıxarmaq sizin üçün çətin olacaq, çünki belə bir faylın strukturu olduqca mürəkkəb ola bilər. Metod haqqında bütün məlumatlar (ad, parametrlər, protokol və s.) faylın müxtəlif bölmələrinə səpələnmişdir və SOAP mesajı yaratmaq üçün müştəri tətbiqi tərəfindən toplanmalıdır. WSDL faylının hissələrinin təsviri və onların birgə iş bu məqalədə olmayacaq.

Burada texnologiya yenidən köməyə gəlir. Tərtibatçı olaraq WSDL faylının məzmununu oxumaq, təhlil etmək və anlamaq lazım deyil. Alətlər bu məlumatı sizin üçün əldə edəcək, ona görə də siz sadəcə olaraq xidmətə nə göndərəcəyinizi və nəticələri hara qoyacağınızı başa düşməlisiniz. təkcə siz yox bacararsan kitabxanalardan və alətlərdən istifadə edin, həm də əmin olun Sən ... əcəksən. Bütün Veb xidmət komponentləri üçün çoxlu istisnalar, hıçqırıqlar və mürəkkəbliklər var və siz bunları nəzərdən keçirməlisiniz istifadə edərək Veb xidməti, onun sökülməsi deyil, sonra hər bir komponentin ətraflı öyrənilməsi.

Protokollar: mesajların necə göndərilməsi

Hələ suala toxunmamışıq, bütün bu mesajlar SOAP üzərindən necə ötürülür?

Və onlar adətən HTTP protokolundan istifadə edərək şəbəkə (və/və ya İnternet) üzərindən ötürülür, eyni şəkildə səhifələr serverdən brauzerinizə ötürülür. HTTP həmişə istifadə edilmir (onun əsas rəqibi SMTP-dir, lakin çox geridədir). Veb xidməti tərəfindən istifadə olunan protokol WSDL faylında müəyyən edilir.

Tipik olaraq, WSDL faylında SOAP mesajı göndərmək üçün istifadə olunan protokol HTTP kimi müəyyən edilir. SOAP müştərisi müəyyən edilmiş protokola uyğun olaraq mesajlar göndərir.

Qarşılaşa biləcəyiniz digər Veb xidmətləri şərtləri

Biz artıq əsas şərtləri əhatə etdik, lakin Veb xidmətləri haqqında danışarkən bir neçə daha çox şey eşidə bilərsiniz.

Zəif bağlar

Veb-xidmətlərdən istifadə edən proqramlar adətən xidmətlərlə sərbəst birləşir, yəni proqramın xidmətlərə bağlı olmadığı kimi, proqramın işləməsi üçün lazım olan xidmətlər də ona birbaşa bağlı deyildir. Proqram ehtiyac duyduğu istənilən xidmətdən rahatlıqla istifadə edə bilir və onlar proqramdan - onların cavabına ehtiyacı olan istənilən proqramdan zəng gözləyirlər.

Zəif əlaqələrin real həyat nümunəsi dostlarla nahardır. Bir neçə dost birtəhər öz aralarında razılaşırlar (şəxsən, telefonla, vasitəsilə e-poçt və s.). Restorana hər kəs özü çatır, axşam yeməyindən sonra isə hər kəs öz yeməyinin pulunu ödəyir. Nahar necə keçsə də, son nəticə eynidir - mehriban bir nahar oldu.

Ancaq avtomobil idarə etmək daha sıx əlaqələri olan bir hərəkətdir. Əvvəlcədən müəyyən edilmiş məqsədlərə nail olmaq üçün sabit alətlər dəstiniz var. Qarajdan çıxaraq, arxa sürət qutusunu işə salır və qaza təzyiq edirsiniz. Sola dönərkən sükanı sola çevirirsiniz. Bütün sistem çox dəqiq və əlaqələndirilmiş olduğundan və onun hər bir elementi başqaları ilə əlaqəli olduğundan, eyni şeyi müxtəlif yollarla etmək imkanınız yoxdur.

UDDI

UDDI istənilən sayda proqram tərəfindən təmin edilən Veb xidmətlərinin kataloqunu yaratmaq üçün standartdır. Bu, bir növ Veb xidmət təminatçıları üçün telefon kitabçasına bənzəyir. Müştərilər UDDI reyestrində lazım olan məlumatları axtara bilərlər və reyestr xidmətə qoşulmaq üçün lazım olan məlumatları qaytarır.

UDDI Veb xidmətlərini müəyyən etmək üçün kifayət qədər vacib standart olsa da, onun əhəmiyyəti onun Veb xidmətlərinin isteğe bağlı elementi olması ilə əhəmiyyətli dərəcədə azalır və ondan istifadə edib-etməmək seçimi verildikdə çoxları ondan istifadə etməməyi seçirlər.

Çoxlu daxili Veb xidmətləri olan təşkilatlanmış müəssisə mühitlərinin əksəriyyətində UDDI qeydləri var. Şirkətinizdə mövcud olan Veb xidmətləri haqqında məlumatı özündə əks etdirən UDDI korporativ saytının olması çox gözəldir. Bütün xidmətləri bir araya gətirməklə UDDI sizə onların provayderlərini problemsiz və problemsiz dəyişməyə imkan verir. Müştərilər xidmətləri UDDI vasitəsilə axtarırlarsa, SOAP zəngləri avtomatik olaraq yeni provayderə göndərilir.

Bununla belə, bu komponent Veb xidmətləri arxitekturasında tələb olunmur.

Veb xidmətlərinin təhlükəsizliyi

SOAP və WSDL haqqında oxuyarkən təhlükəsizlik mövzusunun əhatə olunmadığını görə bilərsiniz. Provayder həssas məlumatlarla işləyirsə, xidmətlərə zəng edərkən autentifikasiya necə həyata keçirilir? Axı, aydındır ki, bütün Veb xidmətləri geniş ictimaiyyət üçün əlçatan deyil, elə deyilmi?

Bu, birmənalı cavab vermək asan olmayan vacib bir sualdır. Vəziyyətdən asılı olaraq istifadə edə biləcəyiniz müxtəlif sxemlər var, məsələn:

  • SOAP mesajları düz mətnlə gələ bilər, yoxsa onların şifrələnməsi lazımdır?
  • Sadə giriş və parol identifikasiyası sizin üçün kifayətdirmi, yoxsa güclü və marker əsaslı olmalıdır?
  • Tokenlər istifadə olunursa, onların imzalanması tələb olunurmu və onları SOAP mesajına daxil etməyin düzgün yolu nədir?
  • Bəs müştəri SOAP mesajlarını birbaşa deyil, mesaj növbəsi kimi bəzi ara struktur vasitəsilə və ya başqa bir Veb xidməti vasitəsilə göndərirsə nə etməli?

Həmçinin, mesajlaşma həmişə HTTP-dən istifadə edə bilməz, ona görə də mövcud HTTP təhlükəsizliyinə əlavə olaraq sadəcə Veb xidmətlərinin təhlükəsizliyindən istifadə edə bilməzsiniz.

Veb xidmətlərinin təhlükəsizliyinin bu və digər aspektlərini əhatə edən bir neçə təlimat var: WS-Təhlükəsizlik, WS-Siyasəti, WS-Trust və WS-Məxfilik. Bəzi proqram təminatçıları və komitələr bir neçə ildir ki, bu məsələlər üzərində işləyirlər. Bütün Veb xidmətləri tətbiqləri bütün təhlükəsizlik təlimatlarını dəstəkləməsə də, mövcud təhlükəsizlik standartları adətən ən azı bir neçə əsas təhlükəsizlik yolunu həyata keçirir.

Orta proqram və Enterprise Service Bus

Veb xidmətləri üçün kifayət qədər böyük bir paketə yığılmış, adətən WS-* təlimatları adlanan başqa kifayət qədər böyük standartlar dəsti mövcuddur. Birlikdə bir çox Veb xidmətlərini bir mühitdə birləşdirdiyiniz zaman ortaya çıxan bir çox dizayn problemlərini əhatə edirlər. WS-* standartları aşağıdakı kimi məsələlərlə məşğul olur:

  • Təhlükəsizlik
  • Etibarlılıq
  • Mesaj mübadiləsi
  • Əməliyyatlar
  • Xidmət keyfiyyəti

İstehsal mühitində veb-xidmət müştərisi ilə server arasında mesajlaşma sadə sorğu/cavabdan qat-qat mürəkkəb ola biləcəyi üçün bu sayda standart lazımdır. Məsələn, mesajın provayderə çatdığına və müştəriyə qayıtdığına necə əmin olmaq olar? SOAP sorğusu bir neçə hissədən ibarətdirsə nə etməli? Veb xidmətlərinin digər Veb xidmətlərinə daxil olmasını əhatə edən prosesləri necə idarə edirsiniz? Proqram cavab müddəti tələbləri ilə ardıcıl sorğular göndərirsə nə olacaq?

Böyük proqram təminatçıları üçün bu standartlarla işləmək həm çətinliklər, həm də imkanlar təqdim edir. Bir neçə təchizatçı yuxarıda göstərilən tapşırıqların hamısını və ya ən azı bəzilərini eyni anda yerinə yetirən, tez-tez Enterprise Service Bus və ya ESB kimi adlandırılan bütün Veb xidmətlərinin ara proqram paketlərini marketinq edir. Bu ESB-lər həm də ona görə dəyərlidir ki, onlar eyni təşkilat daxilində çoxsaylı Veb xidmətləri birləşdirə və onların funksionallığını təmin edə, hərəkətlərini qeyd edə və mesajları növbələrdə saxlaya bilərlər.

Xidmət yönümlü memarlıq

Və nəhayət, xidmət yönümlü memarlıq. Əksər hallarda bu, yuxarıda sadalananların hamısının cəmidir: müxtəlif təchizatçıların sərbəst şəkildə birləşdirilmiş Veb xidmətləri, qəbul edilmiş standartlara (bəlkə də ESB-lərlə) uyğun olaraq qarşılıqlı əlaqədə olur və xidmətlərdən məlumatları götürən və müxtəlif üsullarla istifadə edən müxtəlif proqramlar tərəfindən birləşdirir. .

SOA bir proqram arxitekturası olduğundan, onun qurulmasında çoxlu koordinasiya və planlaşdırma var. Bu, sadəcə olaraq bir-birinə qarışan bir dəstə xidmət deyil; bu, xidmətlərin necə bir araya gətirildiyini və dərc edildiyini, hansı idarəetmə alətlərindən və ara proqram təminatından istifadə edildiyini və xidmətlərin və bütövlükdə sistemin necə izləndiyini və idarə olunduğunun təşkilidir.

Daha qlobal baxsanız, SOA da bir düşüncə növüdür. Bu, bizi müstəqil böyük proqramlar haqqında deyil, hər şeyi nəşr oluna və istehsalda istifadə edilə bilən mümkün komponentlər kimi qəbul etməyə məcbur edir. Zəngin proqramlar əvəzinə, siz xüsusi və dəqiq müəyyən edilmiş xidmətlər haqqında düşünürsünüz - bu da Veb xidmətləridir.

Niyə vacibdir?

İndiyə qədər siz Veb xidmətlərinin necə işlədiyi barədə bir-iki şey bilirsiniz - müştəri provayderin WSDL faylını oxuyur, müvafiq olaraq SOAP mesajını formatlayır və göndərir və cavab olaraq başqa bir SOAP mesajı alır. Bəs niyə bu qədər vacibdir? Nə məsələdir?

Xidmətlərin əhəmiyyətinin bir hissəsi, yazıldıqları dillərdən və ya işlədikləri platformalardan asılı olmayaraq, proqramların ünsiyyət qurması üçün standart bir yol təqdim etmələrindədir. Əvvəllər biz müxtəlif proqramlar üçün unikal olan məlumat formatları ilə və ya digər dillərdəki proqramların işləyə bilmədiyi API səviyyəli funksiyalarla işləməli idik. XML-in bütün Veb xidmətləri standartlarından istifadə edilməsi bütün xidmətlərin əlçatan olması və aydın şəkildə müəyyən edilməsi deməkdir.

Əslində, bu, tamamilə fərqli proqramların hamının başa düşdüyü dildə bir-biri ilə asanlıqla ünsiyyət qurmasına imkan verir. Müxtəlif istehsalçıların fərqli texnologiyaları ilə işləyərkən əsas çətinliklərdən biri həmişə bir-biri ilə əlaqə saxlamaq və məlumat mübadiləsi üçün bütün bu müxtəlif proqramları əldə etmək ehtiyacı olmuşdur. İndi bütün tətbiqləriniz Veb xidmətləri təmin edə və/və ya istehlak edə bildiyinə görə, onlar arasında ünsiyyət qurmaq olduqca asandır.

Veb xidmətlərinin digər üstünlüyü ondan ibarətdir ki, müştərilər və satıcılar ünsiyyətə mane olmadan müxtəlif maşınlarda, müxtəlif aparat və proqram təminatından istifadə edə bilərlər. Proqramlar eyni maşındakı digər proqramlar tərəfindən və ya digər maşınlardan istifadə oluna bilər, lakin xüsusi məlumat ötürmə formatından istifadə oluna bilər. Veb xidmətlərə yalnız şəbəkə bağlantısı və XML işləyicisi lazımdır.

Bütün bu amillər birlikdə nəzərə alındıqda, nəticə əhəmiyyətlidir. Şəbəkə üzərindən tətbiqlər arasında əlaqə yaratmaq üçün standart vasitəmiz olduğundan, proqramlarımızı fərqli şəkildə qura bilərik. Təkərin hər dəfə yenidən kəşf edildiyi monolit proqramlar yazmaq əvəzinə, modullardan ibarət proqramlar yaza bilərik.

Məsələn, bir neçə proses haqqında məlumat toplayan, onu qrafiklərə çevirən və istifadəçilərə göstərən böyük proqram əvəzinə biz bir neçə Veb-xidmətdən alınan məlumatları əks etdirən idarə paneli yarada bilərik. Tərtib edilmiş məlumatlar bir və ya bir neçə xidmətdən qəbul edilir və nəticədə yaranan qrafiklər məlumatları götürən və bir növ süjet istehsal edən başqa bir Veb xidməti tərəfindən yaradılır.

İdarə paneli böyük proqramdan sadə interfeysə çevrilir. Yeni komponentlər əlavə etmək istədikdə sadəcə əlavə xidmətlərə müraciət edirik. Fərqli bir diaqrama ehtiyacımız varsa, başqa bir diaqram xidmətinə müraciət edirik. Əgər bizə öyrənmək və ya çeşidləmək imkanı olan daha interaktiv idarə panelinə ehtiyacımız varsa, o zaman idarə paneli istifadəçidən mesajları müvafiq xidmətə ötürə bilər. Biz hətta istifadəçilərin fərqinə varmadan (WSDL faylı dəyişənə qədər) çağırılan xidmətləri tamamilə dəyişə bilərik və panel eyni qalır.

İT mütəxəssisi olaraq siz front-end, xidmət inkişafı və ya hər ikisini inkişaf etdirə bilərsiniz. Hamının birlikdə necə işlədiyini başa düşmək (və ya ən azı bunun nə olduğunu bilmək) belə bir layihə üzərində işləmək üçün vacibdir.

Veb xidmətlərini təqdim etmək və istehlak etməkdə sizə kömək edəcək bir çox alətin olması və sizin üçün bir çox çətin işi görə biləcəyi də yaxşıdır. Bu məqalənin növbəti hissələrində biz IBM Lotus Domino V7.0 istifadə edərək müştərilərə və ya sistemlərə Veb xidmətlərini necə asanlıqla çatdıra biləcəyinizi görəcəyik.