Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сит.docx
Скачиваний:
10
Добавлен:
26.09.2019
Размер:
353.03 Кб
Скачать
  1. Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.

Сессионный бин представляет одного клиента внутри сервера J2EE и обеспечивает доступ (вызов) к методам сессионных бинов. Как видно из его названия, сессионный бин подобен интерактивному сеансу. Бин сеанса не является совместно используемым, т.к. интерактивный сеанс может иметь только одного пользователя. Как и интерактивный сеанс, бин сеанса не сохраняется. (То есть, его данные не записываются в базу данных.) Когда клиент заканчивает работу, его бин сеанса тоже заканчивается, и он больше уже не связан с клиентом .

Типы сессионных бинов:

  • с состоянием

  • без состояния.

Бины сеанса с состоянием

Состояние объекта состоит из значений переменных его экземпляра в конкретном уникальном сеансе взаимодействия между клиентом и бином. Поскольку клиент взаимодействует ("разговаривает") со своим бином, это состояние часто называют диалоговым состоянием.

Состояние сохраняется в течение всего сеанса взаимодействия между клиентом и бином. Если клиент удаляет бин или завершает работу, сеанс закрывается и состояние исчезает (для задач, где нет нужды сохранять состояния после завершения диалога с бином).

Бины сеанса без состояния

Бины сеанса без состояния не поддерживают состояние диалога для определенного клиента. Переменные экземпляра бина могут содержать состояние, но только на время вызова метода. Когда метод заканчивается, состояние больше не удерживается.

За исключением времени выполнения метода, все экземпляры бина без состояния эквивалентны, что позволяет контейнеру EJB назначать экземпляр любому клиенту (из организуемого пула экземпляров).

Поскольку бины сеанса без состояния поддерживают многих клиентов, они могут предложить лучшее масштабирование для приложений с большим числом клиентов. Обычно приложению для поддержки одинакового числа клиентов требуется меньше бинов без состояния, чем бинов с состоянием.

Иногда контейнер EJB записывает бины сеанса с состоянием во вторичную память. Но бины сеанса без состояния никогда не записываются во вторичную память. Следовательно, бины без состояния могут обеспечить лучшую производительность, чем бины с состоянием.

Следует использовать бины сеанса при следующих обстоятельствах:

  • В каждый момент времени только один клиент имеет доступ к экземпляру бина.

  • Состояние бина не сохраняемое, он существует только в течение короткого периода времени (возможно, несколько часов).

Бины сеанса с состоянием применяются, если выполняются следующие условия:

Состояние бина представляет взаимодействие между бином и определенным клиентом.

Бину необходимо хранить информацию о клиенте между вызовами метода.

Бин служит промежуточным звеном между клиентом и другими компонентами приложения, давая клиенту упрощенное представление.

"За сценой" бин управляет рабочим потоком нескольких корпоративных бинов.

Для повышения производительности вам следует выбрать бин сеанса без состояния, если он имеет любую из следующих особенностей:

Состояние бина не содержит данных для определенного клиента.

В одном вызове метода бин выполняет общую задачу для всех клиентов. Например, вы можете использовать бин сеанса без состояния для отправки по электронной почте сообщения, которое подтверждает заказ сделанный "on-line".

Бин выбирает из базы данных данные, предназначенные только для чтения, которые часто используются клиентами. Такой бин, например, может извлекать строки таблицы, представляющие товары, имеющиеся в продаже в этом месяце.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]