
- •Тема 1.Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель osi – набор стандартов для построения корпоративной системы
- •Интегрированные и комплексные приложения
- •Задача: общие данные, общие процедур, общие вычислительные ресурсы.
- •Проблемы на пути интеграции
- •Тема 2.Прозрачность. Открытость. Масштабируемость. Концепции аппаратных решений. Определение распределенной системы. Прозрачность.
- •Открытость.
- •Масштабируемость.
- •Параллелизм.
- •Raid-технологии.
- •Концепции аппаратных решений. Мультипроцессоры.
- •Гетерогенные мультикомпьютерные системы.
- •Симметричное мультипроцессирование
- •Кластеры.
- •Тема 3.Двухуровневые, трехуровневые, распределенные одноранговые информационные системы. Виды ис
- •Функциональная нагрузка компонентов в ис
- •Двухуровневые архитектуры
- •Трехуровневые архитектуры
- •Распределенные одноранговые архитектуры
- •Единое информационное пространство. Подход к построению объектно-ориентированной одноранговой информационной системе.
- •Архитектура взаимодействия компонент распределенной ис
- •Тема 4.Обзор методов интеграции. Введение
- •Пути устранения аппаратных различий, кросс – платформенные приложения.
- •Java applets, апплеты.
- •Файлы (буферы) общего доступа.
- •Единый язык доступа к данным (sql).
- •Обмен сообщениями (dde).
- •Удаленный вызов процедур (rpc)
- •Вставка и внедрение объектов
- •Ole (связывание и внедрение объектов), ole Automation.
- •Классификация приложений по отношению к технологии ole (com).
- •ActiveX объекты.
- •Идентификация com объектов.
- •Сравнение com (ActiveX) объектов и java апплетов.
- •Доступ к удаленным объектам (dcom, .Net, corba)
- •Использование командных файлов и скриптов
- •Доступ к базам данных (ado, dao, odbc)
- •Применение web-технологий
- •Именованные каналы
- •Процедуры, функции, передача параметров, область видимости.
- •Типы данных.
- •Вызов макроса с вычисляемым именем
- •Запуск макроса в заданное время
- •Запуск внешней программы, управление ею
- •Вызов api-функций и других библиотечных функций
- •Программное изменение кода.
- •Динамические массивы
- •Объектно-ориентированное программирование Базовые понятия ооп
- •Расширение объектной модели
- •Коллекция
- •Раннее и позднее связывание
- •Дополнительные элементы управления (ActiveX –объекты)
- •Описание программирования в vba, модели com Доступ к вставленным в документ ole-объектам
- •Доступ к внешним com-серверам
- •Вычисляемые свойства, свойства только для чтения.
- •События. Обработчики событий.
- •Использование событий объекта Application
- •Использование диалогов
- •Свойство для программиста.
- •Пользовательские классы. Классы.
- •Класс, объекты которого реагируют на события.
- •Моделирование наследования. Фактическое наследование. WithEvents.
- •Пользовательские события.
- •Как исп польз события
- •Создание экземпляра класса.
- •Автоматическая сборка мусора
- •Уничтожение экземпляра класса
- •???Интерфейсы.
- •Тема 6.???Интеграция при помощи промежуточного буфера
- •Тема 7.Обмен сообщениями. Протокол dde.
- •Задачи интеграции и децентрализации.
- •Фрагментация данных и размещение
- •Язык доступа к данным sql Стандартные команды
- •Язык запросов
- •Изменение данных при помощи sql
- •Изменение структуры базы данных при помощи ddl
- •Выполнение команд изменения структуры, изменения базы данных
- •Расширения Jet 4.0 ansi-92
- •Доступ к базам данных.
- •Доступ к базам данных с помощью odbc.
- •Доступ через odbc из Delpi7.
- •Доступ к базам данных с помощью технологий ado. Соединение, курсор
- •Свойства и методы набора записей (курсора).
- •Вызов отчетов, сформированных в базе данных
- •Пример dao
- •???Доступ к базам данных с помощью технологий dao.
- •Удаленный вызов процедур.
- •Обращение к удаленным объектам. Привязка клиента к объекту. Статическое и динамическое удаленное обращение к методам. Передача параметров. Dce, rmi.
- •Тема 13.Распределенная система объектов corba. Введение.
- •Архитектура системы.
- •Структура связей corba.
- •Исключения corba.
- •Передача параметров.
- •Corba-объекты и серванты.
- •Отображение idl на языки программирования
- •Объектные адаптеры.
- •Транзакции и сервис транзакций в corba.
- •Тема 14.Обзор технологий dcom, .Net Определение
- •Немного истории
- •Решение .Net
- •Модель .Net
- •Обзор двоичных файлов .Net.
Вставка и внедрение объектов
Теперь определим, что приложение – получатель собирается делать с полученными данными? Иногда можно их внедрить в свой объект целиком, не разбирая подробностей. Так в MS Word можно внедрить фрагмент документа MathCard, MSExcel и т.п. в виде рисунка. Недостаток этого способа в том, что при такой вставке с внедренным объектом уже ничего нельзя сделать (например, нельзя изменить формулы в MSExcel). То есть объект становится статичным! Точнее, он преобразован в такой формат, который предполагает возможность некоторых изменений (Вы можете растянуть рисунок по горизонтали), но это совершенно другие преобразования по сравнению с и возможностями исходного приложения. В нашем примере конечный формат – рисунок, а исходный – таблица MS Excel.
Исправляя этот недостаток, пытаемся вставить не только изображение объекта, но и информацию о приложении – родителе вставляемого объекта. И позже, если читатель документа захотел изменить внедренный объект, то приложение – получатель (или операционная система? – это вопрос реализации) должно обратиться за помощью к приложению – родителю.
Фирма MS достаточно давно реализовала способ внедрения и связывания объектов – технологию OLE (object linking and embedding). В качестве временного хранилища переносимых объектов здесь используется буфер обмена.
Важно, что в случае внедрения объектов по OLE – технологии для полноценной обработки этих объектов требуется наличие на компьютере приложения – родителя. В противном случае, вставленный объект обычно изображается в виде неизменяемой картинки. В OLE – технологии не предполагаются никакие действия по автоматической установке недостающего приложения.
Вспомним типы MIME – унифицированные типы данных, с которыми можно связывать интерпретирующие приложения. В Windows связь устанавливается через тип данного, в роли которого зачастую используется расширение имени файла. В результате, если Вы, например, из IE попытаетесь открыть файл с расширением .doc, то операционная система вызовет MS Word. Если расширение файла не зарегистрировано в системе, то Вы получите вопрос о требуемом приложении. В Netscape Navigator принято несколько другое решение: Вам будет предложено установить (или обновить) новое приложение.
Развитие этой технологии до OLE2 (или OLE Automation) привело к тому, что не только пользователь, но и программист смог из программы, работающей либо в приложении (скрипт), либо совершенно самостоятельной, получить доступ к функциональности OLE-сервера посредством обращения к COM-объектам. COM – Common Object Model это модель общих (то есть доступных извне) объектов. COM-объекты, реагирующие на действия пользователя, часто называют ActiveX.
Ole (связывание и внедрение объектов), ole Automation.
Технология OLE (Object Linking and Embedding) или OLE-1 предполагает следующие возможности интеграции:
перенос данных из одного приложения в другое через буфер обмена, с преобразованием исходного формата данных в формат приложения – приёмника (или в некоторый общеизвестный формат);
вставка (внедрение) в приложение А объекта, порожденного приложением Б вместе со ссылкой на приложение – родитель (то есть Б), но без связи с исходным файлом данных;
вставка (внедрение) в приложение А объекта, порожденного приложением Б вместе со ссылкой на приложение – родитель (то есть Б) и на исходный файл данных.
С целью создания OLE2 фирма Microsoft разработала и продолжает совершенствовать стандарт на описание объектов – COM. Современные информационные системы, основанные или совместимые с Windows, поддерживают разработанную фирмой Microsoft COM (component object model) – технологию. Расширение этой технологии для случая распределенных по сети объектов привело к созданию модели DCOM (Distributed COM).
Разработка COM-технологии стала возможной благодаря тому, что объектно-ориентированный подход превратился в стандарт для всех современных систем программирования. С появлением COM-технологии фирма Microsoft развила технологию OLE-1 до OLE-2. Технология OLE-2 дает возможность из программы на внутреннем языке (скрипт – языке), прикрепленной к документу приложения А, обратиться к объектам (их свойствам и методам) другого приложения – приложения Б.
Очевидно, что при таком способе интеграции приложение А получает весь спектр данных и методов их обработки, экспортируемый приложением Б. Заметим, что он может быть и весьма ограниченным и очень широким, по крайней мере, никого не должен удивлять факт отличия функциональности, предоставляемой по OLE, и функциональности, обеспечиваемой родительским приложением пользователю!
В отличие от прежнего способа связи между приложениями – протокола DDE – обмена сообщениями не стандартизованной формы, OLE-2 стал стандартным средством структуризации экспортируемых приложением данных и возможностей их обработки. Но остался по существу символьный формат обмена данными, а отсюда – низкая скорость доступа.
Поясним разные виды OLE.
Можно просто внедрять данные. В этом случае обычно данные преобразуются из одного формата в другой. Передача может осуществляться через некоторого посредника: буфер обмена, файл общедоступного формата (например, текстовый). Заметьте, что во втором случае, вообще говоря, данные преобразуются дважды: из формата приложения Б в текстовый файл, а затем из текстового файла в формат приложения А! С буфером обмена та же ситуация, т.к. в нем данные хранятся в некотором обобщенном формате. Потери при таком преобразовании практически неизбежны. Попробуйте перенести, например, оформленную цветами, шрифтами, границами, с объединенными ячейками и т.п. таблицу из MS Word в MS Excel, вы убедитесь в том, что потери достаточно существенны.
Второй недостаток – одна и та же информация хранится дважды, причем в двух видах, что ведет к лишней трате ресурсов. Изменение исходного фрагмента никак не отражается на файле со вставленным кусочком, то есть со временем возникает противоречивость данных! Еще важный недостаток этого метода – ограниченная возможность изменения вставленных данных, т.к. приложение А не обладает набором функций, реализованным в приложении Б. Так вы не можете в MS Word корректировать вставленный рисунок.
Можно вставить данные вместе с «кусочком» приложения. Эта операция OLE отличается от обычной операции копирования и вставки тем, что она передает приложению-клиенту и сведения об источнике. Это - название приложения-сервера, тип данных (страница, документ, …), имя, назначенное системой этим данным (если они не были извлечены из файла или не были сохранены в файле), название или координаты диапазона (если копируется только часть объекта), представление объекта в формате Windows Metafile (.WMF). Если объект не является рисунком, его представлением может быть значок того приложения, которое создало объект, для файловых объектов добавляются свойства.
При этом сохраняется возможность корректировать вставленные данные, используя «родное» приложение. Ограничение данного способа интегрирования состоит в требовании, чтобы оба приложения были установлены на компьютере. Возможны два варианта последнего метода интегрирования: а) связь устанавливается и с файлом-источником и с приложением-источником; б) связь устанавливается только с приложением-источником, а данные копируются. Очевидно, что во втором варианте изменения в файле-источнике не приведет к изменениям в файле-приёмнике.
Сравните внедрение объекта со связью с файлом-источником и без этой связи, ответив на следующие вопросы: 1) какой объем дисковой памяти требуется для хранения документов, 2) что происходит, если исходный файл (вставленный объект) изменен, 3) а если исходный файл переименован, удален, 4) как перенести документ со вставленным объектом на другой компьютер.
В настоящее время все большее развитие получает интеграция на уровне объектных моделей. Предполагается, что есть язык программирования, с помощью которого можно обратиться к объектной модели своего и любого другого приложения, изменять свойства, пользоваться методами. Такой язык часто называют скрипт-языком. Очевидно, что приложение должно уметь обрабатывать программу на скрипт-языке.