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


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

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

Технические требования к приложению

♦ Система должна относительно просто интегрироваться с любым прило­жением РНР для баз данных

♦ Некоторая группа пользователей должна иметь возможность динамичес­ки предоставлять полномочия (или отменять их) другим пользователям через броузер

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

♦ Разработчик должен иметь возможность легко определить, обладает ли некий пользователь данным полномочием

Проектирование приложения

Определим основу структуры базы данных и архитектуру приложения.

Большинство приложений следует той или иной архитектурной схеме (de­sign pattern). В самых общих словах, архитектурная схема представляет со­бой проверенную структуру решения конкретной задачи. Например, про­грамма, которая получает оперативные данные и записывает их в базу дан­ных, обычно следует архитектуре каналов и фильтров (pipes and filters arc­hitecture). Эта программа получает данные через удаленное соединение (канал). Возможно, программе требуется изменить структуру поступивших данных, чтобы привести их в соответствие со схемой базы данных, поэтому она выступает в качестве фильтра. Когда информация приведена в нужный формат, открывается соединение (другой канал) с целевой базой данных и осуществляется запись данных.

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

Наша система пользовательских полномочий, как и большинство других веб-приложений, в которых участвует сервер базы данных, следует схеме многозвенной архитектуры (multi-tiered architecture). При такой архитек­туре различные аспекты приложения, например данные, бизнес-логика и представление, разделены по разным звеньям (или уровням) программы. Таких звеньев в программе может быть любое количество.