SOA и XML (1032063), страница 2
Текст из файла (страница 2)
По сути, она предоставляет магистральнуюсеть и инфраструктуру для соединения провайдеров и потребителей сервисов. [3]Роли ESB:– предоставляет интеграционную инфраструктуру, соответствующую принципам SOA:– устанавливает явные независимые от реализации интерфейсы для определения сервисовсо слабым связыванием.– использует коммуникационные протоколы, обеспечивающие независимость от месторасположения и способность к взаимодействию.– способствует определению сервисов, инкапсулирующих повторно используемые бизнесфункциональности.– предоставляет средства для управления инфраструктурой сервисов.– функционирует в распределенной гетерогенной среде, поскольку она:– поддерживает синхронное и асинхронное взаимодействие.– использует стандартные интерфейсы и стандартные протоколы.– централизует управление и распределяет обработку.– поддерживает механизм посредничества для формулирования корректных запросов/ответовмежду различными участниками взаимодействия без необходимости их изменения.– реализует защиту и обеспечение качества сервиса в проектах SOA.ESB играет важную роль в осуществлении руководства.
К ESB могут быть примененыстратегии системы безопасности и QoS с целью управления их уровнями и разрешения толькодопустимых запросов. В целом ESB играет роль унифицированной платформы, на которой реализуются необходимые стратегии. По своей природе ESB является центром, где возникают все взаимодействия, что делает ее идеальным местом для применения таких правил.
Это, в свою очередь,гарантирует, что каждый участник процесса либо соответствует этим правилам, либо изолируется.1.3Принципы SOASOA характеризуют следующие основные принципы, следование которым позволяет ска-зать является ли информационная система сервис-ориентированной или нет:6– сервисы как компоненты информационной системы, которые публикуют свои интерфейсы(контракты).
Эти контракты являются независимыми от платформы, языка программирования, операционной системы и других технических особенностей реализации. Сервисы взаимодействуют между собой и вспомогательными службами посредством открытых, широкоиспользуемых стандартов;– каждый составляющий информационную систему сервис реализует отдельную бизнес-функцию,которая является логически обособленной, повторяющейся задачей, являющейся составнойчастью бизнес-процесса предприятия;– низкая связанность (loose coupling). Сервисы в системах, построенных на SOA, могут бытьреализованы в независимости от других служб системы, необходимо только знание интерфейса используемых сервисов.1.3.1Сервисы как компоненты информационной системыСервисом называется независимый программный компонент, выполняющий определеннуюзадачу, такую как например «проверить кредитную карточку», не требующей для использованияклиентами какой-то определенной программной технологии.Использование открытых стандартов является важной характерной особенностью SOA.Это значительно уменьшает время подключения нового бизнес-сервиса к существующей системе,так же как и (что является часто крайне важным моментом для предприятий, имеющих богатые наработки за предыдущее время), при внедрении SOA, нет необходимости переписывать или простоотказываться от проверенных годами и действующих решений.Выбор распределенной технологии играет существенную роль.
Использование, например,SNA или DCOM в качестве средства общения сервисов накладывают такое ограничение, при котором все компоненты в системе обязаны использовать SNA или DCOM, что ограничивает применимость системы.Когда же говорят о том, что информационная система следует принципам SOA, то сервис,реализованный, например, на языке Java и работающий в J2EE контейнере должен быть применимдля использования клиентами, реализованными в Windows среде и наоборот.В некоторых источниках можно встретить, что сервис – это что-то крупное, а в другихговорят, что сервис маленький, но их множество может объединяться в стек. Из-за многообразий формулировок и начинается путаница и появляется неопределенность.
На самом деле, сервисможет быть любого размера и не имеет значения. Главное, чтобы это был законченный объект, который будет выполнять необходимые действия и прятать от потребителя услуг внутреннюю работу.Сервис можно воспринимать как функцию, которая может находиться на удалённом компьютере (а может и локально), и при этом выполнять какие-то действия, а входные параметры и7результат будет передаваться по сети. Внешнее приложение (корпоративная программа, WEB браузер или даже небольшая программа на смартфоне) используют этот сервис для получения илиуправления данными.Чтобы внешние программы могли взаимодействовать с сервисом, существует стандартныйпротокол SOAP (Simple Object Access Protocol), который основан на HTTP запросах.
Протоколотправляет серверу запросы (например, POST) по HTTP, внутри которых находится SOAP запросв виде XML схемы. Результат работы сервис возвращает также по HTTP протоколу, в которыйзавернут SOAP ответ в виде XML схемы.1.3.2Сервис выполняет повторяющуюся бизнес функциюКак правило, существующие корпоративные приложения состоят из некоторого числа мо-нолитных модулей, в каждый из которых часто включают реализацию одинаковых фрагментовбизнес-логики, например, в приведенном выше примере страховой компании, начавшей также оказывать финансовые услуги, может быть в страховом и банковском программных модулях производиться расчет скидки на основе клиентских данных, клиентской истории и объема текущей операции. Если же при разработке придерживаться принципов сервис-ориентированной архитектуры,то следует реализовать сервис "расчет скидок»".
А к нему будут обращаться все сервисы, которымнеобходимо рассчитать скидку.Таким образом функциональность используется многочисленными приложениями и существует возможность быстро и относительно просто изменить бизнес-логику, приспосабливая ее кпостоянно меняющимся условиям рынка.Причем изменения необходимо вносить только в один-единственный сервис, и сделанныеизменения одновременно используются всеми клиентскими приложениями.Это и является одним из главных достоинств SOA.Необходимо отметить, что для успешного внедрения и последующего функционированиябазирующейся на SOA системы, при разработке в первую очередь должен быть произведен анализ и описание бизнес-процессов компании. В принципе это достаточно независимые шаги, ведьописанные и отлаженные бизнес-процессы в значительной степени сами по себе являются основойуспешной работы предприятия, являясь своего рода скелетом системы управления.
В этом случаекаждой структурной единице присвоены свойственные только ей функциональные обязанности,предоставляя информацию руководству для принятия управленческих решений и координации работы предприятия в целом. В таком случае автоматизация бизнес-процессов за счет использованияпрограммного обеспечения позволяет дополнительно ускорить их выполнение.Существует бесчисленное количество примеров неудачного или не очень удачного внедрения автоматизированных информационных систем. При анализе этих проектов очень часто становится понятно, что отправной точкой всех неудач является заблуждение, что с внедрением автоматизированной системы решатся все внутренние проблемы на предприятии. В результате на первый8план выходила разработка программного обеспечения, которая автоматизировала существующийбеспорядок.
Процессы управления, несмотря на всю произведенную автоматизацию, по сути оставались прежними.В то время как на самом деле основной причиной этих проблем является отсутствие ясныхи отработанных бизнесс-процессов, регламентирующих безотказную деятельность всех подразделений компании.1.3.3Низкая связанностьНизкая связанность - важный архитектурный принцип при разработке SOA систем. Ис-пользование этого принципа позволяет связывать различные компоненты информационной системы во время ее функционирования с помощью, так называемого, позднего связывания (late binding).Благодаря этой особенности также значительно облегчается внесение изменений в функциональность сервисов, поскольку это совершенно не затрагивает другие сервисы.Благодаря низкой связанности значительно упрощается пошаговое создание корпоративнойсистемы из-за отсутствия барьеров реализации функциональности сервиса за несколько итераций.Возможность динамически подключать новые сервисы, также как и поиск этих сервисовклиентами является также одним из краеугольных принципов системы, построенной на основеSOA.1.4Независимость от языкаТехнология SOA предоставляет великолепную (возможно, даже лучшую) независимостьот всего, а самое главное - от языка программирования и от ОС.
Языки программирования развиваются очень динамично. Еще в начале 2000 годов балом правил С++ и его позиции казалисьнепоколебимы, но к 2008 году пальму первенства отобрал Java. Тогда казалось, что Java занял лидирующие позиции всерьез и надолго, но новинка от Microsoft в виде технологии .NET пусть имедленно, но набирает обороты и каждый год откусывает небольшой кусок пирога от J2EE.В этот момент программисты начинают задумываться – что победит, и какой язык использовать? Можно только догадываться. Но при использовании сервисов абсолютно всё равно, какойязык победит. Один сервис может быть написан на Java, другой на C#, а третий на С++ и все онибудут прекрасно дружить и совместно работать на благо компании.Протокол SOAP, который используется для обмена информацией, базируется на двух открытых стандартах XML и HTTP.
HTTP и XML независимы от платформы, а значит сервисы могутработать на любых платформах, лишь бы там была поддержка TCP/IP. А так как этот протокол реализован практически во всех современных устройствах и ОС, то границ для рассматриваемой9нами архитектуры практически нет. Windows приложение может без проблем обращаться к сервису, работающему на Linux и наоборот, а с помощью браузера к сервису можно обратиться даже смобильного телефона.Большинство новых технологий обязательно старается учитывать то, что код должен использоваться максимально эффективно.