данных быть не может,
Всё состояние – внутри.
Конкретных связей, функций – тоже –
Лишь интерфейсы между них.
Благодаря такой структуре
Слои возможно заменять.
Внутри слоёв в архитектуре
Всю сложность лишнюю скрывать.
Звенья
Систему можно разделить
На несколько частей, к примеру,
На сервер и клиент. Решить,
Как будет лучше это сделать,
Обычно, первый из шагов
Архитектуры приложения.
Ряд слабосвязанных узлов
Отдельных называют звенья.
Файл-сервер
Для файл-серверных систем
Предполагается возможность
Хранения данных в файлах. Всем
К ним должен быть открытый доступ.
Двухзвенная архитектура клиент-сервер
Двухзвенная архитектура
Предполагает два звена
И два подхода, как структура,
И логика разделена.
Удаленный доступ к данным (Remote Data Access, RDA)
В модели RDA (Эрдэа́), иначе –
Доступа к удаленным данным –
Вся логика и все задачи
На стороне клиент-программы,
А в базе лишь хранение данных.
При этом больше трафик и
Выше возможность нежеланных
Вмешательств с третьей стороны.
DBS (Database Server)
В модели сервера баз данных,
Иначе – в DBS (Дэбээ́с)-модели –
Клиент – собрание форм экранных,
А логикой владеет сервер.
Но мощь хранимых процедур,
Которыми реализуют
Здесь логику, и их структур,
Пред кода силами пасуют.
Многозвенная архитектура
Сервер приложений (Application Server, AS)
В модели «сервер приложений»
Есть основные три звена:
«Клиент» ведёт отображение,
А серверов, обычно, два.
«Сервер баз данных» для хранения.
И сервер приложения, где
Проходят бизнес-вычисления.
Быть может не один вполне.
Модель подобная сложнее,
Но есть и целесообразность:
Поддержка проще и прямее,
Гораздо выше безопасность.
Многозвенная web-архитектура
Другой вариант трёхзвенки – это
Веб-приложение. Для него
Сервер баз данных будет где-то
И сервер приложения. Но
На сервере и вычисления,
И построение интерфейса.
И лишь одно отображение
В веб-браузере на клиенте.
Микросервисы
Когда систему разделяют
На много маленьких программ,
Их все отдельно запускают
В процессах, службах, тут и там…
По сути, функция – программа –
Отдельный код и разработчик.
Для масштабирования – славно,
Для эффективности – не очень.
Глава 11. Проектирование компонентов
Сложность интеграции изменений