Веб сервисы
(web service) - это процедуры которые объединены в
сервисы, которые вызываются удаленно на распределенных системах. Для чего они
нужны, в мире разработок довольно давно применяют термин SOA, основная идея, которой заключается в том,
что бы концентрировать бизнес логику в одном месте посредством веб служб. А многочисленным программам давать
использовать эти веб службы в место того, что бы внедрять один и тот же код во
множество программ. Представьте такую ситуацию, что выявлена ошибка в коде
процедуры, она используется в 100 различных
программах, нам придется обновить процедуру в каждой программе. Т. е.
дать задание на доработку 100 программ, 100 программистам исправить 100
процедур, 100 раз протестировать программу,
накладные расходы возрастают минимум в 100 раз на поддержку программ, по
сравнению с тем, если бы у нас была только одна процедура, которая бы
вызывалась через веб сервис удаленно, поправили процедуру, входящую в веб
сервис и нет больше проблем. Для взаимодействия между программами был придуман
протокол SOAP, который
позволяет писать веб службы на любом языке программирования, а так же клиентов
на языке программирования который вы
предпочитаете использовать. И так мы поняли что, взаимодействовать будут между
собой программы и веб сервисы посредством протокола soap отправляя друг другу сообщения.
Отсюда следует, что нам еще нужен для доставки пакетов, какой-либо
транспортный протокол. В теории говорится, что таким протоколом может быть любой транспортный
протокол, но на практике привязка делается к самому распространённому web протоколу, HTTP. Посмотрим на пример ответа
по протоколу HTTP, сначала
идет заголовок http
ответа,
потом идет сам soap
ответ, он представлен как xml документ:
HTTP/1.1 200
OK
Content-Type: application/xml
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getProductDetails xmlns="http://vit.example.com/ws">
<productID>12</productID>
</getProductDetails>
</soap:Body>
</soap:Envelope>
И так, если у нас есть xml документ, должны быть правила по которым он
составляется, для этого был введен дополнительный язык описания веб сервисов, WSDL. Wsdl описывает типы данных отправляемых и принимаемых
сообщений, операции которые могут быть выполнены, привязку сервисов, описание
ошибок, способы привязки сервиса к протоколам доставки и т.д. Если у нас есть wsdl файл, то используя его описание, мы можем написать
клиентское приложение которое будет работать с веб сервисом. И так что нам
нужно для создания веб сервиса, описать wsdl файл, создать веб сервис на языке программирования,
который удовлетворяет всем его требованиям, написать клиента, используя wsdl файл. При этом нам потребуется работать с xml документами создавая вручную, soap запросы и ответы веб сервиса, такой подход, к написанию веб
служб называется “contract-first”. И так, что бы, не возится с описанием запросов и
ответов soap веб служб, призвали на
помощь технологию преобразования xml документа в bean объекты и обратно – JAXB. Но для некоторых по-прежнему было сложно реализовывать
такой подход, с начала xml файлы потом java классы. Придумали
технологию JAX-WS, которая
позволяет нам идти от обратного, при помощи аннотаций превращать наш класс в
веб службу, а потом автоматически
генерировать и получить wsdl файл настройки, soap запросы и ответы, такой метод разработки принято
называть “contract-last”. Но у него есть один недостаток, если мы изменим
существенно реализацию нашего класса, то мы можем подложить свинью, всем нашим
клиентам, которые до этого работали с нашей веб службой, и они не смогут больше
работать с нашей веб службой, реализация изменилась, изменилась веб служба, изменился wsdl файл, а клиенты нет. Решением этой проблемы
является, появление нескольких версий веб служб, которые придется поддерживать,
что чревато накладными расходами, но за удобство приходится платить такой
ценой. Но самая интересная технология
это JAX-RS или как её еще
называют RESTful веб сервисы, разрабатывается
по технологии “contract-last”. Java классы, описываются так же с помощью аннотаций, веб
сервисы представляются как ресурсы HTTP, уникально
идентифицированные с помощью URI. Запросы делаются с помощью протокола HTTP посредством служебных слов POST, GET, HEAD, PUT, DELETE. JAX-RS может использовать
для обмена данными не только xml формат, но и JSON, что делает его более интересным и привлекательным
с точки зрения веб разработчиков. Ну вот так в целом обстоят дела с языком java и веб сервисами. следующая теория Web Service - XML теория, что нужно знать …
Casino in Queens - JTM Hub
ОтветитьУдалитьJ.T. Casinos at the 군산 출장샵 Downtown Grand at 군산 출장마사지 Brooklyn 충청남도 출장샵 When you travel to New 남원 출장샵 York City, New York 영천 출장안마 to experience gambling and excitement,