Создание архитектуры веб-порталов | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Несмотря на коронавирус, электронный вариант журнала выйдет 6 июня.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №19 (309) май 2020 г.

Дата публикации: 08.05.2020

Статья просмотрена: 10 раз

Библиографическое описание:

Ведом, В. А. Создание архитектуры веб-порталов / В. А. Ведом. — Текст : непосредственный // Молодой ученый. — 2020. — № 19 (309). — С. 110-112. — URL: https://moluch.ru/archive/309/69775/ (дата обращения: 29.05.2020).



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

Архитектурой называется система организации всех элементов веб-ресурса, а именно контента, файлов, страниц. Веб-портал состоит из трех слов: пользовательский интерфейс, бизнес-логика и доступ к данным (рис. 1).

Рис. 1. Архитектура веб-портала

Ответить на актуальный вопрос: «Как построить хорошую архитектуру ПО?» — достаточно непросто. Даже несмотря на то, что существует большое количество книг и статей, которые посвящены принципам и шаблонам проектирования, к примеру принцип SOLID, как правильно оформлять код. Не существует общепринятого термина «архитектура программного обеспечения». С точки зрения разработки, хорошая архитектура называется той, которая делает процесс разработки и поддержки программы достаточно простым и эффективным. Хорошая архитектура должна соответствовать следующим критериям:

  1. Эффективность. Программа должна решать поставленные задачи и выполнять свои функции. Если спроектированная архитектура ненадежна, имеет проблемы с безопасностью, производительностью, а также не поддерживает нагрузки, то такую архитектуру «хорошей» не назовешь.
  2. Гибкость. Любое приложение подвержено изменениям со временем. Иными словами, архитектура должна позволять безболезненно вносить изменения в существующий функционал.
  3. Масштабируемость. Архитектура должна позволять безболезненно увеличивать существующий функционал, а также добавлять к проекту новых людей для распараллеливания процесса разработки.
  4. Тестируемость. Программный код должен быть понятен. Возможность раздробить отдельные части системы, протестировать этот кусок и выявить проблему, вместо тестирования всей системы целиком.

Архитектура является хорошей, если она отвечает данным критериям. Однако, очевидно, что любая архитектура не является бесконечно расширяемой. Требования могу меняться по-разному и в один момент придется кардинально вносить изменения.

Стоит также отметить также критерии «плохой» архитектуры:

  1. Жесткость. Возникновение трудностей при внесении изменений, которые влекут изменение многих других частей приложения.
  2. Неподвижность. Трудности в повторном использовании кода для другой системы. Сложности в «изъятии» кусков кода без переноса зависимых частей.
  3. Хрупкость. При внесении изменений происходит поломка других частей системы.

Существует ряд широко используемых технологий и серверов приложений для создания порталов. Среди серверов можно выделить следующие программные продукты: Apache HTTP Server, Oracle Application Server, Microsoft IIS. В качестве технологий для программирования используются JSP, PHP, ASP.NET и т. д. Для хранения данных используются базы данных. Визуальное представление описывается языке разметки HTML, которое браузер, в свою очередь, интерпретирует пользователю.

Главное в разработке является снижение сложности путем дробления одной большой задачи на несколько мелких (рис. 2). Все сводится к иерархической декомпозиции — сложная система стоится из набора подсистем, каждая из которых стоится из более мелких подсистем.

Рис. 2. Создание архитектуры

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

  1. Масштабируемость. Возможность расширения путем добавления новых модулей.
  2. Заменимость модулей. Просто в замене определенного модуля.
  3. Сопровождаемость. Программу, разбитую на отдельные модули, легче понять и сопровождать.
  4. Ремонтопригодность. Изменение одного модуля не требует изменения других.
  5. Тестируемость. Возможность отсоединения отдельного модуля от всех остальных для тестирования.

Для «правильной» декомпозиции нужно придерживаться следующего:

  1. Иерархичность. Первоначально систему разбивают на крупные функциональные подсистемы, которые описывают работу в общем виде. Затем, модули, анализируются более детально и, в свою очередь, дробятся на более мелкие модули или на объекты. Для небольших приложений двух уровней иерархии оказывается достаточно. Система делится на пакеты/подсистемы, а пакеты на классы (рис. 3).

Рис. 3. Разделение системы

  1. Функциональность. Основная задача разбивается на подзадачи, которые решаются независимо друг от друга. Каждый отдельный модуль отвечает за выполнение определенной задачи, выполняет соответствующую функцию. Модуль характеризуется набором данных, которые ему необходимы для выполнения функции. Исходя из вышесказанного, можно сделать вывод, что:

Модуль = Функция + Данные

Модуль — это программная единица, обеспечивающая решения некоторой задачи, которая может работать самостоятельно.

  1. High Cohesion + Low Coupling

Модули, которые получаются в результате декомпозиции, должны максимально сопрягаться внутри и минимально связываться друг с другом.

Следствием High Cohesion (высокая сопряженность) является первый принцип SOLID — принцип единственной ответственности, исходя из которого, модуль должен иметь одну и только одну причину для его изменения.

Следствием Low Coupling (слабая связанность), является независимость или слабая связанность модулей друг с другом.

При правильном проектировании, при изменении одного модуля, нет необходимости изменять другие и эти изменения будут несущественны.

Литература:

  1. Тузовский А. Ф. Архитектура семантического web-портала. — URL: https://cyberleninka.ru/article/n/arhitektura-semanticheskogo-web-portala (дата обращения 01.05.2020)
  2. Васильев И. А. Архитектура портала. — URL: https://wiasite.com/kak-sdelat-sayt/113-arhitektura-portala.html (дата обращения 28.04.2020)
  3. Создание архитектуры программы или как проектировать табуретку. — URL: https://habr.com/ru/post/276593/ (дата обращения 04.05.2020).
  4. Немного про архитектуру. — URL: https://dev.by/news/nemnogo-pro-arhitekturu (дата обращения 25.04.2020)
Основные термины (генерируются автоматически): модуль, SOLID, хорошая архитектура, архитектура, изменение, HTTP, HTML, JSP, отдельный модуль, IIS.


Похожие статьи

Построение архитектуры интеллектуальных транспортных систем

Транспортная политика всех развитых стран мира уже более 20 лет базируется на разработке и продвижении интеллектуальных транспортных систем и создании единого информационного пространства в будущих мультимодальных сетях.

Особенности реализации MVC-архитектуры в веб-приложениях

Целью данного исследования является уточнение методологии проектирования программных систем, основанных на MVC-архитектуре. В настоящее время при разработке веб-приложений с использованием современных фреймворков...

Подходы к архитектурному проектированию веб-приложений

Ключевые слова: веб, приложение, архитектура, веб-приложение. Текст аннотации: в рамках данной статьи в краткой форме рассматриваются три подхода к архитектурному проектированию веб-приложений, однако...

Принципы проектирования классов (SOLID) | Статья в журнале...

Модуль может манипулировать абстракцией. Такой модуль можно сделать закрытым для модификации, поскольку он зависит от фиксированной абстракции. И тем не менее поведение модуля можно расширять, создавая новые производные от абстракции.

Обзор основных технологий контент-менеджмент системы Adobe...

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же официальной...

Разработка сервис-ориентированной архитектуры в ИСЭРТ РАН

Сервер должен поддерживать IIS (Internet Information Services), в нашем случае это

При этом необходимо сохранить и старую и новую фамилии в базе данных, а также дату изменения фамилии.

1. Сервис-ориентированная архитектура [Электронный ресурс].

Модификация архитектуры web-приложения, основанной на...

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных.

Организация многомодульной, слабосвязанной архитектуры...

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

В статье описывается подход для реализации многомодульной, слабосвязанной архитектуры в Android приложении, с использование системы сборки Gradle.

Интеграция информационных систем на основе стандартов XML...

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

Похожие статьи

Построение архитектуры интеллектуальных транспортных систем

Транспортная политика всех развитых стран мира уже более 20 лет базируется на разработке и продвижении интеллектуальных транспортных систем и создании единого информационного пространства в будущих мультимодальных сетях.

Особенности реализации MVC-архитектуры в веб-приложениях

Целью данного исследования является уточнение методологии проектирования программных систем, основанных на MVC-архитектуре. В настоящее время при разработке веб-приложений с использованием современных фреймворков...

Подходы к архитектурному проектированию веб-приложений

Ключевые слова: веб, приложение, архитектура, веб-приложение. Текст аннотации: в рамках данной статьи в краткой форме рассматриваются три подхода к архитектурному проектированию веб-приложений, однако...

Принципы проектирования классов (SOLID) | Статья в журнале...

Модуль может манипулировать абстракцией. Такой модуль можно сделать закрытым для модификации, поскольку он зависит от фиксированной абстракции. И тем не менее поведение модуля можно расширять, создавая новые производные от абстракции.

Обзор основных технологий контент-менеджмент системы Adobe...

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же официальной...

Разработка сервис-ориентированной архитектуры в ИСЭРТ РАН

Сервер должен поддерживать IIS (Internet Information Services), в нашем случае это

При этом необходимо сохранить и старую и новую фамилии в базе данных, а также дату изменения фамилии.

1. Сервис-ориентированная архитектура [Электронный ресурс].

Модификация архитектуры web-приложения, основанной на...

В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных.

Организация многомодульной, слабосвязанной архитектуры...

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

В статье описывается подход для реализации многомодульной, слабосвязанной архитектуры в Android приложении, с использование системы сборки Gradle.

Интеграция информационных систем на основе стандартов XML...

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

Задать вопрос