Автор работы: Пользователь скрыл имя, 29 Марта 2012 в 19:56, курсовая работа
Тенденции, которые можно наблюдать на сегодняшний день, свидетельствуют к переходу на новый уровень проектирования систем – систем с сервис-ориентированной архитектурой (Service-Oriented Architecture, SOA). И наиболее перспективной технологией, на сегодняшний день, на которой реализуется SOA, является технология web-сервисов. В этой работе будут рассмотрены способы создания web-сервисов с использованием нескольких технологий – JAX-RPC, позволяющая создавать и обращаться к web-службам на платформе Java и BPEL – язык описания бизнес-процессов, построенных на взаимодействии web-служб.
СОДЕРЖАНИЕ 2
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
Для того чтобы можно было запускать JUnit-тесты из Ant-скрипта в среде Eclipse, необходимо в настройках Ant в Eclipse указать путь, по которому располагается файл junit.jar (Window Preferences… Ant Runtime Classpath Ant Home Entries Add JARs…).
Для того чтобы JUnit тесты можно было запускать из командной строки с использованием задания test (ant test), необходимо предварительно в %ANT_HOME%/lib скопировать файл junit.jar. Это можно сделать заданием deploy-junit (см. Приложение Г. Задания Ant (Ant Targets)).
За дополнительной информацией можно обратиться к Apache Ant FAQ (http://ant.apache.org/faq.htm
Для того чтобы можно было подключиться к процессу Tomcat через JPDA[9], нужно настроить Tomcat для режима отладки в начало файла %CATALINA_HOME%\bin\catalina.
set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=8000
И запускать Tomcat командой[11] %CATALINA_HOME%\bin\catalina.
Далее нужно создать конфигурацию для запуска отладчика: Run Debug… Remote Java Application New. Параметры по умолчанию подойдут. Необходимо только задать проект, для которого будет работать отладочный режим, и задать название конфигурации.
Теперь можно подключаться к процессу Tomcat из Eclipse: Run Debug… Remote Java Application Название конфигурации Debug.
При загрузке проекта в Eclipse могут возникнуть некоторые ошибки, связанные с CLASPATH (Рисунок 13 Возможные ошибки в Project Build Path).
Рисунок 13 Возможные ошибки в Project Build Path
Пути к необходимым библиотекам в CLASSPATH заданы относительно переменной classpath (classpath variable) CATALINA_HOME. Не следует ее путать с переменной окружения. Эта переменная имеет отношение только к Eclipse.
Рисунок 14 Добавление Classpath Variable
Чтобы добавить переменную classpath нужно выполнить следующее (Рисунок 14 Добавление Classpath Variable): Project Properties… Java Build Path Вкладка Libraries Add Variable… Configure Variables… New… Добавить переменную CATALINA_HOME со значением пути корневого каталога Tomcat OK.
Ниже приведен набор заданий Ant, разработанных для проекта Web Seller. Исходный текст скрипта, с подробными комментариями, приведен на диске: файл webseller/ant/build.xml.
Некоторые задания предназначены для использования в среде Eclipse для автоматизации процесса разработки. Другие, такие как test, build и clean – дублируют функциональность Eclipse и предназначены в основном для работы с командной строкой.
Рисунок 15 Задания Ant-скрипта для проекта Web Seller
48
[1] Описание проекта Web Seller можно найти в приложении к данному курсовому проекту (см. «Приложение А. Структура каталогов диска»), представленном в виде набора документов RUP, разработанных в рамках лабораторных работ по дисциплине «Распределенные информационные системы»: Glossary, Vision, Activity Diagram, Use cases, Software Architecture Document и Stakeholder Requests.
[2] Ant скрипт содержит набор утилит для сборки и тестирования проекта. См. также Приложение Г. Задания Ant (Ant Targets).
[3] В данном проекте мы не будем использовать Apache Axis в чистом виде, так как он уже интегрирован в ActiveBPEL Engine (см. раздел «BPEL Engine, ActiveBPEL, ActiveWebflow Professional»). Однако основные положения по работе с Axis (за исключением некоторых расширений для процесса развертывания служб) здесь остаются неизменными.
[4] ftp://www6.software.ibm.com/so
[5] http://www.w3.org/TR/2003/REC-
[6] Apache Axis 1.2.1 встроен в ActiveBPEL Engine версии 1.2, поэтому его не нужно устанавливать отдельно. Axis-ant.jar, который нужен для поддержки Axis в Ant (ant tasks) включен в дистрибутив проекта: webseller/lib/axis-ant.jar.
[7] Для поддержки JUnit-тестов в Ant необходима библиотека junit.jar. Она включена в дистрибутив проекта: webseller/lib/junit.jar. Для более подробной информации см. раздел «Настройка JUnit и Ant».
[8] Графический дизайнер BPEL процессов. В данной работе использовалась версия 1.1.6 на базе Eclipse 3.0.1. Разработка фирмы Active Endpoints, Inc. [AEWEBFLOW]
[9] Java Platform Debugger Architecture (JPDA)
[10] Данное замечание актуально лишь для ОС Windows. Shell-скрипт для Linux (catalina.sh) имеет данные значения установленными по умолчанию.
[11] Эту команду можно также добавить в меню Run External Tools …, чтобы можно было запускать Tomcat не выходя из Eclipse.