Книга знаний

Инф. технологии

Архив статей по технологии COM

http://www.developing.ru/com/ Аннотация Введение в предмет Начала философии Компоненты "до COM" Базовые понятия COM Прорыв за границу процесса Автор статьи: Волшебник
Последняя редакция №1 от 21.02.05
URL: http://kb.mista.ru/article.php?id=12

http://www.developing.ru/com/

Аннотация
Введение в предмет
Начала философии
Компоненты "до COM"
Базовые понятия COM
Прорыв за границу процесса



=============================================
Введение в предмет

-------------------------------------------
Технология COM - отличная технология... от других
http://www.developing.ru/com/what-is-com.html

COM и компонентное программирование;использование объектов без операций сборки модуля; эволюция ООП; суть COM технологии;

-------------------------------------------
СОМ - возможности велики...
http://www.developing.ru/com/com-advantages.html

Уместные применения технологии COM; DLL и EXE как места обитания COM-объектов; сокрытие know how; распределенное приложение; кроссплатформенная совместимость; изменение масштаба проекта в процессе проектирования;

-------------------------------------------
СОМ - возможности велики... но не беспредельны
http://www.developing.ru/com/com-disadvantages.html

COM - сложная, неполная и замкнутая технология; сравнение COM и CORBA; об OLE и ПиВО; от OLE к OLE Automation и далее к COM, ActiveX, OLE DB, MTS и COM+

====================================================
Начала философии

-------------------------------------------
COM - что должен знать допризывник
http://www.developing.ru/com/what-to-know-com-recruit.html

Понятия "процесса", "потока" и "адресного пространства"; концепция архитектуры "клиент-сервер"

-------------------------------------------
С чего начинается COM?
http://www.developing.ru/com/com-beginning.html

Абстракция объекта; концепция взаимодействующих объектов и её возможная архитектура; динамическая компоновка "пойди туда, не знаю куда"; сценарий взаимодействия объектов;

-------------------------------------------
Что почём в этом COM?
http://www.developing.ru/com/where-is-cost-of-com.html

Философия взаимодействия объектов; стоимость и меры ее измерения; является ли стоимость препятствием и где на самом деле оно расположено;

-------------------------------------------
Именование потенциальных COM-объектов
http://www.developing.ru/com/com-objects-naming.html

Объекты и статические типы; проблема вселенской уникальности имён; что в имени тебе моём?; машинный алгоритм или людская организация?; UUID и GUID; форма записи GUID; программы-генераторы uuidgen и guidgen;

-------------------------------------------
Где COM хранит имена статических типов
http://www.developing.ru/com/where-com-stores-types.html

Служба системного реестра; иерархическая база данных; графический редактор реестра; части, разделы и параметры реестра; regedit.exe

-------------------------------------------
... и что именно COM хранит
http://www.developing.ru/com/what-com-stores.html

Главный раздел системного реестра, используемый COM; набор информации связанной с GUID; ссылка на модуль сервера

-------------------------------------------
У кого и как добиться получения COM-объекта
http://www.developing.ru/com/who-must-give-com-object.html

Cтроение DLL; таблицы EXPORTS и IMPORTS; утилита dumpbin.exe; функции DllGetClassObject и CoCreateInstance

-------------------------------------------
Интерфейс или протокол?
http://www.developing.ru/com/interface-or-protocol.html

Концепция интерфейса; спецификация взаимодействия - самостоятельная сущность; отличия интерфейса и протокола; объекты и интерфейсы

-------------------------------------------
Скажите, все ли письма телезрителей вы придумываете сами?
http://www.developing.ru/com/books-and-tools.html

Организационно-методические вопросы; языки примеров; технические средства, используемые в цикле статей; литература; отличие данной рассылки от других источников информации



=================================================
Компоненты "до COM"

-------------------------------------------
Откуда суть пошли интерфейсы программные?
http://www.developing.ru/com/where-interfaces-from.html

Абстрактный класс и статический тип; сокрытие инфраструктуры объекта; разбиение проекта на единицы независимой компиляции; недостаточность аппарата абстрактных классов

-------------------------------------------
Клиенту - клиентово, а серверу - серверово
http://www.developing.ru/com/client-and-server-owns.html

Разделение функциональности между клиентом и сервером; трудности идентификации статического типа и интерфейса; идентификация парой "статический тип - интерфейс"; виртуальные абстрактные классы

-------------------------------------------
Введение в теорию компиляции. И выведение из неё...
http://www.developing.ru/com/compilation-theory.html

Анатомия двоичных структур модуля; как работает компилятор; как выглядит клиент-серверное взаимодействие "глазами процессора"; двоичные структуры, соответствующие виртуальному абстрактному классу

-------------------------------------------
COM в эпоху неолита
http://www.developing.ru/com/neolitic-com.html

Примитивный, но работающий пример реализации изложенных принципов; реализация DLL-протосервера и вызов ее EXE-протоклиентом; пример действительно компонентной архитектуры "до COM"

-------------------------------------------
Неолитическое искусство глазами искусствоведа
http://www.developing.ru/com/neolitic-com-art.html

Особенности архитектурного решения клиент-серверного взаимодействия; достаточность предложенного решения для взаимодействия с объектом, но недостаточность его для управления объектом

-------------------------------------------
Самозарождение невозможно. А самоубийство?
http://www.developing.ru/com/selfmade-selfdestroy.html

Возможное решение проблемы управления объектом в контексте сервера; необходимые и достаточные для управления функции; как реализовать такую функциональность



=====================================================
Базовые понятия COM

-------------------------------------------
Функции твои неизбежны, имя твоё неизвестно...
http://www.developing.ru/com/iunknown-definition.html

Оформление базовой функциональности COM-объекта в виде интерфейса; отдельный интерфейс или добавка к другому интерфейсу? интерфейс IUnknown как база любого интерфейса

-------------------------------------------
COM - об известных граблях...
http://www.developing.ru/com/com-troubles.html

Какие проблемы подстрегают COM-программиста в процессе компонентного конструирования; точная спецификация элементов и конструкций языка, применяемых для описания интерфейса

-------------------------------------------
Интерфейс IUnknown - "...никогда не думай,что ты иная, чем могла быть иначе..."
http://www.developing.ru/com/iunknown.html

Спецификация интерфейса IUnknown и реализация его методов

-------------------------------------------
От каменного века к бронзовому
http://www.developing.ru/com/from-stone-to-bronze.html

Работающий пример "настоящих COM-объектов" и их взаимодействия с клиентом; исследование управления временем жизни объекта посредством методов интерфейса IUnknown

-------------------------------------------
Бронза и камень... смена материала - смена конструкции
http://www.developing.ru/com/bronze-and-stone-in-com.html

Анализ примера настоящих COM-объектов и их взаимодействия; затраты на соблюдение протокола взаимодействия; особенности конструкции

-------------------------------------------
О сервере бедном замолвите слово...
http://www.developing.ru/com/about-com-server.html

Понятие COM-сервера; классификация серверов; взаимно проникающие программные архитектуры; проблемы, встающие преед сервером; состав экспортируемых функций inproc-сервера

-------------------------------------------
Глупый пингвин робко прячет... сервер смело достаёт!
http://www.developing.ru/com/com-server-exposes.html

Представление о составе регистрационной информации, которую должен обеспечить сервер при саморегистрации;

-------------------------------------------
"...DllRegisterServer как зеркало статических типов, реализуемых сервером..."
http://www.developing.ru/com/dllregisterserver.html

Способы регистрации сервера в реестре, средства, какими это может быть сделано и какой ценой

-------------------------------------------
Как выгрузить то, что не загружал?
http://www.developing.ru/com/how-unloat-what-not-load.html

DllCanUnloadNow и её реализация, алгоритм выгрузки inproc-сервера, "призрачная" функция DllRegisterServerEx

-------------------------------------------
Железный век на смену веку бронзовому
http://www.developing.ru/com/iron-after-bronze.html

Пример "настоящего" COM-сервера; исследование взаимодействия частей COM на разных этапах; утилита regsvr32.exe

-------------------------------------------
Отличие технологии железного века от предыдущих
http://www.developing.ru/com/iron-vs-bronze.html

Некоторые тонкости клиента и сервера из предыдущего примера; системная функция CoGetClassObject; контекст запуска сервера

-------------------------------------------
Под флагом дуализма...
http://www.developing.ru/com/under-dualism-banner.html

Существование в составе "объекта" динамической и статической частей; два разных интерфейса IUnknown, реализуемые объектом

-------------------------------------------
Так "под флагом" или "под знаменем"?
http://www.developing.ru/com/under-flag-or-banner.html

Трактат "о терминологии" два разных интерфейса IUnknown, как артефакты реализации, а не модели; три уровня рассмотрения ООП

-------------------------------------------
Фабрикант, но не капиталист
http://www.developing.ru/com/fabricant-not-capitalist.html

Концепция "фабрики класса"; две разных интерпретации этой концепции; статические и нестатические аспекты COM-типа; конструктор COM-объекта;

-------------------------------------------
Как сфабриковать объект?
http://www.developing.ru/com/how-fabricate-objects.html

Интерфейс IClassFactory; реализация методов этого интерфейса; "конструктор по умолчанию" COM-объекта; последовательность действий клиента для получения экземпляра;

-------------------------------------------
Об интерфейсе возникновения денег
http://www.developing.ru/com/about-money-interface.html

Интерфейс IClassFactory2; протокол взаимодействия IClassFactory2/IClassFactory; ключ лицензии; последовательность действий клиента для получения лицензированног экземпляра;

-------------------------------------------
COMиксы
http://www.developing.ru/com/comix.html

Условные графические обозначения, принятые в COM; статические и нестатическее аспекты типа в этих обозначениях; коммунальность COM

-------------------------------------------
Хочу всё знать!
http://www.developing.ru/com/want-know-everything.html

Ответы на письма читателей

-------------------------------------------
От железа к COMпозитным материалам
http://www.developing.ru/com/from-iron-to-composite.html

Пример реализации статических и нестатических аспектов типа; настоящий COM-сервер c настоящими COM-объектами; функция API CoCreateInstance



==============================================================
Прорыв за границу процесса

-------------------------------------------
Жизнь - это процесс...
http://www.developing.ru/com/life-is-process.html

Понятия "потока", "процесса", "изолированного адресного пространства". Проблемы, которые они вызывают при организации взаимодействия компонентов

-------------------------------------------
А процесс - это химия...
http://www.developing.ru/com/process-is-chemistry.html

Изолированное адресное пространство; реализация этой концепции в Win32; причины возникновения "виртуальной памяти"

-------------------------------------------
А процесс - это химия и физика
http://www.developing.ru/com/process-is-physics.html

Поток и процесс;Многопоточное программирование в Win32; синхронизаторы; COM и синхронизация потоков

-------------------------------------------
Соблюдай дистанцию!
http://www.developing.ru/com/keep-distance.html

Эмуляция вызова локальной процедуры; Передача управления в другой поток в другом процессе; Синхронизация потоков клиента и сервера

-------------------------------------------
О пользе "и.о."
http://www.developing.ru/com/benefit-of-vice.html

Разделение компонентов между процессами; Компоненты-заместители; proxy и stub и их реализация; "Основная теорема алгебры" COM

-------------------------------------------
Типа библиотека...
http://www.developing.ru/com/type-library.html

Три стороны одного, центрального для COM явления; Библиотека типов; Язык IDL и абстрактное описание интерфейсов; Компилятор MIDL; Утилита Oleview;

-------------------------------------------
Ошибка резидента
http://www.developing.ru/com/com-errors.html

Ошибки в COM; Два рода ошибок; Архитектурные замечания о перехвате исключений внутри сервера; О механизме передачи ошибки от сервера клиенту; Объект с интерфейсом IErrorInfo;

-------------------------------------------
"Косой" на связь не вышел...
http://www.developing.ru/com/com-errors-type2.html

Ошибки "второго рода"; Структурность кода ошибки; типы данных SCODE и HRESULT; составные части кода ошибки в COM; Код ошибки, как видимое проявление целой подсистемы;

-------------------------------------------
"Надежда" работает под контролем.
http://www.developing.ru/com/com-errors-type1.html

Ошибки "первого рода"; механизм передачи этих ошибок; философия трансформации абстракции ошибки; интерфейсы IErrorInfo, ICreateErrorInfo и ISupportErrorInfo;

-------------------------------------------
...И гений, интерфейсов друг...
http://www.developing.ru/com/interfaces-friend.html

Наследование в COM; наследование поведения; наследование реализации и наследованеи интерфейса; философия наследования; агрегирование и включение;

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика