Открыть список
Как стать автором
Обновить

Архитектура и архитектурные стили веб-приложений – 1

Чулан
Сравнение архитектурных стилейПредлагается справочная информация по основным архитектурным стилям веб-приложений с основными терминами по мотивам диссертации Роя Т. Филдинга (автора REST). В первой части предлагается список архитектурных стилей и таблица их сравнения. Во второй планируется описание самих стилей.


Введение


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

О каких веб-приложениях идет речь?
Network-based hypermedia systems.

Сравнение стилей


Определения

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

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

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

Таблица Архитектурные стили (Styles) / Архитектурные свойства (Properties)

Первый столбец – названия стилей, второй – названия родительских стилей (для тех, у которых он есть).

Значение в таблице показывает относительное влияние архитектурного стиля на соответствующее архитектурное свойство. Минус (–) означает негативное влияние, плюс (+) положительное, а (±) означает что влияние зависит от дополнительных условий.

Список рассматриваемых стилей и свойств идет после таблицы.
image

Стили (styles)


Рассматривается 21 архитектурный стиль.
  1. Data-flow styles
    1. PF (Pipe and Filter)
    2. UPF (Uniform Pipe and Filter)

  2. Replication styles
    1. RR (Replicated Repository)
    2. $ (Cache)

  3. Hierarchical styles
    1. CS (Client-Server)
    2. LS (Layered System)
    3. LCS (Layered-Client-Server)
    4. CSS (Client-Stateless-Server)
    5. C$SS (Client-Cache-Stateless-Server)
    6. LC$SS (Layered-Client-Cache-Stateless-Server)
    7. RS (Remote Session)
    8. RDA (Remote Data Access)

  4. Mobile Code Styles
    1. VM (Virtual Machine)
    2. REV (Remote Evaluation)
    3. COD (Code on Demand)
    4. LCODC$SS (Layered-Code-on-Demand-Client-Cache-Stateless-Server)
    5. MA (Mobile Agent)

  5. Peer-to-Peer Styles
    1. EBI (Event-based Integration)
    2. C2 (Component- and message-based)
    3. DO (Distributed Objects)
    4. BDO (Brokered Distributed Objects)


Свойства (properties)


Рассматривается 13 архитектурных свойств.
  1. Performance
    1. Net(work) Performance – производительность, зависящая от объема передавамых данных через сеть
    2. UP (User-perceived) Performance – производительность, воспринимаемая пользователем

  2. Network Efficiency – эффективность использования сети (интенсивность взаимодействия с сетью и объемы передачи данных)
  3. Scalability – масштабируемость (возможность архитектуры поддерживать большое число элементов и их взаимодействий)
  4. Simplicity – простота (степень разделения системы на простые элементы)
  5. Modifiability
    1. Evolvability – степень, до которой изменения одного компонента не затрагивают другие
    2. Extensibility – возможность добавления нового функционала в систему
    3. Customizability – способность временно менять поведение компонентов для реализации новой возможности
    4. Configurabiity – возможность модифицировать поведение компонентов системы после ее запуска
    5. Reusability – возможность повторного использования элементов системы

  6. Visibility – возможность мониторинга компонентом взаимодействий других компонентов
  7. Portability – возможность запуска в различных средах
  8. Reliability – надежность (вероятность сбоя всей системы при неработоспособности части ее компонентов)


Резюме

Представленная таблица интересна по двум основным причинам – все архитектурные стили веб-приложений собраны воедино и некоторым образом классифицированы, а также сравниваются между собой по большому количеству параметров.
Теги:архитектураархитектура веб-приложенийархитектурные стили
Хабы: Чулан
Всего голосов 12: ↑8 и ↓4 +4
Просмотры1.6K

Похожие публикации

Cистемный архитектор/System architect
от 250 000 ₽C-Executives LLCМожно удаленно
Architect / Tech lead
от 5 000 до 6 000 $CrescofinМожно удаленно
Backend-разработчик (удаленная работа)
от 150 000 ₽FIN-RAМожно удаленно
DevOps инженер
от 250 000 до 300 000 ₽Энерджи КонсалтингМожно удаленно
Senior Python Engineer (remote)
от 200 000 до 300 000 ₽Spark EquationСанкт-ПетербургМожно удаленно

Лучшие публикации за сутки