Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 18:48, курсовая работа
Часто пользователи используют огромное число документов, в которых, как правило, имеется общая часть, поэтому в такой ситуации имеет смысл выделить эту часть, а в дальнейшем только ссылаться на неё, при этом, производя изменения в одном месте – информация в других документах будет автоматически обновляться. Решение проблемы совместного использования документов существенно облегчает работу пользователей. Как и предыдущий вопрос, она решается только с помощью определенных технологий и методов.
Вследствие всего этого, тема данной курсовой является актуальной, а рассматриваемые в ней технологии полезными и востребованными.
В основной части работы рассмотрены три основных метода обмена данными между документами, а в последней части показано как действует технология OLE в популярном пакете Microsoft Office.
Итак, можно сказать, что с появлением метода DDE возник качественный скачек в продвижении технологии связывания и совместного использования документов. Но все же остались некоторые недочеты, которые в своем большинстве были исправлены схемой OLE.
3.1 Объектно-ориентированная технология
В данной главе кратко
описывается объектно-
Алгоритмическая и объектно-ориентированная декомпозиция. Традиционно сложилось так, что проектирование и реализация программного обеспечения осуществляется с точки зрения функций или алгоритмов. Как правило, мы разбиваем свои системы на взаимодействующие группы логически связанных функций, воздействующих на наборы несопоставимых данных. Другими словами, мы разделяем сложную задачу на более простые и решаем ее алгоритмически.
Алгоритмическая декомпозиция — это способ решения проблемы с функциональной точки зрения. При алгоритмической декомпозиции все внимание сосредоточено на том, какие преобразования необходимо выполнить над данными без учета их семантической связи.
Можно подойти к решению проблемы по-другому. Прежде чем изучать функциональные взаимосвязи или интересоваться, что происходит с набором данных, необходимо выявить логически обособленные сущности в предметной области, определить их свойства, взаимосвязи и отношение к решаемой проблеме. Такой способ анализа называется объектно-ориентированной декомпозицией.
Объектно-ориентированная декомпозиция — это способ решения проблемы с объектной точки зрения. Употребляя ОО декомпозицию, внимание пользователя фокусируется на конкретном объекте. Дополнительно устанавливаются логические и семантические связи между объектами, их поведением.
Объект — это самодостаточный программный модуль, который абстрактно описывает физическую или логическую сущность реального мира. Он скрывает (инкапсулирует) детали своей реализации и имеет общедоступный интерфейс.
Объекты являются автономными программными модулями, которым присуши некоторое состояние на данный момент и определенное поведение. Состояние объекта — это его внутренние, то есть закрытые, данные и скрытые детали его реализации. Общедоступный интерфейс формирует поведение объекта. Он определяет, что объект может делать. Интерфейс реализован как набор функций, называемых методами. На схеме 3.1 в общем виде изображены два объекта — А и В. В этом примере объект А вызывает метод интерфейса объекта В. В общем случае объекты обмениваются сообщениями, вызывая методы друг друга.
Объект включает в себя функции и данные, на которые эти функции воздействуют. Функции и данные, благодаря такой организации, связаны семантически. Поскольку все объекты в ОО системе имеют семантическую связь, общая структура такой системы является более гибкой и ясной по сравнению с традиционными способами организации.
3.2 Модель компонентного объекта (COM)
обмен данные приложение
Модель компонентного объекта (Component Object Model — COM) — это вклад компании Microsoft в мир объектных моделей. Она служит основой для OLE, поэтому понимание ее чрезвычайно важно.
Что такое СОМ. СОМ представляет собой стандартную объектную модель промышленного уровня, которая унифицирует системы объектов. Эта модель специфицирует следующее:
Модель "клиент-сервер". СОМ поддерживает простую модель "клиент-сервер". Объекты, называемые серверами, предоставляют некие функции в распоряжение объектов, называемых клиентами. Серверы всегда являются СОМ-объектами, то есть объектами, которые подчиняются спецификации СОМ. С другой стороны, клиенты могут быть СОМ-объектами или не быть таковыми. Это значит, что некоторые объекты могут быть простыми объектами C+ + , приложениями Visual Basic и т.п. На следующем рисунке представлена не сложная модель "клиент-сервер".
СОМ интерфейсы. Клиенты и СОМ-серверы общаются друг с другом при помощи интерфейсов. Интерфейсы — это группы функций, которыми СОМ-объекты обычно пользуются для взаимодействия друг с другом и своими клиентами. Как было показано в главе посвященной ОО технологии, проявление функциональных возможностей посредством интерфейса — это фундаментальная концепция объектно-ориентированного программирования. Используя исключительно интерфейсы, СОМ поддерживает логическую абстракцию и неуклонно проводит в жизнь строгую инкапсуляцию.
СОМ-серверы могут одновременно иметь несколько интерфейсов (как правило, так и бывает). Каждый интерфейс предоставляет набор функций, отличный от других.
3.3 Архитектура OLE
Архитектура OLE (object linking and embeding) основана на модели компонентного объекта (СОМ). Сама OLE является унифицирующей технологией системного уровня, которая базируется на объектах и реализует интеграцию приложений. Она предоставляет клиентам набор объектно-ориентированных услуг. Можно сказать, что, с практической точки зрения, OLE — это набор системных библиотек (DLL-файлов), которые дают возможность прикладным программам взаимодействовать друг с другом. OLE является внутренней неотъемлемой частью операционной системы Windows, а не подсистемой. Например, в папке SYSTEM или SYSTEM32 на сетевом диске компьютера можно найти дюжину или даже больше файлов OLExxx.DLL. Это — составляет ядро OLE.
OLE состоит из нескольких различных технологий, которые пользуются услугами друг друга для формирования объектно-ориентированной системы. Каждая технология реализует определенный набор функций. Однако реальная сила OLE заключается именно во взаимодействии составляющих ее технологий. OLE-технология структурированного хранения, к примеру, позволяет приложениям реализовать постоянство объектов. При этом пользователь не знает, как библиотеки OLE реализуют детали этой технологии, например, каким образом и где именно данные объекта должны быть записаны или считаны с диска. Большое преимущество OLE состоит в том, что ее можно расширить и настроить по своему желанию. Можно легко переопределить встроенные функции (путем реализации соответствующих стандартных СОМ-интерфейсов) и расширить набор доступных функции, создав собственные пользовательские интерфейсы.
Библиотеки OLE — это системные утилиты, посредством которых приложения могут взаимодействовать друг с другом, получать совместный доступ к данным, а также вызывать функции друг друга
Компоненты. Компонент является фундаментом, на котором построена технология OLE. Компонент представляет собой предварительно созданный программный объект, который предоставляет клиентам четко определенный набор функций. Каждый компонент является отдельной сущностью, которая может быть определена и описана независимо от какого-либо конкретного программного пакета. Компоненты объединяются друг с другом различными способами, образуя законченные интегрированные программные системы.
Целью компонентного программного обеспечения является обеспечение возможностей для построения приложений путем комбинирования отдельных компонентов. Приложения будущего не будут такими огромными монолитами, какими они являются сегодня. Наоборот, они будут состоять из разных компонентов, взаимодействующих друг с другом для выполнения некоторых функций высокого уровня.
Большое преимущество компонентов состоит в том, что их можно приобретать по мере необходимости у того поставщика, который предлагает лучшие компоненты. Пользователи могут покупать текстовые редакторы у одной компании, а программу для проверки орфографии у другой. Пока компоненты отвечают стандартным протоколам, они работают вместе как единое целое. Поэтому можно обновлять или заменять существующие компоненты, не затрагивая остальную часть системы.
Компоненты взаимодействуют друг с другом посредством четко определенных интерфейсов.
Чтобы компоненты стали жизнеспособными программными инструментами, они должны взаимодействовать в пределах системы типа OLE, которая дает возможность использовать их за рамками конкретной прикладной программы. Система должна поддерживать взаимодействие компонентов, не накладывая ограничений на способ их реализации. OLE представляет собой именно такую систему. На данной схеме представлены OLE-технологии, которые тесно взаимосвязаны между собой и используют СОМ в качестве фундамента. Стрелками обозначается зависимость технологий, а точками возможное, но не обязательное использование.
Далее в этой главе будут рассматриваться отдельные технологии OLE, непосредственно относящиеся к объектам, и их преимущества для пользователей.
Структурированное хранение. Структурированное хранение — это термин, который используется для описания технологии, обеспечивающей постоянство объектов. По сути, структурированное хранение является механизмом, который СОМ-объекты используют для считывания своих данных и записи их на диск. Данные становятся "структурированными" благодаря тому, что библиотеки OLE организуют их в виде логического файла. Эта технология сходна с тем, как файловая система организует файлы на жестком диске.
Два основных понятия, используемые в структурированном хранении, — это поток и хранилище. Хранилище является аналогом каталога файловой системы, а поток — аналогом файла. Хранилища могут содержать потоки и другие хранилища. В любой схеме структурированного хранения самое верхнее хранилище называется корневым. Оно представляет собой файл на диске (называемый структурированным файлом), который содержит логические хранилища и потоки более низкого уровня.
Технология структурированного хранения позволяет объектам логически организовать и систематизировать хранение своих данных. Каждое хранилище и поток являются "именованными блоками", которые используются объектами для хранения различных данных. Библиотеки OLE обеспечивают необходимые для этого функции.
Чтобы прочесть данные, объект
открывает соответствующие
Для реализации хранилищ и потоков библиотеки OLE используют СОМ-объекты. В хранилищах реализован интерфейс IStorage, а в потоках — интерфейс IStream. Чтобы приказать хранилищам и потокам выполнить некоторое действие, приложение получает указатель на интерфейс IStorage и/или IStream и вызывает соответствующие функции этих интерфейсов.
Кроме логического разделения данных, структурированное хранение обеспечивает множественный доступ к данным и обработку транзакций.
Библиотеки типов
Так как информация о типе имеет стандартный, четко определенный формат, ее могут просматривать и отображать программы, называемые просмотрщиками объектов. А поскольку данные хранятся в файле, они могут быть получены даже тогда, когда в системе нет объектов такого типа.
Между прочим, файл библиотеки типов (TLB-файл) является структурированным файлом. Каждое логическое хранилище и поток в нем имеют четко определенное имя, что позволяет различным просмотрщикам анализировать их.
Постоянные объекты. Постоянными называются объекты, которые знают, каким образом читать и записывать информацию о своем состоянии на диск. Эту информацию могут считывать различные экземпляры объекта. Например, прежде чем быть удаленным из памяти, объект записывает на диск данные о своем состоянии. При создании другого экземпляра объекта того же типа новый объект может отыскать эти данные в заранее определенном месте и восстановить предыдущее состояние.
Когда составной документ записывается в постоянное хранилище, он приказывает всем своим СОМ-серверам сохранить себя в том же хранилище. Потом он передает каждому серверу указатель на поток ввода-вывода. Каждый сервер записывает свои данные в этот поток так, как считает нужным.
Унифицированная передача данных. Унифицированная передача данных (UDT) — это OLE-технология, которая позволяет объектам обмениваться информацией стандартным образом. Кроме определения стандартов для обмена данными, UDT позволяет объектам извещать заинтересованные стороны (другие объекты) о том, что данные изменились. Те клиенты, которых интересуют изменения данных, могут при этом предпринять соответствующие действия. Объекты, взаимодействующие при помощи UDT, могут находиться в одном или разных адресных пространствах. UDT заменяет устаревшую к настоящему времени технологию DDE (Динамический обмен данными).
Имеются два значительных преимущества в применении OLE-технологии UDT по сравнению с традиционной технологией DDE и буфером обмена (clipboard):