Контрольная работа: Особенности архитектуры и интерфейса Microsoft Windows
Границы уже начали стираться благодаря технологии OLE (Obiect Linking and Embedding) - связывание и внедрение объектов. Поддержка практически во всех версиях Windows стандарта «plug-and-play» упрощает модернизацию оборудования, а пользователи портативных компьютеров оценят, что программисты Microsoft не забыли и об их удобствах.
Ярлыки помогут быстро обращаться к часто используемым файлам, программам и папкам. Команда «Поиск» позволит вам почти мгновенно найти файл и проверить его содержимое.
Большая часть всего этого достигнута без ущерба для производительности. А многие процессы, например печать, идут теперь гораздо быстрее благодаря 32-битному режиму и другим усовершенствованиям.
Итак, основная цель разработчиков операционных систем семейства Windows – создание документированного интерфейса, резкое снижение требований к подготовке пользователя, упрощение работы. Следует также признать, что интерфейс Windows обладает массой достоинств. Предусмотрено все или почти все для удобной и безопасной работы, почти любую операцию можно выполнить множеством способов (как Вам лично больше нравится), а продуманная система подсказок, сообщений и предупреждений поддерживает пользователя в течение всего сеанса работы.
В данной контрольной работе рассматриваются особенности графического интерфейса пользователя (GUI) и методы его реализации, основными из которых являются использование объектной модели COM, технологии OLE и ActiveX.
В качестве иллюстраций к данной работе представлены скрин-шоты с операционной системы MicrosoftWindowsXPServicePack 2, локализованной для России.
II. ОСНОВНАЯ ЧАСТЬ
2.1 Обзор технологии COM
Технология COM (Component Object Technology) – объектно ориентированная программная спецификация, предложенная Microsoft. COM предназначена для повышения надежности взаимодействия программных продуктов между собой. Данная технология не определяет структуру программного продукта, язык программирования и прочие детали реализации. COM является стандартом, который регламентирует модель программного объекта, соответствующий требованиям COM-технологии. Программный объект, созданный согласно спецификации COM называется COM-объектом. Данная технология определяет механизм взаимодействия COM-объектов между собой. COM относится к так называемым двоичным стандартам, т.к. прилагается к оттранслированному в двоичный код программному объекту. Взаимодействие COM-объектов обеспечивается набором предопределенных подпрограмм, называемыми интерфейсами, доступ к которым обеспечивается через уникальные идентификаторы интерфейсов GUID (Global Unique Interface Identifyer), уникальность которых гарантирует операционная система. Такой механизм схож с использованием указателей при доступе к объектам в объектно-ориентированных языках программирования, что дает возможность прозрачного управления объектами, т.к. доступ к ним обеспечивается через указатели. COM-технология расширяет этот механизм, перенося применение указателей (в виде GUID) для доступа к объектам на уровень операционной системы. Таким образом, COM-объекты могут быть прозрачно друг для друга модифицироваться, т.к. доступ к объектам обеспечивается через GUID. COM технология включает в себя также библиотеку, в которой содержится набор стандартных интерфейсов, которые определяют ядро функциональности COM и небольшой набор API функций, разработанных для создания COM-объектов и управления ими.
Архитектура COM является расширяемой, и на ней базируются другие технологии Microsoft, такие как OLE и ActiveX. Эти технологии в настоящее время являются расширениями операционной системы, и определяют свои собственные правила работы и предлагают свои библиотеки для создания объектов и для управления объектами на основе данных технологий. Используя COM как основу, разработчики программного обеспечения получают возможность создавать свои собственные расширения таким образом, что программные объекты созданные, по правилам COM-технологии могут работать с другими COM-объектами через унифицированный механизм взаимодействия, который предлагает COM.
COM использует такое понятие как «класс», которое по смыслу означает то же самое, что и в объектно-ориентированных средствах разработки. COM-объект является объектом COM-класса (COM class). COM-классы, для различия с классами в объектно-ориентированных языках, с помощью которых может создаваться приложение, обычно называются соклассами (CoClass).
2.2 Расширения COM
Одним из расширением технологии COM является OLE, представляющая собой библиотеку собственных интерфейсов, типов данных и подпрограмм, предназначенных для обеспечения функциональности OLE.
Еще одним расширением COM является не так давно созданная технология ActiveX. Основные ответвления ActiveX носят названия ActiveX Documents (документы ActiveX) и элементы управления ActiveX (ActiveX controls). ActiveX «моложе» OLE, и была разработана как COM-расширение, оптимизированное по скорости и по размеру.
Однако, OLE с появлением ActiveX уже была неплохо развита, и сейчас различия между этими двумя технологиями начинают уменьшаться, а их функциональности все больше перекрываться.
2.2.1 OLE / ActiveDocument
Документы OLE (OLE/Active documents) – один из набора сервисов, которые предлагает технология OLE. Объекты OLE documents имеют все свойства OLE по связи и внедрению данных, визуального редактирования, поддержки drag-and-drop, активизации по месту (in-place-activation). Используя OLE document можно определить любой количество интерфейсов, через которые обеспечивается стандартное поведения объекта, такое как визуальное редактирования и drag-and-drop. Посредством реализации этих интерфейсов, объекты OLE documents могут быть свободно объединены в единую систему взаимодействующих объектов с разными форматами данных, таких, как звуковые фрагменты, текстовые документы и растровые изображения.
Объект OLE documents может быть реализован как внутренний и внешний COM-сервер. Такой объект состоит из двух частей: визуальной (presentation data), предназначенной для отображения визуальной части объекта и из внутренней части (native data), используемой для редактирования объекта. Объекты OLE documents могут быть контейнерами документов (document container) и серверами документов (document server). Сервер документов обеспечивает функциональность объектов OLE documents. В среде контейнера документов может быть активизирован любой сервер документов.
2.2.2 Automation
Технология автоматизации (automation) предлагает возможность программного управления одного приложения другим. В данной технологии различаются две составные компоненты:
· Клиентская часть, называемая контроллером автоматизации (automation controller);
· Серверная часть, которая носит название объекта автоматизации (automation object) – объект, которым управляет клиент.
Объекты автоматизации могут быть реализованы как внутренние, внешние и удаленные сервера. Технология автоматизации характеризуется двумя положениями:
· Объекты автоматизации должны иметь возможность определить множество свойств и команд через описания типов, т.е. они должны получить информацию об интерфейсах объекта, с которым идет взаимодействие, о методах интерфейсов и о типах аргументов. Такая информация предоставляется через библиотеки типов. Однако, использование библиотеки типов необязательно при использовании интерфейса диспетчеризации, т.к. с помощью последнего осуществляется привязка интерфейсов на этапе выполнения программы (недостатком такого подхода является отсутствие проверки соответствия типов на этапе компиляции);
· Объекты автоматизации должны предоставлять свои методы общедоступными для внешнего использования, так, чтобы ими могли пользоваться внешние приложения. Для этого, в объектах автоматизации должен быть реализован интерфейс диспетчеризации.
Основным достоинством технологии автоматизации является возможность создания объектов, работающих в любом процессном пространстве. Таким образом, вместо создания невизуального OLE-объекта предпочтительнее использовать Automation.
2.2.3 ActiveXcontrol
Технология ActiveX расширяет COM и OLE новыми функциями, специфичными для элементов управления ActiveX (ActiveX control). ActiveX control – визуальные объекты управления, реализуемые как внутренние COM-сервера, и которые включаются в OLE-контейнеры, и работают в их среде. Элементы управления ActiveX не являются законченными приложениями, но представляют собой объект, который решает некоторую частную задачу и может быть встроен в различные приложения. Основными характерными особенностями ActiveX controls является возможность обработки событий, привязки к источникам данных и поддержка лицензирования.
Элементы управления ActiveX особенно широко используются в разработке Web-приложений, где ActiveX controls используются как интерактивные объекты на Web-страницах. По существу, ActiveX становится стандартом, специально направленным на интерактивную часть World Wide Web, например, для просмотра в Web-браузере не гипертекстовых документов, доступ к базам данных и т.д.