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

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Самостійна робота
Предмет:
Технологія програмування та створення програмних продуктів

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України КІСТ КНЕУ ім. В. Гетьмана Самостійна робота № 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) і інформування про цьому зовнішнього об'єкта. КОНТРОЛЬНІ ПИТАННЯ: Як можна ідентифікувати інтерфейс? Розглянути опис інтерфейсу? Як виконується обробка клієнтського виклику? Розписати про базовий інтерфейс СОМ (операції, правила фіналізації). Для чого використовуються повторні СОМ – об’єкти? Створити в MS Visio СОМ – об’єкт.
Антиботан аватар за замовчуванням

03.03.2013 12:08

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!