Изучаем Java EE 7 - [232]
Резюме
Обмен данными между компаниями должен быть безопасным, надежным, совместимым и выполняться с помощью транзакций. Вот почему существовали такие технологии, как CORBA, DCOM, RPC или RMI. По мере широкого внедрения HTTP несколько компаний (W3C, OASIS) разработали веб-службы SOAP как слабосвязанный (XML) стандартный способ общения по сети для предприятий. Сегодня многие организации широко используют веб-службы SOAP для интеграции приложений, запущенных различными внешними организациями (Интернет) или внутренними отделами (интранет).
В этой главе были описаны некоторые связанные с веб-службами SOAP стандарты (WSDL, SOAP и т. д.). Кроме того, мы сосредоточились на таких спецификациях Java EE, как JAX-WS, JAXB, WS-Metadata и т. д. Эти спецификации жизненно важны, если вы хотите скрыть сложность сети и упростить разработку. Оставив эти спецификации позади, JAX-WS использует только небольшой набор аннотаций для регулировки преобразования Java в WSDL.
В конце главы мы рассмотрели пример того, как написать веб-службу, скомпилировать, протестировать (модульное и интеграционное тестирование) и упаковать ее с помощью Maven. Благодаря WSDL и некоторым инструментам можно создать артефакты потребителя для удаленного вызова веб-служб SOAP.
Amazon, eBay, Google, Yahoo! и многие другие компании предоставляют своим клиентам веб-службы SOAP. Но в последние годы они все перешли на веб-службы RESTful (описанные в следующей главе), в основном из соображений производительности.
Глава 15. Веб-службы в стиле REST
Веб-службы SOAP (SOAP, WSDL, WS-*), описанные в предыдущей главе, обеспечивают интероперабельность как в интеграции обмена сообщениями, так и в стиле межпроцессной коммуникации. Веб-службы SOAP, по-прежнему широко используемые в B2B-индустрии, так и не достигли того пика, о перспективе которого в свое время много говорили в Интернете. С развитием Web 2.0 появились новые веб-фреймворки, вместе с которыми стали более востребованы гибкая веб-разработка и пользовательские интерфейсы с обратной связью. В нашу жизнь прочно вошли мобильные устройства, на которых применяются самые разные оригинальные и сетевые приложения для агрегирования данных. HTML5 и JavaScript произвели настоящую революцию в практике интернет-серфинга. В таких условиях значительно повысилась популярность нового вида веб-служб. Это веб-службы с передачей состояния представления, известные как RESTful. Учитывая это, многие ключевые игроки современной Сети, в частности Amazon, eBay, Google и Yahoo! отказались от прежних веб-служб SOAP в пользу RESTful-служб, ориентированных на работу с ресурсами.
Передача состояния представления (REST) — это стиль архитектуры, основанный на принципах работы Сети. Говоря о веб-службах, можно утверждать, что в таком стиле мы стараемся максимально учесть в работе служб характерные черты Сети. Чтобы разработать веб-службу с передачей состояния представления, необходимо хорошо разбираться в протоколе передачи гипертекста (HTTP) и уникальных идентификаторах ресурсов (URI), а также придерживаться определенных принципов проектирования. В сущности, это означает, что каждый URI является представлением определенного объекта. С данным объектом можно взаимодействовать с помощью запросов HTTP GET (для получения его содержимого), DELETE, POST (для создания содержимого) или PUT (для обновления содержимого).
RESTful-архитектуры быстро приобрели популярность, так как они основаны на очень надежном протоколе передачи данных: HTTP. Веб-службы с передачей состояния представления снижают жесткость связи между клиентом и сервером, что позволяет впоследствии развернуть целый REST-интерфейс, не нарушая при этом работу имеющихся клиентов. Веб-службы RESTful, как и протокол, на котором они основаны, не сохраняют состояния и могут задействовать HTTP-кэш и прокси-серверы, чтобы вам было проще справляться с высокими нагрузками, а система могла легко масштабироваться. Более того, выстраивать такие службы сравнительно просто, так как не требуется никакого специального инструментария (в отличие, например, от WSDL).
В начале этой главы мы рассмотрим несколько концепций, которые помогут вам понять, что такое REST. Затем мы объединим весь изученный материал, научимся писать веб-службы с передачей состояния представления и использовать их в работе.
Понятие о веб-службах RESTful
Веб-службы SOAP создавались в расчете на использование сразу нескольких протоколов передачи данных, в том числе HTTP. В результате они задействовали лишь небольшую часть возможностей этого протокола. Напротив, в веб-службах стиля RESTful протокол HTTP имеет центральное значение: они используют его богатые возможности практически в полном объеме. В архитектурах стиля REST каждая информационная единица считается ресурсом, и эти ресурсы адресуются с помощью универсальных идентификаторов (URI). Как правило, идентификаторы представляют собой веб-ссылки. Действия над ресурсами выполняются при использовании ограниченного набора четко определенных операций. REST как стиль клиент-серверной архитектуры разработан для обмена представлениями этих ресурсов с применением определенного интерфейса и протокола. Благодаря данным принципам приложения в стиле RESTful получаются простыми и легковесными, но при этом отличаются высокой производительностью.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.