- •Распределенные события:
- •4. Проектирование сложных объектов. Основные принципы проектирования. Аспекты и стадии проектирования
- •5. Развитие парадигмы программирования
- •6. Функциональное моделирование. Стандарты idef0, idef3.
- •7. Информационное моделирование. Стандарты idef1, idef1x/
- •8. Средства и элементы статистических и динамических моделей объектно-ориентированных систем (статические и динамические диаграммы uml).
- •9.Порождающие паттерны. Назначение, обобщенные свойства, применение. Пример реализации.
- •10. Структурные паттерны. Назначение, обобщенные свойства, применение. Пример реализации.
- •11.Паттерны поведения. Назначение, обобщенные свойства, применение. Пример реализации
- •12. Язык xml: средства, назначения и особенности использования. Xml и dtd.
- •13. Язык xml и схемы данных.
- •14.Методы и средства обработки xml документов с использ-ем моделей dom и sax, преимущ-ва и недостатки.
- •15.Языки Extensible Markup Language(xsl) и xsl Transformations (xslt): назначение и особенности использования.
- •16. Язык xPath и его применение для доступа к элементам xml.
- •17.Фазы, итерации и циклы разработки. Рабочие процессы, модели и артефакты.
- •18. Совместная разработка: Методы и средства тестирования и отладки программных приложений
- •19. Особенности модель распределённых объектов. Модель rpc.
- •20. Классы и интерфейсы механизма rmi . Архитектура и конфигурирование rmi
- •Разработка rmi приложений. Примеры. Соглашения о передаче данных
- •Corba, назначение, терминология. Архитектура управления объектами (ома). Объектная модель corba.
- •Основные сервисы Corba, модель организация приложений corba, примеры.
- •Orb: понятие, назначение, основные функции. Принципы организации запросов в orb. Использование стандарта iiop.
- •Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.
- •Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.
- •Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис.
- •Платформа j2ee. (основные технологии). Когда следует применять Enterprise JavaBeans. Типы ejb, обобщенная архитектура, принципы функционирования и программное обеспечение.
- •Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).
- •Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры)
- •Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.
- •Общие принципы развертывание сеансовых компонентов ejb. Пример текста дескриптора поставки.
- •Организация и особенности Entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).
- •Организация и особенности Entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).
- •Особенности реализации (home) и (Remote) интерфейсов для Entity компонентов.
- •Контейнер ejb, понятие, назначение, основные функции.
- •Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
- •Jndi, структура, назначение, роль в развертывании и функционировании.
- •Архитектура совместного использования web и ejb компонентов, Ejb-транзакции.
- •Доступ к компонентам ejb из различных приложений клиента (web, Console, gui).
- •Компоненты ejb, управляемые сообщениями. Обмен сообщениями с помощью java Message Service (jms) .
- •Модели использования jms. Основные объекты и термины, их назначение (алгоритм реализации).
- •Message Driven Beans (mdb), жизненный цикл компонентов. Особенности применения и функционирования, реализующие методы (примеры).
- •Технология jsf Базовые концепции технологии и функциональные возможности jsf
- •Inversion of Control контейнер
Основные сервисы Corba, модель организация приложений corba, примеры.
CORBA-cервисы, представляют собой набор служб системного уровня, упакованных вместе с интерфейсами IDL. Их можно рассматривать как расширение функциональности ORB. Они используются для создания компонент, их именования и внедрения в среду.
Сервис именования (Naming service) служит для управления ссылками на CORBA-объекты и их хранения. Его осн.зад. - универсальным образом организовать соединение объектов друг с другом. Сервис имен оперирует с хранилищем объектных ссылок. Обращение к этому сервису выполняется для получения нужной объектной ссылки, идентифицируемой по читабельному имени объекта.
Сервис событий (Event service) обеспечивает поддержку асинхронного взаимодействия приложений.
Сервис хранения объектов (Persistence service) предоставляет набор универсальных интерфейсов для сохранения экземпляров объектов в долговременной памяти. Сервис разработан таким образом, что возможна его реализация на основе объектной базы данных.
Сервис управления транзакциями (Transaction service) поддерживает множество моделей транзакций, включая вложенные транзакции. Сервис транзакций необходим для корректной работы приложений в многопользовательском режиме.
Сервис взаимодействия (Relationship service) реализует логические связи между CORBA-объектами. Сервис определяет два дополнительных типа объектов: связь и роль. Роль представляет собой CORBA-объект, отражающий характер связи, а связь характеризует зависимости объектов прикладной области.
Сервис управления разделяемыми ресурсами (Concurrency control) service позволяет клиентам координировать свои действия при исп-нии разделяемых ресурсов. Управление разделяемыми ресурсами осущ-ся с пом. блокировок. Каждая блокировка ассоциируется с единственным ресурсом и единственным клиентом. Сервис определяет также несколько режимов блокировок, которые соответствуют различным способам доступа.
Сервис внешнего представления (Externalization service) формирует копию CORBA-объекта в виде некоторого внешнего представления — файла, элемента базы данных и т.д.
В адресном пространстве клиента функционирует специальный объект, называемый заглушкой (stub). Поучив запрос от клиента, он упаковывает параметры запроса в специальный формат и передает его серверу, а точнее скелету.Скелет (skeleton) — объект, работающий в адресном пространстве сервера. Получив запрос от клиента, он распаковывает его и передает серверу. Также скелет преобразует ответы сервера и передает их клиенту (заглушке).Создание CORBA приложения на Java начинается с написания интерфейса для удаленного объекта, используя язык описания интерфейсов (Interface Definition Language, IDL). Создадим файл test.idl
module testApp {
interface test
{ long count(in string msg); };
};
Серверная часть приложения.
Первое что мы делаем, создаем ORB. Затем создаем экземпляр класса удаленного объекта (testServant) и регистрируем его в ORB. Дальше вызываем специальную службу имен (NameService) и регистрируем в ней имя удаленного объекта, чтобы клиент смог его найти.После того как сервер обработает запрос от клиента и выполнит метод count он снова перейдет в состояние ожидания.
ORB orb = ORB.init(args, null);
testServant testRef = new testServant();
orb.connect(testRef);
org.omg.CORBA.Object objRef =orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
Код клиента. Основные шаги написания клиентского приложения: Создание и инициализация ORB Получение контекста службы имен Нахождение удаленного объекта Вызов метода count.
Третий пункт. Создается объект NameComponent. Вызывается метод resolve(NameComponent[] path), который отыскивает по имени удаленный объект (стандартный CORBA-объект). При помощи метода narrow(org.omg.CORBA.Object obj) класса testHelper (сгенерированного idltojava компилятором) получаем объектную ссылку на интерфейс test.
NameComponent nc = new NameComponent("test", "");
NameComponent path[] = {nc};
org.omg.CORBA.Object obj= ncRef.resolve(path);
test testRef=testHelper.narrow(obj);Теперь можно вызывать метод count
String msg = "try to count";
int count = testRef.count(msg);