Автор работы: Пользователь скрыл имя, 07 Декабря 2011 в 12:25, курсовая работа
Тенденции, которые можно наблюдать на сегодняшний день, свидетельствуют к переходу на новый уровень проектирования систем – систем с сервис-ориентированной архитектурой (Service-Oriented Architecture, SOA). И наиболее перспективной технологией, на сегодняшний день, на которой реализуется SOA, является технология web-сервисов. В этой работе будут рассмотрены способы создания web-сервисов с использованием нескольких технологий – JAX-RPC, позволяющая создавать и обращаться к web-службам на платформе Java и BPEL – язык описания бизнес-процессов, построенных на взаимодействии web-служб.
1 ВВЕДЕНИЕ 4
2 ПОСТАНОВКА ЗАДАЧИ 4
3 РАЗРАБОТКА ПО МЕТОДИКЕ RUP 5
4 ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ СИСТЕМЫ 6
4.1 ВАРИАНТ ИСПОЛЬЗОВАНИЯ: ОБРАБОТАТЬ ЗАКАЗ 7
4.2 ВАРИАНТ ИСПОЛЬЗОВАНИЯ: ПОДТВЕРДИТЬ ЗАКАЗ 7
4.3 ВАРИАНТ ИСПОЛЬЗОВАНИЯ: ОТМЕНИТЬ ЗАКАЗ 8
4.4 ВАРИАНТ ИСПОЛЬЗОВАНИЯ: ПОЛУЧИТЬ ДОКУМЕНТЫ ЗАКАЗА КЛИЕНТА 8
5 СТРУКТУРНАЯ ОРГАНИЗАЦИЯ СИСТЕМЫ 8
5.1 ОПИСАНИЕ РАЗРАБОТАННЫХ СЕРВИСОВ 9
5.1.1 Сервис хранения документов заказов (WebSellerDB) 9
5.1.2 Сервис обработки заказов (WebSeller) 9
5.2 СХЕМА ДАННЫХ 10
6 КРАТКОЕ ОПИСАНИЕ И РОЛЬ ИСПОЛЬЗУЕМЫХ ТЕХНОЛОГИЙ 11
6.1 XML-ТЕХНОЛОГИИ 11
6.2 ТЕХНОЛОГИИ WEB-СЛУЖБ 12
6.2.1 WSDL 12
6.2.2 JAX-RPC 12
6.2.3 SOAP Handlers 15
6.3 КОРОТКО ОБ ИСПОЛЬЗУЕМЫХ ТЕХНОЛОГИЯХ APACHE 16
6.3.1 Apache Software Foundation 16
6.3.2 Jakarta Tomcat 17
6.3.3 Apache Axis 18
6.3.4 Apache Xindice 18
6.3.5 Другие инструменты Apache 19
6.4 ЯЗЫК BPEL 20
6.5 BPEL ENGINE, ACTIVEBPEL, ACTIVEWEBFLOW PROFESSIONAL 21
7 ОБОСНОВАНИЕ ТЕХНИЧЕСКИХ РЕШЕНИЙ 21
7.1 РАЗРАБОТКА XML-СХЕМЫ ДОКУМЕНТА ЗАКАЗА 21
7.2 РАЗРАБОТКА WSDL-ОПИСАНИЙ 23
7.3 ОРГАНИЗАЦИЯ ДОСТУПА К БД 23
7.3.1 Класс XindiceHelper 24
7.3.2 Класс WebSellerDBHandler 24
7.4 BPEL-ПРОЦЕСС ДЛЯ СЕРВИСА WEBSELLER 27
7.4.1 Инициализация 28
7.4.2 Процедура проверки кредитоспособности 28
7.4.3 Управление состоянием заказа 29
7.4.4 Обработка ошибок 31
8 РАЗВЕРТЫВАНИЕ (DEPLOYMENT) WEB-СЛУЖБ 32
9 ТЕСТОВЫЕ ПРИМЕРЫ 33
9.1 КРАТКОЕ ОПИСАНИЕ ТЕСТОВ И РЕЗУЛЬТАТОВ ИХ РАБОТЫ 33
9.1.1 Пример выполнения теста с таймаутом 34
10 ЗАКЛЮЧЕНИЕ 35
11 ИСПОЛЬЗОВАННЫЕ ТЕХНОЛОГИИ И ИСТОЧНИКИ ИНФОРМАЦИИ 36
ПРИЛОЖЕНИЕ А. СТРУКТУРА КАТАЛОГОВ ДИСКА 38
ПРИЛОЖЕНИЕ Б. ГЛОССАРИЙ 39
СПИСОК ТЕРМИНОВ 39
ПРИЛОЖЕНИЕ В. СОЗДАНИЕ РАБОЧЕГО ОКРУЖЕНИЯ 41
ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ 41
УСТАНОВКА ИСПОЛНЯЕМОЙ СРЕДЫ 41
Переменные окружения 41
Процесс установки 42
НАСТРОЙКА СРЕДЫ РАЗРАБОТКИ 43
Интегрирование сред разработки BPEL, WS и Java 43
Настройка JUnit и Ant 44
Настройка отладки проекта в Eclipse 45
Настройка CLASSPATH в Eclipse 45
ПРИЛОЖЕНИЕ Г. ЗАДАНИЯ ANT (ANT TARGETS) 48
partnerLink=
</onMessage>
В разработанном BPEL-процессе присутствуют два обработчика ошибок уровня процесса:
Рисунок 7 Глобальные обработчики ошибок BPEL-процесса WebSeller
В случае возникновения ошибки с типом orderProcessingFault, необходимо удалить из БД ранее сохраненный заказ. Для этого в BPEL предусмотрена активность compensate, которая должна выполнить активность compensationHandler региона (Scope), переданного ей в качестве параметра. Такой обработчик объявлен в регионе ScopeOrder (см. Рисунок 4 Инициализация бизнес-процесса). Обработанные исключения выбрасываются на следующий уровень – клиенту, вызвавшему службу WebSeller.
Для того чтобы развернуть (установить) сервисы можно воспользоваться разработанными заданиями ant (см. Приложение Г. Задания Ant (Ant Targets)). Условно можно определить три типа заданий Ant, разработанных для данного проекта:
На этапе сборки проекта создается файл архива, который можно устанавливать в ActiveBPEL Engine: webseller/wsr/webseller.wsr – web-служба WebSellerDB. Архив BPEL-процесса WebSeller – webseller/bpr/webseller.bpr – создается при помощи ActiveWebflow Professional.
Для сборки проекта необходимо выполнить команду (webseller/ant/ – рабочий каталог):
ant build
Все, что нужно
для развертывания – это
ant deploy
Для запуска
тестов можно воспользоваться
ant deploy-junit
ant test
Для созданного
BPEL-процесса в качестве эмуляции системы,
в которую интегрирован этот сервис, разработан
набор JUnit-тестов (класс net.sf.dmitrygusev.webseller.
В классе TestWebSeller эмулируются три исхода вызова службы:
Рисунок 8 Пример выполнения BPEL-процесса в тесте с таймаутом
Рисунок 9 Глобальные обработчики исключительных ситуаций
Сервис-ориентированные архитектуры (Service-Oriented Architectures, SOA) сегодня очень популярны. Хотя SOA не предполагает использование web-служб в качестве сервисов, на сегодняшний день преимущественно именно web-службы используются для построения SOA. В связи с этим на ряду с поддержкой разработки web-служб в языках ООП (JAX-RPC/SAAJ/JAXM, если рассматривать в контексте языка Java) появляются также специфические языки, которые позволяют создавать новые сервисы на основе уже существующих. Примером такого языка является рассмотренный в данной работе язык BPEL, который позволяет специалистам с квалификацией ниже, чем разработчики языков ООП, например, бизнес аналитикам, с легкостью описывать бизнес-процессы, работающие в реальных SOA, пользуясь графическими нотациями, предоставляющие более высокий уровень абстракции для описания сервиса. Используя BPEL, новые сервисы могут разрабатываться за считанные дни и недели, против месяцев и годов, которые пришлось бы потратить на их реализацию, используя технологии более низкого уровня, таких как JAX-RPC/SAAJ/JAXM.
[AEBPEL] ActiveBPEL, LLC – это софтверная организация, работающая в open source, которая лицензирует и распространяет технологию ActiveBPEL™ engine. ActiveBPEL engine – это runtime environment, которая способна исполнять процессы, созданные согласно спецификации Business Process Execution Language for Web Services4 (BPEL4WS, или просто BPEL) версии 1.1. (http://activebpel.org/)
[AEWEBFLOW] Основанный на стандартах
набор продуктов управления процессами,
которые позволяют информационным аналитикам
создавать, устанавливать и управлять
составлением процессов, которые имеют
100% совместимость с BPEL 1.1. ActiveWebflow состоит
из интегрированных визуальных средств
разработки (ActiveWebflow Professional) и окружением
исполнения BPEL уровня предприятия (ActiveWebflow
Enterprise). В двух словах, аналитики процессов
и разработчики приложений могут использовать
ActiveWebflow Professional чтобы создавать и тестировать
BPEL-процессы, для дальнейшего развертывания
этих процессов в ActiveWebflow Enterprise. (http://www.active-endpoints.
[ANT] Apache Ant – это Java-based build tool. (http://ant.apache.org/)
[AXIS] Apache Axis – это реализация SOAP ("Simple Object Access Protocol"), рекомендованного W3C5. (http://ws.apache.org/axis/)
[JAVA] Технология Java (http://java.sun.com/)
[TOMCAT] Официальная эталонная
реализация технологий Servlet 2.4 и JavaServer
Pages 2.0. (http://jakarta.apache.org/
[XINDICE] Реализация с открытым
кодом XML-«базы данных». (http://xml.apache.org/
[XUPDATE] Язык для изменения
XML-документов. (http://xmldb-org.sourceforge.
[APACHE] Официальный сайт Apache Software Foundation, (www.apache.org)
[LOG4J] Log4j – набор API для ведения
логов для языка Java (http://logging.apache.org/
[TOMCATBOOK] Бакор А., Бхаттачарьи Д., и др., Apache Tomcat для профессионалов. Пер. с англ. – М.: КУДИЦ-ОБРАЗ, 2005
[WSBOOK] Бекет Г., Куннумпурат
М., Роди Ш. и др., Java: основы Web-служб. Пер.
с англ. – М.: КУДИЦ-ОБРАЗ, 2004, 463 стр.
Рисунок 10 Структура каталогов диска
Артефакт Глоссарий также представлен на прилагаемом диске, см. Glossary в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска
Для развертывания понадобятся:
Тестирование системы на совместимость с другими версиями не проводилось.
Для детальной информации по установке см. оригинальные инструкции по установки конкретного ПО. Ниже будут рассмотрены вопросы, касаемо интеграции ПО, перечисленного в разделе «Используемые инструменты».
Будем считать, что установка производится на «чистую» систему, так что вопросы совместимости с уже установленным ПО здесь рассматриваться не будут.
Для продолжения работы необходимо определить следующие переменные окружения:
Таблица 2 Переменные окружения
Название переменной | Описание |
CATALINA_HOME | Должна указывать на корневой каталог, куда будет установлен Tomcat |
ANT_HOME | Должна указывать на корневой каталог, куда будет установлен Ant |
PATH | Переменную окружения %PATH% необходимо изменить, включив в нее каталог %ANT_HOME%/bin для запуска тестов и других заданий нашего Ant-скрипта (см. Приложение Г. Задания Ant (Ant Targets)) |