
- •Государственное образовательное учреждение высшего профессионального образования
- •230201 Информационные системы и технологии
- •Оглавление
- •Введение
- •1. Постановка задачи
- •2. Анализ задачи
- •2.1 Анализ требований заказчика
- •2.2 Анализ архитектуры приложения
- •2.3 Анализ предметной области
- •2.3.1 Сервисная шина предприятия
- •2.3.2 Основы архитектуры soa
- •2.3.3 Составляющие базовой архитектуры soa
- •2.3.4 Роль esb в архитектуре soa
- •2.3.5 Роль веб-сервисов в soa
- •2.4 Анализ существующих аналогов esb технологий
- •2.4.5 Проведение тестов
- •2.5 Анализ используемых средств
- •2.5.7 Фреймворк Spring
- •3. Реализация
- •3.1 Описание архитектуры приложения
- •3.2 Структура базы данных
- •3.3 Реализация классов
- •3.3.1 Диаграмма пакетов
- •3.3.2 Слой dao
- •3.3.3 Контроллер
- •3.3.4 Бизнес логика
- •3.4 Развертывание приложения
- •Заключение
- •Список литературы
2.3.4 Роль esb в архитектуре soa
ESB играет важную роль в архитектуре SOA. По сути, она предоставляет магистральную сеть и инфраструктуру для соединения провайдеров и потребителей сервисов.
Ниже более подробно перечислены роли ESB:
Предоставляет интеграционную инфраструктуру, соответствующую принципам SOA:
Устанавливает явные независимые от реализации интерфейсы для определения сервисов со слабым связыванием.
Использует коммуникационные протоколы, обеспечивающие независимость от месторасположения и способность к взаимодействию.
Способствует определению сервисов, инкапсулирующих повторно используемые бизнес-функциональности.
Предоставляет средства для управления инфраструктурой сервисов.
Функционирует в распределенной среде, поскольку она:
Поддерживает синхронное и асинхронное взаимодействие.
Использует стандартные интерфейсы и стандартные протоколы.
Централизует управление и распределяет обработку.
Поддерживает механизм посредничества для формулирования корректных запросов/ответов между различными участниками взаимодействия без необходимости их изменения.
Реализует защиту и обеспечение качества сервиса в проектах SOA.
2.3.5 Роль веб-сервисов в soa
Хотя веб-сервисы появились до SOA, они представляют собой ответ и реализацию потребности архитектуры SOA в механизме взаимодействия между системами и платформами. Они помогают быстро внедрить и запустить SOA в работу, поскольку уже поддерживают технологии, удовлетворяющие ее потребности. Сегодня очевидно, что веб-сервисы представляют собой основу архитектуры SOA и являются рекомендованной технологией для обеспечения взаимодействия.
Веб-сервисы являются основой архитектуры SOA по следующим причинам:
Они заставляют применять стандарты и тем самым способствуют совместимости и переносимости;
Они не зависят от платформы и языка программирования;
Они поддерживаются повсеместно, что существенно облегчает внедрение SOA;
Они ориентированы на сообщения;
Они обеспечивают более быструю поддержку инструментальными средствами, что ускоряет реализацию SOA.
2.4 Анализ существующих аналогов esb технологий
Проанализировав требования заказчика, было определено:
Приложение должно быть построено на основе SOA;
Использование ESB в приложении;
Необходим сервер приложений.
Таким образом, требуется провести анализ существующих технологий и выбрать именно ту, которая наиболее четко и точно удовлетворяет поставленным требованиям.
Существует множество open-source ESB технологий. Самые известные и используемые из них это:
Mule ESB;
Talend-SE;
UltraESB;
WSO2 ESB.
Ниже представлен обзор этих ESB технологий.
2.4.1 Mule ESB
Mule ESB – корпоративная интеграционная шина с открытым исходным кодом, с более чем 2500 промышленных внедрений, включая 5 из 10 крупнейших мировых банков и более 35% компаний и списка Global 500.
Mule ESB предоставляет разработчикам простой и эффективный инструмент, позволяющий интегрировать приложения и сервисы с минимальными затратами.
Mule ESB – это лёгкая и гибкая платформа, легко адаптируемая в существующую инфраструктуру, так же достаточно надёжная для обеспечения бесперебойной работы самых крупных и требовательных корпоративных реализаций SOA.
Низкие системные требования упрощают внедрение и поддержку.
Работает как под управлением сервера приложений так и без.
Более 100 транспортов и модулей для интеграции с различными системами, протоколами, SOAP и REST сервисами.
Преимуществами Mule ESB является то, что эта технология поддерживает:
Различные серверы приложений, в том числе: JBoss и Apache Tomcat;
СУБД MS SQL Server, которая используется в разрабатываемой системе;
Средства разработки: Eclipse, IntelliJ, IDEA, Maven и т.д.;
Транспорты: SOAP, Email, FTP, Hibernate, HTTP/S, WSDL и т.д.;
Топологии внедрения: ESB, Client/ Server и т.д.;
Безопасность: Spring Security и т.д.;
Контейнеры: EJB3, Spring и т.д.;
Языки: Java, Javascript и т.д.;
Форматы данных: Byte arrays, HTML/XHTML, Java Objects, JSON, XML и т.д.;
Помимо этого, Mule имеет еще несколько продуктов, которые могут помочь в разработке приложения:
Anypoint Service Registry – платформа управления SOA. Позволяет легко организовывать и обнаруживать сервисы, управлять ими на протяжении всего их жизненного цикла, контролировать их работу и обеспечить строгое соблюдение стандартов, политик и контрактов;
Tcat - Enterprise Tomcat, сервер приложений, разработанный на базе Tomcat.
2.4.2 Talend-SE
Talend Open Studio ESB — инновационное средство (на базе Eclipse) для моделирования, настройки и развертывания интеграционных решений, использующее корпоративную сервисную шину с открытым исходным кодом Talend ESB на базе Apache. Talend Open Studio ESB устраняет длинную кривую обучения, типичную для большинства интеграционных инструментов. TOS ESB ускоряет развертывание, повышая тем самым продуктивность разработчиков и позволяя им быстро реагировать на интеграционные требования.
TOS ESB позволяет разработчикам быстро выстраивать интеграционные процессы, путем простого перемещения компонентов в графическую рабочую область, определения связей и отношений между ними и настройки специфических свойств.
Talend ESB Studio предоставляет доступ к библиотеке из 450 коннекторов, поддерживающих все типы источников и конечных систем для интеграции, миграции и синхронизации данных.
Ключевые особенности:
Универсальность и гибкость. Легко разворачиваемые web-сервисы, сервисы данных, REST приложения и сложные маршруты передачи, облегченные пакеты, настраиваемые под любую топологию приложения;
Динамическая маршрутизация;
Высокое представление. Шина обеспечивает высокую пропускную способность в сочетании с прозрачными для клиента средствами восстановления после сбоев и балансировкой нагрузки для гарантии того, что будут соблюдены все принятые соглашения об уровне услуг;
Простота в развертывании. Преднастроена производителем для работы в любом Java окружении.
Функциональные возможности:
Настройка без программирования. Хорошо налаженный контейнер развертывания, установка и конфигурирование, не требующие программирования, повышают продуктивность разработчиков, позволяя программистам концентрироваться на бизнес-логике, а не на сложностях применяемых информационных технологий;
Модульная сборка приложения. Модули из одного проекта в дальнейшем можно использовать и в других проектах;
Поддержка стандартов безопасности веб-сервисов. Talend ESB SE предлагает ряд возможностей для построения безопасности веб-сервисов приложений, применяя при этом принятые отраслевые стандарты для XML шифрования, аутентификации и авторизации;
Командная строка и инструменты для написания скриптов;
Обмен сообщениями. Talend ESB SE снижает затраты на аппаратное и программное обеспечение, позволяя более эффективно использовать вычислительные ресурсы. Каждый брокер сообщения может управлять множеством соединений, наряду с обработкой тысяч сообщений в секунду с минимальной задержкой;
Фреймворк для создания Службы маркеров безопасности (STS). Talend ESB позволяет установить «доверие» между частями приложений, применяя новейшие стандарты безопасности веб-сервисов;
Перехват управления при отказе и балансировка нагрузки. Talend ESB SE обеспечивает автоматический и прозрачный перехват управления при отказе с помощью протокола обнаружения сервисов (Service Locator), а также балансировку нагрузки с помощью динамической регистрации конечных точек и поиск с помощью Apache Zookeeper. Service Locator поддерживает доступность сервиса для удовлетворения требованиям и принятым соглашениям об уровне услуг;
Служба мониторинга активности. Служба мониторинга активности (Service Activity Monitoring) отслеживает возникающие события и сохраняет эту информацию для дальнейшего глубого анализа;
Небольшое дисковое пространство. Шина Talend ESB (под управлением Apache Karaf, занимающая небольшое дисковое пространство, OSGi-ориентированная) предоставляет облегченный контейнер для развертывания различных компонент и приложений. Talend ESB использует ресурсы по минимуму в плане размера загрузки и использования процессора и памяти;
Поддержка транспортных протоколов (HTTP, Servlet, JMS), привязки данных и форматов(XML, JSON), Bindings (SOAP, REST/HTTP);
Поддержка стандартов;
Гибкое развертывание;
Поддержка различных языков программирования.
2.4.3 UltraESB
UltraESB является бесплатным и свободно распространяемым Enterprise Service Bus, впервые выпущенный в январе 2010 года под AdroitLogic Zero-Dollar EULA. С августа 2010 года его исходный код был доступен по лицензии OSI, утвержденный Affero General Public License (AGPL).
Разработка,конфигурирование и тестирование:
С использованием любого IDE, который предпочитает пользователь (IntelliJ IDEA, NetBeans, Eclipse и т.д.);
Интеллектуальное автозаполнение и встроенная в IDE пошаговая отладка;
Отправка более 70 образцов и соответствующих модульных тестов;
Конфигурация ESB с испольщованием APIDirector AdroitLogic без программирования.
Управление и мониторинг:
Все средства управления и мониторинга работает вне ядра ESB экземпляра;
UConsole - веб-консоль управления;
UTerm - интерфейс для администрирования;
Встроенные метрики, оповещения и отладка сбоя подключения;
Автоматизированный шаблон на основе метрик отчетности Zabbix.
Кластеризация и высокая доступность:
Кластеризация на основе Apache ZooKeeper;
Все узлы эквивалентны, отсутствуют специальные узлы управления;
Управление всем кластером через любой подключенный узел;
Репликация состояния и обмен контентом с помощью распределенного кэширования на основе Ehcache.
Технические особенности:
Кэширование файлов на RAM дисках;
Возможность динамической загрузки и перезагрузки единиц развертывания (то есть сервисы, логика посредничества и т.д.) автоматически во времени выполнения.
2.4.4 WSO2 ESB
WSO2 ESB придерживается стандартов веб-сервисов, включая SOAP, WS-*, REST.
WSO2 ESB может выполнять множество операций над сообщениями, проходящими через него, таких как маршрутизация к конечным точкам (endpoints), посредничество (mediation), преобразование, логирование информации, балансировка нагрузки и многое другое. Архитектура WSO2 ESB содержит различные функциональные компоненты, такие как транспорты, последовательности, прокси-сервисы, медиаторы, конечные точки, компоненты QoS (качества обслуживания) и так далее. Прием сообщений в ESB первоначально возлагается на транспортную составляющую, которая поддерживает общие транспортные протоколы, такие как HTTP / S, JMS, VFS, и т.д.
На транспортном уровне получение сообщений идентифицируется тегом content-type и созданием обрабатываемого xml документа с описанием маршрутизации и назначения медиаторов и конвертации к оригинальному формату сообщения путем направления content-type к точке выхода.
Сообщения отсылаются через канал сообщений по транспорту к фреймворку-медиатору(посреднику). В канале аспекты качества обслуживания (например, безопасность и надежность сообщений) добавляются к сообщениям. Обычно посредничество между сообщениями происходит в одном канале сообщений, но в случае с прокси-сервисами каждый из них дожжен поддерживать свой канал сообщений.
Фреймворк-медиатор, разработанный Synapse принимает решение о маршрутизации и трансформации сообщения и внедряет сообщения в различные каналы в зависимости от обозначенных точек назначения. Транспортный слой должен снова позаботиться о преобразовании транспортного протокола, необходимого в ESB. С помощью REST API любую реализацию SOAP сервиса можно представить как REST клиент для сервиса.
Изображение внизу показывает архитектуру WSO2 ESB.
Рис. 5 Архитектура WSO2 ESB
WSO2 ESB имеет следующие особенности: полная поддержка XML и веб-сервисов, высокое качество использования регулирования соединения, неблокированный I/O и модель непрерывного разбора XML. Другой важной особенностью является поддержка событийно-ориентированной архитектуры. Процесс посредничества сообщениями расширяется поддержкой разбиения на части, агрегации, кэширования и регулирования сообщений. WSO2 ESB также обеспечивает всесторонний мониторинг производительности, через консоль управления, а так же через JMX.
Особенности
Подключения
Транспорт: HTTP, HTTPS, JMS, TCP, UDP, FTPS, SFTP и др.;
Форматы и протоколы: JSON, XML, SOAP 1.1, SOAP 1.2, WS-*, HTML, Text, JPEG, все бинарные форматы и др.;
Маршрутизация, посредничество и преобразование
Маршрутизация: на основе заголовка, содержания, основанная на правилах и приоритетно- основанная маршрутизация;
Посредничество: гарантированная доставка сообщений, интеграция с базами данных, публикация событий, логирование и аудит, валидация;
Преобразование: XSLT 1.0/2.0, XPath, XQuery, Smooks.
Сообщения, API и безопасная маршрутизация
Предоставление доступа к существующим приложениям и сервисам через различные протоколы и форматы сообщений;
Виртуализация услуг для слабой связи и управления SOA;
Балансировки нагрузки для обеспечения масштабируемости и отказоустойчивости для обеспечения высокой доступности конечных точек системы;
Централизованное обеспечение и управление безопасностью, в том числе аутентификацией, авторизацией доступом;
Предоставление доступа к сервисам и приложениям через RESTful APIs с управлением ключами.