ASP - Разработка масштабируемых веб-приложений
Быстродействие
Для разработки программного обеспечения однопользовательской системы требования к быстродействию четко определены. В этом контексте важно, чтобы пользователь при выполнении обычных задач не имел существенных задержек во времени.
В первые годы существования World Wide Web медленные веб-страницы не были редкостью, и для многих пользователей продолжительное ожидание было допустимым. Однако, по мере создания веб-приложений для организаций, требования к быстродействию веб-приложений начали соперничать с требованиями к однопользовательским приложениям. Сейчас, с широким распространением быстрых телекоммуникационных технологий, пользователи требуют увеличения быстродействия веб-узлов.
Масштабируемость
Реальная сложность в проектировании веб-приложения состоит в том, что хотя для отдельного пользователя оно выглядит как традиционное приложение, но в действительности является распределенным приложением, которое может одновременно обслуживать сотни или даже тысячи пользователей.
Веб-приложения должны быть быстродействующими при широком диапазоне условий окружения — другими словами, они должны быть масштабируемыми. Конечно, веб-приложения должны быть быстродействующими, но быстродействие при использовании одним пользователем не всегда означает масштабируемость.
Существует большое число метрик, позволяющих определить масштабируемость приложения. Истинно масштабируемое веб-приложение должно:
- Обслуживать одного пользователя так же, как и сотни и тысячи пользователей одновременно.
- Обеспечивать в два раза более высокое быстродействие при установке на компьютере с удвоенными ресурсами (процессоры, память и т.п.), утроенное быстродействие на компьютере с утроенными ресурсами и т.п.
Конечно, эти требования по масштабируемости являются идеальными. Однако чем ближе приложение приближается к идеалу, тем более успешно оно будет работать.
Вопросы проектирования, касающиеся быстродействия и масштабируемости
Наиболее важное соображение, которое надо иметь в виду при разработке проекта веб-приложения, состоит в том, что веб-приложение, по большей части, является серверным приложением. Исторически сложилось, что серверное программное обеспечение уступает по сложности и трудностям программирования только программному обеспечению операционных систем. IIS and Windows® предлагают множество передовых инструментов, которые делают разработку веб-приложений более быстрой и легкой, но вопросы и проблемы программирования сервера по-прежнему остаются.
Важные вопросы обеспечения масштабируемости приложения включают:
- Выбор технологии: Как и большинство платформ разработки, Windows предлагает множество возможностей для выполнения поставленной задачи. Правильный выбор технологии является первым, и часто наиболее важным, шагом в разработке масштабируемого веб-приложения. Например, если технология, используемая на стороне клиента, обеспечивает функциональность одинаковую или близкую той, которая обеспечивается сервером, целесообразно максимальное использование программного обеспечения клиента. Это сделает приложение более масштабируемым, поскольку в этом случае клиент реализует значительную часть обработки. Правильный выбор технологии также ведет к уменьшению двойного обмена между клиентом и сервером, что также улучшает быстродействие. Для получения дополнительных сведений см. Веб-приложения: Обзор и пакет Internet Client SDK.
- Выбор языков: Выбор языка разработки веб-приложения определяет круг пользователей, которые могут получить доступ к нему. Например, использование сценариев в приложение исключает пользователей, чьи обозреватели не поддерживают сценарии. В приведенном ниже списке перечислены некоторые из доступных языков разработки:
- Windows Script Components
- Visual Basic
- Java
- C++
- Разработка алгоритмов и блок-схем: Даже правильная технология, примененная неправильно, даст плохие результаты.
- Многопотоковость: IIS и Windows обеспечивают многопотоковую среду. Для создания масштабируемых приложений необходимо выбрать подходящую модель потоков для компонентов.
- Конфликт ресурсов и временные задержки: Конфликт ресурсов и их «утечка» часто являются главными виновниками недостаточной масштабируемости приложений.
- Проверка в реальных условиях: Следует тщательно проверить веб-приложение в среде максимально близкой к той, в которой приложение будет развернуто.
Подробный анализ всех этих разделов не входит в задачу этого документа. В этом разделе можно найти подборку замечаний и процедур, характерных для IIS, которые помогут создать масштабируемое веб-приложение.
Этот раздел содержит следующие сведения:
- Разработка масштабируемых ASP-приложений
- Разработка масштабируемых компонентов
- Разработка производительных приложений ISAPI
- Быстродействие доступа к данным
- Проверка быстродействия и масштабируемости
Дополнительные сведения о проектировании веб-приложений см. Проектные решения.