Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

Эффективность стратегий продвижения подтверждается сотрудничеством с крупными клиентами и отзывами о нашей работе.

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

Масштабируемость

Предположим, что обычное (не основанное на Web) распределенное приложение имеет десять пользователей. Возможно, оно прекрасно работает: быстро откликается на запросы, выводит на печать отчеты и т. д. Но вот компания поглощается огромной корпорацией, и к приложению подключаются 10 000 пользователей. Сможет ли оно так же быстро, как и раньше, выполнять запросы пользователей?

Скорее всего, нет (может быть, только при серьезной и дорогостоящей модернизации аппаратной среды).

Такое приложение нельзя назвать масштабируемым, поскольку оно не способно подстроиться под изменение нагрузки операционной среды.

Масштабируемость (scalability) — важная характеристика, которую нельзя игнорировать, особенно в распределенных web-приложениях. Предположим, что обычный трафик сайта составляет 1000 посещений. Но что произойдет, если он увеличится до 10 000 000 посещений? Способно ли приложение выдержать колебания нагрузки в широком спектре?

Первым шагом на пути поддержки увеличения нагрузки должен стать переход на трехуровневую архитектуру. Другими словами, отделение уровня бизнес-правил от уровней представления и данных позволит создать более интеллектуальные и масштабируемые объекты. Основная цель масштабируемости — постоянная забота об увеличении числа пользователей, способных одновременно работать с приложением. Например, сайт посещают 10 000 000 человек в день. Каждую секунду в системе находятся 1157 пользователей. Пусть, все они работают с одной страницей. Сколько потребуется соединений с базой данных? Ответ: 1157. Причем количество одновременных соединений с базой данных будет меньше 1157.

 

Поддержка масштабируемости

Для создания хорошо масштабируемых объектов нужно помнить об ограниченности ресурсов. Если используемая копия SQL Server поддерживает только 500 одновременных соединений, то после подключения к системе 500 пользователей остальные клиенты сайта попадут в очередь, ожидая освобождения соединения с базой данных. Обычно это проявляется в снижении производительности при увеличении нагрузки на распределенное приложение, что связано с временной невозможностью доступа к ресурсу.

Предположим, что мы написали бизнес-объект, который тратит 5 с на просмотр списка 100 товарных накладных и на выполнение сложного расчета для каждой накладной. Можно написать метод CalculateRefund, который будет подключаться к базе данных, читать одну запись, обрабатывать ее, а потом переходить к следующей записи, не закрывая текущего соединения. Однако лучше создать объект, который будет читать и кэшировать несколько записей, закрывать соединение с базой данных, а затем переходить к обработке полученных записей. В этом случае ресурсы базы данных используются эффективнее. Страницы, обслуживающие других пользователей, смогут быстрее подключиться к базе данных, что в целом устранит снижение производительности сайта.

Вернемся к примеру с 10 000 000 посетителей. Оптимизация работы с базой данных позволит сократить количество одновременных соединений с ней, при этом, возможно, будет выполнено ограничение в 500 подключений. Следовательно, производительность приложения не пострадает при масштабировании.

Мы еще не раз будем обращаться к вопросам масштабирования, работая над проектом.

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

 

Читайте так же:
Not found

Нам доверяют

Интернет магазин