Архитектура и архитектурные стили веб-приложений – 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 – надежность (вероятность сбоя всей системы при неработоспособности части ее компонентов)


    Резюме

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

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 7

      +9
      Простые вещи объяснены настолько замысловато, что понять что-либо просто невозможно :)
        +3
        Тяжело для восприятия.
          +1
          Хорошо бы сначала расшифровать все эти стили и объяснить, что под ними кроется. А потом будет полезно их сравнить. В обратной последовательности не работает (
            0
            Хорошо, так и сделаю.
            +2
            Классно было бы сделать интерактивную таблицу.
            Чтобы при проведении указателем над определенной ячейкой автоматически всплывала подсказка с расшифровкой аббревиатуры + комментарии.
              0
              Отличная идея, постараюсь реализовать.
              0
              Напишите, если не трудно, ссылки где ещё можно почитать на эту тему.

              Only users with full accounts can post comments. Log in, please.