Можете дать мне несколько советов по архитектуре веб-приложений - PullRequest
0 голосов
/ 31 января 2012

По моему мнению, общая архитектура веб-приложений, подобная этой схеме (извините, как новее, я не могу обновить изображение ~~~~) Может кто-нибудь дать совет относительно общей архитектуры веб-приложений?спасибо

Уровень сервера приложений: 1. Общая среда выполнения, которая предлагает поддержку уровня промежуточного программного обеспечения (ESB, ADF BC и т. Д.)2. Предоставляет бизнес-логику клиентским приложениям через различные протоколы.3. Предоставьте базовую инфраструктуру, включающую автоматическую отказоустойчивость, MGMT сеанса, MGMT транзакций, многопоточность - и все остальное, необходимое для создания масштабируемых корпоративных приложений.

Уровень веб-сервера 1. Обработка HTTP-запросов2. Обработка статических файлов, индексных файлов3. Генерация динамического контента (фреймворк MVC)4. Ускоренное обратное проксирование5. Балансировка нагрузки и отказоустойчивость6. Отправка данных в браузер (сценарий в реальном времени)

Уровень браузера: 1. Javascript Framework (пользовательский интерфейс 、 шина событий)2. Дизайн взаимодействия3. Видение дизайна

Ответы [ 2 ]

0 голосов
/ 12 февраля 2012

Одной из распространенных архитектур является трехуровневая архитектура, в которой слоями являются

Presentation layer
Responsible for rendering data

Business layer
Performing business logic.
Validating user data.

Data layer
Storing and retrieving business data

То, что вы описываете, представляет собой сочетание инфраструктуры и архитектуры программного обеспечения.Вы действительно хотите разделить эти две части, и довольно часто инфраструктурная часть уже дана.

0 голосов
/ 31 января 2012

Несколько мыслей о том, что вы написали:

  • это довольно неплохо
  • Я бы вынул строку 3 из уровня веб-сервера и застрял в гибридном классе либо суровень приложения ИЛИ уровень браузера, в зависимости от того, как ajaxy / javascripty вы планируете создавать приложение (это не значит, что я говорю, что вы должны объединять представления с логикой приложения)

С учетом сказанного,на самом деле вы получите что-то вроде следующего:

  1. Highest : веб-сервер [балансировка нагрузки, apache (и т. д.), многопоточность ...]
  2. Высокий : сервер приложений [Facebook будет использовать c ++ здесь ...]
  3. In-Prep для высокого : серверный клиент Dev [php / rails / django / aspздесь, чтобы использовать сервер приложений]
  4. Конечный пользователь : Фактический клиент Dev [js для использования уровня клиента на стороне сервера]

Кроме того, новые технологии, такие как узелдействительно начинают скрывать различия между этими слоями imho

...