1. Что такое EJB?
EJB (Enterprise Java Beans) - это коммерческая технология компонентов приложений в Javaee и является одним из трех основных компонентов Javaee (Servlet, JSP, EJB). EJB предоставляет основу для того, чтобы клиенты могли использовать удаленные распределенные объекты, что значительно упрощает разработку приложений на уровне предприятия с хорошей масштабируемостью. Структура компонента EJB представляет собой распределенную вычислительную структуру, основанную на компонентах, и является компонентом в распределенной системе прикладной системы.
EJB является спецификацией сервисной фреймворки на стороне сервера Java и определяет техническую спецификацию для системы компонентов на стороне сервера. Эта спецификация может обеспечить стандартную, распределенную, объектно-ориентированную архитектуру. Он блокирует сложные функциональные реализации системного уровня для разработчиков компонентов и пользователей, позволяя разработчикам сосредоточиться на реализации бизнес-логики, и некоторые из сложных базовых услуг отвечают за контейнеры EJB. EJB может быть расширен в соответствии с ростом приложения, а сервер EJB обеспечивает функции балансировки нагрузки, а также управление доступа к ресурсам.
2. Связь между контейнером EJB и компонентами
Контейнеры EJB обеспечивают операционную среду для компонентов EJB. То, как контейнеры EJB управляют EJBS, аналогично тому, как веб -контейнеры управляют сервлетами. EJBS должен работать в контейнерах EJB. Контейнеры EJB в основном управляют постоянством EJB, управлением жизненным циклом, управлением безопасностью, управлением транзакциями, удаленным соединением, одновременной обработкой, кластеризацией и балансировкой нагрузки. Контейнер управляет экземплярами компонентов EJB, что позволяет компонентам EJB для достижения максимальной производительности и использования памяти. Контейнер может активировать и пассировать компоненты EJB, управлять пулами экземпляров и т. Д. Контейнеры отвечают за управление сложными проблемами обработки распределенной транзакции, управление проблемами низкого уровня для дистанционных соединений и скрытие проблем связи для разработчиков компонентов EJB и клиентов. Следовательно, разработчики компонентов EJB могут сосредоточиться на инкапсуляции бизнес -логики, а контейнеры отвечают за обработку всех других транзакций. EJB взаимодействует с контейнерами с помощью таких механизмов, как ejbcontent, jndj, функции обратного вызова.
JBoss - это контейнер и сервер, который управляет EJB, поддерживает спецификации EJB1.1, EJB2.0 и EJB3 и, как правило, связан с Tomcat или причалом.
См. Рисунок 1 (Рабочая схема контейнера EJB):
Рисунок 1: Принцип работы контейнера EJB
Компонент EJB - это распределенный объект, который при создании может общаться с приложениями в других адресных пространствах. Экземпляр EJB инкапсулируется в скелетном объекте, который связывается с клиентом через объект STUB. Заглушка не включает в себя бизнес -логику, но реализует бизнес -интерфейс. Всякий раз, когда называется коммерческий метод на коммерческом интерфейсе Stub, STUB отправляет сетевое сообщение в структуру и сообщает, какие методы он вызвал. Структура вызывает соответствующий метод экземпляра EJB и отправляет результаты, возвращаемые экземпляром EJB в заглушку, и заглушка возвращает эти результаты в соответствующее приложение. Через два промежуточных объекта, заглушки и структуры сложный процесс связи между распределенными объектами блокируется. Структура реализована контейнерами, в то время как заглушки автоматически генерируются инструментами разработки, ни один из которых не требует написания кода. См. Рисунок 2 (схема связи компонента EJB):
Рисунок 2: Принцип связи между компонентами EJB
3. Классификация EJB
Компоненты EJB можно разделить на два типа: сеанс-фасоль и бобы, управляемые сообщениями. Сессионная фасоль инкапсулирует бизнес -логику. Клиент может позвонить в методы сеанса с помощью локальных, удаленных и веб -сервисов для доступа к приложениям, развернутым на сервере, тем самым вызывая методы других бобов. Сессионная фасоль не является постоянным, то есть его данные не сохраняются в базе данных. Среди них сеанс фасоль включает в себя три типа: сессионные бобы, бобы без составы и бобы для одного часа. Бобы, управляемые сообщениями, часто используются в качестве слушателей для определенных типов сообщений, что позволяет Javaee обрабатывать асинхронные сообщения, а клиенты не получают доступ к бобам, управляемым сообщениями, через интерфейсы.
Следующее представит фасоль с сеансом Stateful, сеанс без сохранения состояния, сессионную фасоль с одной частью и сеанс, управляемый сообщениями, по очереди.
4. Сессионная фасоль без сохранения состояния
Сессионные бобы без составы предоставляют только бизнес -логику для клиентов и не сохраняют состояние сеанса для клиентов. Когда клиент вызывает метод боба сеанса без сохранения состояния, свойства соответствующего сеанса -боба опишут статус призыв, но сохранят только этот статус во время вызова метода. Когда вызов метода закончен, состояние очищается.
Жизненный цикл бобов сессии без сохранения состояния контролируется контейнером. Когда контейнер EJB получает запрос клиента на сеанс без сохранности, если EJB не существует, контейнер создаст экземпляр бобов, введите необходимые ресурсы в компонент, а затем контейнер вызовет метод PostConstruct, и создается компонент. В настоящее время бобы переходят от состояния «не существует» в состояние «существования». Когда вызов клиента закончен, контейнер вызывает метод предварительного разряда, а бобы будут уничтожены. В настоящее время фасоль будет преобразован из «существующего» состояния в «не существующее» состояние. См. Рисунок 3 (жизненный цикл бобов сессии без сохранения состояния):
Рисунок 3: Жизненный цикл бобов без сохранения состояния
5. Сессионная сессия Stateful
Государственный сеанс -бон сохраняет состояние сеанса для пользователя. Он не может быть помещен в пул компонентов для разных пользователей, чтобы делиться как фасоль без сохранения состояния. Для составления сеанса, до тех пор, пока клиент отправляет запрос, контейнер создает экземпляр, соответствующий клиенту, а один клиент соответствует экземпляру. В течение срока службы, государственная сеанс, фасоль, хранит информацию пользователя, и как только сеанс заканчивается, жизненный цикл бобов с сеансом также заканчивается.
Сессионная фасоль с заседанием имеет три активных состояния: небытие, активность и пассивация. Когда фасоль сессии Stateful активен в течение определенного периода времени, если запрос от внешнего клиента до сих пор не получен, чтобы сохранить системные ресурсы, контейнер будет сериализовать информацию о состоянии в фасоли Stateful Session во временном пространстве хранения и удалите фасоль с сеансом Stateful. Этот процесс называется «пассивацией». Контейнер вызывает метод Prepassivate перед пассивацией. Когда контейнер получает запрос на пассивированную статусную фасоль с сеансом, он поврежден, он повторно реализует экземпляр состояния сеанса и выводит информацию о статусе из временного пространства, чтобы вернуть его в активное состояние. Этот процесс называется «активация». После активации контейнер вызывает обратно метод проуктова. Когда фасоль с сеансом в государственном сессии пассивирует в течение определенного периода времени, контейнер полностью очистит экземпляр и вызовет метод предварительного разряда. См. Рисунок 4 (жизненный цикл статочного сессионного боба):
Рисунок 4: Жизненный цикл сессионного фасоли.
6. Однокомнатный сессион
Один часной сеанс создается один раз для каждого приложения и всегда присутствует на протяжении всего жизненного цикла приложения. Сессионная фасоль с одной частью предназначена для конкретных сценариев, и клиенты могут получить доступ к этому уникальному экземпляру EJB в общем и одновременном режиме.
Бобовый сеанс с одной частью очень похож на фасоль без сохранения состояния. Разница в том, что в приложении в приложении есть только один экземпляр, в то время как фасоль сеанса без сохранения состояния может иметь много экземпляров, каждый экземпляр помещается в пул компонентов, чтобы пользователи могли поделиться.
Однокомпонентный сеанс-фасоль похож на фасоль без сохранения состояния, никогда не пассивированный. Его жизненный цикл содержит только два типа тел: «небытие» и «существование». См. Рисунок 5 (жизненный цикл однокурсника сессионного боба):
Рисунок 5: Жизненный цикл сессионного боба с одной частью
7. Основанный на сообщении фасоль
Бобы, управляемые сообщениями, представляют собой компоненты, предназначенные для конкретной обработки запросов на основе сообщений. Бобы, управляемые сообщениями, интегрируют функции службы сообщений Java (JMS) и корпоративных бобов. Клиент не может напрямую получить свою ссылку и вызвать метод, но может быть запущен только системными сообщениями.
Контейнеры EJB обычно создают компонентный пул бобов, управляемых сообщениями. Подобно сеансу без сохранения состояния, бобы, управляемые сообщениями, никогда не пассивируются, а их жизненный цикл содержит только две этапы: несуществующее и существование.
Класс бобов, управляемый сообщениями, должен реализовать интерфейс Messagelistener. Когда контейнер обнаруживает сообщение в очереди, которое прослушивает фасоль, он вызывает метод onMessage () и передает сообщение в виде параметра.
Вышеупомянутое всеобъемлющее понимание основного EJB J2EE - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.