Главная » Просмотр файлов » В.В. Кулямин - Технологии программирования. Компонентный подход

В.В. Кулямин - Технологии программирования. Компонентный подход (1133554), страница 68

Файл №1133554 В.В. Кулямин - Технологии программирования. Компонентный подход (В.В. Кулямин - Технологии программирования. Компонентный подход) 68 страницаВ.В. Кулямин - Технологии программирования. Компонентный подход (1133554) страница 682019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 68)

предыдущую лекцию).Компонент Enterprise JavaBeans (EJB) является компонентом, представляющим в J2EEприложении элемент данных или внутренней, невидимой для пользователя логики приложения.Для компонентов EJB определен жизненный цикл в рамках рабочего процесса приложения —набор состояний, через которые проходит один экземпляр такого компонента.

Компоненты EJBработают внутри EJB-контейнера, являющегося для них компонентной средой. Функции EJBконтейнера следующие.• Управление набором имеющихся EJB-компонентов, например, поддержкой пулакомпонентов для обеспечения большей производительности, а также жизненным цикломкаждого отдельного компонента, в частности, его инициализацией и уничтожением.• Передача вызовов между EJB-компонентами, а также их удаленных вызовов. НесколькоEJB-контейнеров, работающих на разных машинах, обеспечивают взаимодействие наборовкомпонентов, управляемых каждым из них.• Поддержка параллельной обработки запросов.• Поддержка связи между EJB-компонентами и базой данных приложения и синхронизацияих данных.• Поддержка целостности данных приложения с помощью механизма транзакций.• Защита приложения с помощью механизма ролей: передача прав ролей при вызовах междукомпонентами и проверка допустимости обращения в рамках роли к методам компонентов.Для разработки набора компонентов EJB нужно, во-первых, для каждого компонента создатьодин или несколько классов и интерфейсов Java, обеспечивающих реализацию самойфункциональности компонента и определение интерфейсов для удаленных обращений к нему, и,во-вторых, написать дескриптор развертывания — XML-файл, описывающий следующее.• Набор EJB-компонентов приложения.• Совокупность элементов кода на Java, образующих один компонент.• Связь свойств компонента с полями таблиц БД и связями между таблицами.• Набор ролей, правила доступа различных ролей к методам компонентов, правила передачиролей при вызовах одними компонентами других.• Политику компонентов и их методов по отношению к транзакциям.• Набор ресурсов, которыми компоненты могут пользоваться в своей работе.Правила создания EJB компонента зависят от его вида.

Различают три таких вида EJBкомпонентов.• Компоненты данных (сущностные, entity beans).Представляют данные приложения и основные методы работы с ними.• Сеансовые компоненты (session beans).Представляют независимую от пользовательского интерфейса и конкретных типов данныхлогику работы приложения, называемую иногда бизнес-логикой.245•Компоненты, управляемые сообщениями (message driven beans).Тоже предназначены тоже для реализации бизнес-логики. Но, если сеансовые компонентыпредоставляют интерфейс для синхронных вызовов, компоненты, управляемыесообщениями, предоставляют асинхронный интерфейс. Клиент, вызывающий метод всеансовом компоненте, ждет, пока вызванный компонент не завершит свою работу.Компоненту же, управляемому сообщениями, можно отослать сообщение и продолжатьработу сразу после окончания его передачи, не дожидаясь окончания его обработки.Далее описываются основные правила построения EJB компонентов разных видов.

Болеедетальное описание этих правил можно найти в [1,2].Компоненты данных и сеансовые компонентыКомпонент данных или сеансовый компонент могут состоять из следующих элементов: параинтерфейсов для работы с самим компонентом — удаленный интерфейс и локальный интерфейс;пара интерфейсов для поиска и создания компонентов — удаленный исходный интерфейс илокальный исходный интерфейс; класс компонента, реализующий методы работы с ним; и, длякомпонентов данных, — класс первичного ключа. Обязательно должен быть декларирован класскомпонента и один из интерфейсов — удаленный или локальный.

Для компонентов данныхобязательно должен быть определен класс первичного ключа.• Удаленный интерфейс (remote interface).Этот интерфейс декларирует методы компонента, к которым можно обращаться удаленно,т.е. из компонентов, работающих в рамках другого процесса или на другой машине.Удаленный интерфейс должен наследовать интерфейс javax.ejb.EJBObject (в своюочередь, наследующий java.rmi.Remote).Для компонента данных он определяет набор свойств (в смысле JavaBeans, т.е.

пар методовType getName()/void setName(Type)), служащих для работы с отдельными полямиданных или компонентами, связанными с этим компонентом по ссылкам. Это могут быть ичасто используемые дополнительные операции, как-то выражающиеся через операции сотдельными полями данных, в том числе и вычислимые свойства. Например, для книги вбазе данных приложения хранится набор ссылок на данные об ее авторах, а число авторовможет быть часто используемым свойством книги, вычисляемым по этому набору ссылок.Для сеансового компонента методы удаленного интерфейса служат для реализациинекоторых операций бизнес-логики или предметной области, вовлекающих несколькокомпонентов данных.• Локальный интерфейс (local interface).По назначению этот интерфейс полностью аналогичен удаленному, но декларирует методыкомпонента, которые можно вызывать только в рамках того же процесса. Этот интерфейсслужит для увеличения производительности приложений, в которых взаимодействия междукомпонентами происходят в основном в рамках одного процесса.

При этом они могутиспользовать локальные интерфейсы друг друга, не привлекая сложный механизмреализации удаленных вызовов методов. Однако, при использовании локального интерфейскомпонента нужно обеспечить развертывание этого компонента в рамках того же EJBконтейнера, что и вызывающий его компонент.Локальный интерфейс должен наследовать интерфейсу javax.ejb.EJBLocalObject.• Удаленный исходный интерфейс (remote home interface).Исходные интерфейсы служат для поиска и создания компонентов. Такой интерфейс можетдекларировать метод поиска компонента данных по значению его первичного ключаfindByPrimaryKey(…) и метод создания такого компонента с указанным значениемпервичного ключа create(…). Могут быть также определены методы, создающиекомпонент по набору его данных или возвращающие коллекцию компонентов, данныекоторых соответствуют аргументам такого метода.

Например, метод, создающийкомпонент, который представляет книгу с данным названием, createByTitle(Stringtitle), или метод, находящий все книги с данным набором авторов Collection246••findByAuthors(Collection authors).Удаленный исходный интерфейс предназначен для создания и поиска компонентов извнетого процесса, в котором они работают. Его методы возвращают ссылку на удаленныйинтерфейс компонента или коллекцию таких ссылок.Такой интерфейс должен наследовать интерфейсу javax.ejb.EJBHome (являющемусянаследником java.rmi.Remote).Локальный исходный интерфейс (local home interface).Имеет то же общее назначение, что и удаленный исходный интерфейс, но служит дляработы с компонентами в рамках одного процесса.

Соответственно, его методы поиска илисоздания возвращают ссылку на локальный интерфейс компонента или коллекцию такихссылок.Должен наследовать интерфейсу javax.ejb.EJBLocalHome.Класс компонента (bean class).Этот класс реализует методы удаленного и локального интерфейсов (но не долженреализовывать сами эти интерфейсы!). Он определяет основную функциональностькомпонента.Для компонентов данных такой класс должен быть абстрактным классом, реализующиминтерфейс javax.ejb.EntityBean.

Свойства, соответствующие полям хранимых данныхили ссылкам на другие компоненты данных, должны быть определены в виде абстрактныхпар методов getName()/setName(). В этом случае EJB-контейнер может взять на себяуправление синхронизацией их значений с базой данных. Вычислимые свойства, значениякоторых не хранятся в базе данных, реализуются в виде пар неабстрактных методов.Для сеансовых компонентов класс компонента должен быть неабстрактным классом,реализующим интерфейс javax.ejb.SessionBean и все методы удаленного и локальногоинтерфейсов.Кроме того, класс компонента может (а иногда и должен) реализовывать некоторыеметоды, которые вызываются EJB-контейнером при переходе между различными этапамижизненного цикла компонента.Например, при инициализации экземпляра компонента всегда вызывается методejbCreate().

Для компонентов данных он принимает на вход и возвращает значение типапервичного ключа компонента. Если первичный ключ — составной, он должен приниматьна вход значения отдельных его элементов. Такой метод для компонента данных долженвозвращать null и всегда должен быть реализован в классе компонента. Для сеансовыхкомпонентов он имеет тип результата void, а на вход принимает какие-то параметры,служащие для инициализации экземпляра компонента. Для каждого метода исходныхинтерфейсов с именем createSomeSuffix(…) в классе компонента должен быть реализованметод ejbCreateSomeSuffix(…) с теми же типами параметров.

Для компонентов данныхвсе такие методы возвращают значение типа первичного ключа, для сеансовых — void.Другие методы жизненного цикла компонента, которые можно перегружать в классекомпонента, декларированы в базовых интерфейсах компонентов соответствующего вида(javax.ejb.EntityBean или javax.ejb.SessionBean). Это, например, ejbActivate() иejbPassivate(), вызываемые при активизации и деактивизации экземпляра компонента;ejbRemove(), вызываемый перед удалением экземпляра компонента из памяти; длякомпонентов данных — ejbStore() и ejbLoad(), вызываемые при сохранении данныхэкземпляра в базу приложения или при их загрузке оттуда.Схема жизненного цикла компонента данных показана на Рис.

Характеристики

Тип файла
PDF-файл
Размер
3,61 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее