Иногда пользователи хотят посмотреть текущее состояние своего счета или статус приобретенных ими товаров (например, отправлены ли они уже).
Приведенная ниже блок-схема описывает взаимодействие пользователя с приложением корзины покупок (рис. 16.1):
Выбор программного обеспечения
Технические требования к приложению определяют, что оно должно быть основано на веб-службе и включать клиент WML. Приложению нужны базы данных на сервере для хранения профилей пользователей, проведенных ими операций и список названий альбомов/книг, имеющихся на сайте.
Приложение будет также содержать промежуточное звено (веб-сервер и сценарии, выполняемые на сервере), которое займется обработкой запросов к приложению, посылаемых броузером. Броузер будет посылать запросы WAP (Wireless Access Protocol) шлюзу WAP, который, в свою очередь, будет пересылать запросы среднему звену, используя HTTP. Среднее звено будет получать данные от серверной базы данных, осуществлять какую-то их обработку и передавать ответ обратно в шлюз WAP, который, в свою очередь, будет передавать данные броузеру клиента по протоколу WAP (рис. 16.2):
Шлюз - это программа, действующая как мост между сетью, поддерживающей протокол WAP, и сетью с протоколом Интернет (IP).
Возможные варианты базы данных сервера
В базе данных сервера хранятся следующие данные:
♦ Сведения о зарегистрированных пользователях
♦ Названия альбомов и книг, имеющихся на сайте
♦ Сведения об операциях, выполненных пользователями Есть две альтернативы для хранения указанной информации:
♦ Плоские файлы
♦ Реляционные базы данных типа Oracle, MySQL или Sybase
Плоские файлы мы исключаем, поскольку для них потребовалось бы реализовать большой объем функций, например разработку структуры, позволяющей осуществлять в дальнейшем обработку данных, и создание простого интерфейса для доступа к данным в файлах. В реляционных базах данных такая функциональность уже есть.
В качестве серверной базы данных мы выбрали MySQL. Для этого были следующие основания:
♦ MySQL - это реляционная база данных с открытым кодом, что дает ей преимущество в сравнении с коммерческими базами данных
♦ MySQL хорошо масштабируется и проста в администрировании
♦ MySQL поддерживает клиентские API большого количества языков программирования (например, Perl, С и РНР), поэтому она предоставляет большой выбор языков программирования для реализации среднего звена