Архив статей "Что такое "технология COM"
- COM - что должен знать допризывник
Понятия "процесса", "потока" и "адресного пространства"; концепция архитектуры "клиент-сервер" - С чего начинается COM?
Абстракция объекта; концепция взаимодействующих объектов и её возможная архитектура; динамическая компоновка "пойди туда, не знаю куда"; сценарий взаимодействия объектов; - Что почём в этом COM?
Философия взаимодействия объектов; стоимость и меры ее измерения; является ли стоимость препятствием и где на самом деле оно расположено; - Именование потенциальных COM-объектов
Объекты и статические типы; проблема вселенской уникальности имён; что в имени тебе моём?; машинный алгоритм или людская организация?; UUID и GUID; форма записи GUID; программы-генераторы uuidgen и guidgen; - Где COM хранит имена статических типов
Служба системного реестра; иерархическая база данных; графический редактор реестра; части, разделы и параметры реестра; regedit.exe - ... и что именно COM хранит
Главный раздел системного реестра, используемый COM; набор информации связанной с GUID; ссылка на модуль сервера - У кого и как добиться получения COM-объекта
Cтроение DLL; таблицы EXPORTS и IMPORTS; утилита dumpbin.exe; функции DllGetClassObject и CoCreateInstance - Интерфейс или протокол?
Концепция интерфейса; спецификация взаимодействия - самостоятельная сущность; отличия интерфейса и протокола; объекты и интерфейсы - Скажите, все ли письма телезрителей вы придумываете сами?
Организационно-методические вопросы; языки примеров; технические средства, используемые в цикле статей; литература; отличие данной рассылки от других источников информации
- Откуда суть пошли интерфейсы программные?
Абстрактный класс и статический тип; сокрытие инфраструктуры объекта; разбиение проекта на единицы независимой компиляции; недостаточность аппарата абстрактных классов - Клиенту - клиентово, а серверу - серверово
Разделение функциональности между клиентом и сервером; трудности идентификации статического типа и интерфейса; идентификация парой "статический тип - интерфейс"; виртуальные абстрактные классы - Введение в теорию компиляции. И выведение из неё...
Анатомия двоичных структур модуля; как работает компилятор; как выглядит клиент-серверное взаимодействие "глазами процессора"; двоичные структуры, соответствующие виртуальному абстрактному классу - COM в эпоху неолита
Примитивный, но работающий пример реализации изложенных принципов; реализация DLL-протосервера и вызов ее EXE-протоклиентом; пример действительно компонентной архитектуры "до COM" - Неолитическое искусство глазами искусствоведа
Особенности архитектурного решения клиент-серверного взаимодействия; достаточность предложенного решения для взаимодействия с объектом, но недостаточность его для управления объектом - Самозарождение невозможно. А самоубийство?
Возможное решение проблемы управления объектом в контексте сервера; необходимые и достаточные для управления функции; как реализовать такую функциональность
- Функции твои неизбежны, имя твоё неизвестно...
Оформление базовой функциональности COM-объекта в виде интерфейса; отдельный интерфейс или добавка к другому интерфейсу? интерфейс IUnknown как база любого интерфейса - COM - об известных граблях...
Какие проблемы подстрегают COM-программиста в процессе компонентного конструирования; точная спецификация элементов и конструкций языка, применяемых для описания интерфейса - Интерфейс IUnknown - "...никогда не думай,что ты иная, чем могла быть иначе..."
Спецификация интерфейса IUnknown и реализация его методов - От каменного века к бронзовому
Работающий пример "настоящих COM-объектов" и их взаимодействия с клиентом; исследование управления временем жизни объекта посредством методов интерфейса IUnknown - Бронза и камень... смена материала - смена конструкции
Анализ примера настоящих COM-объектов и их взаимодействия; затраты на соблюдение протокола взаимодействия; особенности конструкции - О сервере бедном замолвите слово...
Понятие COM-сервера; классификация серверов; взаимно проникающие программные архитектуры; проблемы, встающие преед сервером; состав экспортируемых функций inproc-сервера - Глупый пингвин робко прячет... сервер смело достаёт!
Представление о составе регистрационной информации, которую должен обеспечить сервер при саморегистрации; - "...DllRegisterServer как зеркало статических типов, реализуемых сервером..."
Способы регистрации сервера в реестре, средства, какими это может быть сделано и какой ценой - Как выгрузить то, что не загружал?
DllCanUnloadNow и её реализация, алгоритм выгрузки inproc-сервера, "призрачная" функция DllRegisterServerEx - Железный век на смену веку бронзовому
Пример "настоящего" COM-сервера; исследование взаимодействия частей COM на разных этапах; утилита regsvr32.exe - Отличие технологии железного века от предыдущих
Некоторые тонкости клиента и сервера из предыдущего примера; системная функция CoGetClassObject; контекст запуска сервера - Под флагом дуализма...
Существование в составе "объекта" динамической и статической частей; два разных интерфейса IUnknown, реализуемые объектом - Так "под флагом" или "под знаменем"?
Трактат "о терминологии" два разных интерфейса IUnknown, как артефакты реализации, а не модели; три уровня рассмотрения ООП - Фабрикант, но не капиталист
Концепция "фабрики класса"; две разных интерпретации этой концепции; статические и нестатические аспекты COM-типа; конструктор COM-объекта; - Как сфабриковать объект?
Интерфейс IClassFactory; реализация методов этого интерфейса; "конструктор по умолчанию" COM-объекта; последовательность действий клиента для получения экземпляра; - Об интерфейсе возникновения денег
Интерфейс IClassFactory2; протокол взаимодействия IClassFactory2/IClassFactory; ключ лицензии; последовательность действий клиента для получения лицензированног экземпляра; - COMиксы
Условные графические обозначения, принятые в COM; статические и нестатическее аспекты типа в этих обозначениях; коммунальность COM - Хочу всё знать!
Ответы на письма читателей - От железа к COMпозитным материалам
Пример реализации статических и нестатических аспектов типа; настоящий COM-сервер c настоящими COM-объектами; функция API CoCreateInstance
- Жизнь - это процесс...
Понятия "потока", "процесса", "изолированного адресного пространства". Проблемы, которые они вызывают при организации взаимодействия компонентов - А процесс - это химия...
Изолированное адресное пространство; реализация этой концепции в Win32; причины возникновения "виртуальной памяти" - А процесс - это химия и физика
Поток и процесс;Многопоточное программирование в Win32; синхронизаторы; COM и синхронизация потоков - Соблюдай дистанцию!
Эмуляция вызова локальной процедуры; Передача управления в другой поток в другом процессе; Синхронизация потоков клиента и сервера - О пользе "и.о."
Разделение компонентов между процессами; Компоненты-заместители; proxy и stub и их реализация; "Основная теорема алгебры" COM - Типа библиотека...
Три стороны одного, центрального для COM явления; Библиотека типов; Язык IDL и абстрактное описание интерфейсов; Компилятор MIDL; Утилита Oleview; - Ошибка резидента
Ошибки в COM; Два рода ошибок; Архитектурные замечания о перехвате исключений внутри сервера; О механизме передачи ошибки от сервера клиенту; Объект с интерфейсом IErrorInfo; - "Косой" на связь не вышел...
Ошибки "второго рода"; Структурность кода ошибки; типы данных SCODE и HRESULT; составные части кода ошибки в COM; Код ошибки, как видимое проявление целой подсистемы; - "Надежда" работает под контролем.
Ошибки "первого рода"; механизм передачи этих ошибок; философия трансформации абстракции ошибки; интерфейсы IErrorInfo, ICreateErrorInfo и ISupportErrorInfo; - ...И гений, интерфейсов друг...
Наследование в COM; наследование поведения; наследование реализации и наследованеи интерфейса; философия наследования; агрегирование и включение;
Авторские права © 2001 - 2004, Михаил Безверхов Публикация требует разрешения автора |
|