Проектирование сервисов для сервис-ориентированной архитектуры – сервисы online обработки заказа товаров с учетом кредитоспособности поку

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 1 файл

Курсовая работа (WebSeller).doc

— 921.00 Кб (Скачать документ)


Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Владимирский государственный университет

Кафедра информационных систем и информационного менеджмента

Курсовая работа

Проектирование сервисов для сервис-ориентированной архитектуры – сервисы online обработки заказа товаров с учетом кредитоспособности покупателя

Выполнил:              магистрант гр. ИМр-204

              Гусев Д.И.

Проверил:              Александров Д.В.

Владимир, 2005


Содержание

Содержание

1              Введение

2              Постановка задачи

3              Разработка по методике RUP

4              Функциональная декомпозиция системы

4.1              Вариант использования: Обработать заказ

4.2              Вариант использования: Подтвердить заказ

4.3              Вариант использования: Отменить заказ

4.4              Вариант использования: Получить документы заказа клиента

5              Структурная организация системы

5.1              Описание разработанных сервисов

5.1.1              Сервис хранения документов заказов (WebSellerDB)

5.1.2              Сервис обработки заказов (WebSeller)

5.2              Схема данных

6              Краткое описание и роль используемых технологий

6.1              XML-технологии

6.2              Технологии Web-служб

6.2.1              WSDL

6.2.2              JAX-RPC

6.2.3              SOAP Handlers

6.3              Коротко об используемых технологиях Apache

6.3.1              Apache Software Foundation

6.3.2              Jakarta Tomcat

6.3.3              Apache Axis

6.3.4              Apache Xindice

6.3.5              Другие инструменты Apache

6.4              Язык BPEL

6.5              BPEL Engine, ActiveBPEL, ActiveWebflow Professional

7              Обоснование технических решений

7.1              Разработка XML-схемы документа заказа

7.2              Разработка WSDL-описаний

7.3              Организация доступа к БД

7.3.1              Класс XindiceHelper

7.3.2              Класс WebSellerDBHandler

7.4              BPEL-процесс для сервиса WebSeller

7.4.1              Инициализация

7.4.2              Процедура проверки кредитоспособности

7.4.3              Управление состоянием заказа

7.4.4              Обработка ошибок

8              Развертывание (deployment) Web-служб

9              Тестовые примеры

9.1              Краткое описание тестов и результатов их работы

9.1.1              Пример выполнения теста с таймаутом

10              Заключение

11              Использованные технологии и источники информации

Приложение А. Структура каталогов диска

Приложение Б. Глоссарий

Список терминов

Приложение В. Создание рабочего окружения

Используемые инструменты

Установка исполняемой среды

Переменные окружения

Процесс установки

Настройка среды разработки

Интегрирование сред разработки BPEL, WS и Java

Настройка JUnit и Ant

Настройка отладки проекта в Eclipse

Настройка CLASSPATH в Eclipse

Приложение Г. Задания Ant (Ant Targets)

27

 



1          Введение

Тенденции, которые можно наблюдать на сегодняшний день, свидетельствуют к переходу на новый уровень проектирования систем – систем с сервис-ориентированной архитектурой (Service-Oriented Architecture, SOA). И наиболее перспективной технологией, на сегодняшний день, на которой реализуется SOA, является технология web-сервисов. В этой работе будут рассмотрены способы создания web-сервисов с использованием нескольких технологий – JAX-RPC, позволяющая создавать и обращаться к web-службам на платформе Java и BPEL – язык описания бизнес-процессов, построенных на взаимодействии web-служб.

2          Постановка задачи

Цель работы – создание набора web-сервисов, в совокупности предоставляющих службу online обработки заказов товаров, отличительной особенностью которого является поддержка проверки кредитоспособности покупателя и возможность управления статусом заказа. При этом разработанный сервис должен являться абсолютно независимым от других систем, и должен с легкостью интегрироваться в любую сервис-ориентированную архитектуру, которая поддерживает процесс online заказа товара.

В этой пояснительной записке отражены технические детали разработанного в рамках курсового проекта[1] бизнес-процесса (см. артефакт Vision в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска).

Готовый код бизнес-процесса, описанного на языке BPEL, а также исходные тексты WSDL-документов и других программных артефактов можно найти на диске, прилагаемом к этому проекту (см. Приложение А. Структура каталогов диска).

Далее мы будем ссылаться на данное описание системы, и приводить исходные коды с подробными комментариями, где это необходимо.

3          Разработка по методике RUP

Данный курсовой проект разрабатывался с использованием некоторых подходов, описанных в RUP’е. Так как данный проект является учебным и своей главной целью не ставит получение готового, конкурентоспособного продукта, то практически, подход, описанный в RUP, приходится изменять.

В частности, сложно определить потребности заинтересованных сторон в конечном продукте (см. артефакты Stakeholder Requests в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска). На этом этапе имеется лишь техническое задание на курсовое проектирование, в котором говорится, какие из технологий программирования необходимо применить в данном проектировании. Описание назначения продукта обычно точно определить не удается и здесь остро встает вопрос об управлении рисками в процессе разработки. К сожалению, этому вопросу уделяется довольно мало времени или он вообще остается не затронутым. В связи со всем вышесказанным целесообразным можно считать начинать процесс разработки с составления диаграммы активности (см. Activity Diagram в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска), в которой будут описаны в общем виде все процессы, которым нужно уделить внимание (Business Use Cases). Уже на этом этапе можно примерно представить, где и каким образом можно применить те технологии, использование которых является непосредственной целью курсового проекта.

Набор документов RUP, среди которых Vision, Supplementary Specification, Use Cases, Software Architecture Document, позволяют описать как формальные, так и неформальные требования к функциональности и вариантам использования системы.

В этом проекте не уделялось внимание планированию итераций – основополагающему моменту в модели RUP. Планирование учебного процесса (серии лабораторных работ по данной дисциплине) в виде модели waterfall lifecycle (модель водопада) – когда каждый из этапов разработки выполняется один и только один раз, противоречит принципам итерационности RUP. В связи с этим вероятность того, что документы, разработанные в ходе лабораторных работ, содержат неточности, очень велика.

Нарушение еще одного принципа RUP, что студент совмещает в себе все роли, которые участвуют в разработке процесса, также увеличивают вероятность того, что заявленный в техническом задании проект – провалится на том или ином этапе разработки.

Адаптация RUP к учебному процессу не должно противоречить его принципам для того, чтобы получить желаемые результаты – снизить риски и получить рабочий прототип разрабатываемой программной системы.

4          Функциональная декомпозиция системы

Далее перечислены функции, которыми обладают разработанные сервисы. Развернутые описания прецедентов, включая диаграммы взаимодействия можно найти в артефакте Use Cases (каталог "Артефакты RUP", Приложение А. Структура каталогов диска).

Рисунок 1 Диаграмма вариантов использования

4.1         Вариант использования: Обработать заказ

      Актант: Внешняя система (Покупатель)

      Краткое описание: На вход нашей системе поступает документ заказа товара. В случае если сумма заказа не превышает некоторой суммы N, установленной магазином, которому принадлежит заказ, этот заказ ставится в очередь и ожидает подтверждения клиентом в магазине. После того, как клиент подтвердил или отменил заказ или истекло время ожидания, заказ удаляется из системы.

4.2         Вариант использования: Подтвердить заказ

      Актант: Внешняя система (Продавец магазина)

      Краткое описание: Покупатель (клиент, оформивший заказ) приходит в магазин и предъявляет удостоверение, номер которого использовался при составлении заказа. Продавец по номеру удостоверения находит заказы, которые зарегистрированы на этого клиента и подтверждает заказ.

4.3         Вариант использования: Отменить заказ

      Актант: Внешняя система (Покупатель), Время

      Краткое описание: Клиент может в любое время, которое не превосходит интервала ожидания подтверждения заказа, отменить свой заказ. Также по таймауту наша система может убрать заказ из очереди.

4.4         Вариант использования: Получить документы заказа клиента

      Актант: Внешняя система (Покупатель, Продавец магазина)

      Краткое описание: Актант может получить список документов заказа, которые в данный момент находятся в обработке в нашей системе, для определенного клиента, указав идентификатор клиента во внешней системе, который был предоставлен нашей системе в документе заказа.

Термины, выделенные жирным шрифтом описаны в глоссарии; см. Приложение Б. Глоссарий.

5          Структурная организация системы

Разработанную систему можно позиционировать как набор служб для сервис-ориентированной архитектуры. В данной работе реализованы две службы – служба хранения заказов (WebSellerDB) и служба представляющая собой бизнес-процесс обработки заказа (WebSeller), согласно диаграмме активности, представленной в приложении к курсовому проекту.

Внешние интерфейсы к разработанным сервисам оформлены в виде web-служб, что позволяет интегрировать эти сервисы в другие системы. В связи с этим не ставилось целей разработать целиком архитектуру программной системы, такие как проектирование интерфейса пользователя, проектирование документов заказов конечной системы, в которой будут использоваться разработанные сервисы. Напротив, разработанные структуры данных и интерфейсы позволяют с легкостью интегрировать эти сервисы в уже существующие системы, обеспечивая совместимость на уровне данных (см. раздел «Разработка XML-схемы документа заказа») и на уровне интерфейсов взаимодействия (SOAP over HTTP).

5.1         Описание разработанных сервисов

Как было сказано выше, в данном проекте разработаны два сервиса, которые можно включить в сервис-ориентированную архитектуру приложения, где нужно организовать хранилище документов заказов и/или сервис обработки документа заказа. Разработанные сервисы имеют интерфейсы web-служб (WSDL), что позволяет с легкостью интегрировать их в любую современную архитектуру.

5.1.1        Сервис хранения документов заказов (WebSellerDB)

Этот сервис предоставляет функции сохранения, поиска, удаления и изменения некоторых частей документов заказа (изменение статуса документа заказа). Формат документа заказа описан XML-схемой domain.xsd.

Фактически все документы заказов хранятся в базе данных Apache Xindice, которая позволяет хранить коллекции XML-документов.

Данный сервис является вспомогательным и используется сервисом обработки заказов.

5.1.2        Сервис обработки заказов (WebSeller)

Использование данного сервиса предполагает особую организацию процесса покупки товара, когда необходимо, чтобы покупатель подтвердил сделанный им заказ, например, придя в магазин и оплатив покупку. Данный сервис предоставляет все необходимые функции для реализации этого процесса, включая функции подтверждения, отмены заказа или обработка таймаута (см. Activity Diagram в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска).

Данный сервис реализован на языке BPEL и в качестве иллюстрации некоторых возможностей этого языка, в частности обращение к другим BPEL-процессам, в алгоритм работы этого сервиса была включена функция проверки кредитоспособности путем вызова стороннего сервиса, также оформленного в виде web-службы (см. Activity Diagram в каталоге "Артефакты RUP", Приложение А. Структура каталогов диска). Сервис, который эмулирует данную функциональность, можно найти на сайте ActiveBPEL в примерах бизнес-процессов - пример Loan Approval, он также есть в приложении к курсовому проекту на компакт диске (см. all.tar.gz/loan_approval в каталоге "Другие проекты", Приложение А. Структура каталогов диска).

5.2         Схема данных

Apache Xindice управляет коллекциями документов (см. раздел «Apache Xindice»). Аналогично тому, как в реляционной БД мы определяем набор таблиц, здесь мы должны определиться с иерархией и типом документов, которые будут храниться, для того чтобы составлять запросы к БД, такие как выборка, изменение и др. Схема хранилища документов представлена на рисунке (Рисунок 2 Схема данных БД).

Рисунок 2 Схема данных БД

6          Краткое описание и роль используемых технологий

6.1         XML-технологии

В данном проекте XML играет центральную роль. Все задействованные в проекте технологии, так или иначе, связаны с XML. Описание данных предметной области – документов заказа, представлено схемой XML (domain.xsd). Описание интерфейсов web-служб – документы WSDL, также являются документами XML. Даже база данных, используемая в проекте ([XINDICE]) работает не с привычными таблицами реляционной базы данных, а с иерархическими коллекциями XML-документов и языками доступа и управления данными здесь являются XPath и XUpdate ([XUPDATE]). В проекте также используется язык XSLT совместно с утилитой Apache Ant для автоматизации процесса разработки[2].

Некоторые из этих технологий являются рекомендациями W3C.

6.2         Технологии Web-служб

6.2.1        WSDL

WSDL определяет диалект XML для описания возможностей web-служб. При помощи WSDL мы определяем, какие действия может выполнять эта служба – элементы <message/> и <portType/>, какие типы данных используются – элемент <types/>, как клиент будет обращаться к web-службе (по какому протоколу, HTTP, SMTP и т.д.) – элемент <binding/>, и где клиент может найти web-службу, какой у нее URL – за это отвечает элемент <service/>.

6.2.2        JAX-RPC

Если описать основное назначение JAX-PRC в одном предложении, то можно сказать, что этот API определяет правила для преобразования информации WSDL о типах портов в Java и наоборот. Есть несколько простых правил, рассмотрим их ниже.

Информация о работе Проектирование сервисов для сервис-ориентированной архитектуры – сервисы online обработки заказа товаров с учетом кредитоспособности поку