180 likes | 443 Views
Уеб Услуги. Стандарти и Видове уеб услуги Взаимодействие Популярни Java библиотеки. Станислав Овчаров Мусала Софт. Уеб услуги – същност. Какво е уеб услуга ? приложение/функционалност, която може да бъде публикувана, търсена и изпълнена по мрежата Уеб услугите са:
E N D
Уеб Услуги Стандарти и Видове уеб услугиВзаимодействиеПопулярни Java библиотеки Станислав ОвчаровМусала Софт
Уеб услуги – същност • Какво е уеб услуга ? • приложение/функционалност, която може да бъде публикувана, търсена и изпълнена по мрежата • Уеб услугите са: • независими - използват HTTP и XML • самоописателни – в данните се съдържа и тяхната дефиниция • публикувани(UDDI), дефинирани(WSDL)иизпълнявани(SOAP)
SOAP (Simple Object Access Protocol) • SOAP е протокол за отдалечен достъп до обекти, базиран на XML • Примерно SOAP съобщение: <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <OrderItem> <PartNumber>WIDGET204</PartNumber> <Quantity>7</Quantity> <CustomerID>C00215</CustomerID> <OrderItem> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP – Важни характеристики • Лек (lightweight) – изисква единствено възможност за получаване и изпращане на HTTP пакети и за обработка на XML • Построен върху отворени технологии, не зависи от конкретен доставчик, няма доминиращ доставчик на SOAP • Разширяем спрямо транспортния протокол и представянето на данните • Насърчава създаването на слабо-обвързани разпределени приложения
Web Service Description Language (WSDL) • WSDL е XML-базиран език за описание на структурата и достъпа до Уеб Услуги • WSDL е предназначен за машинна (автоматична) обработка • Важни характеристики • Разширяем • Включва стандартни разширения за SOAP като формат на данни и HTTP като транспортен протокол • Подходящ за дефиниране на синхронна и асинхронна комуникация
Видове Уеб Услуги • Стил на уебуслугата • RPC style • Document style • Представяне на данните (encoding) • Literal • Encoded • SOAP Section 5 Encoding
Стил RPC • RPC/Encoded <soap:body> <myMethod> <x xsi:type="xsd:int">5</x> </myMethod> </soap:body> • RPC/Literal <soap:body> <myMethod> <x>5</x> </myMethod> </soap:body>
Стил Document • Document/Literal <soap:body> <xElement>5</xElement> </soap:body> • Document/Literal Wrapped <soap:body> <myMethod> <x>5</x> </myMethod> </soap:body>
Взаимодействие (Interoperability) • Типове данни • числа, дати, масиви • сложни и специфични (custom) типове данни • SOAP Section 5 Encoding • няма формален механизъм за описание и верификация • Свобода и недостатъчност на стандартите
Взаимодействие – Как да го постигнем • Няма универсално решение • Няколко съвета: • винаги използвайте WSDL • използвайте Literal Encoding (вместо SOAP Section 5 Encoding) • използвайте Document Style (вместо RPC Style) • използвайте само библиотеки (toolkits), които се развиват и поддържат постоянно • очаквайте невалидни данни
Взаимодействие – усилия на индустрията • Web Services Interoperability (WS-I) • http://www.ws-i.org/ • WS-I Basic Profile 1.0 • забранява SOAP Encoding • задължава използването на HTTP POST метод • забранява “solicit-response”и“notification” WSDL операции • …..
Стандарти • Основните • SOAP • WSDL • UDDI • Допълнителни, ориентирани към специфични бизнес изизсквания • WS-Security • WS-Reliability • WS-Transaction • WS-Policy • WS-Inspection • ….. • WS-Provisioning • …..
Уеб Услуги с Java - библиотеки • Apache Axis • http://ws.apache.org/axis/ • IBM Emerging Technologies Toolkit (ETTK) • http://www.alphaworks.ibm.com/tech/ettk • Web Services Invocation Framework (WSIF) • http://ws.apache.org/wsif/ • IBM WebSphere Studio • http://www-306.ibm.com/software/awdtools/studioappdev/ • Java Web Services Developer Pack (Java WSDP) • http://java.sun.com/webservices/jwsdp/index.jsp
Apache Axis • Axis предлагаинфраструктура за изграждане на SOAP агенти – клиенти и сървъри • Axis включва: • самостоятелен SOAP сървър • SOAP сървър за J2EE Application Server (Tomcat) • широка поддръжка на WSDL • генериране на Java класове от WSDL • примерни програми • Отворена и разширяема архитектура • Handlers
Уеб Услуги Благодаря Ви за вниманието ! e-mail за контакти: stanislav.ovcharov@musala.com