Проектирование и разработка корпоративных web приложений

в 7:12, , рубрики: Анализ и проектирование систем, Веб-разработка, проектирование по, разработка, разработка приложений, разработка программного обеспечения

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

    На следующем этапе необходимо собрать требования к приложению, которое необходимо разработать. Уточнить цели и область решаемых задач и построить иерархическую структуру работ.

    Рассмотрим отдельно задачу построения иерархической структуры работ. Каждое web-приложение можно представить в следующем виде:

image

    Другими словами, каждое web-приложение отправляет http запросы на web-сервер для получения полезных данных. Программа под управлением web-сервера использует ту или иную модель для хранения данных. В современном мире чаще всего используются базы данных, SQL или NoSQL.

    Формально каждое web-приложение можно разбить на 3 взаимно независимые части.

  1. Модуль, который исполняется WEB-браузером. Это приложение может быть написано на любом языке, который поддерживает браузер. Чаще всего используется язык JavaScript, как наиболее поддерживаемый и имеющий большую библиотечную поддержку. Это очень важно, так как позволяет существенно экономить бюджеты проектов.
  2. Модуль, исполняемый на серверной стороне под управлением web-сервера. Это приложение может быть написано на любом языке, интерпретацию которого поддерживает выбранный Вами web-сервер. Последнее время, часто, в качестве языка программирования выбирается язык Java. Этот язык также имеет серьезную библиотечную поддержку.
  3. База данных. В этой области так же существует достаточно широкий выбор. Есть промышленные базы данных, такие как Oracle, DB2, PostgreSQL. Есть легкие базы данных, такие как MySQL. База данных выбирается основываясь на целях и области решаемых задач.

      Возможные эталонные модели проектирования web-приложений.

    При построении архитектуры web — приложения необходимо максимально уменьшить зависимость между структурными единицами. В общем случае приложение состоит из трех структурных единиц.

image

  1. Модуль, который работает под управлением браузера.
  2. Модуль, который работает под управлением web-сервера.
  3. База данных.

Эти структурные единицы порождают два вида связей.

  1. Связь между браузером и серверной частью.
  2. Связь между серверной частью и базой данных.

    Для достижения цели максимальной независимости между структурными единицами, необходимо чтобы каждая структурная единица оперировала только необходимым ей набором данных. Рассмотрим более подробно.

    Браузер — это прикладное программное обеспечение для просмотра web страниц.

    HTML – это стандартный язык разметки документов. Большинство современных web-браузеров способны интерпретировать язык HTML.

    Web сервер — это программное обеспечение, которое способно принимать HTTP запросы от клиентов, обрабатывать их и отправлять ответ в соответствии со стандартом протокола.

    База данных — это представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью ЭВМ.(Wiki)

                                    Минимизация зависимостей

    Для минимизации зависимостей между «Браузером» и Web-сервером необходимо, чтобы язык разметки HTML был задействован только в браузере, а Web-сервер предоставлял интерфейс для получения необходимых данных для страницы.

    Для решения этой задачи необходимо:

  • Определить цели и область решаемых задач, которые будут решаться в рамках создаваемого интерфейса.
  • Определить API серверной части.
  • Выбрать протокол взаимодействия между серверной и клиентской частью. Создание протокола удобнее всего выбрать на базе XML, так как большинство современных браузеров имеют встроенную поддержку этого языка.
  • Написать документ, в котором будет изложен протокол.

    Наша диаграмма может быть преобразована в следующий вид:

image

    Далее «Браузер» преобразуется в UML диаграммы состояний. На этих диаграммах будет отражено, в каком случае вызывается тот или иной метод.

Данная модель достижима двумя путями

  1. Программа выполняемая «Браузером» написана на JavaScript и общается с Web-Сервером через AJAX, получая ответы в соответствие с определенным протоколом.
  2. «Браузер» интерпретирует только HTML код, а преобразования происходят посредством XSLT преобразований на стороне Web-Сервера.

    В каждом из этих случаев достигается разделение программной части Web-Сервера и «Браузера». Т.е используя данную модель возможно вносить изменения в структурную единицу для «Браузера» и не вызывать косвенных изменений в серверной части. Это очень важно, так как ведет к уменьшению затрат на обработку запросов на изменения. Это происходит в силу того, что изменения в одной структурной единицы не выходят за ее рамки.

                    Взаимодействие Web-Сервера и Базы данных

    Взаимодействие базы данных и web-сервера возможно организовать на основании двух принципиально разных сценариях:

  1. Бизнес логика находится в базе данных.
  2. Бизнес логика находится в коде web-сервера.

    В первом случае база данных хранит данные и предоставляет интерфейс доступа к данным:

  1. Выборка данных — решается через представления.
  2. Модификация данных — решается через хранимые процедуры.

    Программа для web-сервера является драйвером для доступа к бизнес-логике. Т.е она просто связывает Браузер с бизнес логикой, которая реализована в базе данных.

    Во втором случае база данных хранит данные, и предоставляет прямой доступ к данным. Бизнес-логика реализована в коде web-сервера. В этом случае база данных предоставляет транзакции для проведения атомарных операций.

    Для минимизации зависимостей между Web-Сервером и Базой данных, необходимо, чтобы бизнес-логика была определена только в одном месте. Т.е либо в коде Web-Сервера, либо в Базе данных. Это очень важно, так как ведет к уменьшению затрат на обработку запросов на изменения. Это происходит в силу того, что изменения в одной структурной единицы не выходят за ее рамки.

                                Иерархическая структура работ

    На основании изложенного выше материала иерархическая структура работ примет следующий вид:

  1. Модуль для «Браузера».
  2. Модуль для Web-Сервера.
  3. Модуль для Базы данных.
  4. Протокол обмена между модулем «Браузера» и Web-Сервером.
  5. Интерфейс взаимодействия между модулем «Браузера» и Web-Сервером.
  6. Интерфейс взаимодействия между Web-Сервером и Базой данных.

Автор: VLegostaev

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js