Статьи

Разработка иерархической веб-службы с помощью среды IDE NetBeans

Эта статья основана на учебном руководстве по электронной коммерции NetBeans, которое доступно здесь:

http://netbeans.org/kb/docs/javaee/ecommerce/intro.html

  • Примечание: читатель должен сначала пройти эту действительно увлекательную работу, которая демонстрирует, как можно создать комплексное розничное приложение с использованием веб-служб, сессионных компонентов и объектов с базой данных MySQL на сервере. Он также использует сервлеты на уровне приложений и JSP на уровне представления.

Эта статья расширяет учебное пособие по электронной торговле путем создания клиентского приложения, имеющего собственную веб-службу, которая использует веб-службы, опубликованные розничным приложением. Я хотел бы поблагодарить мою коллегу Сушанту Чакраборти как соавтора этой статьи. Он очень помог в разработке проекта, а также в написании текста ниже.

Клиент также имеет сервлет, к которому могут обращаться клиенты браузера. Эти клиенты браузера используют веб-службы клиента для доступа к веб-службам Сервера, и, таким образом, несколько клиентов-клиентов могут одновременно осуществлять операции в онлайн-магазине розничной торговли. Может быть несколько экземпляров веб-клиента, каждый из которых может одновременно обслуживать несколько клиентов, каждый из которых имеет доступ к одному и тому же серверу розничных приложений.

Мы называем это клиентскими веб-сервисами 1-го уровня.

Эта модель может быть легко расширена аналогичным образом для клиентов другого уровня, клиентов 2-го уровня, которые публикуют свои сервисы на основе клиентских веб-сервисов 1-го уровня. Оба этих сценария изображены на диаграммах ниже.

    Рис. 1. Клиент I уровня с веб-сервисами на основе веб-сервисов розничного сервера приложений


    Рис 2. Клиент 2-го уровня с веб-сервисами на основе веб-сервисов 1-го уровня

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

Дизайн базы данных

Разархивируйте и распакуйте все файлы из прилагаемого файла  SUPPLYCHAINSUPPORTINGS.zip . База данных MySQL была использована в этом проекте. Убедитесь, что у вас установлен MySQL. (Мы использовали MySQL Server 5.5 в Windows.) Используйте дамп mysql, чтобы извлечь таблицы из файла «mydb.sql» в заархивированном вложении. Следующая последовательность команд может быть использована для извлечения таблиц:

mysql> CREATE DATABASE IF NOT EXISTS myOwnDb;
mysql> USE myOwnDb;
mysql> source C:\jvsql\mydb.sql;

«MyOwnDb» — это база данных, которую вы создаете для размещения таблиц в «mydb.sql». Необходимо указать путь к файлу «mydb.sql». Выше мы сохранили mydb.sql в C: \ jvsql. Структура таблицы показана ниже.

    Рисунок 3: Дизайн таблицы цепочки розничных поставок

1. Таблица категорий показывает различные виды пищевых продуктов, таких как зерновые, крупы, масла, напитки и т. Д.

2. Таблица клиента имеет все данные клиента

3. Таблица customer_order содержит информацию о каждом заказе, включая customer_id

4. order_product имеет все идентификаторы продукта для customer_order

5. Таблица продуктов содержит продукты всех типов, включая цену и количество в наличии.

6. Таблица поставщиков содержит данные о поставщиках

7. Наконец, таблица userauth — это таблица, используемая для аутентификации пользователя с простым паролем для каждого пользователя и соответствующим customer_id.

Примечание. Таблица SupplierDemand, в которой приведены котировки для каждого поставщика, не использовалась, хотя и указана в проекте для полноты изложения.

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

Сервер розничных приложений с веб-сервисом и клиентским веб-сервисом

После распаковки и распаковки файла SUPPLYCHAINSUPPORTINGS.zip загрузите проекты SuppChain_Server и SuppChain_Client в среду IDE NeBbeans. Мы использовали среду IDE NetBeans 7.0.1.

    Рис. 4. Объекты и сессионные компоненты

В проекте SuppChain_Server сущности и сессионные компоненты (Façade и Local) были автоматически сгенерированы на основе дизайна базы данных. Как видно, на одну таблицу приходится один объект. Соответственно, фасонные и локальные сессионные компоненты были сгенерированы NetBeans согласно таблице. Единственное добавление в отношении приложения электронной коммерции — это добавление bean-компонентов sessin OnePointSess и OrderProd, которые настраивали сессионные bean-компоненты, которые использовали службы созданных сессионных bean-компонентов NetBeans. Эти компоненты используются для разработки клиентских веб-сервисов, как будет объяснено позже. Все эти компоненты могут быть проверены в папке Source Packages, как показано на рисунке 5.

    Рис. 5. Сессионные компоненты в SupplyChain_Server

Интерфейс для сервера цепочки поставок

Интерфейс для сервера цепочки поставок более или менее совпадает с приложением электронной коммерции. Клиенты могут получить доступ к сервлету, а сервлет использует веб-службы, определенные для предоставления функциональности приложения розничной торговли онлайн, как описано в приложении электронной коммерции.

Клиентский веб-сервис

Выполните шаги, описанные ниже, чтобы создать клиентские веб-сервисы.

    Рис 6: Создание клиентского веб-сервиса



    Рисунок 7: Как вызвать WSDL и расположение клиента

 

Сервлет и пользовательский интерфейс для клиентского веб-сервиса

Сервлет и пользовательский интерфейс для клиентской веб-службы спроектированы аналогичным образом, код можно просмотреть в папках: Web Pages / WEB-INF / view для страниц jsp и Source Packages / SuppChainServ.java для сервлета. Поток управления от пользователя к клиентским веб-службам и веб-службам розничных приложений и компонентам можно увидеть в следующем описании. Поток для аутентификации пользователя показан. Точно так же поток для транзакций может быть аналогично визуализирован.

    Рис. 8: Поток управления аутентификацией клиента от веб-службы клиента к клиентскому веб-серверу. 

Снимки экрана

Некоторые скриншоты финальной заявки показаны ниже. Все современные экраны были захвачены и включены в почтовый файл.


    Рис 9a: Логин клиента

    Рис 9b. Просмотр категорий товаров



    Рис. 10. Добавление в корзину


    Рис. 11. Изменение корзины покупок


    Рис 12: Завершенная корзина покупок

Выполнение проектов

Проекты Suplychain_Servr и SupplyChain_Client можно создавать и запускать. MySQL с подключением JDBC должен быть настроен. Браузеры из удаленных систем могут подключаться к сервлету SuplyChain_Client и вызывать веб-службы на клиенте и сервере для совершения покупок в розничной сети. Первоначально база данных должна быть заполнена подходящими категориями продуктов питания и соответствующими продуктами для каждой категории с ценами.

Счастливой покупки!