Обзор технологий COM. Разработка сервера автоматизации
Автор: Никифорова К.В., Окладова И.М.
Журнал: Форум молодых ученых @forum-nauka
Статья в выпуске: 4 (32), 2019 года.
Бесплатный доступ
Статья посвящена обзору и анализу COM-технологии. В работе дается определение термину и разработка сервера автоматизации. Содержится краткое описание проекта, созданного с использованием Microsoft Visual C# на основе функций COM и OLE. Проект автоматизирует Microsoft Word, заполняя шаблон документа на основе ввода, предоставленного пользователем и сохраняя его новым документом.
Com-технологии, сервер автоматизации
Короткий адрес: https://sciup.org/140286305
IDR: 140286305
Текст научной статьи Обзор технологий COM. Разработка сервера автоматизации
COM (англ. Component Object Model — модель компонентного объекта) - это технологический стандарт, которая возник в Windows, но начался распространяться на другие платформы . Его цель - создание программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться в нескольких программах одновременно.
Стандарт COM был разработан в 1991 году компанией Microsoft как основа для развития технологии OLE. OLE (Object Linking and Embedding– объектное связывание и встраивание) — технология связывания и внедрения объектов в другие документы и объекты, разработанная корпорацией Microsoft. Его основное использование заключается в управлении соединением документов, но он также используется для передачи данных между различными приложениями, использующие перетаскивание и буфер обмена операции. Концепция «внедрения» также используется для встраивания мультимедиа в веб-страницы, которые имеют тенденцию вставлять видео, анимацию и музыкальные файлы в HTML-коде.
OLE 1.0 предназначалась для обмена информацией на основе связи (linking) и внедрения (embedding), объекты могут быть экспортированы из одних приложений в другие. Приложение-получатель или внедряет объект в себя (копирует исходные данные), или обращается к нему по ссылке (link), которая указывает на источник данных. Примером служит документ MS Word, который содержит внедряемую таблицу MS Excel. OLE 1.0 основана не на COM, а на довольно громоздком протоколе DDE (Dynamic Data Exchange, динамический обмен данными).
OLE 2.0, выпущенный в 1993 году, обеспечил гораздо более разнообразный состав модели документа (т. е. содержащий несколько видов данных, такие как текст, видео, графика и т. д.), а также OLE автоматизация, перетаскивание OLE и общие сервисы. В основе OLE 2.0 входит модель компонентного объекта (COM), спецификация, которая позволяет разработчикам проектировать интерфейсы, обеспечивающие взаимодействие между компонентами. По факту, OLE 2.0 - это просто набор COM-интерфейсов, разработанных Microsoft.
В 1996 году Microsoft переименовала технологию OLE 2.0 в ActiveX. Эта версия OLE обычно используется в Интернете дизайнеров для встраивания мультимедийных файлов в веб-страницы.
Компонентная архитектура программного обеспечения от Microsoft определяет структуру для построения программных подпрограмм (объектов). COM предоставляет интерфейсы между объектами, и Distributed COM (DCOM) позволяет им работать удаленно. COM был разработан с программированием на C ++. Он поддерживает инкапсуляцию, полиморфизм и повторное использование. Тем не менее, COM предназначен для совместимости на двоичном уровне и поэтому отличается от объекта C ++. В качестве двоичного объекта COM объект концентрируется на своем интерфейсе с другими объектами. Важно помнить, что COM не язык программирования, это двоичный стандарт, который позволяет программным компонентам взаимодействовать друг с другом как с объектами. COM не является специфическим для какого-либо конкретного языка программирования. COM может работать с любым языком, который поддерживает двоичную компоновку COM-объекта. COM используется следующими способами:
-
1. Объекты COM. COM-объекты могут быть небольшими или большими. Они могут быть написаны на нескольких языках программирования, и могут выполнять любую обработку. Программа может вызывать объект, когда нужны его услуги. Объекты могут запускаться удаленно (DCOM) по сети в распределенных объектах окружающей среды.
-
2. Автоматизация (автоматизация OLE). Стандартные приложения, такие как текстовые процессоры и электронные таблицы, могут быть записаны для раскрытия их внутренних функций как COM-объекты, позволяющие им «автоматизировать» вместо ручного выбора из меню.
-
3. Элементы управления (элементы управления OLE, элементы управления ActiveX). Приложения могут вызывать COM-объекты, называемые «элементы управления», которые смешиваются и становятся частью программы. Элементы ActiveX также можно загрузить в Интернет, чтобы веб-страница выполняла любую обработку.
-
4. Составные документы и документы ActiveX. Составляющие документы Microsoft OLE основаны на COM, который позволяет встроить один документ или связать с другим. Документы ActiveX - это расширения
-
5. Интерфейсы программирования. Все чаще Microsoft делает свой стандарт программного интерфейса соответствующим объектной модели COM, потому что между всеми интерфейсами существует непрерывность.
для OLE, которые разрешают веб-браузеру, например, не только просматривать Web-страницы, но и любые документы.
Распределённая COM - DCOM (Distributed COM) – это расширение компонентной модели объекта (COM) для поддержки связи среди объектов на разных компьютерах - в локальной сети, глобальной сети или даже в Интернете. DCOM обеспечивает прозрачный доступ к объектам в удаленных процессах. В основу DCOM положен набор сервисов контроля доступа. Приложения (включая программы, созданные до DCOM) могут использовать DCOM и работать вполне безопасно без добавления какого-либо кода, связанного с защитой. С другой стороны, приложения, знающие о новых средствах DCOM контроля доступа, могут задействовать их явно.
Сервер автоматизации — это приложение, которое предоставляет программируемые объекты (объекты автоматизации) для других приложений (клиенты автоматизации). Рассмотрим разработку сервера автоматизации с помощью Microsoft Visual C#, предназначенного для заполнения шаблона документа Test Microsoft Word и сохранения этого документа под именем result.
Код C# :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
namespace Enter
{ public partial class Form1 : Form
public Form1()
{
InitializeComponent();
} private void label1_Click(object sender, EventArgs e)
{
} private void button1_Click(object sender, EventArgs e)
//Word Export var wordApp = new Word.Application();
wordApp.Visible = false;
try
ReplaceStub("{name}", name, wordDocument);
ReplaceStub("{address}", address, wordDocument);
ReplaceStub("{dateOfBirth}", dateOfBirth, wordDocument);
wordApp.Visible = true;
} catch
{
}
} private void ReplaceStub(string stubToReplace, string text, Word.Document wordDocument)
{ var range = wordDocument.Content;
}
}
}
ФИО: {name}
Адрес: {address}
Дата рождения: {dateOfBirth}
Рисунок 1. Документ Test

Рисунок 2. Приложение Windows Forms
ФИО: ИвановИван Иванович
Адрес: г. Самара, ул. Мичурина 199 - 3
Дата рождения: 12.02.1991
Рисунок 3. Документ result
Таким образом, можно сделать вывод, что COM-технология действительно универсальна и чрезвычайно выгодна. В настоящее время это технология поддержки разработки COM-объектов. Деятельность операционной системы и приложений будет больше ориентироваться в будущем на COM-технологию. Это, несомненно, сделает их более удобными для пользователя, даже для новичка.
Список литературы Обзор технологий COM. Разработка сервера автоматизации
- Пономарев В. В. Введение в ActiveX. Часть 1. Инфраструктура COM. Учебно-методическое пособие по дисциплине «Современные технологии программирования». - 2016.- 82с.
- Пошаговое руководство. Создание простого приложения для работы с данными с помощью ADO.NET [Электронный ресурс] URL: https://msdn.microsoft.com/ru-ru/library/jj943772.aspx (дата обращения: 05.08.2018)
- Модель компонентного объекта [Электронный ресурс]. URL: https://lektsia.com/3x2c24.html (дата обращения: 05.08.2018).