Для минимизации зависимостей между «Браузером» и Web-сервером необходимо, чтобы язык разметки HTML был задействован только в браузере, а Web-сервер предоставлял интерфейс для получения необходимых данных для страницы.
Для решения этой задачи необходимо:
- Определить цели и область решаемых задач, которые будут решаться в рамках создаваемого интерфейса.
- Определить API серверной части.
- Выбрать протокол взаимодействия между серверной и клиентской частью. Создание протокола удобнее всего выбрать на базе XML, так как большинство современных браузеров имеют встроенную поддержку этого языка.
- Написать документ, в котором будет изложен протокол.
Наша диаграмма может быть преобразована в следующий вид:
Далее «Браузер» преобразуется в UML диаграммы состояний. На этих диаграммах будет отражено, в каком случае вызывается тот или иной метод.
Данная модель достижима двумя путями
- Программа выполняемая «Браузером» написана на JavaScript и общается с Web-Сервером через AJAX, получая ответы в соответствие с определенным протоколом.
- «Браузер» интерпретирует только HTML код, а преобразования происходят посредством XSLT преобразований на стороне Web-Сервера.
|
|
В каждом из этих случаев достигается разделение программной части Web-Сервера и «Браузера». Т.е используя данную модель возможно вносить изменения в структурную единицу для «Браузера» и не вызывать косвенных изменений в серверной части. Это очень важно, так как ведет к уменьшению затрат на обработку запросов на изменения. Это происходит в силу того, что изменения в одной структурной единицы не выходят за ее рамки.
Взаимодействие Web-Сервера и Базы данных
Взаимодействие базы данных и web-сервера возможно организовать на основании двух принципиально разных сценариях:
- Бизнес логика находится в базе данных.
- Бизнес логика находится в коде web-сервера.
В первом случае база данных хранит данные и предоставляет интерфейс доступа к данным:
- Выборка данных — решается через представления.
- Модификация данных — решается через хранимые процедуры.
Программа для web-сервера является драйвером для доступа к бизнес-логике. Т.е она просто связывает Браузер с бизнес логикой, которая реализована в базе данных.
Во втором случае база данных хранит данные, и предоставляет прямой доступ к данным. Бизнес-логика реализована в коде web-сервера. В этом случае база данных предоставляет транзакции для проведения атомарных операций.
Для минимизации зависимостей между Web-Сервером и Базой данных, необходимо, чтобы бизнес-логика была определена только в одном месте. Т.е либо в коде Web-Сервера, либо в Базе данных. Это очень важно, так как ведет к уменьшению затрат на обработку запросов на изменения. Это происходит в силу того, что изменения в одной структурной единицы не выходят за ее рамки.
|
|
Иерархическая структура работ
На основании изложенного выше материала иерархическая структура работ примет следующий вид:
- Модуль для «Браузера».
- Модуль для Web-Сервера.
- Модуль для Базы данных.
- Протокол обмена между модулем «Браузера» и Web-Сервером.
- Интерфейс взаимодействия между модулем «Браузера» и Web-Сервером.
- Интерфейс взаимодействия между Web-Сервером и Базой данных.