Я очень плохо знаком с Java EE и пытаюсь понять концепцию локальных интерфейсов и удаленных интерфейсов.
В начальных версиях спецификации EJB EJB были«Предполагается» быть удаленными компонентами, и единственный способ вызвать их - сделать удаленный вызов, используя семантику RMI и все накладные расходы, которые это подразумевает (сетевой вызов и сериализация объекта для каждого вызова метода).Клиенты EJB должны были платить штраф за производительность, даже если они размещены на одной виртуальной машине с контейнером EJB.
Позже Sun осознала, что большинство бизнес-приложений на самом деле не распределяют EJB-компоненты на другом уровне, и они исправили спецификацию (в EJB 2.0), представив концепцию локальных интерфейсов, чтобы клиенты размещались в одной виртуальной машине сКонтейнер EJB может вызывать EJB с помощью прямого вызова метода, полностью обходя семантику RMI (и связанные с этим издержки).
Мне сказали, что одним из больших преимуществ Java EE является то, что его легкомасштабирование (которое, я считаю, означает, что вы можете развертывать различные компоненты на разных серверах)
Java EE может масштабировать, но это не обязательно означает распределение компонентов.Вы можете запустить приложение Web + EJB в кластере, не разделяя веб-уровень и уровень EJB.
Предполагается ли использовать удаленные интерфейсы, если вы ожидаете, что ваше приложение будет иметь разные компоненты на разных серверах?И использовать локальные интерфейсы, если ваше приложение будет находиться только на одном сервере?
Я бы сказал так: используйте удаленные интерфейсы, если клиент не в той же JVM (это не значит,используя только один сервер / JVM).
(...) Начните с использования локальных интерфейсов и постепенно обновляйте до удаленных интерфейсов, где это применимо?
Я бы, наверное,начать с использованием локальных интерфейсов.И, как уже было сказано, переключение на удаленные интерфейсы не всегда обязательно (вы можете кластеризовать структуру collocated ).
Предлагаю проверить ресурсы, указанные ниже (2 первых довольно старые, но все еще актуальны, 2 других более поздние).
Ресурсы