Шта је ВСДЛ?
Језик описа веб услуга (ВСДЛ) је датотека заснована на КСМЛ-у која у основи говори клијентској апликацији шта веб услуга ради. ВСДЛ датотека се укратко описује шта веб услуга ради и даје клијенту све информације потребне за повезивање са веб услугом и коришћење свих функционалности које пружа веб услуга.
У овом упутству ћемо се усредсредити на последњу тачку која је најважнији део веб услуга, а то је ВСДЛ или језик за опис веб услуга.
ВСДЛ датотека се укратко описује шта веб услуга ради и даје клијенту све информације потребне за повезивање са веб услугом и коришћење свих функционалности које пружа веб услуга.
У овом упутству ћете научити-
- Структура ВСДЛ документа
- ВСДЛ елементи
- Зашто ВСДЛ
- ВСДЛ део поруке
- Повезивање типа порта
- Креирање ВСДЛ датотеке
- Објављивање примера веб услуге
Структура ВСДЛ документа
ВСДЛ документ се користи за опис веб услуге. Овај опис је потребан да би клијентске апликације могле да разумеју шта веб услуга заправо ради.
- ВСДЛ датотека садржи локацију веб услуге и
- Методе које излаже веб услуга.
Сама ВСДЛ датотека може изгледати веома сложено за било ког корисника, али садржи све потребне информације које би било која клијентска апликација захтевала за употребу релевантне веб услуге.
Испод је општа структура ВСДЛ датотеке
- Дефиниција
- ТаргетНамеспаце
- Типови података
- Поруке
- Порттипе
- Везови
- услуга
Овде је кључна ствар коју треба приметити да је дефиниција порука, а то је оно што се прослеђује СОАП протоколом, заправо дефинисана у ВСДЛ документу.
ВСДЛ документ заправо говори клијентској апликацији које су врсте СОАП порука које Веб услуга шаље и прихвата.
Другим речима, ВСДЛ је попут разгледнице која има адресу одређеног места. Адреса садржи податке о особи која је доставила разгледницу. Стога је на исти начин ВСДЛ датотека разгледница која има адресу веб услуге која може да пружи све функције које клијент жели.
… … … … …
Испод је дијаграм структуре ВСДЛ датотеке

ВСДЛ елементи
ВСДЛ датотека садржи следеће главне делове
-
Ознака <типес> користи се за дефинисање свих сложених типова података, који ће се користити у поруци коју размењују клијентска апликација и веб услуга. Ово је важан аспект клијентске апликације, јер ако веб услуга ради са сложеним типом података, тада би клијентска апликација требало да зна како да обрађује сложени тип података. Типови података као што су флоат, бројеви и низови су сви једноставни типови података, али могу постојати структурирани типови података које веб услуга може пружити.
На пример, могао би постојати тип података назван ЕмплоиееДатаТипе који може имати 2 елемента названа „ЕмплоиееНаме“ типа стринг и „ЕмплоиееИД“ типа броја или целог броја. Заједно чине структуру података која тада постаје сложени тип података.
-
Ознака <мессагес> користи се за дефинисање поруке која се размењује између клијентске апликације и веб сервера. Ове поруке ће објаснити улазне и излазне операције које веб услуга може да изврши. Пример поруке може бити порука која прихвата ЕмплоиееИД запосленог, а излазна порука може бити име запосленог на основу наведеног ЕмпоиееИД-а.
-
Ознака <портТипе> користи се за енкапсулацију сваке улазне и излазне поруке у једну логичку операцију. Дакле, могла би постојати операција која се зове „ГетЕффициее“ која комбинује улазну поруку прихватања ЕмплоиееИД-а из клијентске апликације и слања ЕмплоиееНаме као излазне поруке.
-
Ознака <биндинг> користи се за повезивање операције са одређеним типом порта. То је тако да када клијентска апликација позове одговарајући тип порта, тада ће моћи да приступи операцијама које су везане за овај тип порта. Типови порта су попут интерфејса. Дакле, ако клијентска апликација треба да користи веб услугу, она мора да користи обавезујуће информације како би осигурала да се може повезати на интерфејс који пружа та веб услуга.
-
Ознака <сервице> је име дато самој веб услузи. У почетку, када клијентска апликација позове веб услугу, то ће учинити позивањем имена веб услуге. На пример, веб услуга може се налазити на адреси као што је хттп: //лоцалхост/Гуру99/Туториал.асмк . Ознака услуге ће заправо имати УРЛ дефинисан као хттп: //лоцалхост/Гуру99/Туториал.асмк , што ће заправо рећи клијентској апликацији да је веб услуга доступна на овој локацији.
Зашто ВСДЛ
Веб услуга је важна компонента у изради савремених веб апликација. Њихова главна сврха је да вишеструким апликацијама изграђеним на различитим програмским језицима омогуће међусобни разговор. На пример, можемо да имамо .Нет веб апликацију која разговара са Јава апликацијом путем веб услуге.
Веб услуга има следеће кључне карактеристике
- Израђен је помоћу КСМЛ програмског језика. Скоро све модерне технологије као што су .Нет и Јава имају одговарајуће команде које имају могућност рада са КСМЛ-ом. Отуда је КСМЛ узет као најприкладнији језик за изградњу веб услуга.
- Веб услуге комуницирају преко ХТТП-а. ХТТП је протокол који користе све веб апликације. Отуда је било смисла осигурати да веб услуге такође имају могућност рада преко ХТТП протокола.
- Веб услуге одговарају одређеној језичкој спецификацији. Ову спецификацију поставља В3Ц, које је управљачко тело за све веб стандарде.
- Веб услуге имају језик описа познат под називом ВСДЛ, који се користи за описивање веб услуге.
ВСДЛ датотека написана је у обичном старом КСМЛ-у. Разлог што је у КСМЛ-у је тај што датотеку може читати било који програмски језик.
Дакле, ако је клијентска апликација написана у .Нету, разумела би КСМЛ датотеку. Слично томе, ако је клијентска апликација написана на програмском језику Јава, тада би такође могла да тумачи ВСДЛ датотеку.
ВСДЛ датотека је та која све повезује. Из горњег дијаграма можете видети да можете да креирате веб услугу на језику .Нет.
Дакле, овде се услуга примењује. Ако нисте имали ВСДЛ датотеку и желели сте да Јава класа конзумира веб услугу, биће вам потребно много кодирања да бисте то постигли.
Али сада са ВСДЛ датотеком која је у КСМЛ-у, а коју може разумети било који програмски језик, сада можете лако да Јава класа потроши .Нет веб услугу. Стога је количина напора за кодирање знатно смањена.
ВСДЛ део поруке
ВСДЛ се састоји од одељка названог „поруке“ који је означен елементом <мессаге> .
Овај елемент се у основи користи за описивање података који се размењују између веб услуге и клијентске апликације.
Свака веб услуга ће увек имати 2 врсте порука,
- Једна је за улаз веб услуге, а друга за излаз веб услуге.
- Улаз се користи за описивање параметара које веб услуга прихвата. Ово је важан аспект клијентске апликације тако да зна вредности које се шаљу као параметри веб услузи.
- Друга врста поруке је излазна порука која говори које резултате пружа веб услуга.
Свака порука ће заузврат имати елемент <парт> који се користи за описивање параметра који се користе у улазној и излазној поруци.
Испод је једноставан пример како изгледа порука за веб услугу. Функционалност веб услуге је да пружи име „Водич“ након што се „Водич ИД“ пошаље као параметар веб услузи.
- Као што видимо, веб услуга има две поруке, једну за улаз, а другу за излаз.
- Улазна порука позната је као ТуториалНамеРекуест која има један параметар под називом ТуториалИД. Овај параметар је броја типа који је наведен типом броја ксд:
- Излазна порука позната је као ТуториалНамеРеспонсе која има један параметар под називом ТуториалНаме. Овај параметар је типа стринг који је назначен типом ксд: стринг
Повезивање типа порта
Портови се користе у ВСДЛ-у да дефинишу једну комплетну операцију коју нуди веб услуга.
У претходној теми видели смо да је наша веб услуга обезбедила две поруке, једну за улаз под називом „ТуториалНамеРекуест“, а другу за излаз под називом „ТуториалНамеРеспонсе“. Заједно је образац улазне и излазне поруке познат као једна комплетна операција.
ВСДЛ пружа елемент под називом <портТипе> који се користи за дефинисање операција које пружа веб услуга.
Дакле, у нашем горњем примеру можемо приметити следеће:
- Име типа порта који обухваћа операцију дато је као „Туториал_ПортТипе“.
- Сама операција је добила име „Водич“. Дакле, наша операција у основи даје ТуториалНаме ако је ТуториалИД дат као улазни параметар.
- Даље су наше 2 поруке, једна за улаз, а друга за излаз која чини нашу операцију
Поред елемента <портТипе> , постоји и елемент <биндинг> који се користи за дефинисање начина преноса порука.
- Горњи пример показује да се везивање састоји од имена везивања које је у нашем случају дато као „ТуториалСоапБиндинг“. Једноставно повезивање је информација коју клијентска апликација користи да би се заправо повезала са веб услугом. Једном када је стварно везан за веб услугу, он тада може да позове различите операције које су изложене веб услузи.
- Транспортни слој је дат као хттп: // што значи да ће се поруке које ће се преносити преко ХТТП протокола.
Креирање ВСДЛ датотеке
ВСДЛ датотека се креира сваки пут када се веб услуга изгради на било ком програмском језику.
Будући да је ВСДЛ датотеку прилично компликовано генерисати од нуле, сви уредници као што су Висуал Студио за .Нет и Ецлипсе за Јава аутоматски креирају ВСДЛ датотеку.
Испод је пример ВСДЛ датотеке креиране у Висуал Студио-у.
TutorialService
Горња ВСДЛ датотека изгледа веома застрашујуће за сваког корисника, детаљно ћемо покрити различите делове у наредним водичима, али за сада, хајде да сажето погледамо шта сваки одељак ВСДЛ датотеке заправо ради
Објављивање примера веб услуге
Погледајмо сада пример како можемо објавити веб услугу и потрошити је помоћу Висуал Студио-а.
У овом примеру ћемо створити веб услугу са једном ВебМетход. Ова метода ће прихватити Интегер параметар под називом „ТуториалИД“. Веб метода ће тада вратити низ под називом „Веб Сервицес“.
Затим ћемо створити апликацију засновану на конзоли, која ће трошити ову веб услугу и у складу с тим позивати нашу веб методу.
Погледајмо кораке потребне за извођење овог примера.
Корак 1) Први корак је стварање ваше веб услуге. Овде су објашњени детаљни кораци како се израђују веб пројекат Асп.Нет и веб услуга; Следите исте кораке да бисте у складу са тим креирали пројекат и веб услугу. Кључни део је унос доњег кода у датотеку веб услуга.
namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}
Објашњење кода:
- Овде креирамо ВебМетход под називом „Гуру99ВебСервице“. У ову веб методу укључујемо целобројни параметар који треба проследити кад год се ова веб метода позове.
- Следеће дефинишемо променљиву названу „ТуториалНаме“ која ће садржати вредност низа „Веб Сервицес“. Ово је вредност која ће се вратити када се позове веб услуга.
Корак 2) Када дефинишемо датотеку веб услуга, следећи корак је креирање клијентског пројекта који ће трошити ову веб услугу.
Направимо једноставну конзолу која ће позвати ову веб услугу, позвати „Гуру99ВебСервице“ и затим приказати излаз веб методе на екрану дневника конзоле. Следите кораке у наставку да бисте креирали апликацију конзоле.
Кликните десним тастером миша на датотеку решења Висуал Студио и одаберите опцију Додај-> Нови пројекат
Корак 3) У овом кораку,
- Обавезно прво одаберите опцију Висуал Ц # Виндовс. Затим одаберите опцију креирања апликације конзоле.
- Дајте име свом пројекту који је у нашем случају добио назив „ДемоАпплицатион“.
Након што на горњем екрану кликнете на дугме У реду, моћи ћете да видите пројекат у истраживачу решења у Висуал Студио-у.
Корак 4) У овом кораку постављате апликацију ДемоАпплицатион Цонсоле као пројекат покретања. То се ради како би се осигурало да се ова апликација прво покрене када се покрене читав пројекат Висуал Студио. Ова апликација Конзоле ће заузврат позвати веб услугу коју ће аутоматски покренути Висуал Студио.
Да бисте довршили овај корак, кликните десним тастером миша на пројекат ДемоАпплицатион и одаберите опцију „Постави као пројекат за покретање“.
Корак 5) Следећи корак је додавање референце услуге за наш „Гуру99Вебсервице“ у нашу апликацију за конзолу. То је учињено тако да се ДемоАпплицатион може позивати на веб услугу и све веб методе у веб услузи.
Да бисте то урадили, кликните десним тастером миша на датотеку пројекта ДемоАпплицатион и одаберите опцију менија Додај-> Референца услуге.
Корак 6) У овом кораку ћемо пружити различите вредности потребне за додавање наше референце услуге
- Прво морамо одабрати нашу могућност откривања. Ова опција ће аутоматски преузети ВСДЛ датотеку за нашу веб услугу ТуториалСервице.
- Даље, требали бисмо дати име за нашу референцу услуге. У нашем случају, дајемо му име Гуру99Вебсервице.
- Затим морамо проширити опцију ТуториалСервице.асмк како бисмо могли да видимо метод „ГетТуториалСервице“ са десне стране. Овде је ТуториалСервице.асмк назив наше Висуал Студио .Нет датотеке која садржи код наше веб услуге.
- Тада ћемо видети нашу веб методу коју смо имали у нашем веб сервису познатом као „ГетТуториалСервице“
Када кликнемо на дугме „У реду“, сав потребан код за приступ овој веб услузи биће додат у нашу апликацију ДемоАпплицатион Цонсоле, као што је приказано доле.
Снимак екрана показује да је „Гуру99Вебсервице“ успешно додат у нашу конзолу.
Корак 7) Следећи корак је додавање кода у нашу конзолу за приступ веб методу у нашој веб услузи. Отворите датотеку кода Програм.цс која се аутоматски испоручује са апликацијом конзоле и додајте доњи код
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Објашњење кода: -
- Први део је одабир датотеке Програм.цс. Ово је главна датотека коју креира Висуал Студио када се креира апликација конзоле. Ова датотека се извршава када се изврши апликација конзоле (у нашем случају демо апликација).
- Затим креирамо променљиву названу „клијент“ која ће бити постављена на инстанцу наше референце услуге која је креирана у ранијем кораку. У нашем случају, референца услуге је „Гуру99Вебсервице.Гуру99ВебсервивеСоапЦлиент ()“
- Затим своју веб методу називамо 'ГетТуториалСервице' у веб услузи ТуториалСервице. Запамтите да наша метода ГетТуториалСервице 'прихвата целобројни параметар, па само преносимо целобројни параметар веб методи.
- Овај последњи ред је само да би осигурао да екран дневника конзоле остане активан како бисмо могли да видимо излаз. Ова наредба ће само сачекати корисников унос.
Оутпут
Када се прате сви горњи кораци и покрене ДемоАпплицатион, приказаће се доњи излаз.
Из резултата можемо јасно видети да ДемоАпплицатион позива нашу веб услугу и да се низ који враћа веб услуга приказује у нашем дневнику конзоле.
Резиме
- Пуни облик ВСДЛ-а је језик за опис веб услуга
- ВСДЛ документ је документ који се користи за описивање веб услуге. Ово је кључно за било коју клијентску апликацију да зна где се налази веб услуга. Такође омогућава клијентској апликацији да разуме методе доступне у веб услузи.
- ВСДЛ датотека олакшава имплементацију веб услуге у једном програмском језику и позивање из другог програмског језика.
- ВСДЛ документ се обично састоји од поруке. За сваки веб метод постоје две поруке, једна је за улаз, а друга за излаз. Заједно чине операцију.
- Датотеке језика веб услуга (скраћеница од ВСДЛ) се обично креирају у уређивачу који се користи за одговарајући програмски језик.
- Видели смо како можемо да користимо веб услугу у Висуал Студио-у. То се може постићи стварањем другог пројекта који је конзола. Затим додавањем референце услуге, тада можемо приступити веб методама у нашој веб услузи.