Обзор технологий 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).
Статья научная