Что такое локальный / удаленный и без интерфейса вид в EJB?



Я пытаюсь понять, какова цель и почему нам нужны разные клиентские представления в EJB. Может кто - нибудь попытаться объяснить?

706   2  

2 ответов:

удаленный клиента

когда ваш EJB и его клиенты будут находиться в распределенной среде-это означает, что EJB и клиенты будут находиться на отдельных виртуальных машинах Java. Пример: EJBs, размещенные на сервере WebSphere Application Server, и сервлеты, использующие API EJB, размещенные на сервере Tomcat.

просмотр локального клиента

только тогда, когда гарантируется, что другие корпоративные компоненты или клиенты будут обращаться только к компоненту в пределах одного виртуальная машина Java. Например, EJBs, а также сервлеты, развернутые на одном сервере WebSphere.

no-Interface view

почти такой же, как локальный клиентский вид, но есть различия. В этом случае ваш класс bean не требуется для реализации интерфейсов клиентского представления. Все открытые методы класса bean автоматически предоставляются вызывающему объекту. представление без интерфейса всегда получает ссылку EJB-так же, как локальные или удаленные представления - либо через инъекцию, либо JNDI lookup; но тип Java ссылки EJB является типом класса bean, а не типом локального интерфейса. Это-удобство, введенное как часть Java EE6.

разница между представлением локального клиента и представлением без интерфейса

в случае представления без интерфейса клиент и целевой компонент должны быть упакованы в одно и то же приложение (EAR). В случае локального представления клиент может быть упакован в отдельное приложение, чем корпоративное приложение. Итак, это дает больше гибкости по отоношению к мелкозернистый вашим компонентам.

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

причина

исторически или иначе, клиент, желающий использовать службы EJB, должен был" искать " боб на контейнере ( с определенными начальными контекстами ). Потому что все вызовы выполняются через специальную ссылку EJB (прокси), предоставленную контейнером. Это позволяет контейнеру предоставлять все дополнительные услуги bean, такие как объединение в пул, управляемые контейнером транзакции и т. д. Таким образом, клиент не может явно создать экземпляр EJB с помощью new оператора. Представление клиента предоставляется через определенные интерфейсы, к которым клиент будет иметь доступ. Реализация прокси на стороне сервера выполняется на основе этих интерфейсов. Различные представления клиента определяются в suite различные сценарии развертывания, как указано выше.

согласно разделу 3.2.2 спецификации EJB 3.1:

доступ к корпоративному компоненту осуществляется только через представление локального клиента требуется поддержка для локальных клиентов, упакованных в одном пакете приложение в качестве корпоративного компонента, предоставляющего локальный клиент вид. Совместимые реализации этой спецификации могут поддержка доступа к локальному клиентскому представлению корпоративного компонента из a локальный клиент упакован в другое приложение. Этот конфигурация требования для доступа между приложениями к локальному клиентскому представлению следующие поставщика и выходят за рамки данной спецификации. Приложения, использующие в-приложение доступ к локальному клиенту вид не переносится.

no-interface view-это просто удобная функция, которая позволяет Бобу предоставление локального клиентского представления без необходимости объявления отдельного взаимодействие.

Comments

    Ничего не найдено.