Поняття про Component Objects Model
Розподілена обробка за допомогою COM/DCOM
Оскільки СОМ-об'єкти самі по собі є додатками (або досить істотною частиною додатку), вони існують у вигляді окремих файлів на диску (.ехе або .dll). Одна з найпривабливіших особливостей СОМ в тому, що можна розмішати ці файли на одному комп'ютері мережі, викликати на іншому, а результати представляти на третьому, наприклад комп'ютері клієнта.
Зупинимося стисло на цьому моменті.Звичайно ми маємо справу з ситуацією, коли доступна по мережі програма виконується на робочій станції клієнта. Але це не те, про що мовилося трохи вище. В даному випадку йдеться про можливість виконувати програму, існуючу у формі СОМ-об'єкту на одному комп'ютері, в пам'яті іншого комп'ютера, використовуючи ресурси його процесора, а доступ до результатів мати на третьому комп'ютері - робочій станції клієнта, звідки і поступає запит на виконання всієї цієї операції.
Це називається розподіленою моделлю COM (Distributed COM - DCOM). Уявіть перспективи, які відкриваються при цьому в плані масштабування додатку, - збільшення кількості обслуговуваних клієнтів.
Що потрібно знати для практичного використання моделі СОМ
Не так багато. Якщо ви вже освоїли роботу з об'єктами, методами, властивостями, подіями і іншими премудростями, можна відразу приступати до вивчення СОМ. Єдина різниця в тому, що вам не доведеться створювати СОМ-об'єкти самостійно. Це за вас вже зробили інші. Якщо ж ви турбуєтеся про можливі ускладнення при використанні коду, розробленого на стороні, то в цьому робота з СОМ-об'єктами ні чим не відрізняється від інших. Найскладніше - освоєння методів і властивостей вживаного СОМ-об'єкту. Якщо він добре документований, то з цим не повинне виникнути ніяких ускладнень.
Як використовувати СОМ-об'єкт
Ним можна користуватися точно так, як і з будь-яким іншим об'єктом. Для того, щоб одержати посилання на СОМ-об'єкт, потрібно використовувати функцію CreateObject (). Єдина складність - потрібно знати ім'я класу цього об'єкту. Для додатку Excel, наприклад, це буде Excel.Application, а для Word- Word.Application.
При зверненні до CreateObject () Visual FoxPro спочатку аналізує ім'я класу, об'єкт якого потрібно створити. Виконується такий аналіз в наступному порядку:
1. Базові класи Visual FoxPro.
2. Класи, визначені користувачем, які розміщені в пам'яті в порядку їх завантаження.
3. Класи в поточній програмі.
4. Класи в VCX-файлі бібліотеки, відкритою командою set classlib.
5. Класи у файлах процедур, відкритих командою set PROCEDURE.
6. Класи в послідовності виконуваних програм Visual FoxPro.
7. Реєстр OLE (якщо раніше була команда SET oleobject on).
Після того, як буде сформовано посилання на об'єкт, можна звертатися до нього точно так, як і до будь-якого створеного в програмі об'єкту класу Visual FoxPro.
Але зверніть увагу на відмінність в імені класу, об'єкт якої створюється. Звичайно використовується ім'я класу, що складається з одного слова. Для сом-об'єкту використовується ім'я класу з двох слів, перше з яких відповідає імені додатку, а друге - імені класу усередині цього додатку.