SOA и XML (1032063), страница 4
Текст из файла (страница 4)
Если SOAP-клиенты запрашивают выполнение действия на сервере, то REST-клиенты попросту требуют сам ресурс. Например, вместотого чтобы запрашивать удаленное исполнение функции для нахождения нужного вам формуляразаказа, вы просто запрашиваете этот формуляр, примерно так же, как статичную Web-страницу.С точки зрения теории это вроде бы несущественная разница, но на практике она огромная,особенно в отношении инфраструктуры, необходимой для поддержания каждого из этих подходов.14Технически REST-сервисы можно реализовать при помощи статических HTML-страниц, что попросту неприменимо к SOAP-сервисам.И хотя может случиться так, что REST-запрос вызовет к исполнению удаленный код, создающий возвращаемый XML-отклик, однако данный факт в REST замаскирован лучше, чем уего SOAP-конкурента, который обязательно требует указания той функции, которая будет выполнена.
SOAP-сервисам, как правило (хотя и не обязательно), необходим сервер приложений, такой,как WebLogic компании BEA Systems, WebSphere компании IBM или Tomcat, для разбора XMLзапросов, требуемых по протоколу SOAP, и исполнения соответствующего программного кода. УREST-сервисов таких требований нет, так как желаемый ресурс явно указывается в строке URI. СREST-запросом может быть связана некая бизнес-логика, которая потребует доступа к источникуданных, или же условная логика, основанная на параметрах запроса, хотя это вовсе не обязательно и определяется исключительно внутрикорпоративными стандартами организации, проектнымипрактиками и ограничениями на длину URI.Популярность REST неудивительна, учитывая тот факт, что встраивание REST-сервисов вхостируемый сайт — относительно простой процесс по сравнению с усилиями, требуемыми дляразвертывания инфраструктуры и кода с целью поддержания SOAP-коммуникаций.
Еще в 2003 г.Джефф Бар, пропагандист Web-сервисов из Amazon.com, рассказал, что его компания обрабатываетбольше REST-, чем SOAP-запросов.3.2.2JSON как альтернатива XMLJSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный наJavaScript и обычно используемый именно с этим языком.За счёт своей лаконичности по сравнению с XML, формат JSON может быть более подходящим для сериализации сложных структур. Если говорить о веб-приложениях, в таком ключе онуместен в задачах обмена данными как между браузером и сервером (AJAX), так и между самимисерверами (программные HTTP-интерфейсы).
Формат JSON также хорошо подходит для хранениясложных динамических структур в реляционных базах данных или файловом кэше.Казалось бы, налицо явное преимущество JSON перед XML. Однако, у него есть одиночень важный недостаток: поскольку JSON представляется синтаксически правильным фрагментом кода JavaScript, простейшим способом разбора JSON-данных в JavaScript-программе является использование встроенной в JavaScript функции eval(), которая предназначена для выполненияJavaScript-выражений. При этом подходе отпадает необходимость в использовании дополнительныхпарсеров.Техника использования eval() делает систему уязвимой, если источник используемых JSONданных не является доверенным.
В качестве таких данных может выступать вредоносный JavaScriptкод для атак класса "внедрение кода". С помощью данной уязвимости возможно осуществлять кражу данных, подделку аутентификации, что совершенно недопустимо при использовании в сервисах,например, банковских систем.154Преимущества использования SOA4.1Преимущества использования SOA в целомПрежде чем, перечислить преимущества использования SOA, будет уместным напомнить,что преимущества бывают разные: стратегические и тактические. SOA обладает рядом достоинствкак стратегических, так и тактических.
[4]Стратегическая ценность SOA:– сокращение времени реализации проектов, или "времени выхода на рынок";– повышение производительности;– более быстрая и менее дорогая интеграция приложений и интеграция B2B - остановимсяболее подробно на данном пункте.Известно, что реализация традиционных решений для интеграции прикладных программ непростая задача, требующая существенных капиталовложений. Кроме того, часто при внедрениенеобходимо написание программного кода.
SOA предусматривает размещение сервисов в сети врежиме исполнения, т.е. позволяет автоматизировать эти ресурсоемкие процессы, благодаря чемусущественно сокращаются все расходы на интеграцию.Тактические преимущества SOA:– более простые разработка и внедрение приложений;– использование текущих инвестиций;– уменьшение риска, связанного с внедрением проектов в области автоматизацией услуг и процессов;– возможность непрерывного улучшения предоставляемой услуги;– сокращение числа обращений за технической поддержкой;– повышение показателя возврата инвестиций (ROI).4.2Преимущества SOA перед RESTПропагандисты REST-сервисов утверждают, что они лучше масштабируются и, следова-тельно, лучше справляются с большими объемами обслуживания.
SOAP-сервисы гораздо сильнеезагружают вычислительные ресурсы, поскольку требуют разбора XML-кода и упорядочивания объектов, — а для оптимизации управления и ускорения этих операций необходимо специальное программное и аппаратное обеспечение.
Тогда как REST-сервисы попросту являются HTTP-запросами,а значит, легко контролируются штатными средствами выравнивания нагрузки обычных устройствуправления трафиком уровня 7 (по спецификации уровней приоритета трафика от IEEE), например,16от компаний Cisco Systems, Citrix и F5 Net-works. Мониторинг использования REST-сервисов тожезначительно проще и зачастую менее дорогостоящий, поскольку мониторинг на базе URI уже сталустановившейся технологией; предлагаются как соответствующие коммерческие продукты, так ирешения с открытым исходным кодом.
[6]REST-сервисы проще реализовать, поскольку они базируются на хорошо известных Webпротоколах и не требуют от разработчика изучения WSDL, SOAP и массы других WS-спецификаций,используемых для управления и обеспечения безопасности SOAP-сервисов. Наипростейший RESTсервис можно реализовать за несколько минут — статичный XML-файл, возвращаемый Web-сервисом,это технически и есть REST-сервис, ведь XML-данные запрашивались через HTTP. Это вряд ли может стать оптимальным способом построения вашей сервисной инфраструктуры, но для статичныхили редко меняющихся ресурсов такая возможность весьма привлекательна.Но не все совершенно в мире REST.
Поскольку технология REST базируется на HTTP, тоона несет на себе отпечаток ненадежности этого протокола и невозможности сохранения состояния (его stateless-характера). Здесь-то и пригодились бы сложные WS-спецификации. Безопасный,надежный обмен сообщениями и поддержка транзакций — вот лишь некоторые задачи, решаемыев масштабе предприятия.REST также не обеспечивает стандартизованного механизма доступа к ресурсам, следовательно, вам самому придется определять такие стандарты и обеспечивать их исполнение, а такжеинформировать о способе доступа сервисов к ресурсам своих партнеров, разработчиков и пользователей. Причем вы должны будете своевременно обновлять этот механизм коммуникаций в случаелюбых изменений сервиса.
В мире же SOAP это за вас выполняет WSDL, действуя как динамический контрагент между сервисом и его клиентами.В основе REST лежит концепция ресурсов, в то время как SOA использует интерфейсы, основанные на объектах и методах. Интерфейс SOAP может содержать практически неограниченноеколичество методов; интерфейс REST, напротив, ограничен четырьмя возможными операциями,соответствующими четырем методам HTTP [7].4.3Преимущества SOA на примерахHarley-Davidson вынуждена часто менять свою систему кредитования, чтобы соответство-вать динамике рынка. Так как все её финансовые приложения были тесно взаимосвязаны, введениеновых маркетинговых программ требовало внесения изменений в каждое из них, результатом чегобыло очень медленное выведение новых услуг на рынок.
Разбив финансовое ПО на множествочастей и внедрив между ними интеграционную шину среднего уровня, фирма добилась требуемойгибкости и необходимой скорости реагирования на изменения ключевых показателей рынка.Компания KeyBank имела более 60 приложений, в той или иной форме обрабатывающихотклики клиентов. И каждый такой отклик фактически инициировал самостоятельный процессмаршрутизации информации по различным подразделениям банка, а также независимые друг от17друга изменения, касающиеся данных о клиенте.
Сведение работы всех этих приложений в рамки единой сервисной шины позволило избавиться от противоречивой информации и отслеживатьизменение данных о клиентах в режиме реального времени.British Telecom, оказавшись под давлением рынка, была вынуждена из оператора, предоставляющего телекоммуникационные продукты, превращаться в компанию, ориентированную науслуги для клиентов, которые могли бы обеспечивать конкурентоспособную связь с использованием «последней мили» проводной сети BT. Компания стала разрабатывать такие целенаправленныесервисы, как биллинг или проверка адресов, которые могли быть востребованы конечными пользователями BT либо фирмами, арендующими у неё часть сети.
Сохраняя фокус на клиентах, BTопределила 160 основных услуг, каждая из которых содержала от пяти до десяти операций. Этопомогло ей определить бизнес-процессы и сервисы, из которых они состоят. Сервисы строилисьтаким образом, чтобы они могли быть повторно использованы в различных процессах. В результатеBritish Telecom и 400 клиентов, строящих свой бизнес на основе ее сервисов, смогли использоватьинфраструктуру SOA. Это помогло компании сократить время вывода новой услуги на рынок с 270до 90 дней.Несмотря на то, что тема SOA в России обсуждается уже достаточно давно – с 2006 года,лишь в последние два года мы увидели несколько достаточно крупных успешных внедрений SOAв нашей стране: ВТБ, Вымпелком, Комстар, X5 Retail Group и Аэрофлот. [8]185Выводы по работеСовершенно очевидно, что SOA "набирает обороты". В 2004 году сотрудники Gartner уве-ренно заявили о том, что преобладающей практикой проектирования и разработки компьютерныхпрограмм станет сервис-ориентированная архитектура (с вероятностью 0,7).
Таким образом, SOAположит конец господствовавшей последние 40 лет архитектуре монолитного программного обеспечения.Целый ряд организаций из различных сегментов экономики, включая финансовые услуги, страхование, аэрокосмическую отрасль, здравоохранение, фармацевтику, розничную торговлю,государственный сектор и промышленность, "подняли" Web-сервисы до уровня SOA. В настоящий момент эти организации рассматривают возможность расширения рамок этих проектов - онисобираются внедрить их не только на уровне различных отделов и подразделений, но и во всейкомпаний.В аналитической компании ZapThink справедливо замечают, что до недавних пор реальную пользу - в денежном эквиваленте - от SOA в основном получали аналитики, журналисты иконсультанты.