Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_ПАРАДИГМИ ПРОГРАМУВАННЯ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.32 Mб
Скачать

4.2 Компонентна об'єктна модель com (Component Object Model).

Як приклад компонентної моделі, яка реалізована у Windows, розглянемо модель COM (Component Object Model).

Компонент - це сховище (у вигляді DLL або EXE файла) для одного або декількох класів. Все, що знає програма-клієнт про клас, це його унікальний ідентифікатор і один або декілька інтерфейсів, що забезпечують доступ до реалізованих даним класом методів. Допускається реалізація компоненту і програми-клієнта на різних мовах (Visual C++, Visual Basic). В реєстрі системи зберігається інформація про місцеположення компоненту, що містить даний клас. Це дозволяє системі прозоро для клієнта перенаправляти виклики методів до потрібного компоненту і повертати результати.

Таким чином, забезпечується виконання двох важливих принципів компонентного програмування:

- незалежність від мови програмування

- прозорість місцеположення серверу для клієнта.

Визначення. Модель СОМ (Component Object Model) або її ще називають Модель багатокомпонентних об'єктів – це програмна модель, яка визначає набір правил, за якими повинні будуватися компоненти. Тільки при дотриманні цих правил компоненти забезпечують коректне і надійне функціонування.

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

Правила визначають стандартний внутрішній інтерфейс між об'єктами і методику взаємодії об'єктів, а саме – виклик функцій і обмін даними між об'єктами.

Кожний інтерфейс, який підтримується об'єктом є контрактом між цим об'єктом і його клієнтами. Вони зобов'язуються: об'єкт — підтримувати методи інтерфейсу в точній відповідності з визначеннями останнього, а клієнт — коректно викликати методи. Щоб контракт був працездатним, об'єкт і його клієнти повинні домовитися про спосіб явної ідентифікації кожного інтерфейсу, про загальний спосіб специфікації методів інтерфейсу, а також про конкретну реалізацію інтерфейсу.

Модель СОМ побудована за принципом «клієнт-сервер».

Клієнтом є програма, яка викликає функції компоненту або використовує його дані (компонентна система).

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

Сервери об'єктів СОМ. Розглянемо три основні типи серверів:

1. Сервер "в процесі" (in-рrocess): об'єкти реалізуються в бібліотеці, що динамічно підключається, і, таким чином, виконуються в тому ж процесі, що і клієнт.

2. Локальний сервер (out-рrocess): об'єкти реалізовані в окремому процесі, що виконується на тому самому комп'ютері, що і клієнт.

3. Віддалений сервер: об'єкти реалізовані в DLL або в окремому процесі, які розташовані на віддаленому по відношенню до клієнта комп'ютері.

Можливість створення віддалених серверів підтримує Розподілена модель СОМ (DCOM).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]