- •Межобъектная Связь
- •Ташкент
- •Содержание
- •2. Com модель
- •3. Сложные документы
- •4. РаспределенныйCom
- •Тема 2. Модель компонентных объектов (com)
- •1. Описание сом объектов
- •2. Интерфейсы вCom
- •3. Создание com объектов
- •Тема 3. Пакование и информация типов
- •1. Что такое пакование На что действительно указывает указатель интерфейса
- •2. Информация типов
- •Тема 4. Автоматизация
- •1.Что понимается под автоматизацией
- •2. Дуальный интерфейс
- •Тема 5. Постоянство
- •1. Понимание постоянства
- •2. Структурная память для файлов
- •3. Контроль постоянства объекта
- •Тема 6. Моникеры
- •1. Что такое моникеры?
- •2. Асинхронный моникер
- •Тема 7.ActiveXуправление
- •1. Эволюция ActiveX управления
- •2. Три взгляда наActiveXуправление
- •3. Методы и события вActiveXуправление
- •Тема 8. Однородная передача данных и соединяемые объекты
- •1. Однородная передача данных
- •2. Соединение объектов
- •Тема 9. Распределенный сом
- •1. Создание удаленного объекта
- •2. Использование моникера в распределенномCom
- •3. Средства безопасного доступа для удаленных объектов
- •Тема 10. ActiveX, Internet, и World Wide Web
- •1.ActiveXдокументы
- •2.ActiveXдокументы иWeb
- •Тема 11. Введение в corba
- •1. Знакомство с набором спецификаций omg
- •2. Поддержка Анализа & Проектирования
- •3. Основы объектов
- •Что такое объект?
- •4. Corba Основы взаимодействия
- •5. Что такое orb
- •Список Литературы
- •Приложение а. Глоссарий
3. Сложные документы
Сложные документы
•OLE технология позволяет создание сложных документов
•Приложения действуют как контейнеры и серверы
Рис. 1.8. Со структурной памятью, единственный файл содержит несколько памятей и потоков
Рис. 1.9. Документ может содержать элементы, управляемые различными приложениями
- AcitveX Controls
• ActiveX Controls определяет стандартный интерфейс для повторного использования компонент
• ActiveX controls первоначально назывался OLE controls
• ActiveX controls основывается на многие другие технологии, основанные на COM
4. РаспределенныйCom
Распределенный COM
•Распределенный COM позволяет клиентам осуществить доступ к объектам COM на других машинах
• DCOM использует RPC и обеспечивает сервисы безопасности
•Интерфейс, основанный на COM-сервисах
• DBMS сервисы могут быть доступны с использование COM объектов
• Технологии баз данных, основанные на COM обеспечивают способы доступа к данным, хранимых различными способами
• Транзакционные операции или все успешны или все неуспешны
• Модели транзакционных технологий, основанных на СОМ как объекты COM
•Сервис директорий отображает имя на информацию о названном объекте
Новые понятия и термины:
• Component Object Model - Модель компонентных объектов
• Object Linking and Embedding (OLE) - Связь и Внедрение объектов
Контрольные вопросы:
1. Технология ActiveX и OLE
2. Что такое COM и как он работает
3. Как работает распределенный COM. Схема распределенного COM
4. Сложные документы OLE
Литература:
1.David Chappell “Understanding Active X and OLE”.Microsoft Press, 1996
Тема 2. Модель компонентных объектов (com)
План :
1. Описание СОМ объектов
2. Интерфейсы в COM
3. Создание COM объектов
1. Описание сом объектов
• Понимание ActiveX и OLE требует понимания COM
• Описание COM объектов
• Сервисы COMобъекта доступны через методы, входящие в его интерфейсы
Интерфейсы
• Интерфейс является контрактом между объектом и его клиентами
• Каждый интерфейс имеет два имени, одно используется людьми, а другое используется программным обеспечением
• Читаемый для людей интерфейс начинается с буквы I
• Имя интерфейса не гарантирует, что оно уникально
• Имена интерфейсов, используемых программным обеспечением являются глобально-уникальными
• Каждый GUID (Globally Unique Identifier) является уникальным во времени и пространстве
• IID (interface identifier) является GUID
• COM не передает мандат определенному языку нотацию для описания интерфейса
• Язык описания интерфейса COM часто используется для определения интерфейса
Рис. 2.1. A COM объект, его интерфейс и его клиент
[ object, uuid(E7CDODOO-1827-llCF-9946-444553540000)]
interface ISpellChecker :IUnknown {
import "unknown.idl" ;
HRESULT LookUpWord([in] OLECHAR word[31], [out] boolean *found);
HRESULT AddToDictionary([in] OLECHAR word[31]);
HRESULT RemoveFromDictaionary([in] OLECHAR word[31]);
}
2. Интерфейсы вCom
• Определение интерфейса включает его IID
• Каждый интерфейс наследует из IUnknown интерфейса
• Определение метода специфицирует имя метода, возвращаемое значение и (необязательно) список параметров
• Интерфейсы неизменны – однажды объявленные public (общие), они не могут быть изменены
• Добавление новой функциональности требует определение нового интерфейса
• COM определяет стандартный бинарный интерфейс для каждого своего метода
• vtable интерфейса содержит указатель на каждый из его методов
• Все vtables начинаются с указателя на методы IUknown
• Объект должен принадлежать этому бинарному формату для каждого интерфейса
Формат бинарного интерфейса COM похож на то, что компилятор C++ производит для класса C+
• Программисту, пишущему клиентские части может понадобиться знать этот бинарный формат
• Инструменты, такие как Visual Basic могут скрыть детали от программиста, пишущего клиентскую часть - IUnknown, Фундаментальный интерфейс
• Каждый COM объект должен поддерживать IUnknown
• Метод Querylnterface позволяет клиенту спросить указатель на другой интерфейс
• Querylnterface помогает решить проблемы версий
• Новые версии программного обеспечения с дополнительными характеристиками могут преподнести проблемы
• Раскрытие новых характеристик требует добавление нового интерфейса
• Querylnterface позволяет Вам начать использовать новые характеристики плавно
• Изменение характеристик требует добавление нового интерфейса
• Querylnterface может быть самым важным элементом в COM
• Однажды новый интерфейс объекта начинает выполнение, ему необходимо знать, где он остановится
Рис. 2.2. На что похож интерфейс в объекте
Рис. 2.3. Использование IUnknown:: QueryInterface.
• Подсчет Reference выполнен с помощью IUnknown методов AddRef и Release
• Подсчет Reference контролирует время жизни объекта
- Классы
• Каждый COM объект является примером класса, и каждому классу может быть назначен идентификатор класса
• Класс определяет выполнение группы интерфейсов
- Сервисы для COM Объектов
• COM объект выполнен на сервере (в процессе, локально или удаленно)
• Клиенту необходимо знать какой тип сервера, на котором объект выполнен
- COM и Многопоточность
• Многопоточный процесс содержит несколько видимых одновременных потоков выполнения
• В начале COM поддерживал многопоточность, используя раздельную модель
Рис. 2.4 : Три типа серверов
• Сейчас COM также поддерживает три потока
•Свободные потоки требуют большего от программиста