Это форма Архитектура N-уровня . Первоначально большинство сайтов начинаются как двухуровневая архитектура с веб-сервером и базой данных. Веб-сервер будет обслуживать страницы, которые видит пользователь, а к динамическим страницам обращаются к базе данных.
Когда архитектура разделяется на несколько уровней, обычно перед вами будет веб-приложение с каким-то сервером приложений, который будет вызывать веб-приложение. Этот сервер приложений содержит бизнес-логику и делает приложение функциональным. «Лицо» приложения просто делает вещи красивыми и форматирует их для отображения пользователям.
Сервер приложений, или «промежуточное ПО», - это просто набор функций, которые могут вызываться веб-серверами. Промежуточное программное обеспечение должно быть мощным для сайта, такого как твиттер, где большая часть активности заключается в отправке сообщений, а людей, заходящих на сайт, не так много.
Взаимосвязь между слоями, вероятно, является стандартной технологией веб-службы, но это может быть пользовательская вещь, например, REST или какой-либо другой вид веб-службы, где веб-приложение (Ruby on Rails) может получать доступ к данным приложения.
В архитектуре такого типа Rails наверняка перенес все ORM и управление данными в промежуточное ПО.
Промежуточное программное обеспечение также является расплывчатым термином и может состоять из множества уровней, поэтому они называют его N-уровнем. Могу поспорить, что в Твиттере есть другая часть промежуточного программного обеспечения, посвященная обмену сообщениями, а другая часть посвящена управлению учетными записями, извлечению сообщений и т. Д.
Идея состоит в том, чтобы иметь возможность масштабирования вверх путем добавления аппаратного обеспечения, где у вас может быть кластер серверов, обслуживающих веб-страницы, другой кластер, обрабатывающий сообщения, а затем кластер серверов баз данных, которые поддерживают все это. Это не точная наука, каждая архитектура индивидуальна, но, как правило, об этом можно думать.