Аргерих Л. О языке РНР. Часть 4. Страница 9


Иногда пользователи хотят посмотреть текущее состояние своего счета или статус приобретенных ими товаров (например, отправлены ли они уже).

Приведенная ниже блок-схема описывает взаимодействие пользователя с приложением корзины покупок (рис. 16.1):

Выбор программного обеспечения

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

Приложение будет также содержать промежуточное звено (веб-сервер и сце­нарии, выполняемые на сервере), которое займется обработкой запросов к приложению, посылаемых броузером. Броузер будет посылать запросы WAP (Wireless Access Protocol) шлюзу WAP, который, в свою очередь, будет пересылать запросы среднему звену, используя HTTP. Среднее звено будет получать данные от серверной базы данных, осуществлять какую-то их об­работку и передавать ответ обратно в шлюз WAP, который, в свою очередь, будет передавать данные броузеру клиента по протоколу WAP (рис. 16.2):

Шлюз - это программа, действующая как мост между сетью, поддержи­вающей протокол WAP, и сетью с протоколом Интернет (IP).

Возможные варианты базы данных сервера

В базе данных сервера хранятся следующие данные:

♦ Сведения о зарегистрированных пользователях

♦ Названия альбомов и книг, имеющихся на сайте

♦ Сведения об операциях, выполненных пользователями Есть две альтернативы для хранения указанной информации:

♦ Плоские файлы

♦ Реляционные базы данных типа Oracle, MySQL или Sybase

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

В качестве серверной базы данных мы выбрали MySQL. Для этого были сле­дующие основания:

♦ MySQL - это реляционная база данных с открытым кодом, что дает ей преимущество в сравнении с коммерческими базами данных

♦ MySQL хорошо масштабируется и проста в администрировании

♦ MySQL поддерживает клиентские API большого количества языков про­граммирования (например, Perl, С и РНР), поэтому она предоставляет большой выбор языков программирования для реализации среднего звена