Эта статья основана на учебном руководстве по электронной коммерции 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 и вызывать веб-службы на клиенте и сервере для совершения покупок в розничной сети. Первоначально база данных должна быть заполнена подходящими категориями продуктов питания и соответствующими продуктами для каждой категории с ценами.
Счастливой покупки!