- •Государственное образовательное учреждение высшего профессионального образования
- •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 Развертывание приложения
- •Заключение
- •Список литературы
1. Постановка задачи
Цель работы: анализ существующих инструментов, помогающие при построении приложений, в основе которых лежит ESB. С использованием выбранного инструмента в качестве примера будет разработан модуль для навигационной системы. Функциональность модуля будет включать нахождение парковочного места относительного текущего позиционирования автомобиля. Модуль необходимо внедрить в существующую систему таким образом, чтобы он удовлетворял поставленным требованиям к системе.
Для достижения поставленных целей необходимо решить следующие
задачи:
Определиться с используемыми технологиями;
Также требуется проанализировать и выбрать инструмент для создания модуля, в основе которого будет лежать сервис-ориентированная архитектура.
Разработать базу данных, удовлетворяющую поставленным целям;
Продумать общую архитектуру модуля, который будет удовлетворять поставленным требованиям.
Состав технических средств определен следующим образом:
Сервер базы данных Microsoft SQL Server;
Среда разработки – Java (версия 1.6).
2. Анализ задачи
2.1 Анализ требований заказчика
Разрабатываемое приложение будет предназначено для работы на встроенной системе в автомобиле. Эта система будет подключена к интернет и будет взаимодействовать с водителем автомобиля, который будет получать онлайн услуги во время вождения.
Будет производиться большое количество запросов к различным внешним ресурсам, и число ресурсов будет постоянно расти. Будет так же расти число клиентов, которых надо будет обслуживать. Такие условия и приводят к тому, что система должна быть гибкой, масштабируемой, безопасной и иметь модульную архитектуру, позволяющую обрабатывать миллионы транзакций в день.
Общая схема приложения представлена ниже.
Рис. 1 Обзор архитектуры системы
Основным требованием заказчика является то, что система состоит из трех основных модулей:
Head Unit and Browser – это устройство, которое встроено в автомобиль, внутри него функционирует собственная операционная система, управляющая этим устройством. На базе этой операционной системы есть браузер, позволяющий взаимодействовать с внешними ресурсами. Этот модуль взаимодействует с модулем Vehicle Backend. Взаимодействие осуществляется через мобильное соединение через VPN канал.
Vehicle Backend – этот модуль предназначен для связи различных внешних ресурсов с Head Unit and Browser модулем.
Content and Services – это внешние сервисы и ресурсы из которых система получает информацию.
Описав некоторую структуру приложения, было выдвинуто требование, что приложение будет построено с использованием языка Java как веб приложение с использованием различных технологий (JSP, Spring).
Итак, на основе рекомендаций, требования к разрабатываемому модулю заключаются в следующем:
Удобство и простота в эксплуатации на каждом уровне;
Высокая доступность и надежность всех компонентов;
Надежность: осуществление высокой степени конфиденциальности передаваемой информации;
Масштабируемость: модуль должен быть масштабируемым для поддержки меняющихся требований;
Гибкость: модуль должен быть разработан с возможностью его изменения в плане расширения и улучшения;
Комплексный мониторинг: модуль должен предоставлять соответствующую информацию о выполнении своей работы на каждом уровне, информация затем может быть использована в качестве основы дальнейшего улучшения на каждом уровне (например, улучшение процессов);
Своевременная технология обновления, позволяющая обновить функциональные компоненты для качественного улучшения производительности.
Основные принципы, применяемые в рамках системы для достижения целей:
Модульный подход к системе;
Хорошо продуманный дизайн архитектуры для обеспечения четкого разделения подсистем приложения;
Строгое использование слоев в системе, способствующее гибкости в отношении повторного использования и расширяемости;
Ориентация на сервисы;
Использование стандартизированных интерфейсов на каждом уровне;
