Модуль для навигационной системы
Анализ существующих инструментов, помогающих при построении приложений, в основе которых лежит ESB. Разработка модуля для навигационной системы, основные требования к нему, структура, обоснование инструментов. Сервис-ориентированная архитектура.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 21.05.2013 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
· Радиус, по которому будет производиться поиск парковочных стоянок относительно текущего положения автомобиля;
· URL-адреса внешних сервисов, к которым будет обращаться приложение для получения информации о парковочных стоянках.
Рис. 9. Структура базы данных (PARKING_FAVORITES, PARKING_RECENTLY_VIEWED)
PARKING_FAVORITES. Содержит информацию о парковках, которые пользователь добавил в избранное:
· Название парковки;
· Тип парковки;
· Код страны;
· Индекс;
· Город;
· Улица;
· Координаты: длину и широту.
PARKING_RECENTLY_VIEWED. Содержит информацию о недавно просмотренных парковочных стоянках. Таблица имеет такую же структуру, как и таблица PARKING_FAVORITES.
3.3 Реализация классов
Диаграмма пакетов
Рис. 10. Диаграмма пакетов
В приложении есть 5 основных пакетов, каждый из пакетов представляет из себя набор интерфейсов и классов, реализующих функциональность определенного слоя:
· Пакет model: содержит классы-сущности для хранения в базе данных;
· Пакет api: содержит интерфейсы, реализующиеся в бизнес-логике;
· Пакет bl: содержит класс с бизнес логикой: основной класс ParkingService и вспомогательные классы для получения данных от внешних сервисов: adac и navi;
· Пакет dao: классы для доступа к данным.
· Пакет ctrl: содержит класс-контроллер, обрабатывающий все запросы, приходящие от клиента.
Слой DAO
Рис. 11. Слой DAO
Описание основных методов
· addFavorites(int, Parking, int):List<Parking> - добавляет парковочную стоянку (объект Parking) в базу данных в таблицу PARKING_FAVORITES. Возвращает список избранных паркингов.
· addRecentlyViewed(int, Parking, int):List<Parking> - добавляет парковочную стоянку (объект Parking) в базу данных в таблицу PARKING_RECENTLY_VIEWED. Возвращает список недавно просмотренных паркингов.
· getFavoriteParkings(int):List<Parking> - получает список паркингов из таблицы PARKING_FAVORITES для конкретного пользователя.
· getRecentlyViewedParkings(int):List<Parking> - получает список паркингов из таблицы PARKING_RECENTLY_VIEWED для конкретного пользователя.
· getServiceOptions():ServiceOptions - получает специфические опции, присущие данному сервису для конкретного пользователя.
Контроллер
Рис. 12. Контроллер
Класс-контроллер, обрабатывающий все запросы, приходящие от клиента.
Описание основных методов
· addToFavorites(HttpServletRequest, HttpServletResponse, String): void - вызывает метод сервиса ParkingService, который добавляет конкретную парковку к списку избранных для конкретного пользователя. Сохранение в таблицу PARKING_FAVORITES.
· getGeoLocationsForAddress(HttpServletRequest, HttpServletResponse, String): void - вызывает метод сервиса ParkingService, который получает список местонахождений по конкретному адресу.
· getLocationHistory(HttpServletRequest, HttpServletResponse, String): void - вызывает метод сервиса ParkingService, который получает информацию о запросах по нахождению парковок от конкретного пользователя.
· getParkingById(HttpServletRequest, HttpServletResponse, String): void - вызывает метод сервиса ParkingService, который получает парковку (объект Parking) по Id.
· nearGeoLocation(HttpServletRequest, HttpServletResponse, Double, Double, Double, String, boolean, boolean, Integer): void - вызывает метод сервиса ParkingService, который получает информацию о местонахождениях парковок расположенных по определенным параметрам (долгота, широта, заданный радиус и т.д.).
· removeAllFavorites(HttpServletRequest, HttpServletResponse): void - вызывает метод сервиса ParkingService, который удаляет все избранные парковки конкретного пользователя.
· removeAllRecentlyViewed(HttpServletRequest, HttpServletResponse): void - вызывает метод сервиса ParkingService, который удаляет все недавно просмотренные парковки конкретного пользователя.
· removeFromFavorites(HttpServletRequest, HttpServletResponse, int): void - вызывает метод сервиса ParkingService, который удаляет избранную парковку по Id.
· removeFromRecentlyViewed(HttpServletRequest, HttpServletResponse, int): void - вызывает метод сервиса ParkingService, который удаляет недавно просмотренную парковку по Id.
· resetLocationHistory(HttpServletRequest, HttpServletResponse): void - вызывает метод сервиса ParkingService, который стирает историю запросов по месту.
· setFavorites(HttpServletRequest, HttpServletResponse, String): void - вызывает метод сервиса ParkingService, который добавляет текущую парковку в список избранных.
Бизнес логика
Рис. 13. Диаграмма пакетов бизнес логики
Рис. 14. Диаграмма класса сервиса ParkingService бизнес логики
Описание основных методов.
Класс ParkingService. Описанные ниже методы используется в контроллере. Класс ParkingService инжектится в контроллер.
· addToFavorites(int, String, String): boolean - добавляет конкретную парковку к списку избранных для конкретного пользователя. Возвращает true при успешном выполнении, иначе false.
· getGeoLocationsForAddress(int, String): List<GeoLocation> - получает список местонахождений (GeoLocation) по конкретному адресу.
· getLocationHistory(int): List<LocationEntry> -получает информацию о запросах по нахождению парковок от конкретного пользователя.
· getParking (int, String, String): void - получает парковку (объект Parking) по Id.
· nearLocation(int, IGeoPoint, Double, String, String, boolean, boolean, int): PagedResult<Parking> -получает информацию о местонахождениях парковок расположенных по определенным параметрам (долгота, широта, заданный радиус и т.д.). Имеется аналогичный метод, но с другим набором параметров.
· removeAllFavorites(int): void -удаляет все избранные парковки конкретного пользователя.
· removeFromFavorites(int, int): void - удаляет избранную парковку по Id.
· removeFromRecentlyViewed(int, int): void - удаляет недавно просмотренную парковку по Id.
· resetLocationHistory(int): void - стирает историю запросов по месту.
· setFavorites(int, List<String>, String): void - добавляет текущую парковку в список избранных.
Рис. 15. Диаграмма классов для провайдера
Здесь изображена диаграмма классов провайдера: интерфейс и его реализация. В соответствии со спецификой работы с внешними сервисами, потребовалось выделить два провайдера, каждый из которых обрабатывает требуемую информацию и преобразовывает ее к необходимому формату для дальнейшей передачи этой информации приложению и ее обработки соответствующим образом. На диаграмме изображен один провайдер для демонстрации его функциональности - EuropeProvider.
Основные методы.
· convertParking(ParametersGetParkingPlaceInfoByIdOutput):Parking - преобразовывает входящую информацию по определенным входным данным к объекту Parking.
· convertParkings(ArrayOfParametersSearchForParkingPlaceByGeoInfoOutput, int, int): List<Parking> - преобразовывает входящую информацию по определенным входным данным к объекту List<Parking>.
· convertGeoLoc(ParametersGetLocationCoordinatesOutput):GeoLocation - преобразовывает входящую информацию по определенным входным данным к объекту GeoLocation.
· convertGeoLocs(ArrayOfParametersGetLocationCoordinatesOutput): List<GeoLocation> - преобразовывает входящую информацию по определенным входным данным к объекту List<GeoLocation>.
· isConnected():boolean - проверка на удачное соединение с провайдером.
API
Рис. 16. API
3.4 Развертывание приложения
Рис. 17. Диаграмма развертывания
На рис. 16 изображена диаграмма развертывания модуля парковки приложения.
Имеется узел «Carbon Server Claster» DeviceGateway со средой исполнения WSO2 ESB. На данном WSO2 ESB разворачивается web.xml. Данный артефакт является прокси-сервисом, который определяет источник запроса и перенаправляет запрос к нужному сервису.
Имеется узел «Carbon Server Claster» EndUserService с сервером приложений WSO2 AS. На сервере приложений разворачивается артефакт web.war. Web.war содержит внутри себя следующие артефакты:
· parking-enduser-api.jar (содержит классы api);
· parking-enduser-business.jar (содержит классы c бизнес логикой модуля);
· parking-enduser-presentation.jar (содержит класс контроллера, который принимает все запросы от внешнего устройства и обрабатывает их соответствующим образом);
Имеется узел «Carbon Server Claster» ServiceIntegration со средой исполнения WSO2 ESB. На данном WSO2 ESB разворачиваются два прокси-сервиса адаптера. Это артефакты PY_EuropeAdapter.xml и PY_JapanAdapter.xml. Эти два прокси-сервиса работают с внешними сервисами. При обращении к внешнему сервису обращение идет не напрямую, а через PY_EuropeAdapter и PY_JapanAdapter (в зависимости от страны). Главная задача прокси-сервиса - перенаправление запроса. Для каждого внешнего сервиса используется свой прокси.
Помимо вышеперечисленного имеется еще два артефакта: apps-web-main-carbon.car и parking-enduser.car. Apps-web-main-carbon.car разворачивается на WSO2 AS и WSO2 ESB и содержит в себе web.war и web.xml. Parking-enduser.car разворачивается на другом WSO2 ESB и содержит в себе два артефакта: PY_EuropeAdapter.xml и PY_JapanAdapter.xml.
Также есть узел - сервер базы данных MS SQL 2008.
Заключение
В рамках данной работы был проведен анализ существующих инструментов, помогающих при построении приложений, в основе которых лежит ESB. С использованием продукта WSO2 был разработан модуль для навигационной системы.
В ходе реализации были решены следующие задачи:
· Были определены используемые технологии;
· Была разработана база данных, удовлетворяющая поставленным целям;
· Была продумана общая архитектура модуля, который будет удовлетворять поставленным требованиям.
На основе решенных задач был создан модуль для системы навигации, который был внедрен в существующую навигационную систему. Он полностью удовлетворяет поставленным требованиям системы. Модуль предоставляет пользователю возможность нахождения парковочного места относительного текущего позиционирования автомобиля. Модуль позволяет искать парковочные стоянки по заданным критериям поиска, предоставлять информацию о них, добавлять эти парковочные стоянки в список избранных, хранить их в системе.
Список литературы
1. Craig Walls. Spring in Action. Third Edition.- Manning, 2011. -426 с.
2. Рик Робинсон. Статья. Сценарии и решения использования шины Enterprise Service Bus в сервис-ориентированной архитектуре, 2011.
3. Васильев А.Н. Java. Объектно-ориентированное программирование. - Питер, 2011. -400 с.
4. Герберт Шилдт. Java. Полное руководство. 8-е издание. - Manning, 2012. - 1104 с.
5. Брюс У. Перри. Java сервлеты и JSP. Сборник рецептов. - O'Reilly, 2006. - 768 c.
6. Хабиббулин И. Создание распределенных приложений на Java 2. - Мастер, 2002. - 704 с.
7. Блинов И.Н., Романчик В.С. Java. Промышленное программирование. - Универсал Пресс, 2007. - 704 с.
8. Брюс Эккель. Философия Java. - Питер, 2009. - 640 с.
9. Гранд М. Шаблоны проектирования в JAVA. Каталог популярных шаблонов проектирования, проиллюстрированных при помощи UML. - O'Reilly, 2004. - 559 с.
10. Дэвид М. Герц. Java Server Pages. Библиотека профессионала. - Sun, 2002. - 448 c.
11. Флэнаган Дэвид. Java в примерах. Справочник. - O'Reilly, 2003. -
664 с.
12. Марти Холл. Программирование для Web. - Sun, 2002. - 1264 с.
13. Тимур Машнин. Web-сервисы Java. - BHV, 2012. - 560 с.
14. WSO2 Reference Documentation -
(http://docs.wso2.org/wiki/dashboard.action/).
15. Spring Reference Documentation -
(http://www.springsource.org/documentation).
16. Mule official website - http://www.mulesoft.com/
17. Mule official website -http://www.talend.com/
18. Maven Reference Documentation -http://maven.apache.org/
19. Антон Дмитров. Сервисно-ориентированная архитектура в современных моделях бизнеса. - BHV, 2006. - 224 с.
20. Michael Bell. Service-Oriented Modeling (SOA). - O'Reilly, 2008. -
384 с.
21. James Bean. SOA and Web Services Interface Design. - O'Reilly, 2010. -
384 с.
22. Frank Cohen. Fast SOA. - Sun, 2010. - 296 с.
23. Dan Woods. Enterprise SOA. - Manning, 2006. - 452 с.
24. Eric Newcomer. Understanding SOA with Web Services (Independent Technology Guides). - Sun, 2004. - 408 с.
25. Michael Rosen. Applied SOA. - Manning, 2008. - 696 с.
Размещено на Allbest.ru
Подобные документы
Процесс проведения соревнования, его основные этапы и правила, анализ существующих систем и патентов, общих требований к системам изучаемого типа. Функциональная схема модуля ввода и редактирования проектируемой системы. Требования к данной системе.
дипломная работа [153,2 K], добавлен 10.06.2013Обзор существующих объектных архитектур. Архитектура программного обеспечения. Создание веб-сервиса "Библиотека", предоставляющего механизмы работы с данными на стороне клиентского приложения. WEB-сервис и трехуровневая архитектура в основе приложения.
лабораторная работа [1,5 M], добавлен 16.06.2013Обоснование необходимости разработки компьютерной системы тестирования студентов. Анализ используемого программного и технического обеспечения на предприятии. Требования к функционированию модуля. Сведения о программе: структура, настройка и проверка.
курсовая работа [1,7 M], добавлен 13.06.2017Разработка системы для хранения и обработки статистических данных с результатами тестов, создание модулей их прохождения, назначения и просмотра. Требования к системе, общая архитектура, инструменты и методы реализации. Разработка web-интерфейсов.
дипломная работа [1,3 M], добавлен 28.01.2014Постановка задачи для модуля 1С. Бухгалтерия 3.0. Анализ существующих разработок в области интегрирования данных. Информационное обеспечение модуля "Связь 1С Предприятия 8.2. с "Казначейством". Программное и технологическое обеспечение данного модуля.
курсовая работа [1,5 M], добавлен 10.06.2013Цели и задачи проектирования информационной системы, основные требования к ней, внутренняя структура и взаимосвязь отдельных компонентов. Обзор и анализ существующих программных разработок. Обоснование стратегии автоматизации и технологии проектирования.
курсовая работа [3,3 M], добавлен 12.01.2015Проектирование информационной системы. Анализ языков программирования и существующих решений для администрирования системы управления базами данных. Разработка модуля взаимодействия и структуры программы. Модули авторизации и соединения с базой данных.
дипломная работа [4,1 M], добавлен 19.07.2014Несколько определений ERP системы. Происхождение, развитие, признаки. Что дает внедрение. Особенности разработки программ на Java. Проектирование и реализация модуля ERP системы. Экономическая схема торговой деятельности. Пример реализации схемы.
курсовая работа [1,1 M], добавлен 10.09.2008Понятие веб-страницы, ее структура, содержание и назначение. Требования к оформлению страниц и обязательных элементов, особенности навигационной структуры. Разработка проекта веб-сайта для телеканала, публикация данного узла в Интернете и его поддержка.
курсовая работа [2,4 M], добавлен 16.11.2012Разработка графического интерфейса проекта (панель инструментов имеет 6 кнопок). Процедуры разделов программы: документа ThisDocument, программного модуля Module1 и пользовательских форм UserForm1, UserForm2 и Деление_амёбы. Тестирование программы.
курсовая работа [29,5 K], добавлен 14.12.2010