Upload
jolie
View
114
Download
1
Embed Size (px)
DESCRIPTION
Уеб Услуги. Стандарти и Видове уеб услуги Взаимодействие Популярни Java библиотеки. Станислав Овчаров Мусала Софт. Уеб услуги – същност. Какво е уеб услуга ? приложение/функционалност, която може да бъде публикувана, търсена и изпълнена по мрежата Уеб услугите са: - PowerPoint PPT Presentation
Citation preview
Уеб Услуги
Станислав ОвчаровМусала Софт
Стандарти и Видове уеб услугиВзаимодействиеПопулярни 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