Понятия о Component Objects Model
В последний, 6-й версии Visual Fox Pro фирма Microsoft радикально усовершенствовала поддержку модели СОМ. Аббревиатура СОМ расшифровывается как Component Objects Model - модель объектных компонентов. Это стандарт Microsoft, который регламентирует обмен информацией между дополнениями. Употребление СОМ позволяет абсолютно по-новому организовать дополнения. Отметим, что освоить методику ее употребления особенного труда не составляет.
В этом разделе обсуждаются основные функции СОМ и возможности их использования в дополнениях Visual Foxpro. В разделах 21 и 22 на практических примерах показано, как это делается. Во главе 21 речь идет об использовании Visual Foxpro как COM-клиєнт, а во главе 22 - о создании в среде Visual Foxpro COM - серверу.
СОМ является стандартом, который регламентирует взаимодействие между объектами. Стандартизация распространяется на передачу и прием сообщений, что позволяет объектам, построенным разными языковыми средствами, взаимодействовать друг с другом таким образом, как в случае, если бы они были написаны на одном и том же языке программирования.
Основная идея стандарта СОМ заключается в том, что любой СОМ-объект может взаимодействовать с другим COM-об'єктом независимо от того, разработан ли он в среде Visual Fox Pro, Visual Basic или Visual C++. Некоторые СОМОВЫЕ объекты по самой своей природе являются визуальными. К ним, в частности, относятся все элементы управления ACTIVEX, которые поставляются в составе программного продукта Visual Fox Pro. Хотя программа такого элемента управления написана на Visual Foxpro, его можно использовать в любом дополнении, в котором соблюдены стандарты Microsoft на включение СОМОВЫХ объектов.
Другие СОМОВЫЕ объекты не имеют видимые контуры. Например, можно использовать СОМ-объект для узкоспециализированных вычислений, которые имеют отношение к брокерским расчетам. Такой объект может быть разработан группой, которая специализируется на автоматизации именно в этой наглядной области, а использоваться всеми подразделами компании. Он может иметь свойства и методы для сохранения, прочитывания и обработки информации, но не иметь средства ее визуального представления.
И наконец, некоторые сомовые объекты являются достаточно значительными частями дополнения или просто полным дополнением, которое предоставляет exposes свои функции внешнему миру. Такие дополнения разрабатываются не только для работы конечного пользователя, но и для разработчиков, которые могут обращаться к ним изнутри своих продуктов.
Например, дополнение для передачи сообщений по сети связи факсимильной связи предоставляет свои методы для использования разработчику, который, обращаясь к ним, может автоматизировать пересылку документа по факсу. Дополнение Microsoft Office предоставляет средства, которые позволяют разработчику использовать его для дистанционного управления.
Суть модели Сом
Фактически переход на СОМОВУЮ идеологию - это перенесение концепции специализации на уровень программных продуктов.
Хорошим примером потому может служить дополнение, обслуживающее счета клиентов. В большинстве случаев принципы обслуживания счетов не зависят от их конкретной природы. Но однако, разрабатывая дополнение, которое обрабатывает счета конкретного клиента, было нужно что-то еще дорабатывать или модифицировать в типичном дополнении. Если вам повезет, то можно обойтись только модулем, который будет работать в параллель с существующим типичным дополнением.
Расписать детально обработку счетов - это работа на годы. Что же делать? Многие покупают типичные проекты с подобными функциями, например SBT, и дальше перед ними открываются два пути.
- Общаться с типичным дополнением, записывая данные непосредственно в таблице. Это значит, что нужно возобновить все правила ведения счетов и отслеживать их соблюдение в той части программы, которую придется разработать.
- Модифицировать купленный продукт, оставив большинство его компонентов в первичном виде.
Ни один из этих путей легким не назовешь.
А теперь допустим, что такой типичный продукт разработан с учетом требований модели СОМ. В этом случае пакет предоставляет множество своих функций дополнениям-клиентам, которые могут с ним взаимодействовать. Теперь в дополнении-клиенте нужно разрабатывать только предназначенный для пользователя интерфейс и специализированы функции, специфические именно для вашего заказчика, а за остальными функциями обращаться непосредственно к типичному дополнению. И теперь на основе такого дополнения, не изменив в нем ни ленту кода, можно построить множество специализированных дополнений.
Распределена обработка с помощью 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.
Но обратите внимание на отличие в имени класса, объект которой создается. Обычно используется имя класса, который состоит из одного слова. Для сомового объекта используется имя класса с двух слов, первое из которых отвечает имени дополнения, а второе - имени класса внутри настоящего дополнения.
Если вам здастся, что все это вы уже слышали, когда шла речь о OLE-автомат, вы будете недалекими от истины. Автоматизация OLE есть не что другое, как часть модели СОМ. Следовательно, если мы говорим OLE, то имеем в виду СОМ.
Что происходит при обращении к сом-объекту
При установке дополнения, которое играет роль серверу СОМ, в реестре Windows регистрируется как само дополнение, так и все его классы. Например, посмотрите в раздел реестра Windows, который относится к Visual Foxpro, который также является сервером СОМ.
Возможности Visual Foxpro как Com-клиента
Теперь рассмотрим, какие же в этом плане возможности программного продукта Visual Foxpro.
ФУНКЦИЯ CREATEOBJECT
Как уже отмечалось выше, с помощью функции CREATEOBJECT можно создать ссылку на СОМ-объект. Нужно подчеркнуть, и это очень существенно, что при обращении к CREATEOBJECT всегда создается новый объект.
Проведем эксперимент. Запустите следующие команды из окна команд:
Ох=createobjectword. Application
Оу=createobjectword. Application
А теперь вызовите на экран диалоговое окно Close Program в Windows 95/98 для этого нужно нажимать Ctrj+alt+del. В NT то же можно сделать с помощью Task Manager. После этого посчитайте, сколько экземпляров дополнения Winword запущено. Их наверно окажутся не менее двух возможно, раньше у вас еще был открыт этот редактор.
Теперь продлим наши игры. Вернитесь в Visual Foxpro и освободите переменные Ох и Оу. Более того, можно даже закрыть вообще дополнение Visual Foxpro. Опять посчитайте, сколько экземпляров дополнения находится в работе. Их окажется опять два. Для того, чтобы лишиться запушенного дополнения СОМОВОМУ серверу, нужно обратиться к его методу Quit.
Наш простенький эксперимент оказался весьма поучительным - будьте очень внимательные при создании СОМОВЫХ объектов в дополнении. Проверьте, не был ли аналогичный объект уже созданный раньше. Учтите, что каждое новое дополнение-сервер оттягивает на себя значительные ресурсы памяти, которую можно использовать намного эффективнее. Если вам понадобится получить ссылку на раньше запушен СОМ-объект некоторого класса, используйте функцию Getobject.
ФУНКЦИЯ GETOBJECT
Функция GETOBJECT в известной мере аналогична по назначению уже рассмотренной функции CREATEOBJECT. Она принимает два параметра. Первый - имя файла, который нужно открыть, а второй - имя класса, с которым предусматривается работать.
Функция GETOBJECT применяется в двух случаях:
- для получения ссылки на существующий файл;
- для получения ссылки на раньше запущено дополнение-сервер.
Получения ссилки на существующий файл
В первую очередь функция GETOBJECT может быть использована для получения ссылки на файл, зарегистрированный в OLE-роздили системного реестра.
Допустимо, вы хотите открыть файл BUDGET. XLS, который находится в корневом каталоге диска С:. Выполнить это можно двумя способами. Первый - создать земпляр сомовому серверу Excel функцией CREATEOBJECT и потом вызывать его метод для открытия файла, который интересует вас. Второй - непосредственно открыть файл функцией GETOBJECT:
Oexcel = Getobjectс:\budget. xls.
При этом одновременно будет создан экземпляр объекта Excel, открыт файл и получена ссылка на него.
Обратите внимание - Visual Foxpro даже не пришлось объяснять, что приглашаемый файл является файлом Excel. Windows уже известно, что файлы с расширением. xls является письмами Excel, и операционная система поступает соответственно.
Если ситуация не так однозначна, как в данном случае, то есть расширение имени файла не определяет однозначно дополнение, которое с ним оперирует, нужное во втором параметре вызова функции getobject указать имя сом -класу дополнению-серверу.
К сказанному следует прибавить: функция getobject настолько сообразительна, что второй раз не будет запускать уже работающее дополнение, а присоединить к нему файл, который интересует вас.
Получения ссилки на раньше запущен додаток-сервер
Если вы желаете получить только ссылку на раньше запущено дополнение-сервер, достаточно при вызове функции GETOBJECT опустить первый параметр:
Oexcel = GETOBJECT, Excel. Application
Если окажется, что вы промахнулись, то есть дополнение не было раньше запущено, появится сообщение об ошибке OLE.
Читая раздел 21 вы сможете убедиться на примерах, как удобно пользоваться этой функцией для получения ссылок на дополнение-сервер без запуска его дополнительных экземпляров.
Команда set oleobject
За умалчиванием Visual Foxpro ищет класс, указанный в CREATEOBJECT, в реестре Windows, если он не был найден во всех предыдущих группах классов, как об этом было сказано выше. Эту функцию можно отключить установкой SET OLEOBJECT off. Фактически при этом отключается возможность работы с СОМОВЫМИ объектами.
Когда в этом может возникнуть потребность? Когда вы уверены, что с СОМОВЫМИ объектами работать не будете, и желаете сохранить время и ресурсы, лишив систему от необходимости просматривать реестр в поисках того, чего там явно нет.
Если при этом вы беспокоитесь о возможности работы с элементами управления ACTIVEX, то этого делать не стоит. Такая настройка не препятствует работе с ними, поскольку Visual Foxpro знает о том, что это OLE-об'єкти, и автоматически загружает средства поддержки OLE перед тем, как их открыть.
В любом случае настройка задевает только работу с теми объектами, какие явно специфицированные в кода программы.
И еще одно замечание. Поскольку функция GETOBJECT всегда имеет дело с OLE-об'єктами, то при установке SET OLEOBJECT OFF функция повернет код ошибки.
Функция Comclassinfo
Функция Comclassinfo используется для получения информации из системного реестра о раньше созданы СОМОВЫЕ объекты. Первый параметр функции, oobject, представляет ссилку на объект, информация о котором вас интересует. Второй параметр, iиnfocode, является числом, которое определяет, какая именно информация должна быть вытянута. Возможны значения iиnfocode приведенные в табличке. 20.1.
Таблица 20.1. Информация, которая возвращается функцией Comciassinfо при разных значение параметра iinfocode
Значение ilnfocodе
|
Информация, что Повертаеться
|
1 значение по замовчуванню
|
Программный идентификатор объекта PROGID. Этот идентификатор задает вход реестра, который ассоциируется из CLSID. Считайте, что это имя, однозначное связано из CLSID. Каждая версия программы имеет собственный программный идентификатор. Например, PROGID для Visual Foxpro 6 будет Visual. Foxprо. Applcation.6, а для Visual Foxpro 5 - Visual. Foxprо. Application.5. Идентификатор PROGID также является именем класса, которое можно использовать для создания объекта СОМОВОМУ серверу. Например, можно обратиться к createobject таким образом:
Оvfp5=createobjectvisual. Foxpro. Application.5 оvfp6=createobjectvisual. Foxpro. Application.6 Но, как правило, нежелательно, чтобы дополнение было жестко привязано к определенной версии, СОМОВОМУ серверу. Поэтому имеет смысл, передав как первый параметр Visual. Foxpro. Application, спросить у реестра, которая из версий установлена на данном компьютере а если установлено несколько версий, то которая из них более новая, и создавать объект СОМОВОМУ серверу именно этой версии
|
2
|
Программный идентификатор, не зависимый от версии Versionlndependentprogld. Versionindepencientprogid ассоциирует PROGID из CLSID. Он используется для определения последней версии объекта дополнения, ссылаясь на его класс, и не изменяется от версии к версии
|
3
|
Оригинальное английское имя объекта, о котором принято говорить как о „дружественном" имени friendly name
|
4
|
Идентификатор класса объекта
|
Вот какое значение будет возвращено функцией Comclassinfo при задании как первый параметр Excel. Application и при разных вариантах значений второго параметра:
1 Excel. Application.8
2 Excel. Application
3 Microsoft Excel 97 Application
4 { 00024500-0000-0000-COOO-00000000004 6}
Функция Createobjectex
Как было описано выше, модель DCOM допускает, что дополнение COM-серверу размещенный и выполняющийся на разных компьютерах сети. Как правило, компьютер клиента конфигурируется так, чтобы знать, где находится СОМ-сервер, и стандартная функция Createobject может работать ни без каких дополнительных фокусов. Использование функции Createobjectex позволяет обойтись без специальной конфигурации компьютеров сети и непосредственно специфицировать нужный компьютер.
Это очень удобно в том случае, когда желательно распределить нагрузку между несколькими компьютерами в сети. Использование Createobjectex возможно в операционной системе Windows NT 4.0 или более старшей версии или в Windows 95/98 с установленным механизмом DCOM.
Пусть вас не смущает, что при усечении имени функции Createobjectex до 13 символов оно выглядит как Createobjecte. Это все равно та же функция Createobjectex.
Функция Comarray
В Visual Foxpro чаще всего принимается, что начальный элемент массива имеет индекс 1. Но это не обязательно. В других языках программирования начальный элемент имеет индекс 0.
Функция Comarray позволяет определиться с тем, как будут передаваться массивы в СОМ-объект. В результате будет зарегистрировано, каким образом осуществляется обмен массивами с конкретным COM-об'єктом.
Функция имеет два параметра.
Oobject Ссылки на СОМ-объект, к которому адресуется запрос или який
зминюеться
Nsettinga Это необязательный числовой параметр, который определяет способ обмину
массивами с COM-об'єктом. В табличке. 20.2 приведенные его можливи
значение. Если этот параметр опушен, функция возвращает поточну
установку для данного сом-объекту
Таблица 20.2. Способ передачи массиву в СОМ-объект при разных значення параметра nsettings
Значение nsettings
|
Опис
|
0
|
Первый элемент массива имеет индекс 0, и массив передается в СОМ-объект По значенню
|
1 за замовчуванням
|
Первый элемент массива имеет индекс 1, и массив передается в СОМ-объект По значенню. Такая настройка совместима с предыдущими версиями Visual Foxpro
|
10
|
Первый элемент массива имеет индекс 0, и массив передается в СОМ-объект По ссилци
|
11
|
Первый элемент массива имеет индекс 1, и массив передается в СОМ-объект По ссилци
|
Обратите внимание - настройка в функции воспринимается системой только при передаче массиву в СОМ-объект с использованием следующего синтаксиса:
Oobject. Method@laarray
Если в этом выражении опустить символ @, то в СОМ-объект будет передан только первый элемент массива и все настройки, выполненные в Comarray, будут проигнорированы.
Visual Foxpro как сом-сервер
Мы в настоящий момент, собственно, рассмотрели, как использовать в дополнении Visual Foxpro обращение к другим СОМОВЫМ серверам. Но этим возможности СОМОВОЙ технологии в сочетании из Visual Foxpro не исчерпываются. Можно создать в среде Visual Foxpro собственный СОМ-сервер. Об этом пойдет язык в разделе 22. Но сначала в разделе 21 мы рассмотрим на примерах технологию программирования дополнения - клиента СОМ в среде Visual Foxpro, которая способна взаимодействовать с другими дополнениями из обширного гардероба Microsoft Office.
Управления объектами сом-додатку
Обратите внимание на код в самом начале программы Custrpt. PRG, который организует запуск Excel. Сначала вызывается функция Getobject, а затем, если Getobject повернет NULL, Createobject. Это сделано для того, чтобы предотвратить повторный запуск Excel.
Такую же методику запуска можно применить и к любому другому СОМОВОМУ серверу. Здесь непроизвольный возникает идея создать универсальную процедуру запуска СОМОВОМУ серверу. Программный код такой процедуры приведен в листинге 21.5. Просмотрите этот листинг - многочисленные комментарии помогут разобраться в деталях выполнения процедуры.
Листинг 21.5.21Code05 - процедура запуска сом-серверу
- Программа. GETCOMINSTANCE. Prg
- Версия.... 1.0
- Автор..... Menachem Bazian, Cpa
- Дата...... August 23, 1998
- Проект.... Using Visual Foxpro 6 Special Edition
- Copyright с 1998 Menachem Bazian, CPA, All Rights Reserved.
- Компилятор Visual Foxpro 06.00.8141.00 for Windows
- Описание..
- Изменения.
- Универсальная процедура запуска сомовому серверу.
-------------------------------------------------
LPARAMETERS tccomserverclass, tcdocumentfilename
- Параметр tccomserverclass - имя класса Сом-серверу
- объект которого необходимо создать.
- Например excel. application.
- Проверим, передан ли первый параметр.
ASSERT Type"tccomserverclass = С;
MESSAGE You must provide а character parameter to
GETCOMINSTANCE.
IF PCOUNT = 0 OR TYPE tccomserverclass # c
RETURN.NULL.
Endif
- Раз мы сюда дошли, значит параметр переданный правильно
- и можно попробовать создать объект COM-серверу.
- Попробуем это сделать с помощью Getobject
LOCAL locominstance, lcolderror
Lcolderror = Onerror
- Проверим, передан ли второй параметр.
- Если параметр - имя файла - передан, то нужно сформувати
- ссылка на этот файл.
- Иначе нужно просто создать объект серверу.
.IF PCOUNT = 2 AND;
Typetcdocumentfilename=с AND;
Filetcdocumentfilename
ON ERROR locominstance =.NULL.
locominstance=getobjecttcdocumentfilename,
tccomserverclass
ON ERROR lcolderror
Else
- В этом случае не было передано имя файлу
- с которым должен работать сервер.
ON ERROR locominstance =.NULL.
locominstance = Getobject, tccomserverclass
ON ERROR lc01derror
IF Isnulllocominstance
locominstance = Createobjecttccomserverclass
ON ERROR blcolderror
Endif
Endif
RETURN locominstance
Для чего можно использовать Сом-сервер
В разделах 20 и 21 обсуждалась возможность использования в программе на Visual Foxpro средств COM-серверу, как который выступали некоторые дополнения из комплекта Microsoft Office. Но учтите, это только начало нашего рассказа о возможностях употребления идей модели СОМ к Visual Foxpro. С помощью средств Visual Foxpro можно создавать не только СОМОВЫЕ клиенты, но и СОМОВЫЕ серверы.
Масштабы употребления дополнений в настоящее время непрерывно изменяются. Если раньше дополнение, как правило, работало только на том компьютере, на котором было установлено, то теперь оно распределяется не только в пределах локальной сети, но и по корпоративной сети Intranet или по глобальной сети Internet. Остро чувствуется необходимость нового подхода к построению дополнений, рассчитанных на доступ со стороны множества пользователей.
Таким новым подходом является структура многослойного дополнения multi-tiered арplication, который компонуется из множества логично законченных слоев. Верхний слой такого пирога - предназначен для пользователя графический интерфейс, нижний, - данные. Между ними лежат слои, которые отвечают за соблюдения выполнения определенных правил обработки данных и их передачу.
Средств для создания верхнего слоя пребольшое количество. Microsoft ратует за употребление броузероподибного предназначенного для пользователя интерфейса, который по ряду причин считается самим соответствующим большинству пользователей. Во-первых, если графический интерфейс сформирован средствами HTML, DHTML, ASP или им подобными, обращение к дополнению выполняется простым щелканием мыши. Фактически все, что требует клиент от такого интерфейса, - это вывести его на нужную Web-сторинку. Что может быть проще? Такой интерфейс также облегчает внедрение обновленных версий дополнений. Важен и так называемый человеческий фактор: пользователь имеет дело с однотипным интерфейсом для большинства а лучше для всех задач, с которыми ему придется сталкиваться. Следовательно разработчикам волей-неволей нужно подстраиваться под часто самые употребимые программы; а что в настоящий момент используется чаще, чем Internet Explorer?
На нижнем слое также могут быть разные средства хранения данных - программы Visual Foxpro, SQL-сервер или бог знает что еще.
Механизм создания промежуточных слоев - это СОМ-интерфейс. Верхний слой Создает объект среднего слоя, который передает данные туда и обратно между хранилищем и потребителем.
В целом, главное мнение предыдущего обсуждения можно сформулировать так: в многослойном дополнении средний слой является совокупностью СОМОВЫХ серверов. А дальше логика совершенно простая. Никто не может соревноваться из Visual Foxpro в простоте обработки данных. Visual Foxpro имеет замечательно организованную объектно-ориентоване среду разработки. Так кто первый кандидат на роль базового продукта для построения среднего слоя? Самые догадливые уже поняли. Правильно! Visual Foxpro!
Ниже в этом разделе я продемонстрирую на примере обоснованность вашего выбора. А главное, при этом вы сами убедитесь, как в среде Visual Foxpro к смешному просто создать СОМ-сервер.
Создания Сом-серверу
Теперь, взяв созданный класс за основу, можно построить СОМ-сервер. Процесс этот несложен.
1. Модифицируйте класс.
2. Выведите на экран диалоговое окно Class Info командой Classclass Info, показанное на рис. 22.1.
3. Установите флажок OLE Public.
4. Закройте диалоговое окно.
5. Сохраните класс.
Установка флажка значит, что класс будет предоставлять свои свойства и методы, как объект OLE.
Рис. 22.1. Диалоговое окно Class Info
Теперь осталось создать выполняемый модуль или модуль DLL с тем, чтобы можно было зарегистрировать сервер. Для этого сначала понадобится создать проект. Этот проект, назовем его TS. PJX, нуждается в библиотеке классов и запускающей программы - файлу с расширением. prg. Этот файл я назвал MAIN. PRG, и в нем будет всего одна строка кода:
- Программа. MAIN. Prg
- Версия.... 1.0
- Автор..... Menachem Bazian, Cpa
- Дата...... September 8, 1998
- Проект.... Using Visual Foxpro 6 Special Edition
- Copyright с 1998 Menachem Bazian, CPA, All Rights Reserved.
-- Компилятор Visual Foxpro 06.00.8141.00 for Windows
-- Описание..
- Изменения.
Return
Тестирования СОМОВОМУ серверу снаружи среды Visual Foxpro
Следовательно, вроде бы все вышло, как задумано. Но нужно еще проверить наш сервер и в другой операционной среде, то есть с использованием как клиент другого дополнения. Возьмем как такое Excel.
Модель СОМ в N-шаровому дополнении клиент/сервер
В этом разделе вы познакомились с технологией разработки СОМ-ссрвера в среде Visual Foxpro. Был представлен пример СОМОВОМУ серверу и рассмотрены основные его функции. Такого рода СОМ-сервер идеально вписывается в структуру N-шарового дополнения клиент/сервер.
Тот СОМ-сервер, о котором шла речь в этом разделе, является промежуточным в трехслойном пирози дополнении. Роль нижнего слоя также играет Visual Foxpro, а роль интерфейса с пользователем предоставлена Excel.
С внедрением Internet дополнение становится рассредоточенным действительно в географических масштабах. Использование броузероподобного интерфейса с пользователем на базе ASP, DHTML, XML, XSL и подобных технологий, открывает широкие возможности для проектирования клиентов СОМ. Включение же серверов на базе Visual Foxpro в середину многослойной конструкции распределенного дополнения позволяет оптимально использовать возможности каждого из программных продуктов.