Компонентная модель

Лк13

25-11-04

Рис. Диаграмма состояний 2-х фазной транзакции.

Outcome Notification

Phase Zero

PC (двухфазная транзакция)

Completion with ask

Аналогично Completion, но координатор должен помнить результат транзакций, пока участник, зарегистрированный по этому протоколу, не подтвердит ему получение уведомления, содержащее статус завершенного приложения.

Участники регистрируются так, что координатор может управлять всеми их решениями об инициализации операций утверждать или прекращать транзакцию. Если участников больше двух, то транзакции выполняются в 2 фазы:

è Подготовка гарантии выполнения

è Утверждение

Если один участник, то используется однофазный подход и результат транзакции определенных значений возвращаются его участником.

Участник требует от координатора, чтобы тот известил его о моментах, когда 2PC-протокол начинает работу.

Пример.

Приложение, кэширующее данные, обязано записать их в БД прежде, чем в той начнется транзакция, связанная с работой приложения.

Участник транзакций просит известить его о утверждении/отмене транзакции. Приложение может использовать подобное извещение для высвобождения заблокированных ресурсов или других действий, выполняемых после завершения или отката транзакций.

1 –Register

2 – Prepare (приготовитель)

3 – Rollback (откатить)

4 – Prepared (приготовлена)

5 – Rollback (откатить)

6 – Commit (утвердить)

7 – Commiting (утверждена)

8 – Aborted (отмена)

9 – Aborted (отмена)

10 - Read Only / Aborted

Бизнес-транзакция

è Потребляют большое количество ресурсов

è Требуют установление доверительных отношений между участниками, т.к. они могут находиться в разных доменах

è Трудно осуществляется откат, т.к. для перехода системы в исходное состояние, алгоритм обработки может потребовать выполнения компенсационных операций для каждого из проделанного шага.

CORBA (Common object request broker architecture)

Термины:

CORBA (Common Object Request Broker Architecture – Общая Архитектура Брокеров Объектных Запросов) – промежуточное программное обеспечение (middleware).

Технология CORBA – технология распределённых вычислений.

Объект CORBA – абстрактный элемент, взаимодействие с которым определяется с помощью интерфейса средствами языка описания интерфейсов IDL (Interface Definition Languages).

Клиент/Сервер, используемый в смысле, что КЛИЕНТ работает с объектами, которые содержатся на СЕРВЕРЕ. Сервер может выступать в роли клиента. Провайдером (поставщиком) контракта является сервер. Потребителем контракта является клиент.

Клиент запрашивает сервис у сервера. Клиент вызывает метод у провайдера. Иногда это называют посылкой сообщения от клиента к серверу.

Исполнитель – конкретные элементы ЯП, обеспечивающие функциональность объектов CORBA (реализация объектов CORBA на соответствующем языке).

Компонент CORBA – набор объектов, представляющий более сложную службу, чем отдельный объект. При использовании службы пользователь взаимодействует с различными объектами, входящими в службу. Термин «компонент», «компонентная ориентация» направлены на создание сочетающихся частей компонентов, которые доводят инкапсуляцию (сокрытие данных, т.е. объект- чёрный ящик) до высшей степени. Представляет только открытый интерфейс. Сочетаемость взаимозаменяемых компонент является целью системы на основе компонент.

Основные свойства:

6. язык реализации компонент клиенту не известен

7. физическое расположение компьютера клиенту не известно.

8. компонент управляется внутри контейнера (они подчиняются правилам контейнера и существуют стандартные способы отправления собственным контейнером).

9. компонент может получить некоторые свойства от своего контейнера

10. компонент и контейнеры необязательно являются визуальными. Они могут реализовать бизнес-логику, такие как безопасность, активация, устойчивость транзакций.

Точка входа компонента – объект, с которым взаимодействуют пользователи. Обычно точка входа используется при регистрации компонента службами именования и службами коммерции. Все компоненты обладают точкой входа.

Динамический вызов – спецификация для API клиентской и серверной сторон, поддерживающая динамический поиск и вызов интерфейсов объектов CORBA.

Графическое представление элементов (с помощью интерфейсов):

1. Доступ к экземплярам этого класса с помощью удалённого вызова процедур CORBA.

2. Доступ к элементам этого компонента можно получить только с помощью интерфейсов языка IDL.

 
 


3. Класс X компонента A взаимодействует с экземплярами класса Y компонента B с помощью интерфейса Z.


Заглушка (stub) - распределение для клиента. Её можно статически подключить к коду клиента во время компиляции.

“Заглушки” уже завершены (то есть, описывать в ней перед компиляцией

реализацию каждого метода

не надо). Для их использования приложению клиента просто надо вызвать из “заглушки” имеющийся в ней метод, что приводит к вызову сервиса объекта.

Заготовка (skeleton) - распределение для стороны сервера. Их можно статически подключить к коду сервера во время компиляции.

Перед компиляцией “заготовки”, в ней необходимо описать реализацию каждого метода.


Архитектура CORBA.

Одним из первых документов CORBA был объект JMA (Object Management Architecture), в которой были определены основные элементы распределённых объектных систем, среди которых главным был определён ORB (брокер объектных запросов), через которого взаимодействуют компоненты более высокого уровня: службы, средства, приложения.

Основной службой CORBA 1-го поколения была служба именования, доставки сообщений.

2-е поколение архитектуры CORBA добавлена основная функциональность распределённых систем, которая определяется возможностью взаимодействия ORB, поддерживаемого протоколом GIOP (General Inter ORB Protocol), а также его TCP/IP-аналогом IIOP (протоколом взаимодействия, Internet Inter ORB Protocol). Появился целый ряд служб:

è служба обработки распределённых транзакций

è служба безопасности

è служба поддержки взаимодействия объектов

è служба конкуренции

è служба коммерции

и др.

Роль ORB сильно возросла, что позволило обеспечить большую функциональность систем (создаваемых).

Доступность ORB-сервисов, которые могут быть запрошены любым клиентом или сервисом, поддерживается в CORBA 2-го поколения.

Адаптеры BOA (Basic Object Adapter) – 1-ое поколение

Адаптеры POA (Portable Object Adapter) – 2-ое поколение

BOA – объектный адаптер, необходимый для поддержки различных стилей реализаций объекта.

В BOA существует 4 стиля: стр.95

1) по методу – стиль, когда новый сервис запускается каждый раз при обращении к методу объекта. Каждый вызов осуществляется на своём ….

2) сервер с распределённой активизацией – это серверы, поддерживающие множество активных объектов одновременно.

3) Постоянный стиль – серверы не нуждаются в активизации, работают всё время.

4) …

Жизненный цикл вызова.

Запрос должен обладать функциональными возможностями вызова метода. Все запросы характеризуются точками назначения, операциями и набором аргументов.

 
 


Точка назначения – целевой объект, под операцией - «проведенная операция», под аргументом – «все аргументы, которые надо обработать».

Основная цель архитектуры CORBA: каким образом клиенты отправляют запросы на получение удалённых ответов, а также получают ответы от удалённых объектов. Интерфейсы объектов определены 2-мя способами: статический и динамический.

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

Динамический метод предполагает возможность работать с приложениями, способными обработать запросы различных типов, ничего не зная об IDL на момент компиляции. Требует использования интерфейса DII (Dynamic … Interface), который устанавливается на стороне клиента. DSI (Dynamic Skeleton Interface) – интерфейс на стороне сервера.

При работе со стандартными приложениями используется статический метод и программные заготовки.

Достоинства статического метода: возможность использования объектов CORBA так, как обычных элементов языков программирования.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: