Смекни!
smekni.com

Структура и назначение программ в области информационных технологий (стр. 4 из 29)

Аббревиатура СОМ означает Component Object Model - компонентная объектная модель. Она является стандартом фирмы Microsoft для создания компонентов программного обеспечения. Указывает вам, кто и как должен их создавать, но не определяет, чем они в действительности являются.

Модель СОМ представляет собой инструкцию по созданию бинарно-совместимых компонентов программного обеспечения. Это означает, что СОМ не является языком программирования, библиотекой программного кода или компилятором. Более того, поскольку модель СОМ представляет собой спецификацию по созданию бинарного кода, она позволяет строить компоненты, которые могут обмениваться информацией независимо от языка программирования или инструментальных средств, выбранных для их построения. Модель СОМ позволяет сконцентрироваться на разработке своих приложений, чтобы далее специальный фирменный компилятор создал из них скомпилированные компоненты.

Модель СОМ относится к широко используемым средствам модульного программного обеспечения. Программы, созданные на ее основе, предоставляют большой набор интегрированных служб, легкодоступных инструментов и полезных приложений. Ныне они являются монополистами на рынке многократно используемых, предлагаемых в готовом виде клиентских и серверных модулей.

В общем, СОМ представляет собой некую разновидность перечня правил. Если вы будете следовать правилам модели СОМ, ваши компоненты будут работать вместе с другими компонентами СОМ, написанными вами или кем-то другим.

16. Концепции технологии СОМ

Модель СОМ имеет четыре базовые концепции:

Программный код компонента (Component code). Это то, что фактически исполняет возложенную на компонент работу. После задания инфраструктуры компонента, он должен выполнить определенную работу. Например, если компонент предназначен для выполнения работы, связанной с выписыванием снегов, то вы должны создать программный код компонента для подсчета итоговых сумм, просмотра имеющихся товаров и так далее.

Интерфейс (Interface). Интерфейс позволяет любой программе обращаться к функциональным возможностям вашего компонента. Интерфейс - это набор общедоступных описаний функциональных возможностей, которые компонент предоставляет для использования программе или другим компонентам. Интерфейс сообщает остальному миру, что ваш компонент может делать, и как можно воспользоваться его функциональными возможностями.

GUID. Аббревиатура GUID (Globally Unique Identifier) означает глобально-уникальные идентификаторы, которые назначаются каждому компоненту СОМ и вновь созданному интерфейсу. Они однозначно идентифицируют компонент для операционной системы или другого программного обеспечения. Когда вы изменяете, компонент или интерфейс, для них генерируется новый идентификатор GUID. Идентификатор GUID является 128-битовым целым значением. Бинарная совместимость (Binary compatible). Важно знать, что компоненты СОМ соответствуют требованиям, предъявляемым к стандартному бинарному коду (binary standard). Это значит, что независимо от языка, используемого для создания собственного компонента СОМ, он будет совместимым и пригодным для использования любыми другими компонентами СОМ.

17. Достоинства и недостатки СОМ

Подобно другим техническим средствам программирования, модель СОМ имеет как свои достоинства, так и недостатки. Поэтому важно знать, где следует использовать СОМ, а где не следует.

Достоинства СОМ:

1) Компоненты СОМ взаимозаменяемы. Как известно, программное обеспечение рано или поздно требует замены. При отсутствии СОМ вам понадобится обновить программу целиком. Обычно для этого требуется внести изменения в программный код, встроенный в крупное приложение, установленное на всех пользовательских компьютерах. Но при использовании СОМ не требуется обновлять все приложение целиком. Можно просто перестроить единственный компонент.

2) Компоненты СОМ идеальны для изменяющихся деловых условий. Условия деловой деятельности, также как и программное обеспечение, весьма изменчивы. Во время разработки программного обеспечения, а также после введения его в действие, постоянно возникают новые потребности, запросы пользователей, исправления ошибок, новые условия маркетинга и менеджмента. Ваше приложение также может потребовать обновлений и частых изменений для соответствия новым деловым правилам.

Поскольку компоненты СОМ легко заменить, вы можете поместить свои деловые правила в нескольких компонентах. Если деловые правила изменятся, вы сможете изменить компоненты, перестроить их и распространить новые компоненты. Обновление будет носить локальный характер, а это снижает вероятность распространения ошибок по всей программе. 3) Повторное использование компонентов СОМ. Одной из наилучших вещей, связанных с СОМ, является возможность создавать какой-либо программный код всего один раз, а затем использовать его во многих приложениях.

4) Компоненты СОМ допускают параллельную разработку. Разработка средств СОМ предполагает начальную разработку интерфейсов компонента, чтобы гарантировать корректную совместную работу всего программного обеспечения. Далее вы реализуете те функции компонента, которые используют эти интерфейсы. Это очень удобно, поскольку после разработки интерфейсов можно распространить их по нескольким программам, а параллельно разрабатывать компоненты.

Средства СОМ - это хорошая вещь, но модель СОМ не совершенна. В механизме СОМ имеется несколько недостатков, которым следует уделять внимание.

Недостатки СОМ:

1) Проблемы с версиями компонента СОМ. Проблема в том, что версии компонентов доставляют некоторые хлопоты. На протяжении разработки вы должны уделять большое внимание версиям используемых компонентов. Каждый вновь построенный компонент в результате становится новой версией. Это относится и к компонентам, создаваемым средствами VB, поскольку вы должны вручную сконфигурировать проект, чтобы он стал бинарно-совместимым. Версии компонентов очень легко могут потерять синхронизацию, что может быть причиной реальных проблем отладки. Поэтому необходимо проверять номер версии компонента во время разработки каждый раз при создании новой версии.

2) Поддержка всех старых интерфейсов компонентов. Одиножды созданный интерфейс никогда не исчезает. Если программа использует определенную версию компонента, то функциональные возможности этой версии будут поддерживаться всегда. Вы можете добавить компоненту новые, или обновить уже существующие функциональные возможности, но вы не можете удалить существующие функциональные возможности. Единственная возникающая при этом проблема — непомерное разрастание компонента.

3)Интерфейсы СОМ требуют тщательного планирования. Интерфейсы являются неотъемлемой частью компонентов СОМ. Интерфейсы - это механизмы обмена информацией, используемые компонентами для доступа друг к другу. Каждый раз при изменении компонента или его интерфейсов, с компонентом ассоциируется новая версия.

Тщательное планирование предотвращает появление слишком большого числа версий интерфейсов из-за их "размножения" в процессе разработки. Чтобы компоненты и использующее их программное обеспечение имели хоть какой-то шанс на корректную совместную работу, их интерфейсы сразу должны быть корректно спроектированы.

18. Интерфейсы COM

Компонент СОМ без интерфейса - ничто. Интерфейсы - это механизмы обмена информацией, используемые компонентами для доступа друг к другу. Интерфейс определяет функциональные общедоступные возможности, которые использует другое программное обеспечение или компоненты. Обычно при планировании своего компонента, надо сконструировать его интерфейсы. Это важно по той причине, что наиболее сложной частью построения, основанного на компонентах приложения, является обеспечение взаимодействия между компонентами. Интерфейс СОМ позволяет приложениям и различным компонентам обращаться к функциям данного компонента СОМ. К функциям компонента можно обращаться с помощью таблицы виртуальных функций (virtual function table), которая также называется vtable или VTBL. Эта таблица не содержит реально существующих функций. Вместо них она содержит набор указателей на функции компонента. Компонент, которому необходимо получить доступ к функции другого компонента, обращается к таблице виртуальных функций. Клиенты не могут обращаться к VTBL напрямую. Для этого используется другой указатель, называемый указателем интерфейса (interface pointer), добавляющий промежуточный уровень доступа, который делает возможной реализацию этого интерфейса. Это означает, что клиент видит только указатель на указатель в таблице виртуальных функций. На рис. 1.1 показана структура интерфейса СОМ.

Единственное требование к таблице VTBL интерфейса СОМ состоит в том, что первое поле в таблице должно быть указателем на интерфейс IUnknown. IUnknown — единственный интерфейс, который должен быть реализован в любом компоненте, чтобы последний мог стать компонентом СОМ. По существу, это дверь к другим интерфейсам, поскольку все другие интерфейсы наследуются из интерфейса IUnknown. При создании компонентов СОМ в среде VB, фактически, не требуется делать ничего, кроме создания самого компонента СОМ.