Переработка систем

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

Обычно архитекторы умеют удовлетворять функциональные требования, но лишь немногие из них способны также позаботиться об удовлетворении качественных требований. Давайте вернемся к примеру с вебприложением. Подумайте, сколько существует разных способов построения веб-страниц – Apache со статическими страницами, CGI, сервлеты, JSP, JSF, PHP, Ruby on Rails, ASP.NET и т. д. Выбор одной из этих технологий как архитектурного решения значительно повлияет на возможность выполнения качественных требований. Например, выбор Ruby on Rails обеспечит быстрый выход на рынок, но может затруднить сопровождение системы, потому что как язык Ruby, так и инфраструктура Rails продолжают стремительно развиваться. А может быть, вы пишете систему веб-телефонии, и вам нужно заставить телефон «звонить». Если для выполнения требований к производительности сервер должен передавать веб-странице полноценные асинхронные события, то архитектура, основанная на сервлетах, упростит тестирование и внесение изменений.

Related posts:

  1. Построение систем с иерархической структурой
  2. Сложность наших систем

Подпишитесь на рассылку по почте:

Введите свой адрес почты, чтобы получать уведомления о новых статьях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>