
- •Вопрос 1. Особенности языка java, принципы ооп, реализация принципов в языке java.
- •Вопрос 2. Понятие класса, объекта, поля, метода; области видимости. Простейшие программы.
- •Вопрос 3. Типы данных, простые, классы, преобразования типов.
- •Вопрос 4. Ключевые слова: static, this, super, final. Примеры использования
- •Вопрос 5. Спецификаторы доступа к классам, полям и методам.
- •Вопрос 6. Системы ввода-вывода в java. Работа с файлами.
- •Вопрос 7. Апплеты, структура и методы жизненного цикла.
- •Вопрос8. Программирование отношений типа является, имеет, использует и создает.
- •Вопрос 9. Интерфейсы. Реализация интерфейсов.
- •Вопрос 10. Исключительные ситуации. Обработка исключений.
- •Вопрос 11. Реализация многопоточности. Создание и запуск потока. Синхронизация потоков.
- •Вопрос 12. Апплеты с многопоточностью.
- •Вопрос 14. Библиотека jdbc. Подключение к базе данных.
- •Вопрос 16. Работа с сетью. Классы InetAddress, Socket, ServeSocket.
- •Вопрос 17. Работа с сетью. Классы DatagramSocket, DatagramPacket.
- •Вопрос 18. Сервлеты. Структура и организация. Методы жизненного цикла.
- •Вопрос 19. Jsp. Структура и организация. Работа с бинами. Класс Session.
- •Вопрос 20. Основы технологии ejb. Основные цели. Ejb компоненты, объект, контейнер. Типы бинов. Home и Remote интерфейсы.
- •Вопрос 21. Жизненный цикл Entity Bean.
Вопрос 20. Основы технологии ejb. Основные цели. Ejb компоненты, объект, контейнер. Типы бинов. Home и Remote интерфейсы.
Основная идея, лежащая в разработке технологии, - это создать такую инфраструктуру для компонент, чтобы они могли легко загружаться и выгружаться из сервера. Тем самым увеличиваю или уменьшая функциональность сервера.
Основные цели EJB:
облегчить разработку создания приложений, избавив их от необходимости реализовывать с нуля такие сервисы как транзакции, управление жизненным циклом.
Определить основные структуры EJB системы, описав при этом интерфейс взаимодействия между ее компонентами.
EJB приследует цель стать стандартом для разработки клиент сервреных приложений на JAVA.
EJB компоненты будучи JAVA классами должны без сомнения работать на любом EJB сервере даже без перекомпиляции.
Основные части EJB системы:
EJB компонента
EJB контейнер
EJB объект
EJB компоненты выполняются внутри EJB контейнера, который выполняется внутри EJB сервера. EJB компонента представляет из себя JAVA класс, который реализует некоторую бизнес-логику. Все остальные классы в EJB system либо реализуют поддержку клиент серверного взаимодействия между компонентами либо реализуют некоторые сервисы для компонент.
EJB контейнер – место, где находятся EJB компоненты. Контейнер реализует для находящихся в нем компонент такие сервисы как транзакции, управление ресурсами, управлениями версиями компонент, их мобильностью, настраиваимостью, жизненным циклом. Так как EJB контейнер реализует все эти функции, то разработчик EJB компонент может не реализовывать их самостоятельно, а вызвать соответствующие методы у контейнера. Как правило, в одном EJB контейнере живет несколько EJB компонент.
EJB объект. Клиентские приложения вызывают методы на удаленных EJB компонентах через EJB объект. EJB объект реализует “удаленный интерфейс” EJB компоненты на сервере. Находящаяся на сервере EJB компонента помимо бизнес-функций, ради которой она была разработана, должна реализовывать некоторые функции определенной спецификации, которые служат для управления EJB компонентами со стороны контейнера. EJB объект реализует лишь бизнес-интерфейс для EJB компоненты, являясь промежуточным звеном между клиентом и EJB компонентой.
EJB объект и EJB компонента представляют собой разные классы, хотя “снаружи” выглядят одинаково. Это происходит так как они реализуют один и тот же интерфейс. Однако, при этом они выполняют совершенно разные функции.
EJB компонента выполняется на сервере, внутри EJB контейнера и реализует бизнес-логику, в то время как EJB объект выполняется у клиента и удаленно вызывает метода у EJB компоненты.
Типы бинов.
существует два различных типа бинов: Session, Entity
Session Bean представляет собой EJB компоненту, связанную с одним клиентом. Бины этого типа имеют ограниченные сроки жизни и редко участвуют в транзакциях. Обычно не восстанавливаются после сбоя сервера. Несмотря на то, что в процессе своей работы Session Bean может сохранять некоторую информацию в базе данных, его предназначение заключается в выполнении некоторых функций на стороне сервера от имени одного клиента.
Entity Bean представляет собой компоненту, работающую с постоянной информацией, хранящейся, например, в базе данных. Ассоциируются с элементами баз данных и могут быть доступны одновременно нескольким пользователям. Так как информация в базе данных является постоянной, то и Entity Beans живут постоянно, выживая после сбоя сервера, так как можно восстановить бин из базы данных. Entity Bean может представлять собой строку какой-либо таблицы из базы данных, или даже результат команды SELECT. В объектно-ориентированных базах данных Entity bean может представлять собой отдельный объект, со всеми его атрибутами и связями.
Клиент создает на EJB сервере объекты и работает с ними так же как если бы это были локальные объекты.
Разработчик может легко создавать и удалять объекты, которые выполняются на сервере. Session bean в большинстве случаев работает с информацией, относящейся к “диалогу” между клиентом и сервером, в то время как Entity Bean представляет собой экземпляр данных и работу с “постоянными” данными из базы данных. Каждый экземпляр бина имеет свой уникальные идентификатор. Для Entity объектов уникальный идентификатор как правило совпадает с уникальным идентификаторам данных, которые он представляет. В данном случае существует первичный ключа для всех Entity Beans. Идентификатор же session beans может быть практически любым -- например он может состоять из имени сервера и порта удаленного соединения, а может создаваться случайным образом.
Создание серверных объектов.
Приложение клиент соединяется с EJB сервером и посылает ему запрос на создание бина для обработки своих запросов. Сервер отвечает на такой запрос созданием объекта на стороне сервера, то есть экземпляр EJB компоненты и возвращает клиенту прокси-объект (EJB объект), чей интерфейс совпадает с интерфейсом созданной EJB компоненты и чьи методы перенаправляют вызовы собственно экземпляру компоненты. После этого приложение-клиент работает с EJB объектом как с локальным объектом, даже и не подозревая, что всю работу выполняет не EJB объект, а удаленная компонента на сервере. Созданием и удалением EJB компонент занимается EJB контейнер. У каждо EJB компоненты есть “родной интерфейс” (home interface), который определяет методы создания, инициализации, удаления и поиска экземпляров EJB компонент на стороне сервера. “Родной интерфейс”, по сути, описывает возможные взаимодействия между компонентой и контейнером. В этом интерфейсе определены методы двух типов:
фабричные
Home
create
поисковые
find
Фабричные методы позволяют создавать экзмепляры компонент на стороне сервера. При вызове этого методы можно передавать параметры инициализации компоненты. Можно иметь несколько фабричных методов. При вызове фабричного метода возвращается ссылка на стороне сервера. Получив эту ссылку можно начать общение с созданой компонентой, то есть вызывать его метод.
Поисковые методы позволяют найти уже созданные компоненты на стороне сервера. Поисковые методы похожи на фабричные, но могут возвращать ссылку не только на одну компоненту, но и возвращать композицию ссылок. Кроме Home интерфейса каждая компонента имеет Remote интерфейс. После того как создана или найдена компонента через ее интерфейс и получена ссылка на ее Remote интерфейс, можно приступать к взаимодействию с EJB компонентой. Все способы взаимодействия с этими компонентами определены в Remote интерфейсе. Стандартом являются get/set методы, которые позволяют считывать компоненты.