EJB Local Interface Кряжев Василий VKryazhev@luxoft.com.

Презентация:



Advertisements
Похожие презентации
Session beans Василий Кряжев
Advertisements

Исключения в EJB Кряжев Василий
Interceptors Василий Кряжев
EJB Environment Кряжев Василий
Рассматриваемые темы Введение в кластеринг Кластеринг Stateless session beans Кластеринг Stateful session beans Конфигурация кластеринга 2-1.
Рассматриваемые темы Введение в Web Services EJB и Web Services 2-1.
Рассматриваемые темы Технология EJB Типы EJB Вызов EJB Сборка и развертывание EJB- приложения 2-1.
1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Рассматриваемые темы Подсистема безопасности сервера приложений Конфигурация безопасности в EJB Сервисы авторизации и аутентификации в Java 2-1.
Рассматриваемые темы EJB Timer сервис Создание таймера Отмена и сохранение таймера Получение информации о таймере Транзакции и таймеры 11-1.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
1 © Luxoft Training 2013 Модуль 8 Введение Задачи аннотаций Стандартные аннотации Создание собственных аннотаций 8-1 Аннотации.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
И = 7-6= 10-0=
Обобщения ( шаблоны ) Лекция 5. Тип, метод или интерфейс параметризованный другим типом Обобщенный тип Тип ( класс, структура ), который параметризован.
Ассоциативные списки Поиск данных происходит не по индексу или положению объекта, а по его ассоциативной связи: public interface Map { // Доступ к объектам.
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
Новые возможности Java 5 Java Advanced. 2Georgiy KorneevJava Advanced / Новые возможности Java 5 Содержание Перечисления Метаданные Другие возможности.
Транксрипт:

EJB Local Interface Кряжев Василий

Рассматриваемые темы Концепция локальных интерфейсов Разница между Local и Remote бизнес интерфейсами Написание Local интерфейсов Вызов EJB локально Факторы выбора типа интерфейса 1-2

Local интерфейсы Позволяют оптимизировать доступ к EJB избегая удаленного вызова RMI Работают только когда клиент расположен в том же приложении что и EJB (jar, ear) Могут быть использованы в дополнении к Remote интерфейсам Не позволяют использовать механизмы балансировки нагрузки (load-balancing) и отказоустойчивости (failover) Зачем нужны Local интерфейсы? 1-3

1-4 Локальный доступ к EJB

Local vs Remote Доступ откуда угодно Сериализация параметров и результата Дорогой доступ (маршалинг, де маршалинг) Обычно крупно зернистые методы (coarse grain) Remote interface: 1-5 см. далее

Local vs Remote Доступ только из того же приложения Используется передача параметров по ссылке (pass by reference) Вызовы оптимизированы и быстры Обычно мелко зернистые методы (fine grain) Local interface: 1-6

Fine-grained vs Coarse-grained Много небольших методов, каждый из которых выполняет небольшое действие Если такие методы вызывать удаленно, то производительность сильно ухудшается из за больших накладных расходов Fine-grained объекты: 1-7 см. далее

Fine-grained vs Coarse-grained Небольшое число методов, каждый из которых выполняет много работы Для выполнения того же объема работы требуется намного меньшее число вызовов Паттерн Value object часто используется как параметр методов и возвращаемое значение Coarse-grained объекты: 1-8 см. далее

1-9 Fine-grained vs Coarse-grained

Передача аргументов При использовании Remote Business Interface параметры передаются по значению (passed by value) используя механизм сериализации. При использовании Local Business Interface параметры передаютсяпо ссылке (passed by reference). Семантика передачи аргументов: 1-10

Пример /* реализация не будет правильно работать для remote */ public void changeAppointmentDate(Appointment appointment) { appointment.setDate(new Date()); } /* реализация работает для обоих типов интерфейсов */ public Appointment changeAppointmentDate(Appointment old) { Appointment appointment = new Appointment(old); appointment.setDate(new Date()); return appointment; } Избегайте модификации параметров: 1-11

Аннотации Local public { Class[] value() default public { Class[] value() default {}; } javax.ejb.Local и javax.ejb.Remote 1-12

Реализация бизнес интерфейсов Класс может реализовывать Local и Remote бизнес интерфейсы одновременно Local и Remote бизнес интерфейсы: 1-13 см. далее

Реализация бизнес интерфейсов public interface OrderAgent { String @Stateless public class OrderAgentBean implements OrderAgent { public String placeOrder() {…} } /* Контейнер обеспечит разные реализации (local, remote) одного и того же интерфейса? */ Как реализовать сразу Local и Remote? 1-14 см. далее

Реализация бизнес интерфейсов public interface OrderAgent { String placeOrder(); } public interface OrderAgentLocal extends OrderAgent { List @Stateless public class OrderAgentBean implements OrderAgentLocal { public String placeOrder() { … } public List getItems() { … } } Реализация сразу Local и Remote 1-15 см. далее

Реализация бизнес public interface OrderAgentRemote extends OrderAgent public interface OrderAgentLocal extends OrderAgent public class OrderAgentBean implements OrderAgentRemote, OrderAgentLocal { public String placeOrder() { return Your order has been placed.; } Другая реализация Local и Remote 1-16

Факторы выбора интерфейса Где расположен клиент? Может ли клиентпереехать? Где узкое место в системе? Local интерфейсы не решают все проблемы производительности. Использование Local интерфейсов не дает возможность использовать механизмы балансировки нагрузки и отказоустойчивости. Как часто происходят удаленные вызовы? При выборе принимайте во внимание: 1-17

Выводы Концепцию Local интерфейсов Написание Local интерфейсов Факторы выбора типа интерфейса В этом модуле мы обсудили: 1-18

Лабораторная EJB Local interface 1-19 Упражнение

Недоделки Не выдержан темп 1-20