Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

EJB, RMI и corba




Какие проблемы решаются с помощью EJB

Если сформулировать в самой краткой форме преимущества, которые получает компания, использующая EJB для создания корпоративных систем, то, наверное, получилось бы следующее: отпадает необходимость иметь в штате (или привлекать к работам в рамках проекта) квалифицированных специалистов в системных областях. Вместо этого фирма платит деньги и получает готовые решения по обеспечению взаимодействия EJB-компонентов, реализующих необходимую функциональность, и операционной среды. Разработчик проекта может не беспокоиться о возможных проблемах с точки зрения функционирования системы на разных платформах, в разных операционных системах и при взаимодействии с различными СУБД, поддерживающими технологию JDBC. EJB демонстрирует высокую эффективность и уровень масштабируемости создаваемых приложений. Кроме того, системы получаются открытыми в том смысле, что с ними могут взаимодействовать CORBA-клиенты, написанные на любом из языков, поддерживающих CORBA.

При использовании EJB cнижаются (по сравнению с традиционными подходами) требования к квалификации основной массы программистов, зато очень важно иметь грамотных менеджеров проекта.

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

Ранее говорилось о конкуренции нескольких технологий в рамках создания серверных приложений, и при этом упоминалась технология CORBA. На самом деле говорить о CORBA исключительно как о сопернике технологии EJB, конечно, не приходится. Многие CORBA-средства сознательно положены разработчиками EJB в фундамент этой технологии. В первую очередь, это протокол обмена IIOP и Служба Управления Транзакциями (в EJB используется отображение на Java Объектного Сервиса Транзакций, OTS, CORBA). Кроме того, на использовании инфраструктуры и возможностей CORBA часто основаны многие сервисы EJB - например, служба имен JNDI, которая в реализации технологии EJB фирмой Inprise (Inprise Application server 4.0) работает «поверх» Службы Именования (Naming Service) CORBA.

Существует стандарт отображения EJB на CORBA, касающийся управления транзакциями, безопасностью и службы имен. В этом стандарте указано, что спецификация EJB 1.1 не требует (хотя и считает желательной) полную координацию между EJB и CORBA; жесткое требование в этом плане содержится в спецификации Java 2 Enterprise Edition (J2EE).

Итак, составной частью EJB может быть только то, что соответствует стандартам как RMI, так и CORBA. Такое подмножество обычно называют RMI/IDL.

Такое взаимодействие не означает, что EJB и CORBA постепенно мигрируют в сторону создания некой единой технологии. Между ними остаются фундаментальные различия. EJB является сравнительно небольшой моделью, оптимизированной для решения вполне конкретных классов задач с использованием небольшого количества стандартных подходов, к тому же базирующейся исключительно на языке Java. CORBA возлагает на свою объектную модель надежды, связанные с созданием универсального подхода к решению всех проблем, связанных с взаимодействием удаленных объектов, и с этой точки зрения EJB может рассматриваться как некий частный случай - например, как результат отображения некоторого подмножества универсальной CORBA-модели на язык Java. Планы OMG, как видите, не страдают отсутствием амбиций, но даже если эти планы и будут полностью реализованы, то это произойдет не завтра. Программисты же, которые нуждаются в средствах создания качественных корпоративных приложений, хотят иметь их уже сейчас.

Enterprise JavaBeans по названию похожа на другую Java-технологию – JavaBeans, что может создать впечатление, что одно является развитием другой. Конечно, некий элемент преемственности присутствует; и та, и другая технологии предлагают компонентную модель и основаны на использовании Java. На самом же деле правильнее будет считать JB и EJB различными технологиями.

Компонентная модель EJB ориентирована на создание эффективных серверов приложений. Поскольку сервера приложений, как правило, не рассчитаны на работу в интерактивном режиме и часто вообще не требует наличия оператора, то задачи, решаемые с помощью EJB, в корне отличаются от задач, где разумно и удобно использовать JB. EJB - это модель создания и управления серверными объектами, оптимального использования ресурсов серверов, управления правами доступа и безопасностью, управления транзакциями и взаимодействия с базами данных различных видов.

Естественно, что технология создания серверных объектов, базирующаяся на Java, использует технологию RMI для организации удаленных вызовов между виртуальными машинами Java. Правда, собственно RMI не предоставляет никаких универсальных путей управления транзакциями, да и служба имен RMI недостаточно развита по сравнению, например, со своим CORBA-аналогом. Поэтому разработчики EJB приняли решение использовать сильные стороны как одной, так и другой технологии - и RMI, и CORBA.

Разработчику компонентов нет необходимости использовать язык OMG IDL для определения удаленных интерфейсов - можно использовать стандартную семантику Java RMI. Если необходимо, на базе этих Java-объявлений с помощью стандартного компилятора, разработанного OMG (rmi2idl), можно сгенерировать IDL-файл, который может быть использован CORBA-программистами для создания на любом поддерживающем CORBA языке клиентских приложений, взаимодействующих с EJB как серверными объектами CORBA. Подчеркнем это еще раз: любой компонент EJB является одновременно полноценным CORBA-объектом.

Интерфейс Java, соответствующий спецификации RMI/IDL, должен соответствовать следующим требованиям:

· этот интерфейс явно или неявно должен наследовать интерфейс java.rmi.Remote;

· все его базовые интерфейсы соответствуют требованиям RMI/IDL;

· все методы интерфейса должны возбуждать исключение java.rmi.RemoteException;

· все аргументы методов и возвращаемые типы должны соответствовать требованиям RMI/IDL, предъявляемым к типам. Тип считается соответствующим требованиям RMI/IDL, если он либо один из базовых типов языка Java, либо это ссылка на удаленный объект, либо это любой класс Java, реализующий (явно или неявно) интерфейс java.io.Serializable, либо это массив всех ранее перечисленных типов, либо это исключение, либо это тип java.lang.Object.

Такие требования не накладывают почти никаких ограничений по сравнению с обычными правилами RMI. Обратите внимание, что в связи с особенностями IDL нельзя использовать в одном удаленном интерфейсе одно и то же имя для нескольких методов. При генерации IDL-деклараций на базе RMI-интерфейсов, содержащих несколько методов с одинаковыми именами (ejbCreate, например), принимаются специальные меры, позволяющие обойти это ограничение.




Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 351; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.