31883

Моделі реалізації об’єктно-орієнтованих систем

Контрольная

Информатика, кибернетика и программирование

У кожного інтерфейсу СОМ два імена. Простої, символьне імя призначене для людей, воно не унікально (допускається, щоб це імя було однаковим у двох інтерфейсів). Інше, складне імя призначене для використання програмами. Програмне імя унікальне, це дозволяє точно ідентифікувати інтерфейс.

Украинкский

2013-09-01

57.5 KB

0 чел.

Міністерство освіти та науки України

КІСТ КНЕУ ім. В. Гетьмана

Самостійна робота № 1

з предмету: "Технологія програмування та створення програмних продуктів ”

на тему: "Моделі реалізації об’єктно-орієнтованих систем"

за ІІ семестр 2010-2011 н.р.

Київ - 2010

Ідентифікація інтерфейсу

У кожного інтерфейсу СОМ два імена. Простої, символьне ім'я призначене для людей, воно не унікально (допускається, щоб це ім'я було однаковим у двох інтерфейсів). Інше, складне ім'я призначене для використання програмами. Програмне ім'я унікальне, це дозволяє точно ідентифікувати інтерфейс.

Прийнято, щоб символьні імена Сомів-інтерфейсів починалися з букви І (від Іnterface). Наприклад, згаданий нами інтерфейс для роботи з файлами повинний називатися Іработа с файлами, а інтерфейс перетворення їхніх форматів – Іпреобразование форматів.

Програмне ім'я будь-якого інтерфейсу утвориться за допомогою глобально унікального ідентифікатора (globally unіque іdentіfіer - GUІ). GUІ інтерфейсу вважається ідентифікатором інтерфейсу (іnterface іdentіfіer - ІІ). GUІ - це 16-байтовая величина (128-бітове число), генеруємо автоматично.

Унікальність у часі досягається за рахунок включення в кожен GUІ мітки часу, покажчика моменту створення. Унікальність у просторі забезпечується цифровими параметрами комп'ютера, що використовувався для генерації GUІ.

Опис інтерфейсу

Для визначення інтерфейсів застосовують спеціальну мову - мова опису інтерфейсів (Іnterface Defіnіtіon Language - ІDL). Наприклад, ІDL-описание інтерфейсу для роботи з файлами 1Работасфайлами має вид:

[ object.

uuid(E7CDODOO-1827-11CF-9946-444553540000) ]

interface IРаботаСФайлами: IUnknown {

import "unknown.idl"

HRESULT ОткрытьФайп ([in] OLECHAR имя [31]);

HRESULT ЗаписатьФайл ([in] OLECHAR имя [31]);

HRESULT ЗакрытьФайл ([in] OLECHAR имя [31]);

}

Реалізація інтерфейсу

СОМ задає стандартний двійковий формат, що повинний реалізувати кожен СОМ-об'єкт і для кожного інтерфейсу. Стандарт гарантує, що будь-який клієнт може викликати операції будь-якого об'єкта, причому незалежно від мов програмування, на яких написаний клієнт і об'єкт.

Обробка клієнтського виклику виконується в наступному порядку:

  •  за допомогою покажчика на віртуальну таблицю витягається покажчик на необхідну операцію інтерфейсу;
  •  покажчик на операцію забезпечує доступ до її реалізації;
  •  виконання коду операції забезпечує необхідну послугу.

Unknown - базовий інтерфейс COM

Інтерфейс lUnknown забезпечує мінімальне "спорядження" кожного об'єкта СОМ. Він містить три операції і надає будь-як об'єкту СОМ дві функціональні можливості:

  •  операція Querylnterface() дозволяє клієнту одержати покажчик на будь-який інтерфейс об'єкта (з іншого покажчика інтерфейсу);
  •  операції AddRef() і Release() забезпечують механізм керування часом життя об'єкта.

Одержання покажчика на інтерфейс за допомогою Querylnterface: 1 - за допомогою

покажчика на інтерфейс А клієнт запитує покажчик на інтерфейс У, викликаючи

Querylnterface (ІІ_B); 2 - об'єкт повертає покажчик на інтерфейс У;

3 - тепер клієнт може викликати операції з інтерфейсу В

Правила фіналізації СОМ-об'єкта дуже прості:

  •  при видачі клієнту покажчика на інтерфейс виконується СЧС+1;
  •  при виклику операції AddRef виконується СЧС+1;
  •  при виклику операції Release виконується СЧС-1;
  •  при СЧС=0 об'єкт знищує себе.
  •  Звичайно, клієнт повинний допомагати гідному харакірі об'єкта-самурая:
  •  при одержанні від іншого клієнта покажчика на інтерфейс СОМ-об'єкта він повинний викликати в цьому об'єкті операцію AddRef;
  •  наприкінці  роботи з об'єктом він зобов'язаний викликати його операцію Release.

Створення СОМ- об'єктів

Створення СОМ-об'єкта базується на використанні функцій бібліотеки СОМ. Бібліотека СОМ:

  •  містить функції, що пропонують базові послуги об'єктам і їх клієнтам;
  •  надає клієнтам можливість запуску серверів СОМ-об'єктів.

Доступ до послуг бібліотеки СОМ виконується за допомогою викликів звичайних функцій. Найчастіше  імена функцій бібліотеки СОМ починаються з префікса "З". Наприклад, у бібліотеці мається функція CoCreateіnstance.

Для створення Сома-об'єкта клієнт викликає функцію бібліотеки СОМ CoCreateіnstance. Як  параметри цієї функції посилаються ідентифікатор класу об'єкта CLSІ і ІІ інтерфейсу, підтримуваного об'єктом. За допомогою CLSІ бібліотека шукає сервер класу (це робить диспетчер керування сервісами SCM - Servіce Control Manager). Пошук виробляється в системному реєстрі (Regіstry), що відображає CLSІ на адресу  коду сервера, що виконується. У системному реєстрі повинні бути зареєстровані класи всіх Сомів-об'єктів.

Створення одиночного Сома-об'єкта: 1 - клієнт викликає CoCreatelnstance

(CLSІ M, ІІ А); 2 - бібліотека СОМ знаходить сервер і запускає його;

3 - бібліотека СОМ повертає покажчик на інтерфейс А;

4 - тепер клієнт може викликати операції Сома-об'єкта

Параметри функції CoCreateіnstance, використовуваної клієнтом, дозволяють також задати тип сервера, якому потрібно запустити (наприклад, "у процесі" чи локальний).

Повторне використання СОМ-об'єктів

Причина - у типовому СОМ-середовищі базові об'єкти й об'єкти-спадкоємці створюються, випускаються й обновляються незалежно. У цих умовах зміни базових об'єктів можуть викликати непередбачені наслідки в об'єктах-спадкоємцях їхньої реалізації. СОМ пропонує інші засоби повторного використання - включення й агрегурувание.

Застосовуються наступні терміни:

  •  внутрішній об'єкт - це базовий об'єкт;
  •  зовнішній об'єкт - це об'єкт, що повторно використовує послуги внутрішнього об'єкта.

Достоїнство включення - простота. Недолік - низька ефективність при довгому ланцюжку "делегують " об'єктів.

Недолік включення усуває агрегирование. Воно дозволяє зовнішньому об'єкту обманювати клієнтів - представляти в якості власні інтерфейси, реалізовані внутрішнім об'єктом.

Повторне використання СОМ-об'єкта за допомогою агрегирования.

Представимо дві практичні задачі:

  •  запит клієнтом у внутрішнього об'єкта (за допомогою операції Querylnterface) покажчика на інтерфейс зовнішнього об'єкта;
  •  зміна клієнтом лічильника посилань внутрішнього об'єкта (за допомогою операції AddRef) і інформування про цьому зовнішнього об'єкта.

КОНТРОЛЬНІ ПИТАННЯ:

  1.  Як можна ідентифікувати інтерфейс?
  2.  Розглянути опис інтерфейсу?
  3.  Як виконується обробка клієнтського виклику?
  4.  Розписати про базовий інтерфейс СОМ (операції, правила фіналізації).
  5.  Для чого використовуються повторні СОМ – об’єкти?
  6.  Створити в MS Visio СОМ – об’єкт.


 

А также другие работы, которые могут Вас заинтересовать

36730. Работа с формулами в Excel 144.5 KB
  Создайте таблицу содержащую следующие поля: № п п Фамилия Информатика История Психология Математика Иностранный язык Средний балл за сессию Средний балл группы за сессию 2. Заполните таблицу данными. Рассчитайте средний балл за сессию для всей группы В результате проделанной работы вы должны получить примерно такую таблицу как на рис. Для назначения стипендии с помощью Расширенного фильтра выберите в отдельную таблицу студентов сдавших сессию на 4 и 5.
36731. РАЗРАБОТКА СХЕМЫ И СОЗДАНИЕ СТРУКТУРЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ. Методичка 115 KB
  Заполните вновь созданные таблицы СЕССИЯ и СТИПЕНДИЯ данными как это показано на рис. Для этого: в окне базы данных СЕССИЯ выберите объект Таблицы; щелкните по таблице Студент нажмите кнопку Конструктор. Определите ключевое поле для таблицы СТУДЕНТ. Структура таблицы СЕССИЯ Признак ключа Имя поля Тип поля Формат поля Размер поля Ключевое Номер Текстовое 5 Оценка 1 Числовое Фиксированный Длинное целое Оценка 2 Числовое Фиксированный Длинное целое Оценка 3 Числовое Фиксированный Длинное целое Оценка 4 Числовое...
36732. Получить сигнал пилообразной формы и исследовать влияние фазы гармоник 85.01 KB
  Для решения воспользуемся формулой: где: Un напряжение k текущий номер гармоник n число гармоник w круговая частота t время Ход работы: Собираем установку.
36733. РАЗРАБОТКА СХЕМЫ И СОЗДАНИЕ СТРУКТУРЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ 1.07 MB
  Структура таблицы СЕССИЯ Признак ключа Имя поля Тип поля Формат поля Размер поля Ключевое Номер Текстовое 5 Оценка 1 Числовое Фиксированный Длинное целое Оценка 2 Числовое Фиксированный Длинное целое Оценка 3 Числовое Фиксированный Длинное целое Оценка 4 Числовое Фиксированный Длинное целое Результат Текстовое 3 Таблица 2. Структура таблицы СТИПЕНДИЯ Признак ключа Имя поля Тип поля Формат поля Размер поля Ключевое Результат Текстовое 3 Процент Числовое Процентный Одинарное с плавающей точкой Заполните вновь созданные таблицы...
36734. Задания для лабораторных работ по дисциплине Информатика 892.5 KB
  Найти сумму элементов среди элементов расположенных на главной диагонали матрицы А.Найти максимальный элемент в 3ей строке матрицы 3.Поменять местами найденный максимальный элемент и значение S.Найти новый одномерный массив В из минимальных элементов каждой строки матрицы А.
36735. Методы тестирования аппаратных средств ПК 60.79 KB
  Включить компьютер и запустив программу SIW и используя ветвь Hrdwre произвести определение основных параметров следующих элементов ПК: Рабочую частоту ЦП размер кэшпамяти всех уровней Версию BIOS и его размер Параметры МВ тип чипсета тип сокета ЦП количество слотов шин расширения и памяти Объем тип используемой памяти ее производитель рабочая частота памяти максимальная емкость устанавливаемой памяти. Дату создания BIOS Тип BIOS Идентификационный номер BIOS Тип CPU и его рабочие частоты Размер BIOS ROM Установленный и максимально...
36736. Методика поиска неисправностей элементов БП ПК 120.33 KB
  Правильность работы схемы выработки сигнала PG. Порядок выполнения работы: Методика проверки работы сетевого выпрямителя и фильтра. Ознакомится с признаками исправной работы сетевого выпрямителя и фильтра для этого загрузить модель выпрямителя lb_3_1.
36737. Методика поиска неисправностей элементов Блока питания ПК 960.96 KB
  Неисправные элементы Измеренные значения Напряжение U1 В Потребляемый ток I1 Пульсация выпрямленного напряжения mВ С1 пробой 3.77 mV С1С2пробой 0 342. Переключив К2 в положение низ Последовательно введя неисправность конденсатора C1 и транзисторов VT2VT3 Shot пробой Open обрыв проанализировать поведение схемы и характер вырабатываемого сигнала PG зарисовать полученные осциллограммы для каждого случая. C1 Shot пробой C1 Open обрыв VT2 Shot пробой VT2 Open обрыв VT3 Shot пробой VT3 Open обрыв.
36738. Работа с таблицами в текстовом процессоре Word 478 KB
  Каждая ячейка таблицы может содержать текстовую числовую или графическую информацию. Можно производить любые манипуляции с данными таблицы например вставлять и удалять форматировать данные не нарушая при этом расположения столбцов. Создание таблицы Таблицу в текстовом редакторе Word можно создать двумя способами: В меню Таблица выбрать команду Вставить Таблица рис. Диалоговое окно Вставка таблицы Рис.