Просмотр удаленного клиента
Когда ваш EJB и его клиенты будут находиться в распределенной среде, то есть EJB и клиенты будут находиться на отдельных виртуальных машинах Java. Пример: EJB-компоненты, размещенные на сервере приложений WebSphere, и сервлеты, использующие API-интерфейсы EJB, размещенные на сервере Tomcat.
Вид локального клиента
Только в том случае, если гарантируется, что другие корпоративные компоненты или клиенты будут обращаться только к одному компоненту в пределах одной JVM. Например, EJB, а также сервлеты, развернутые на одном сервере WebSphere.
Вид без интерфейса
Почти так же, как локальный клиент, но есть различия. В этом случае ваш bean-класс не обязан реализовывать интерфейсы представления клиента. Все открытые методы класса bean-компонента автоматически предоставляются вызывающей стороне. представление без интерфейса всегда получает ссылку на EJB - точно так же, как локальное или удаленное представление - либо посредством внедрения, либо поиска JNDI; но Java-тип ссылки на EJB - это тип класса компонента, а не тип локального интерфейса. Это удобство, представленное как часть Java EE6.
Разница между представлением локального клиента и представлением без интерфейса
В случае представления без интерфейса клиент и целевой компонент должны быть упакованы в одном приложении (EAR). В случае локального просмотра клиент может быть упакован в отдельное приложение, чем корпоративное приложение. Таким образом, это дает больше гибкости с точки зрения тонкой настройки ваших компонентов.
В зависимости от сценария использования API вы можете использовать представление локального клиента и представление без интерфейса. Весьма вероятно, что представление без интерфейса получит гибкие функции в будущих спецификациях.
Причина
Исторически или иначе, клиент, желающий использовать службы EJB, должен был «искать» bean-компонент в контейнере (с определенными начальными контекстами). Это произошло потому, что все вызовы выполняются через специальную ссылку EJB (прокси), предоставляемую контейнером. Это позволяет контейнеру предоставлять все дополнительные сервисы компонента, такие как пул, транзакции, управляемые контейнером и т. Д. Таким образом, клиент не может явно создать экземпляр EJB с оператором new
. Клиентское представление обеспечивается через определенные интерфейсы, к которым у клиента будет доступ. Реализация прокси на стороне сервера осуществляется на основе этих интерфейсов. Различные клиентские представления определены для соответствия различным сценариям развертывания, как указано выше.