
- •Государственное образовательное учреждение высшего профессионального образования
- •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.5 Анализ используемых средств
2.5.1 WSO2 Enterprise Service Bus
WSO2 ESB - легковесный, имеет высокую производительность, поэтому именно он лучше всего подходит для использования в системе. На основе анализа, проведенного ранее, был выбран именно этот продукт для реализации SOA в приложении.
2.5.2 WSO2 Application Server
WSO2 Application Server является равноправным WSO2 сервером, включающим хостинг, развертывание и управление различными приложениями. Поэтому WSO2 Application Server поддерживает хостинг веб-приложений, веб-сервисов, служб данных и многого другого.
В основе WSO2 Application Server лежат Apache Tomcat, Apache Axis2 и Apache CXF. В соответствии с упомянутыми фреймворками, WSO2 Application Server использует многие стандарты веб-сервисов, такие как JAX-WS 2.2, JAX-RS 2.0 спецификации, SOAP 1.1 & 1.2, WSDL 1.1 & 2.0, все WS-* стандарты и др.. Аналогичным образом он так же поддерживает широкий спектр транспортных протоколов, в том числе HTTP/S, JMS, SMTP и TCP. Более того, WSO2 Application Server может принимать и обрабатывать сообщения, предназначенные для Axis2 и CXf веб-сервисов (т.е. поддерживает работу с различными веб-сервисами). Поддержка Apache Tomcat сделала возможным его работу в качестве контейнера приложений.
Следующее изображение показывает архитектуру WSO2 Application Server.
Рис. 12. Архитектура WSO2 Application Server
WSO2 Application Server может принимать SOAP и REST сообщения из веб-каналов, в то время как транспортный уровень сервера одновременно прослушивает сообщения от настроенного протокола.
Поскольку в основе сервера лежит фреймворк Axis2, то запросы направляются через канал сообщений, и набор обработчиков будет делать дополнительную обработку сообщений, таких как операции QoS (безопасность, надежный обмен сообщениями, информацией расшифровки и так далее). Полученные сообщения передаются в приемник сообщений, который принимает решение о том, какой веб-сервис должен быть вызван. Кроме того, клиенты веб-приложений могут вызывать веб-приложения, развернутые внутри сервера приложений непосредственно через транспорт Tomcat (HTTP / S).
WSO2 Application Server так же поставляется с полным набором API для разработки приложений, обеспечивающими безопасность, управление данными, управление метаданными и производительностью системы.
Особенности
Хостинг и управление веб-приложениями:
Запуск любого стандартного файла WAR, также получение решений для RESTful сервисов;
Полная административная консоль для WAR файлов;
Комплексное управление безопасностью приложений;
Авторизация через интеграцию с WSO2 Enterprise Service Bus и WSO2 Identity Server;
Источник данных управления для масштабируемого управления данными;
Хостинг и управление веб-сервисами:
Поддержка SOAP, RESTful и JAX-WS сервисов;
Интеграция Apache Axis2 и Apache CXF инструментов веб- сервисов;
Комплексное управление пользователями с помощью интеграции с WSO2 Identity Server;
Встроенная поддержка для сервисов передачи данных;
Кластеризация и репликация HTTP-сессии для веб-служб;
Управление и мониторинг.
Богатый контекст для программирования масштабируемых приложений и сервисов:
Всеобъемлющие простые в использовании API-интерфейсы для разработки корпоративных приложений, освобождающие разработчиков от сложности слежения за безопасностью, производительностью, управлением данными, метаданными и системами управления;
Распределенное кэширование для больших масштабных приложений;
Общий реестр метаданных и хранилище для любой области применения метаданных с помощью встроенного реестра или WSO2 Governance Registry;
JNDI провайдер для доступа к общему источнику данных и других ресурсов;
Распределенный обмен кэшем и метаданными для различных приложений и услуг;
Масштабируемость, легковесность, простота развертывания:
Легкая разработка, отладка и развертывание как приложений, так и сервисов с инструментами для отслеживания сообщений и интерактивного тестирования;
Очень простое управление безопасностью;
Настройка сервера и выбор способа развертывания;
Интеграция с SVN, Maven, Ant и другими стандартными инструментами для разработки и развертывания;
Интегрировано с WSO2 Developer Studio, Eclipse IDE на основе всех продуктов WSO2.
2.5.3 WSO2 Governance Registry
Registry – это компонент управления ресурсами в системе SOA. WSO2 Governance Registry является SOA интегрированным с реестром / репозиторием, обогащен множеством различных возможностей и функций. Все продукты WSO2 включают Registry ядро в WSO2 Carbon, который обеспечивает базовую регистрацию и функциональность репозитория. Ядро Registry определяет пространство реестра, которое используется для хранения данных и сохранения конфигурации. Пространство Registry, отведенное на каждый продукт содержит три основных раздела:
Local Data Repository
Содержит конфигурацию системы, такую как данные времени выполнения, являющейся локальной для одного экземпляра продукта. Например, локальное хранилище данных используется для хранения настроенных конфигураций, которые являются локальными для каждого экземпляра.
Configuration Registry
Является наиболее широко используемым разделом в пространстве реестра, содержит конкретную конфигурацию продукта. Эти конфигурации могут быть разделены между несколькими экземплярами одного и того же продукта (например, кластер из узлов ESB).
Governance Registry
Содержит данные и конфигурацию, общую для всех платформ. WSO2 Governance Registry оставляет использование этой части пространства реестра для хранения сервисов и связанных с ними метаданных, таких как WSDL, схем и конечных точек.
WSO2 Governance Registry предоставляет веб и APP интерфейсы, чтобы делать видимой извне ее функциональность. Встроенный реестр публикует все свои методы через два основных интерфейса:
Registry API Обеспечивает все операции, связанные с ресурсами.
User Manager API
Предоставляет польз-ля/роль и особенности авторизации.
Слой доступа к данным выполняется SQL запросом для взаимодействия с базой данных с целью выполнения различных Registry операций. Registry может быть настроен с многими СУБД, такими как MySQL, MSSQL, Oracle, H2, Derby и т.д. На рисунке ниже показана упрощенная схема архитектуры WSO2 Registry.
Рис. 13. Архитектура WSO2 Registry
Управление жизненным циклом является ключевым аспектом управления в реестре, где ресурсы сохраняются в различных стадиях жизненного цикла, где они могут изменяться в соответствии с требованиями процесса.
2.5.4 WSO2 Carbon
WSO2 Carbon переопределяет связующее программное обеспечение путем предоставления интегрированной и компонентной промежуточной платформы, которая адаптируется к специфическим потребностям любого IT-проекта на предприятии.
Открытый исходный код, основанный на стандартах, WSO2 Carbon позволяет разработчикам быстро организовать бизнес-процессы, создавать приложения и разрабатывать сервисы с использованием WSO2 Developer Studio и обширного спектра бизнес- и технических легко интегрируемых сервисов.
Базовая часть фреймворка WSO2 Carbon функциониует, как "Eclipse for servers" и включает в себя общие возможности, разделяемые всеми продуктами WSO2, такими как встроенный реестр, управление пользователями, протоколы, безопасность, логирование, кластеризацию, кэширование и регулирование сервисов, координации и GUI-фреймворк.
Особенности
Поддержка базовой функциональности Enterprise SOA
Механизмы предоставления и потребления сервисов, посредничество сообщениями, управление сервисами, бизнес-процессами и мониторингом сервисов;
Поддержка стандартов, таких как WS-*, REST и других бинарных и не бинарных протоколов;
Встроенный контроль качества (QoS) возможностей, таких как безопасность, надежность обмена сообщениями и регулирование.
Расширение от клиентов к облаку
Развертывание одного и того же кода как на отдельном WSO2 Carbon сервере, так и на облачной платформе WSO2 Stratos;
Создание многопользовательских приложений с использованием Carbon API, не беспокоясь о сложности, лежащей в его основе.
QoS
Поддержка высокой доступности развертывания;
Горизонтальное масштабирование с помощью кластеризации с использованием серверной архитектуры без состояния;
Динамическое обнаружение сервисов с использованием WS-Discovery.
Синхронизация артефактов через кластеры
Дополнительная поддержка WSO2 Governance Registry в качестве репозитория;
Большое количество серверных артефактов может быть легко развернуто «на одном дыхании».
Управление пользователями через любой Carbon продукт
Поддержка аутентификации и авторизации на основе ролей.
Интеграция с Governance Registry
Управление и контроль крупномасштабного развертывания, в том числе кластерных серверов и облачных реализаций.
Легкая расширяемость и перспективность
Компоненты, не используемые в настоящее время могут быть подключены тогда, когда ИТ-инфраструктура этого потребует;
2.5.5 Java
Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры.
2.5.6 Microsoft SQL Server
Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.