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

Одной из самых интересных проблем при проектировании системной архитектуры является сохранение гибкости в выборе масштаба системы. В наши дни роль масштабирования непрерывно растет, так как все больше систем работает в интрасетях или в Интернете. В таких системах идея планирования мощности выглядит абсурдно, если вы хотите, чтобы допустимая погрешность составляла меньше двух порядков. Созданный вами сайт неожиданно становится популярным, и счет посетителей буквально идет на миллионы. Так же просто (и с такими же катастрофическими последствиями) возможен и другой вариант: вы создаете сайт, которым никто особенно не интересуется. Дорогостоящее оборудование простаивает, поглощая деньги за потребляемую энергию и администрирование. В сетевом мире переход сайта из одного состояния в другое происходит за минуты.

С проблемами масштабирования сталкивается каждый, кто подключает свою систему к сети. Эти проблемы особенно актуальны для массовых многопользовательских онлайновых игр (ММО) и виртуальных миров. Такие системы должны масштабироваться в расчете на большое количество пользователей. Однако, в отличие от веб-серверов, на которых пользователи запрашивают более или менее статическую информацию и не взаимодействуют друг с другом, игроки ММО или обитатели виртуальных миров приходят ради взаимодействий как с миром (изменение базовой информации о мире), так и друг с другом. Взаимодействия усложняют масштабирование инфраструктур таких систем, поскольку взаимодействие пользователей с системой в основном происходит независимо (хотя, конечно, бывают и исключения) и не приводит к значительному изменению состояния виртуального мира. Если взять двух конкретных участников мира, вероятность их взаимодействия в любой отдельный момент времени ничтожно мала. Но практически каждый игрок почти всегда с кем-то взаимодействует. Таким образом, система получается массово-параллельной, но взаимозависимой в малом количестве взаимодействий.

No related posts.

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

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

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

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

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