Системы автоматизации разработки программного обеспечения. Н. А. Соловьев
Чтение книги онлайн.
Читать онлайн книгу Системы автоматизации разработки программного обеспечения - Н. А. Соловьев страница 11
Недостатками технологии OLE1.0 являются:
– базовый механизм OLE1.0 – DDE по своей природе асинхронен, т.е. возврат управления при вызове любой функции происходит немедленно, но после завершения операции;
– для передачи данных между приложениями используется разделяемая глобальная память, т.е. данные сначала копируются в нее, а затем могут быть вытолкнуты Windows в файл подкачки, вследствие чего замедляется работа приложения;
– связи OLE1.0 легко разрываются при перемещении файлов;
– пользователю неудобно редактировать данные в отдельном окне.
Архитектура программных компонентов, разработанных по технологии СОМ, и взаимодействие СОМ-объектов показана на рисунке 1.25.
По технологии COM приложение представляет собой службы (функции) использующие специальные объекты – объекты COM, которые являются экземпляром класса COM. Объект COM включает поля и методы, но может реализовать несколько интерфейсов, обеспечивающих доступ к его полям и функциям (достигается за счет организации отдельной таблицы адресов методов для каждого интерфейса). При этом интерфейс объединяет несколько однотипных функций. Кроме того, классы COM поддерживают наследование интерфейсов, но не поддерживают наследование реализации, т.е. не наследуют код методов, хотя при необходимости объект класса-потомка может вызвать метод родителя.
Рисунок 1.25 – Архитектура приложений на основе программных компонентов
Объекты СОМ всегда функционируют в составе сервера – динамической библиотеки и исполняемого файла. Различают три типа серверов, представленных на рисунке 1.26.
Рисунок 1.26 – Реализация технологии СОМ
Например, Microsoft Word является локальным сервером, включающим множество объектов, которые могут использоваться другими приложениями. Для обращения к службам клиент должен получить указатель на соответствующий интерфейс. Перед первым обращением клиент посылает запрос к библиотеке COM, хранящей информацию обо всех зарегистрированных в системе классах COM объектов, и передает ей имя класса, идентификатор интерфейса и тип сервера. Библиотека запускает необходимый сервер, создает требуемые объекты и возвращает указатели на объекты и интерфейс. Получив указатели, клиент может вызывать необходимые функции объекта.
Модификация COM, обеспечивающая передачу вызовов между компьютерами, называется DCOM. При использовании удаленных серверов в адресном пространстве клиента создается proxy-объект (заместитель объекта COM), а в адресном пространстве сервера COM – заглушка, соответствующая клиенту. Получив задание от клиента, заместитель упаковывает его параметры и, используя службы ОС, передает вызов заглушке.