Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WSO2_diplom.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.74 Mб
Скачать

3.3.4 Бизнес логика

Рис. 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 - добавляет текущую парковку в список избранных.

Рис. 14 Диаграмма классов для провайдера.

Здесь изображена диаграмма классов провайдера: интерфейс и его реализация. В соответствии со спецификой работы с внешними сервисами, потребовалось выделить два провайдера, каждый из которых обрабатывает требуемую информацию и преобразовывает ее к необходимому формату для дальнейшей передачи этой информации приложению и ее обработки соответствующим образом. На диаграмме изображен один провайдер для демонстрации его функциональности – 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 – проверка на удачное соединение с провайдером.

3.2.5 API

Рис. 15 API

3.4 Развертывание приложения

Рис. 16 Диаграмма развертывания

На рис. 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.

(Добавить раздел с интерфейсом приложения?...)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]