- •19. Особенности модели распределенных объектов. Модель rpc.
- •20. Архитектура механизмов rmi.
- •21. Разработка rmi-приложений. Примеры. Соглашения о передаче данных.
- •22. Corba, назначение, терминология. Oma. Модель cobra
- •Основные сервисы Corba, модель организация приложений corba, примеры.
- •25 Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.
- •Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.
- •Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис
- •28. Платформа j2ee. Когда следует применять ejb. Типы ejb. Общая структура Beans.
- •29 Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).
- •Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры).
- •Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.
- •Общие принципы развертывания сеансовых компонентов ejb. Пример текста дескриптора поставки.
- •Сущностные (entity) компоненты, жизненный цикл, pool соединений. Общие принципы реализации. Особенности, методы entity компонент их назначение и использование.
- •34. Организация и особенности entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).
- •35. Организация и особенности entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).
- •36. Особенности реализации (home) и (remote) интерфейсов для entity компонентов. Home-интерфейс Entity-Компонента.
- •37. Контейнер ejb, понятие, назначение, основные функции.
- •38. Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис
ORB может выступать в качестве посредника для межобъектных вызовов внутри единственного процесса, нескольких процессов, выполняющихся на одном компьютере, или множества процессов, выполняющихся в разных сетях под управлением разных операционных систем. Такой механизм полностью прозрачен для ваших объектов. Обратите внимание, что ORB может выступать посредником как между "мелко-зернистыми" объектами — подобными классам C++, так и для более масштабных — "крупно-зернистых" объектов. В общем случае, CORBA-программисту нет дела до транспортных протоколов, местоположения серверов, активации объектов, порядка следования байтов через различные платформы или целевых операционных систем — CORBA все это сделает прозрачным.
С точки зрения клиента стабы подобны локальному вызову - это локальный заместитель (proxy) для удаленного серверного объекта.
Сервант CORBA - функциональность CORBA-объекта (абстракция, содержащая реализацию методов, вызываемых клиентом, фактически под этим термином подразумевается конкретный существующий в памяти код, реализующий один или несколько объектов CORBA)
Служба Указания Имен (Naming Service), предназначена для выполнения преобразования (связывания) строки в объект и объекта в строку.
Когда клиент хочет создать серверный bean, он использует Java Naming and Directory Interface (JNDI) для нахождения home-интерфейса нужного класса bean. JNDI - стандартное расширение ядра Java которое обеспечивает глобальный сервис для любой Java-среды, позволяя Java-программам отыскивать и использовать ресурсы по имени, получать информацию об этих ресурсах, и отслеживать их структуру. Использование JNDI - пример совместимости EJB с другими Java API
Процесс преобразования объекта в строку называется привязыванием объекта (binding an object), а удаления преобразования называется отвязыванием (unbinding).
Так, при запуске сервер приложений должен создать серверный объект, связать объект с именем сервиса, а затем подождать пока клиент выполнит запрос. Клиент сначала получает ссылку на серверный объект, разрешает строковое имя, а затем может выполнить обращение к серверу, используя ссылку
28. Платформа j2ee. Когда следует применять ejb. Типы ejb. Общая структура Beans.
Компоненты EJB выполняются внутри EJB-контейнера, который в свою очередь выполняется внутри EJB-сервера.
EJB-компонента представляет из себя Java-класс, который реализует некоторую бизнес-логику.
EJB-контейнер -- это то место, где ``живет'' EJB-компонент.
EJB-объекты и EJB-компоненты представляют собой разные классы, хотя ``снаружи'' (при взгляде на их интерфейсы), они выглядят одинаково. Это происходит потому, что они реализуют один и тот же интерфейс. Однако при этом они выполняют совершенно разные функции. EJB-компонента выполняется на сервере, внутри EJB-контейнера и реализует бизнес-логику, в то время как EJB-объект выполняется у клиента и удаленно (через remote interface) вызывает методы у EJB-компоненты.
Существует два различных типа ``бинов'': session и entity.
Session bean представляет собой EJB-компоненту, связанную с одним клиентом. ``Бины'' этого типа, как правило, имеют ограниченный срок жизни (хотя это и не обязательно), и редко участвуют в транзакциях. В частности, они обычно не восстанавливаются после сбоя сервера. Несмотря на то, что в процессе своей работы, session bean может сохранять некоторую информацию в базе данных, его предназачение заключается все-таки не в отображении состояния или в работе с ``вечными объектами'', а просто в выполнении некоторых функций на стороне сервера от имени одного клиента.
Entity bean, наоборот, представляет собой компоненту, работающую с постоянной (persistent) информацией, хранящейся, например, в базе данных. Entity beans ассоциируются с элементами баз данных и могут быть доступны одновременно нескольким пользователям. Так как информация в базе данных является постоянной, то и entity beans живут постоянно. Клиент создает на EJB-сервере объекты и работает с ними так же, как если бы это были локальные объекты. Это до предела упрощает разработку. Разработчик может легко создавать, использовать и уничтожать объекты, а эти объекты, в свою очередь, выполняются на сервере. Итак, session beans в большинстве своем работают с информацией, относящейся к ``диалогу'' между клиентом и сервером, в то время как entity beans представляют собой экземпляры данных и работают с ``постоянными'' данными из баз данных.
Каждый экземпляр ``бина'' имеет свой уникальный идентификатор. Для entity объектов уникальный идентификатор, как правило, совпадает с (или каким-либо образом получается из) уникального идентификатора данных (обычно, как первичный ключ сущности БД), которые он представляет. То есть в данном случае существует нечто вроде первичного ключа для всех entity beans. Идентификатор же session beans может быть практически любым -- например он может состоять из имени сервера и порта удаленного соединения, а может создаваться случайным образом.