СОМ - ориентированные технологии
Под термином «СОМ-ориентированные технологии» (COM-based) подразумевается набор разнообразных программных технологий, опирающихся на модель COM как на некий фундамент (Рис. 9). В этот набор входит широкий спектр технологий корпорации Microsoft:
а) серверы и клиенты COM;
б) программные компоненты (элементы управления) ActiveX и автоматизация (Automation) в виде OLE-automation;
в) связывание и внедрение объектов (OLE - Object Linking and Embedding);
г) технология COM+ (включая сервер транзакций Microsoft (MTS - Microsoft Transaction Server) и служба очередейсообщений Microsoft(MSMQ - Microsoft Message Queue));
д) распределенная модель компонентных объектов (DCOM - Distributed COM).
е) расширения графической библиотеки DirectX, широко используемой при разработке приложений, связанных с динамической компьютерной графикой, например, игр;
ж) Технологии доступа к данным в БД OLE DB (базовая упрощенная спецификация COM и интерфейс API для доступа к данным) и ADO (ActiveX Data Objects - объекты данных ActiveX).
Рис. 9. COM-технологии
Дадим характеристику основным технологиям из приведенного выше списка, применяемым при создании информационных систем электронного документооборота.
4.3.2.1. DCOM
СОМ - объекты могут быть реализованы в любом файле .exe или .dll. При этом реализация объекта остается для пользователя объекта совершенно прозрачной благодаря предлагаемому COM - сервису, называемому маршалингом (marshalling).
Механизм маршалинга COM берет на себя всю организацию взаимного вызова функций между независимыми процессами и даже различными компьютерами, вследствие чего становится возможным, например, использование 32-разрядных объектов в 16-разрядных приложениях, а также доступ к объекту, расположенному на компьютере А, из приложения, запущенного на компьютере Б. Такое межкомпьютерное взаимодействие называется распределенной моделью компонентных объектов - Distributed COM, или DCOM.
4.3.2.2. COM+
COM+ - это, фактически, обычная спецификация COM, внутри которой реализованы некоторые дополнительные COM - ориентированные службы Microsoft. Другими словами, COM+ - это COM с некоторыми дополнениями, связанными с сервером транзакций Microsoft (MTS - Microsoft Transaction Server) и очередью сообщений Microsoft (MSMQ - Microsoft Message Queue).
Интеграция этих технологий со стандартными средствами COM означает, что все разработчики COM+ смогут воспользоваться преимуществами этих средств, например:
а) управление транзакциями;
б) поддержка безопасности;
в) удаленное администрирование;
г) обслуживание очереди компонентов;
Спецификация COM+ полностью совместима с COM, и работа с ней в Delphi нисколько не сложнее работы с COM. Все возможности COM+ доступны разработчикам Delphi в полном объеме.
Поскольку модель COM+ состоит в основном из имеющихся в наличии частей, то это означает полную обратную совместимость, в результате которой все существующие приложения COM автоматически становятся приложениями COM+.
При работе с COM+ ключевую рольвыполняют транзакции. Для их управления и администрирования служит сервер транзакций Microsoft (MTS). Транзакция представляет собой совокупность программных команд, которая либо выполняется полностью от начала и до конца, либо не выполняется вообще. Без поддержки транзакций объекты из коллекций не смогли бы взаимодействовать со сложными коммерческими приложениями. Например, в обработке транзакции, которая открывается при интерактивной покупке какого-либо товара, принимают участие несколько объектов, связанных с одной или несколькими базами данных. Эти объекты отвечают за прием запроса, проверку наличия товара, определение остатка денег на кредитной карточке, обновление данных по счету и оформление заказа. Причем все указанные действия должны быть согласованы. В противном случае может возникнуть сбой в процессе покупки, в результате чего все объекты и данные должны быть возвращены в состояние, которое они имели до начала транзакции. Если при этом, кроме всего прочего, объекты находятся на множестве различных компьютеров, то процесс управления еще более усложняется.
В основе компонентов для работы с очередями (queued components) лежит технология очереди сообщений Microsoft (MSMQ — Microsoft Message Queue), которая предоставляет клиентам COM+ возможность асинхронного вызова методов компонентов сервера COM+. По существу это означает, что клиенты могут создавать экземпляры серверных объектов и вызывать их методы независимо от того, доступен сервер или нет. Средства COM+ осуществляют управление этим процессом, размещая вызовы методов в очереди, а непосредственное выполнение этих методов происходит в дальнейшем при восстановлении подключения к серверу. Серверным объектам фактически «безразлично», вызываются ли их методы непосредственно или через очередь COM+.