Модуль для навигационной системы
Анализ существующих инструментов, помогающих при построении приложений, в основе которых лежит ESB. Разработка модуля для навигационной системы, основные требования к нему, структура, обоснование инструментов. Сервис-ориентированная архитектура.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 21.05.2013 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Оглавление
- Введение 3
- 1. Постановка задачи 5
- 2. Анализ задачи 6
- 2.1 Анализ требований заказчика 6
- 2.2 Анализ архитектуры приложения 8
- 2.3 Анализ предметной области 12
- 2.3.1 Сервисная шина предприятия 12
- 2.3.2 Основы архитектуры SOA 13
- 2.3.3 Составляющие базовой архитектуры SOA 14
- 2.3.4 Роль ESB в архитектуре SOA 14
- 2.3.5 Роль веб-сервисов в SOA 15
- 2.4 Анализ существующих аналогов ESB технологий 16
- 2.4.1 Mule ESB 16
- 2.4.2 Talend-SE 17
- 2.4.3 UltraESB 20
- 2.4.4 WSO2 ESB 21
- 2.4.5 Проведение тестов 24
- 2.5 Анализ используемых средств 31
- 2.5.1 WSO2 Enterprise Service Bus 31
- 2.5.2 WSO2 Application Server 31
- 2.5.3 WSO2 Governance Registry 34
- 2.5.4 WSO2 Carbon 36
- 2.5.5 Java 37
- 2.5.6 Microsoft SQL Server 37
- 2.5.7 Фреймворк Spring 38
- 3. Реализация 39
- 3.1 Описание архитектуры приложения 39
- 3.2 Структура базы данных 41
- 3.3 Реализация классов 43
- 3.4 Развертывание приложения 52
- Заключение 54
- Список литературы 55
Введение
Корпоративная сервисная шина ESB (Enterprise Service Bus) - это инфраструктурная платформа, которая объединяет стандартизованную сервис-ориентированную архитектуру с мощными веб-сервисами. Данная технология является принципиально новым, более мощным и эффективным подходом к интеграции приложений. В последнее время эта технология довольно быстро развивается и является наиболее мощным, признанным инструментом, который легко адаптируется для реализации механизмов интеграции.
ESB имеет ряд преимуществ:
- Компоненты системы легко внедряются в существующие системы компании, также, исходя из текущих и перспективных требований бизнеса, разрабатываются дополнительные компоненты, выполняется взаимодействие, причем привычный ход бизнеса не нарушается.
- Все приложения быстро настраиваются, так как были созданы на совершенно новой платформе, которая отличается от обычных клиент-серверных систем.
- В приложениях с унаследованными системами, ESB убирает потребность сложного процесса их внедрения. Приложения и платформу легко установить на “шину” и обеспечить их сосуществование независимо друг от друга.
Технология ESB, в первую очередь, предназначена для крупных компаний и корпораций, которым необходимо достичь эффективного взаимодействия между приложениями, максимизировать использование ресурсов, а также обеспечить надежные средства построения соответствий между документами.
На данный момент существует множество инструментов, позволяющих без особых усилий создавать приложения на основе ESB. Каждый из них имеет свои преимущества и недостатки.
Исходя из вышесказанного, было решено проанализировать существующие инструменты, помогающие при построении приложений, в основе которых лежит ESB. На основе результатов анализа будет выбран наиболее зарекомендовавший себя инструмент. С его использованием в качестве примера будет разработан модуль для навигационной системы, основной целью которого является нахождение парковочного места относительного текущего позиционирования автомобиля. Модуль необходимо внедрить в существующую систему таким образом, чтобы он удовлетворял поставленным требованиям к системе.
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).
Итак, на основе рекомендаций, требования к разрабатываемому модулю заключаются в следующем:
· Удобство и простота в эксплуатации на каждом уровне;
· Высокая доступность и надежность всех компонентов;
· Надежность: осуществление высокой степени конфиденциальности передаваемой информации;
· Масштабируемость: модуль должен быть масштабируемым для поддержки меняющихся требований;
· Гибкость: модуль должен быть разработан с возможностью его изменения в плане расширения и улучшения;
· Комплексный мониторинг: модуль должен предоставлять соответствующую информацию о выполнении своей работы на каждом уровне, информация затем может быть использована в качестве основы дальнейшего улучшения на каждом уровне (например, улучшение процессов);
· Своевременная технология обновления, позволяющая обновить функциональные компоненты для качественного улучшения производительности.
Основные принципы, применяемые в рамках системы для достижения целей:
· Модульный подход к системе;
· Хорошо продуманный дизайн архитектуры для обеспечения четкого разделения подсистем приложения;
· Строгое использование слоев в системе, способствующее гибкости в отношении повторного использования и расширяемости;
· Ориентация на сервисы;
· Использование стандартизированных интерфейсов на каждом уровне;
2.2 Анализ архитектуры приложения
Приложение построено на сервис-ориентированной архитектуре, использование которой необходимо для выполнения определенных требований и обеспечения гибкости внутри системы. Одним из основных аспектов является концепция разделения на слои. Система представляет собой платформу, предназначенную для управления сервисами и их выполнения. Система ориентирована на пользователя или автомобиль для различных групп пользователей.
В операционную платформу будут интегрированы продукты для создания ESB приложений и использованы в качестве SOA компонентов. Эти продукты могут быть использованы как для работы, управления и осуществления контроля, так и в качестве доставки служб внутрь автомобиля и дальнейшего подключения различных внешних систем к платформе. На следующем рисунке более детально показаны используемые слои приложения.
Рис. 2. Детальная архитектура приложения
Внутренний интерфейс приложения состоит из 6 различных кластеров / слоев, назначение которых более подробно будет объяснено позже:
· Device Gateway, к которому имеет доступ конечный пользователь;
· End User Services, предоставляющие сервисы конечному пользователю.
· Service Integration Layer, предоставляющий сервисы для администрирования, мониторинга и т.д.
· Central Platform Services, предоставляющие центральные сервисы, которые необходимы всем остальным кластерам.
· B2B Interface, предоставляющий B2B сервисы интеграции.
· Security PKI, обеспечивающий безопасные условия для ключей и сертификатов.
Device Gateway действует как прокси между мобильными устройствами или приборами, установленными в автомобиле, и другими кластерами. Device Gateway представляет собой группу компонентов, отвечающих за обработку входящих сообщений или запросов на обслуживание с мобильных устройств или других клиентов сети. Device Gateway помогает достичь высокой пропускной способности и малого времени задержки в обработке запросов сервисов в рамках платформы путем отделения основных компонентов бизнес-логики от тех, которые касаются получения сообщения. Слой состоит из нескольких WSO2 ESB, содержащих прокси для слоя End User Services.Устройство, которое запрашивает услугу, посылает свой запрос на Device Gateway.Входящий запрос перенаправляется в целевую службу, которая является частью кластера "End User Service". Для перенаправления запроса, целевая служба или слой презентации должны быть переопределены (Conv.Resolver). После этого запрос должен быть отослан целевому компоненту (Dispachter).
Слой End User Services содержит веб-представление и веб-сервисы для приложений, предусмотренных устройством и предназначенных для конечного пользователя (например, Weather, Parking и т.д.,). Как правило, приложение состоит хотя бы из одного веб-представления и по крайней мере одного сервисного компонента. За время существования, различные версии могут быть добавлены и предоставлены одновременно. Система построена на гибкой и интегрированной среде выполнения, где Tomcat и WSO2 AS используются в кластере. Сервисы могут быть построены не только на основе фремворка Spring, но и на других парадигмах Java. Важной особенностью так же является многоуровневая внутренняя архитектура самих приложений.
Central Platform Services предоставляют широкий спектр платформенных сервисов, необходимых всем сервисам, например, доступ к данным и т.д.
Service Integration Layer содержит сервисы для управления, мониторинга и администрирования платформы. Этот слой соединяет все другие, и наследует управление интерфейсами и сервисные адаптеры.
B2B Interface предоставляет интерфейсы внешних сервисов, которые могут быть использованы для принятия внешних сервисов, таких как Twitter или RSS, эти сервисы будут называться Service Adapters.
PKI инфраструктура публичных ключей, которая обрабатывает сертификаты транспортных средств.
Основным требованием, выдвигаемым заказчиком было то, что клиент не может напрямую обратится к любому из компонентов и слоев архитектуры. Все запросы, приходящие от клиента, должны идти на Device Gateway, где они контролируются на каждом обращении к сервисам или внешним ресурсам. Это делается для того, чтобы осуществить безопасность, нахождение проблемных мест, анализируя их и улучшая разрабатываемое приложение. Схема маршрутов движения запросов представлена на следующем рисунке.
Рис. 3. Схема движения запросов в приложении
навигационный модуль архитектура приложение
Инфраструктура и техническая архитектура выполнены в виде многоуровневой архитектуры с четырьмя разделенными зонами. Разделение также происходит на уровне 2 между web-уровнем и бизнес-логикой. Слои поддерживают гибкость и масштабируемость всей системы.
Рис. 4. Техническая архитектура приложения
2.3 Анализ предметной области
Сервисная шина предприятия
Сервисная шина предприятия (англ. enterprise service bus, ESB) -- связующий программный продукт, обеспечивающий централизованный и унифицированный событийно-ориентированный обмен сообщениями между различными информационными системами по принципу сервис-ориентированной архитектуры.
Основной принцип ESB -- концентрация обмена сообщениями между различными системами через единую точку, в которой, при необходимости, обеспечивается транзакционный контроль, преобразование данных, сохранность сообщений. Все настройки обработки и передачи сообщений предполагаются также сконцентрированными в единой точке, и формируются в терминах служб, таким образом, при замене какой-либо информационной системы, подключённой к шине, нет необходимости в перенастройке остальных систем.
Наименование подобрано по аналогии с системной шиной компьютера, позволяющей подключать несколько устройств и передавать данные между ними по одному набору проводников.
Основными задачами ESB являются:
· Поддержка синхронного и асинхронного способа вызова служб;
· Использование защищённого протокола передачи сообщений с гарантией доставки;
· Статическая и алгоритмическая маршрутизация сообщений;
· Доступ к данным из сторонних информационных систем с помощью готовых или специально разработанных адаптеров;
· Обработка и преобразование сообщений;
· Разнообразные механизмы контроля и управления (аудиты, протоколирование).
Конкретные программные продукты обычно также содержат готовые адаптеры для соединения с определенным прикладным программным обеспечением, а также могут включать API для создания таких адаптеров.
Основы архитектуры SOA
Сервис-ориентированная архитектура (SOA, англ. service-oriented architecture) -- модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.
Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).
Интерфейсы компонентов в сервис-ориентированной архитектуре инкапсулируют детали реализации (операционную систему, платформу, язык программирования) от остальных компонентов, таким образом обеспечивая комбинирование и многократное использование компонентов для построения сложных распределённых программных комплексов, обеспечивая независимость от используемых платформ и инструментов разработки, способствуя масштабируемости и управляемости создаваемых систем.
Теперь рассмотрим некоторые более сложные технические аспекты, такие как роль ESB, бизнес-процессы, а также роль веб-сервисов.
Составляющие базовой архитектуры SOA
Базовая архитектура SOA состоит из провайдера сервисов, сервиса и (необязательного) каталога сервисов. Для обмена информацией используется механизм обмена сообщениями типа "приложение к приложению".
Сходство между этой моделью и чистыми веб-сервисами совершенно очевидно, поскольку в обоих случаях применяется WSDL-документ, являющийся контрактом по активизации, хранящимся в каталоге сервисов, из которого этот сервис может быть запрошен и извлечен посредством механизма UDDI (UDDI -- это отраслевая спецификация для публикации и поиска информации о веб-службах). Веб-сервисы в действительности являются реализацией архитектуры SOA на самом базовом уровне.
В этой модели базовый сценарий таков. Сначала провайдер сервиса создает сервис, принимает решение открыть этот сервис и публикует его. Публикация выполняется путем отправки информации о сервисе в каталог сервисов. С другой стороны, инициатор запросов сервиса, нуждаясь в определенном сервисе, просматривает каталог сервисов в поисках того из них, который удовлетворяет необходимому критерию. После обнаружения такого сервиса и использования доступной в каталоге сервисов информации инициатор запросов сервиса может напрямую обратиться к провайдеру сервисов надлежащим способом для удовлетворения бизнес-потребности.
Роль ESB в архитектуре SOA
ESB играет важную роль в архитектуре SOA. По сути, она предоставляет магистральную сеть и инфраструктуру для соединения провайдеров и потребителей сервисов.
Ниже более подробно перечислены роли ESB:
· Предоставляет интеграционную инфраструктуру, соответствующую принципам SOA:
o Устанавливает явные независимые от реализации интерфейсы для определения сервисов со слабым связыванием.
o Использует коммуникационные протоколы, обеспечивающие независимость от месторасположения и способность к взаимодействию.
o Способствует определению сервисов, инкапсулирующих повторно используемые бизнес-функциональности.
· Предоставляет средства для управления инфраструктурой сервисов.
· Функционирует в распределенной среде, поскольку она:
o Поддерживает синхронное и асинхронное взаимодействие.
o Использует стандартные интерфейсы и стандартные протоколы.
· Централизует управление и распределяет обработку.
· Поддерживает механизм посредничества для формулирования корректных запросов/ответов между различными участниками взаимодействия без необходимости их изменения.
· Реализует защиту и обеспечение качества сервиса в проектах SOA.
Роль веб-сервисов в SOA
Хотя веб-сервисы появились до SOA, они представляют собой ответ и реализацию потребности архитектуры SOA в механизме взаимодействия между системами и платформами. Они помогают быстро внедрить и запустить SOA в работу, поскольку уже поддерживают технологии, удовлетворяющие ее потребности. Сегодня очевидно, что веб-сервисы представляют собой основу архитектуры SOA и являются рекомендованной технологией для обеспечения взаимодействия.
Веб-сервисы являются основой архитектуры SOA по следующим причинам:
· Они заставляют применять стандарты и тем самым способствуют совместимости и переносимости;
· Они не зависят от платформы и языка программирования;
· Они поддерживаются повсеместно, что существенно облегчает внедрение SOA;
· Они ориентированы на сообщения;
· Они обеспечивают более быструю поддержку инструментальными средствами, что ускоряет реализацию SOA.
2.4 Анализ существующих аналогов ESB технологий
Проанализировав требования заказчика, было определено:
· Приложение должно быть построено на основе SOA;
· Использование ESB в приложении;
· Необходим сервер приложений.
Таким образом, требуется провести анализ существующих технологий и выбрать именно ту, которая наиболее четко и точно удовлетворяет поставленным требованиям.
Существует множество open-source ESB технологий. Самые известные и используемые из них это:
· Mule ESB;
· Talend-SE;
· UltraESB;
· WSO2 ESB.
Ниже представлен обзор этих ESB технологий.
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.
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);
· Поддержка стандартов;
· Гибкое развертывание;
· Поддержка различных языков программирования.
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 дисках;
· Возможность динамической загрузки и перезагрузки единиц развертывания (то есть сервисы, логика посредничества и т.д.) автоматически во времени выполнения.
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.
Особенности
· Подключения
o Транспорт: HTTP, HTTPS, JMS, TCP, UDP, FTPS, SFTP и др.;
o Форматы и протоколы: JSON, XML, SOAP 1.1, SOAP 1.2, WS-*, HTML, Text, JPEG, все бинарные форматы и др.;
· Маршрутизация, посредничество и преобразование
o Маршрутизация: на основе заголовка, содержания, основанная на правилах и приоритетно- основанная маршрутизация;
o Посредничество: гарантированная доставка сообщений, интеграция с базами данных, публикация событий, логирование и аудит, валидация;
o Преобразование: XSLT 1.0/2.0, XPath, XQuery, Smooks.
· Сообщения, API и безопасная маршрутизация
o Предоставление доступа к существующим приложениям и сервисам через различные протоколы и форматы сообщений;
o Виртуализация услуг для слабой связи и управления SOA;
o Балансировки нагрузки для обеспечения масштабируемости и отказоустойчивости для обеспечения высокой доступности конечных точек системы;
o Централизованное обеспечение и управление безопасностью, в том числе аутентификацией, авторизацией доступом;
o Предоставление доступа к сервисам и приложениям через RESTful APIs с управлением ключами.
Проведение тестов
Для того чтобы определиться, какая из представленных систем лучше всего удовлетворяет поставленным целям, было решено проанализировать их производительность и другие характеристики, проведя несколько соответствующих тестов. Было решено сравнивать производительность самых последних версий технологий, о которых было сказано выше: WSO2 ESB 4.6.0, Mule 3.3.0, Talend-SE-5.1.1 и UltraESB 1.7.1- Enhanced. Так как по результатам тестов WSO2 ESB 4.6.0 показал одни из лучших результатов, то так же было решено проанализировать и одну из предыдущих версий этого продукта: WSO2 ESB 4.5.1, а так же особое внимание будет уделяться именно этому продукту, чтобы дать более полные его характеристики и объяснить достоинства его использования в проекте.
WSO2 ESB 4.6.0 является последней версией ESB на момент проведения анализа, и данные ниже показывают прирост производительности по сравнению с WSO2 ESB 4.5.x.Критерии оценки эффективности работы выполняются в Amazon EC2, поэтому они могут быть независимо проверены и повторены. Amazon EC2 -- веб-сервис, который предоставляет вычислительные мощности в облаке. Простой веб-интерфейс сервиса позволяет получить доступ к вычислительным мощностям и настроить с минимальными затратами ресурсы. Он предоставляет пользователям полный контроль над вычислительными ресурсами, а также доступную среду для работы. Сервис сокращает время, необходимое для получения и загрузки нового сервера.
Сценарии тестирования:
· DirectProxy;
· CBRProxy;
· CBRSOAPHeaderProxy;
· XSLTProxy;
· XSLT Enhanced Proxy (Используется FAST XSLT медиатор, управляемый сквозным(passthrough) траспортом);
· SecureProxy.
Для каждого сценария были проведены тесты с использованием различных значений: размеров сообщений и количества пользователей. Размеры образца сообщения колебались от 512 до 100K байт, с одновременным количеством 20, 40, 80, 160, 320, 640, 1280 и 2560 пользователей.
Общие наблюдения
В следующей таблице и графике показаны результаты теста производительности. Этот график показывает среднее значение среди сообщений всех размеров.
Количество сообщений для одного клиента N = 1000 при подключении до 320 параллельных клиентов и N = 10 для реализации более высокого параллелизма (1280/2560 клиентов).
Mule 3.3.0 |
Talend-SE-5.1.1 |
UltraESB 1.7.1 -Enhanced |
WSO2 ESB 4.5.1 |
WSO2 ESB 4.6.0 |
||
DirectProxy |
3,375 |
3,315 |
4,839 |
2,879 |
8,278 |
|
CBRProxy |
1,458 |
3,108 |
4,703 |
2,694 |
7,765 |
|
CBRSOAPHeaderProxy |
2,262 |
3,185 |
5,063 |
3,118 |
7,573 |
|
CBRTransportHeaderProxy |
2,225 |
3,751 |
5,523 |
3,502 |
11,024 |
|
XSLTProxy |
2,225 |
2,333 |
3,387 |
1,735 |
2,504 |
|
XSLTEnhancedProxy (Fast XSLT mediator) |
2,225 |
2,333 |
3,387 |
N/A |
5,473 |
|
Security |
458 |
534 |
603 |
486 |
560 |
Тем не менее, было обнаружено, что результаты данного теста были, возможно, ненадежными. Данный факт был исследован более подробно и было отмечено, что в опубликованных тестах при большом количестве параллельных клиентов для WSO2 ESB проявляются неожиданно высокие показатели. Для тестов было задано очень низкое количество сообщений на одного клиента (N = 10) при большом количестве параллельных клиентов. Это не позволяет дать JVM достаточного количества времени, чтобы разогреться, а также не представляет собой длительных испытаний, которые могут показать правдоподобные результаты.
Поэтому было решено повторно запустить тест для WSO2 ESB с использованием 200 сообщений на клиенте с большим числом параллельно работающих клиентов. После этого аномальных данных больше не наблюдалось. Также были перезапущены тесты для UltraESB в EC2 с 200 сообщениями на каждом клиенте для более высокого числа параллельно работающих клиентов. Наблюдения для N = 200 и с большой степенью параллелизма с UltraESB были намного ниже, чем ранее опубликованные. Тесты для Mule и Talend с использованием N = 200 не перезапускались. Результаты показаны в следующей диаграмме и таблице.
В будущих тестах будет использовано N = 200 для высокого числа параллельно работающих клиентов для обеспечения приемлемых результатов.
Количество сообщений в клиенте N = 1000 в случае до 320 параллельных клиентов и N = 200 для большего числа параллельных клиентов (1280/2560).
Mule 3.3.0 |
Talend-SE-5.1.1 |
UltraESB 1.7.1-Enhanced |
WSO2 ESB 4.5.1 |
WSO2 ESB 4.6.0 |
||
DirectProxy |
3,375 |
3,315 |
4,839 |
3,311 |
5,278 |
|
CBRProxy |
1,458 |
3,108 |
4,703 |
2,920 |
4,078 |
|
CBRSOAPHeaderProxy |
2,262 |
3,185 |
5,063 |
3,270 |
4,634 |
|
CBRTransportHeaderProxy |
2,225 |
3,751 |
5,523 |
3,849 |
5,998 |
|
XSLTProxy |
2,225 |
2,333 |
3,387 |
1,856 |
1,800 |
|
XSLTEnhancedProxy |
2,225 |
2,333 |
3,387 |
N/A |
3,456 |
|
Security |
458 |
534 |
603 |
529 |
566 |
На приведенном выше графике показано, что WSO2 ESB 4.6.0 работает значительно быстрее, чем ESB 4.5.1 и является конкурентоспособным с UltraESB. Заметно, что XSLTProxy на WSO ESB проходит значительно медленнее, чем эквивалентный тест для UltraESB. Но эта проблема решается путем включения в WSO2 ESB 4.6.0 новой опции FastXSLT, которая обеспечивает производительность на уровне UltraESB.
Среднее время задержки для WSO2 ESB 4.6.0 и 4.5.1
Бал проведен дополнительный тест для измерения среднего времени задержки, добавленной в WSO2 версии ESB 4.6.0 и 4.5.1. Была рассчитана задержка для параллелизма в 20 клиентов и размера сообщения 1000 по следующей формуле: [Задержка = время прямого вызова - время в обе стороны через ESB]. В следующей таблице приведены результаты теста:
Latency for 1K message |
ESB 4.6.0 |
ESB 4.5.1 |
|
DirectProxy |
0.582 |
0.828 |
|
CBRProxy |
0.742 |
0.979 |
|
CBRSOAPHeaderProxy |
0.691 |
0.857 |
|
CBRTransportHeaderProxy |
0.827 |
0.861 |
|
XSLTProxy |
1.987 |
1.818 |
|
XSLTEnhancedProxy |
1.345 |
N/A |
|
SecureProxy |
8.867 |
9.497 |
Как указано в таблице и на графике, WSO2 ESB обеспечивает накладную задержку всего в доли миллисекунды в большинстве случаев, что является очень хорошим показателем.
WSO2 ESB 4.6.0 Анализ использования памяти (После долгой работы)
Следующие графики иллюстрируют использование памяти после 40 часов непрерывной работы. Как можно увидеть, использование динамической памяти является стабильной.
На основе представленной информации о технологиях ESB и проведенных тестах можно сделать некоторые выводы, доказывающие целесообразность использования определенной технологии ESB из представленных.
Mule и WSO2 имеют множество дополнительных удобных инструментов, помогающих программисту в разработке приложений, основанных на SOA. Это такие инструменты как:
· Application Server;
· Governance Registry;
· Activity Monitor и др.
Но тесты для Mule показывают более низкие результаты, чем для WSO2.
В отличие от Mule и WSO2, UltraESB показывает более высокие результаты в тестах. Но эта технология не имеет такого количества дополнительных инструментов для облегчения разработки, как представленные выше технологии, поэтому использование UltraESB на данный момент является нецелесообразным.
Talend-SE имеет в своем арсенале службу мониторинга активности, облегченный контейнер для развертывания различных компонент и приложений и т.д. Но помимо не очень высоких показателей эффективности в тестах, Talend-SE не имеет четкой, хорошей документации, что в свою очередь очень затрудняет использование этого продукта.
На основе вышесказанного можно сделать вывод о том, что наиболее подходит для использования на данный момент технологии WSO2. Имеется линейка продуктов WSO2, которая удовлетворяет поставленным требованиям. Они были выбраны именно потому, что хорошо интегрируются друг с другом, обладают хорошей устойчивостью и решают поставленные задачи. Также наличие отличной документации является несомненным преимуществом.
2.5 Анализ используемых средств
WSO2 Enterprise Service Bus
WSO2 ESB - легковесный, имеет высокую производительность, поэтому именно он лучше всего подходит для использования в системе. На основе анализа, проведенного ранее, был выбран именно этот продукт для реализации SOA в приложении.
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.
Рис. 6. Архитектура WSO2 Application Server
WSO2 Application Server может принимать SOAP и REST сообщения из веб-каналов, в то время как транспортный уровень сервера одновременно прослушивает сообщения от настроенного протокола.
Поскольку в основе сервера лежит фреймворк Axis2, то запросы направляются через канал сообщений, и набор обработчиков будет делать дополнительную обработку сообщений, таких как операции QoS (безопасность, надежный обмен сообщениями, информацией расшифровки и так далее). Полученные сообщения передаются в приемник сообщений, который принимает решение о том, какой веб-сервис должен быть вызван. Кроме того, клиенты веб-приложений могут вызывать веб-приложения, развернутые внутри сервера приложений непосредственно через транспорт Tomcat (HTTP / S).
WSO2 Application Server так же поставляется с полным набором API для разработки приложений, обеспечивающими безопасность, управление данными, управление метаданными и производительностью системы.
Особенности
· Хостинг и управление веб-приложениями:
o Запуск любого стандартного файла WAR, также получение решений для RESTful сервисов;
o Полная административная консоль для WAR файлов;
o Комплексное управление безопасностью приложений;
o Авторизация через интеграцию с WSO2 Enterprise Service Bus и WSO2 Identity Server;
o Источник данных управления для масштабируемого управления данными;
· Хостинг и управление веб-сервисами:
o Поддержка SOAP, RESTful и JAX-WS сервисов;
o Интеграция Apache Axis2 и Apache CXF инструментов веб- сервисов;
o Комплексное управление пользователями с помощью интеграции с WSO2 Identity Server;
o Встроенная поддержка для сервисов передачи данных;
o Кластеризация и репликация HTTP-сессии для веб-служб;
o Управление и мониторинг.
· Богатый контекст для программирования масштабируемых приложений и сервисов:
o Всеобъемлющие простые в использовании API-интерфейсы для разработки корпоративных приложений, освобождающие разработчиков от сложности слежения за безопасностью, производительностью, управлением данными, метаданными и системами управления;
o Распределенное кэширование для больших масштабных приложений;
o Общий реестр метаданных и хранилище для любой области применения метаданных с помощью встроенного реестра или WSO2 Governance Registry;
o JNDI провайдер для доступа к общему источнику данных и других ресурсов;
o Распределенный обмен кэшем и метаданными для различных приложений и услуг;
· Масштабируемость, легковесность, простота развертывания:
o Легкая разработка, отладка и развертывание как приложений, так и сервисов с инструментами для отслеживания сообщений и интерактивного тестирования;
o Очень простое управление безопасностью;
o Настройка сервера и выбор способа развертывания;
o Интеграция с SVN, Maven, Ant и другими стандартными инструментами для разработки и развертывания;
o Интегрировано с WSO2 Developer Studio, Eclipse IDE на основе всех продуктов WSO2.
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.
Рис. 7. Архитектура WSO2 Registry
Управление жизненным циклом является ключевым аспектом управления в реестре, где ресурсы сохраняются в различных стадиях жизненного цикла, где они могут изменяться в соответствии с требованиями процесса.
WSO2 Carbon
WSO2 Carbon переопределяет связующее программное обеспечение путем предоставления интегрированной и компонентной промежуточной платформы, которая адаптируется к специфическим потребностям любого IT-проекта на предприятии.
Открытый исходный код, основанный на стандартах, WSO2 Carbon позволяет разработчикам быстро организовать бизнес-процессы, создавать приложения и разрабатывать сервисы с использованием WSO2 Developer Studio и обширного спектра бизнес- и технических легко интегрируемых сервисов.
Базовая часть фреймворка WSO2 Carbon функциониует, как "Eclipse for servers" и включает в себя общие возможности, разделяемые всеми продуктами WSO2, такими как встроенный реестр, управление пользователями, протоколы, безопасность, логирование, кластеризацию, кэширование и регулирование сервисов, координации и GUI-фреймворк.
Особенности
· Поддержка базовой функциональности Enterprise SOA
o Механизмы предоставления и потребления сервисов, посредничество сообщениями, управление сервисами, бизнес-процессами и мониторингом сервисов;
o Поддержка стандартов, таких как WS-*, REST и других бинарных и не бинарных протоколов;
o Встроенный контроль качества (QoS) возможностей, таких как безопасность, надежность обмена сообщениями и регулирование.
· Расширение от клиентов к облаку
o Развертывание одного и того же кода как на отдельном WSO2 Carbon сервере, так и на облачной платформе WSO2 Stratos;
o Создание многопользовательских приложений с использованием Carbon API, не беспокоясь о сложности, лежащей в его основе.
· QoS
o Поддержка высокой доступности развертывания;
o Горизонтальное масштабирование с помощью кластеризации с использованием серверной архитектуры без состояния;
o Динамическое обнаружение сервисов с использованием WS-Discovery.
· Синхронизация артефактов через кластеры
o Дополнительная поддержка WSO2 Governance Registry в качестве репозитория;
o Большое количество серверных артефактов может быть легко развернуто «на одном дыхании».
· Управление пользователями через любой Carbon продукт
o Поддержка аутентификации и авторизации на основе ролей.
· Интеграция с Governance Registry
o Управление и контроль крупномасштабного развертывания, в том числе кластерных серверов и облачных реализаций.
· Легкая расширяемость и перспективность
o Компоненты, не используемые в настоящее время могут быть подключены тогда, когда ИТ-инфраструктура этого потребует;
Java
Java -- объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры.
Microsoft SQL Server
Microsoft SQL Server -- система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов -- Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.
Фреймворк Spring
Spring используется для больших корпоративный приложений, там есть все для этого необходимое.
Основная функция Spring - интеграция слоев приложения в одно целое при помощи шаблона Dependency Injection.nDependency Injection определяет зависимости компонента от других компонентов на уровне интерфейсов.
Spring Framework может быть рассмотрен как коллекция меньших фреймворков или фреймворков во фреймворке. Большинство этих фреймворков может работать независимо друг от друга, однако, они обеспечивают большую функциональность при совместном их использовании. Эти фреймворки делятся на структурные элементы типовых комплексных приложений:
3. Реализация
3.1 Описание архитектуры приложения
Рис. 8. Компонентная диаграмма
На рис. 8 изображена компонентная диаграмма модуля парковки приложения. Она состоит из 6 основных компонентов:
· HeadUnit. Устройство, которое запрашивает услугу (устройство навигации в автомобиле), посылает свой запрос на Device Gateway.
· DeviceGateway. Все запросы, поступающие от внешних устройств, попадают на DeviceGateway. Device Gateway действует как прокси между мобильными устройствами или приборами, установленными в автомобиле, и другими кластерами. Device Gateway представляет собой группу компонентов, отвечающих за обработку входящих сообщений или запросов на обслуживание с мобильных устройств или других клиентов сети. Этот компонент является прокси-сервисом, который определяет источник запроса и перенаправляет запрос к нужному сервису. В случае модуля парковки это Parking EndUserService.
Входящий запрос перенаправляется в целевую службу, которая является частью кластера "End User Service".
· EndUserService. Компонент содержит веб-представление, сервисы для модуля парковки и другие необходимые составляющие для работы приложения (API, контроллер для обработки запросов клиента и т.д.). Для получения необходимой информации о парковочных местах, приложение отсылает запрос к внешним сервисам. Используется два внешних сервиса, выбор сервиса происходит в зависимости от текущего положения автомобиля (от страны). В случае, если автомобиль расположен в Европе, используется сервис EuropeService, если в Японии, то выбор сервиса - JapanService. Использование двух сервисов обусловлено той предоставляемой информацией, которую сервис может выдать. Так, автомобиль может находиться за пределами европейской части (в частности, Японии), а EuropeService не может предоставить информацию об этой стране. В соответствии со спецификой работы с внешними сервисами, потребовалось выделить два провайдера, каждый из которых обрабатывает требуемую информацию и преобразовывает ее к необходимому формату для дальнейшей передачи этой информации приложению и ее обработки соответствующим образом.
· ServiceIntegration. Данный компонент содержит сервисы для управления, мониторинга и администрирования платформы. Этот слой соединяет все другие, и наследует управление интерфейсами и сервисные адаптеры. В этом компоненте содержатся два прокси-сервиса, работающих с внешними сервисами. При обращении к внешнему сервису обращение идет не напрямую, а через прокси. Главная задача прокси-сервиса - перенаправление запроса. Для каждого провайдера используется свой прокси.
· EuropeService. Внешний сервис. Запросы к нему поступают от прокси-сервиса PY_EuropeAdapter.
· JapanService. Внешний сервис. Запросы к нему поступают от прокси-сервиса PY_JapanAdapter.
3.2 Структура базы данных
Рис. 8. Структура базы данных (PARKING_SETTINGS)
PARKING_SETTINGS. Содержит информацию о настройках приложения для парковки:
· Отображаемое на странице максимально возможное количество результатов поиска;
· Отображаемое на странице количество недавно просмотренных парковочных стоянок;
· Максимально возможное количество парковок, добавляемых в качестве избранных;
Подобные документы
Процесс проведения соревнования, его основные этапы и правила, анализ существующих систем и патентов, общих требований к системам изучаемого типа. Функциональная схема модуля ввода и редактирования проектируемой системы. Требования к данной системе.
дипломная работа [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