COM (Component Object Model – модель многокомпонентных объектов) — технология. Для инструментальных систем и систем управления, реализованных на платформе Windows, фирмой Microsoft предложена архитектура компонентных объектов.
Компонент – это готовый к использованию двоичный код, содержащийся либо в динамической библиотеке (DLL), либо в EXE-файле, который может быть при необходимости загружен в память и стандартным образом динамически подключен к приложению. Две основные черты компонентов:
— динамическое связывание – означает, что связь компонента и приложения (т.е. связь между вызовом функции в приложении и ее кодом в теле компонента) осуществляется не на этапе компоновки приложения, а непосредственно во время его выполнения;
— скрытая внутренняя реализация (инкапсуляция) – означает, что для приложения не важно, и приложение не знает, как именно реализован компонент внутри, а только знает, как вызывать его функции.
Традиционно приложение состояло из отдельных файлов, модулей или классов, которые компилировались и компоновались вместе. Разработка приложений из компонентов — так называемых приложений компонентной архитектуры — происходит иначе. Компонент подобен мини-приложению, он поставляется пользователю как двоичный код, скомпилированный, скомпонованный и готовый к использованию. Модификация или расширение приложения сводится к замене одного из составляющих его компонентов новой версией.
Камера продолжает включаться и выключаться Ноутбук или ПК — 3 решения Windows 10
Один из наиболее многообещающих аспектов компонентной архитектуры — это быстрая разработка и развитие приложений. Из накапливаемого набора компонентов в библиотеках можно будет собирать, как из деталей конструктора, требуемые цельные приложения.
Распределенные компоненты. С возрастанием производительности и общего значения сетей потребность в приложениях, распределённых по различным узлам сети/сетей, будет обостряться. Компонентная архитектура позволяет упростить процесс разработки подобных распределенных приложений. Приложения клиент-сервер — это шаг в сторону компонентной архитектуры, поскольку они разделены на две части, клиентскую и серверную.
Создать из обычного приложения распределенное, безусловно, легче, если это приложение состоит из компонентов. Во-первых, оно уже разделено на функциональные части, которые могут располагаться вдали друг от друга. Во-вторых, поскольку компоненты заменяемы, вместо некоторого компонента можно подставить другой, единственной задачей которого будет обеспечивать связь с удаленным компонентом. Так, если некоторые компоненты А и В переносятся с локальной машины на удаленные, то на локальной вместо компонент А и В появляются переадресовщики, которые перенаправляют запросы к данным компонентам по сети. При наличии подходящих переадресующих компонентов приложение может совершенно игнорировать фактическое местоположение своих частей.
Приложение, использующее компонент, называется клиентом для данного компонента. Таким образом, компонентная модель имеет аналогию с клиент-серверной архитектурой. Компонент подключается к приложению через интерфейс, единый для приложения-клиента и компонента. Отметим, что, для того, чтобы подключить к приложению компонент, важно знать, какой интерфейс он использует.
Установка агента для Windows и его использование
Если компонент изменяется без изменения интерфейса, то изменений в клиенте не требуется. Аналогично, если сам клиент изменится без изменения интерфейса, все созданные ранее компоненты можно будет продолжать подключать. Таким образом, достигается одно из важных преимуществ технологии COM – возможность раздельной разработки приложения, а также легкость его модифицирования.
Таким образом, COM — это спецификация, указывающая, как создавать динамически взаимозаменяемые компоненты. COM определяет стандарт, которому должны следовать компоненты и клиенты, чтобы гарантировать возможность совместной работы. Компоненты COM состоят из исполняемого кода, распространяемого в виде динамически компонуемых библиотек (DLL) или EXE-файлов Win32.
Но сама по себе динамическая компоновка не обеспечивает компонентной архитектуры. Компоненты COM объявляют о своем присутствии стандартным способом. Используя схему объявлений COM, клиенты могут динамически находить нужные компоненты. Отметим, что реализация этой возможности возложена на операционную систему.
Интерфейс COM включает в себя набор функций, которые реализуются компонентами и используются клиентами. Интерфейсом в COM является определенная структура в памяти, содержащая массив указателей на функции, как показано на рисунке 12.
Рис. 12. Интерфейс COM.
Сегодня можно с большой уверенностью говорить о том, что современный процесс генерации конечного приложения всё более напоминает не традиционный процесс разработки прикладного программного обеспечения, а процесс компонентной сборки. Соответственно качественно меняется характер труда прикладного программиста.
DCOM (Distributed Component Object Model – модель распределенных компонентных объектов) — программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента. В принципе, в случае использования технологии DCOM не важно, находятся клиентская часть приложения и компонент (сервер) на разных ЭВМ или на одной. На рисунке 13 показана схема взаимодействия приложения и компонента при помощи интерфейса DCOM.
Рис. 13. Взаимодействие через интерфейс DCOM.
Распределенная компонентная архитектура DCOM поддерживает множество распространенных сетевых протоколов: TCP/IP, UDP, IPX/SPX, NetBIOS и др., поэтому программы, использующие технологию DCOM, могут работать в различных типах сетей.
Источник: studfile.net
Описание технологии – COM/DCOM
COM (Component Object Model – модель многокомпонентных объектов) — технология.Для инструментальных систем и систем управления, реализованных на платформе Windows, фирмой Microsoft предложена архитектура компонентных объектов.
Компонент – это готовый к использованию двоичный код, содержащийся либо в динамической библиотеке (DLL), либо в EXE-файле, который может быть при необходимости загружен в память и стандартным образом динамически подключен к приложению. Две основные черты компонентов:
— динамическое связывание – означает, что связь компонента и приложения (т.е. связь между вызовом функции в приложении и ее кодом в теле компонента) осуществляется не на этапе компоновки приложения, а непосредственно во время его выполнения;
— скрытая внутренняя реализация (инкапсуляция) – означает, что для приложения не важно, и приложение не знает, как именно реализован компонент внутри, а только знает, как вызывать его функции.
Традиционно приложение состояло из отдельных файлов, модулей или классов, которые компилировались и компоновались вместе. Разработка приложений из компонентов — так называемых приложений компонентной архитектуры — происходит иначе. Компонент подобен мини-приложению, он поставляется пользователю как двоичный код, скомпилированный, скомпонованный и готовый к использованию. Модификация или расширение приложения сводится к замене одного из составляющих его компонентов новой версией.
Один из наиболее многообещающих аспектов компонентной архитектуры — это быстрая разработка и развитие приложений. Из накапливаемого набора компонентов в библиотеках можно будет собирать, как из деталей конструктора, требуемые цельные приложения.
Распределенные компоненты.С возрастанием производительности и общего значения сетей потребность в приложениях, распределённых по различным узлам сети/сетей, будет обостряться. Компонентная архитектура позволяет упростить процесс разработки подобных распределенных приложений. Приложения клиент-сервер — это шаг в сторону компонентной архитектуры, поскольку они разделены на две части, клиентскую и серверную.
Создать из обычного приложения распределенное, безусловно, легче, если это приложение состоит из компонентов. Во-первых, оно уже разделено на функциональные части, которые могут располагаться вдали друг от друга. Во-вторых, поскольку компоненты заменяемы, вместо некоторого компонента можно подставить другой, единственной задачей которого будет обеспечивать связь с удаленным компонентом. Так, если некоторые компоненты А и В переносятся с локальной машины на удаленные, то на локальной вместо компонент А и В появляются переадресовщики, которые перенаправляют запросы к данным компонентам по сети. При наличии подходящих переадресующих компонентов приложение может совершенно игнорировать фактическое местоположение своих частей.
Приложение, использующее компонент, называется клиентом для данного компонента. Таким образом, компонентная модель имеет аналогию с клиент-серверной архитектурой. Компонент подключается к приложению через интерфейс, единый для приложения-клиента и компонента. Отметим, что, для того, чтобы подключить к приложению компонент, важно знать, какой интерфейс он использует.
Если компонент изменяется без изменения интерфейса, то изменений в клиенте не требуется. Аналогично, если сам клиент изменится без изменения интерфейса, все созданные ранее компоненты можно будет продолжать подключать. Таким образом, достигается одно из важных преимуществ технологии COM – возможность раздельной разработки приложения, а также легкость его модифицирования.
Таким образом, COM — это спецификация, указывающая, как создавать динамически взаимозаменяемые компоненты. COM определяет стандарт, которому должны следовать компоненты и клиенты, чтобы гарантировать возможность совместной работы. Компоненты COM состоят из исполняемого кода, распространяемого в виде динамически компонуемых библиотек (DLL) или EXE-файлов Win32.
Но сама по себе динамическая компоновка не обеспечивает компонентной архитектуры. Компоненты COM объявляют о своем присутствии стандартным способом. Используя схему объявлений COM, клиенты могут динамически находить нужные компоненты. Отметим, что реализация этой возможности возложена на операционную систему.
Интерфейс COM включает в себя набор функций, которые реализуются компонентами и используются клиентами. Интерфейсом в COM является определенная структура в памяти, содержащая массив указателей на функции, как показано на рисунке 12.
Рис. 12. Интерфейс COM.
Сегодня можно с большой уверенностью говорить о том, что современный процесс генерации конечного приложения всё более напоминает не традиционный процесс разработки прикладного программного обеспечения, а процесс компонентной сборки. Соответственно качественно меняется характер труда прикладного программиста.
DCOM (Distributed Component Object Model – модель распределенных компонентных объектов)- программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента. В принципе, в случае использования технологии DCOM не важно, находятся клиентская часть приложения и компонент (сервер) на разных ЭВМ или на одной. На рисунке 13 показана схема взаимодействия приложения и компонента при помощи интерфейса DCOM.
Рис. 13. Взаимодействие через интерфейс DCOM.
Распределенная компонентная архитектура DCOM поддерживает множество распространенных сетевых протоколов: TCP/IP, UDP, IPX/SPX, NetBIOS и др., поэтому программы, использующие технологию DCOM, могут работать в различных типах сетей.
Дата добавления: 2018-11-26 ; просмотров: 1888 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник: poznayka.org
Библиотеки COM, DCOM и типов
Модель COM и объектная модель распределенных компонентов (DCOM) используют удаленные вызовы процедур (RPC), чтобы обеспечить взаимодействие объектов распределенных компонентов друг с другом. Таким образом, интерфейс COM или DCOM определяет идентификатор и внешние характеристики COM-объекта. Он формирует средства, с помощью которых клиенты могут получить доступ к методам и данным объекта. При использовании DCOM этот доступ возможен независимо от того, существуют ли объекты в одном процессе, в разных процессах на одном компьютере или на разных компьютерах. Как и в случае с интерфейсами клиента и сервера RPC, объект COM или DCOM может предоставлять свои функциональные возможности различными способами и с помощью нескольких интерфейсов.
Библиотека типов
Библиотека типов (TLB) — это двоичный файл, в котором хранятся сведения о свойствах и методах объекта COM или DCOM в форме, доступной другим приложениям во время выполнения. С помощью библиотеки типов приложение или браузер может определить, какие интерфейсы поддерживает объект, и вызвать методы интерфейса объекта. Это может произойти, даже если объект и клиентские приложения были написаны на разных языках программирования. Среда выполнения COM/DCOM также может использовать библиотеку типов для обеспечения автоматического маршалинга между подразделениями, между процессами и между компьютерами для интерфейсов, описанных в библиотеках типов.
Характеристики интерфейса
Характеристики интерфейса определяются в файле определения интерфейса (IDL) и необязательном файле конфигурации приложения (ACF):
- IDL-файл определяет характеристики интерфейсов приложения по сети, то есть способ передачи данных между клиентом и сервером или между COM-объектами.
- Файл ACF задает характеристики интерфейса, такие как дескрипторы привязки, которые относятся только к локальной операционной среде. Файл ACF также может указать способ маршалинга и передачи сложной структуры данных в независимой от компьютера форме.
Дополнительные сведения о файлах IDL и ACF см. в разделе Файлы IDL и ACF.
Файлы IDL и ACF — это скрипты, написанные на языке определения интерфейса Майкрософт (MIDL), который является реализацией и расширением языка определения интерфейса OSF-DCE корпорации Майкрософт. Расширения Майкрософт для языка IDL позволяют создавать COM-интерфейсы и библиотеки типов. Компилятор, Midl.exe, использует эти скрипты для создания заглушки языка C и файлов заголовков, а также файлов библиотеки типов.
Компилятор MIDL
В зависимости от содержимого IDL-файла компилятор MIDL создаст любой из следующих файлов.
Файл прокси-сервера или заглушки языка C, файл идентификатора интерфейса, файл данных DLL и связанный файл заголовка для пользовательского COM-интерфейса. Компилятор MIDL создает эти файлы при обнаружении атрибута объекта в списке атрибутов интерфейса. Дополнительные сведения об этих файлах см. в разделе Файлы, созданные для интерфейса COM.
Скомпилированный файл библиотеки типов (TLB) и связанный файл заголовка. MIDL создает эти файлы при обнаружении инструкции библиотеки в IDL-файле. Общие сведения о библиотеках типов см. в разделе Содержимое библиотеки типов в справочнике по программированию автоматизации.
Файлы заглушки на языке C/C++, а также связанные файлы заголовков для интерфейса RPC. Эти файлы создаются при наличии интерфейсов в IDL-файле, которые не имеют атрибута объекта . Общие сведения о файлах заглушки и заголовков см. в статье Общая процедура сборки. Дополнительные сведения см. в разделе Файлы, созданные для интерфейса RPC.
Источник: learn.microsoft.com