- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель osi – набор стандартов для построения корпоративной системы
- •Интегрированные и комплексные приложения
- •Задача: общие данные, общие процедур, общие вычислительные ресурсы.
- •Проблемы на пути интеграции
- •Прозрачность. Открытость. Масштабируемость. Концепции аппаратных решений. Определение распределенной системы. Прозрачность.
- •Открытость.
- •Масштабируемость.
- •Raid-технологии.
- •Параллелизм.
- •Концепции аппаратных решений. Мультипроцессоры.
- •Гетерогенные мультикомпьютерные системы.
- •Симметричное мультипроцессирование
- •Кластеры.
- •Двухуровневые, трехуровневые, распределенные одноранговые информационные системы. Виды ис
- •Функциональная нагрузка компонентов в ис
- •Двухуровневые архитектуры
- •Трехуровневые архитектуры
- •Распределенные одноранговые архитектуры
- •Единое информационное пространство. Подход к построению объектно-ориентированной одноранговой информационной системе.
- •Архитектура взаимодействия компонент распределенной ис
- •Обзор методов интеграции. Введение
- •Пути устранения аппаратных различий, кросс – платформенные приложения.
- •Java applets, апплеты.
- •Файлы (буферы) общего доступа.
- •Единый язык доступа к данным (sql).
- •Обмен сообщениями (dde).
- •Удаленный вызов процедур (rpc)
- •Вставка и внедрение объектов
- •Ole (связывание и внедрение объектов), ole Automation.
- •Классификация приложений по отношению к технологии ole (com).
- •ActiveX объекты.
- •Идентификация com объектов.
- •Сравнение com (ActiveX) объектов и java апплетов.
- •Доступ к удаленным объектам (dcom, .Net, corba)
- •Использование командных файлов и скриптов
- •Доступ к базам данных (ado, dao, odbc)
- •Применение web-технологий
- •Именованные каналы
- •Объектно-ориентированное программирование в vba Среда программирования. Типы данных. Процедуры. Окно проекта, окно свойств, окно кода, окно немедленно выполняемых команд, окно контрольных значений.
- •Процедуры, функции, передача параметров, область видимости.
- •Типы данных.
- •Вызов макроса с вычисляемым именем
- •Запуск макроса в заданное время
- •Запуск внешней программы, управление ею
- •Вызов api-функций и других библиотечных функций
- •Программное изменение кода.
- •Динамические массивы
- •Объектно-ориентированное программирование Базовые понятия ооп
- •Расширение объектной модели
- •Коллекция
- •Раннее и позднее связывание
- •Дополнительные элементы управления (ActiveX –объекты)
- •Описание программирования в vba, модели com Доступ к вставленным в документ ole-объектам
- •Доступ к внешним com-серверам
- •Вычисляемые свойства, свойства только для чтения.
- •События. Обработчики событий.
- •Использование событий объекта Application
- •Использование диалогов
- •Свойство для программиста.
- •Пользовательские классы. Классы.
- •Класс, объекты которого реагируют на события.
- •Моделирование наследования. Фактическое наследование. WithEvents.
- •Пользовательские события.
- •Как исп польз события
- •Создание экземпляра класса.
- •Автоматическая сборка мусора
- •Уничтожение экземпляра класса
- •???Интерфейсы.
- •???Интеграция при помощи промежуточного буфера
- •Обмен сообщениями. Протокол dde.
- •Задачи интеграции и децентрализации.
- •Фрагментация данных и размещение
- •Язык доступа к данным sql Стандартные команды
- •Язык запросов
- •Изменение данных при помощи sql
- •Изменение структуры базы данных при помощи ddl
- •Выполнение команд изменения структуры, изменения базы данных
- •Расширения Jet 4.0 ansi-92
- •Доступ к базам данных.
- •Доступ к базам данных с помощью odbc.
- •Доступ через odbc из Delpi7.
- •Доступ к базам данных с помощью технологий ado. Соединение, курсор
- •Свойства и методы набора записей (курсора).
- •Вызов отчетов, сформированных в базе данных
- •Пример dao
- •???Доступ к базам данных с помощью технологий dao.
- •???Доступ к базам данных с помощью web технологий.
- •Удаленный вызов процедур.
- •Обращение к удаленным объектам. Привязка клиента к объекту. Статическое и динамическое удаленное обращение к методам. Передача параметров. Dce, rmi.
- •Распределенная система объектов corba. Введение.
- •Архитектура системы.
- •Структура связей corba.
- •Исключения corba.
- •Передача параметров.
- •Corba-объекты и серванты.
- •Отображение idl на языки программирования
- •Объектные адаптеры.
- •Транзакции и сервис транзакций в corba.
- •Обзор технологий dcom, .Net Определение
- •Немного истории
- •Решение .Net
- •Модель .Net
- •Обзор двоичных файлов .Net.
???Интерфейсы.
Интересное явление – обеспечение интерфейсов классов. Интерфейс – это список прототипов, каждый из которых содержит только описание свойств и методов. В теории класс может наследовать один или несколько интерфейсов. В конечном классе должен быть указан код для всех наследуемых Public методов.
В VBA для того чтобы указать, что данный класс обеспечивает интерфейс другого класса, надо в общей области написать оператор IMPLEMENTS имя класса. В стандартных модулях не допускается обеспечение интерфейсов. Важно: VB не поддерживает наследование классов, а только интерфейсов.
???Интеграция при помощи промежуточного буфера
Такое взаимодействие выглядит следующим образом: одно приложение помещает некоторые данные в буфер (буфер обмена, чаще – файл), затем буфер доставляется по месту работы второго приложения, которое извлекает требуемую информацию. Промежуточный файл удобен для организации асинхронного взаимодействия, то есть такого, когда общающиеся приложения не работают одновременно.
При организации взаимодействия через буфер чаще всего используется текстовый формат, т.к. он занимает минимальный объем и для этого формата уже стандартизованы перекодировки. Но достаточно часто необходимо не просто передать текст, а некоторым образом структурированный текст, или другую информацию, не о взаимосвязях, а, например, о том, как этот текст лучше всего показать. В таком случае в текст вставляются специальным образом оформленные метаданные. Вы уже знаете один такой формат, это – HTML.
Одно время HTML-формат предлагался в качестве универсального формата сообщений. Но этот формат не имеет средств указания связей, поэтому приходится нестандартным способом вносить эту информацию. Значительно лучшим решением кажется применение XML-формата. В настоящее время множество приложений могут выдавать и читать информацию в XML-формате.
Обмен сообщениями. Протокол dde.
Достаточно старый протокол обмена символьными командами между двумя приложениями, работающими на одном компьютере, позволяет инициатору связи передать на работающее серверное приложение команду, заставляя выполнить некоторые действия. Вообще говоря, серверное приложение может и не быть активным, тогда пользователю будет выдано сообщение об ошибке и предложено ее исправить.
Но лучше сначала запустить серверное приложение при помощи команды SHELL, а затем установить канал связи с ним. Если, конечно, вы знаете, что пользователь уже запустил серверное приложение, а вы хотите управлять уже запущенным приложением, то вам требуется установить связь с уже запущенным приложением.
Основная ожидающая вас проблема при организации связи по DDE протоколу – отсутствие полноценной информации о командах, которые поддерживает DDE-сервер. Во многом в связи с этим вы можете воспользоваться данным протоколом нечасто.
Основные команды протокола: DDEInitiate – открыть канал, DDEExecute – выполнить команду, DDETerminate – закрыть канал, DDETerminateAll – закрыть все каналы, DDEPoke – изменить данные на сервере, DDERequest – запросить информацию о сервере.
Рассмотрим пример, в котором сначала запускается при помощи команды Shell приложение MS Excel. Затем командой DDEInitiate открывается канал связи с темой «System». В следующем операторе выполняется DDE-команда OPEN. Параметр команды – имя открываемого файла, чтобы поместить имя в кавычки используется добавление символа «кавычки» по его ASCII-коду. Затем канал закрывается.
Dim lngChannel As Long
Dim strTopicList As String
RetVal = Shell("E:\Program Files\Microsoft Office\Office12\EXCEL.EXE", 1)
lngChannel = DDEInitiate(App:="Excel", Topic:="System")
DDEExecute Channel:=lngChannel, Command:="[OPEN(" & Chr(34) _
& "f:\Book.xls" & Chr(34) & ")]"
DDETerminate Channel:=lngChannel
Снова открывается канал, но уже с другой темой – именем открытого файла. При помощи команды DDEPOke выполняется изменение содержимого ячейки «А2» (задана в формате номер строки – номер колонки R2C1). Затем файл закрывается. Наконец закрывается канал.
lngChannel = DDEInitiate(App:="Excel", Topic:="f:\book .xls")
DDEPoke Channel:=lngChannel, Item:="R2C1", Data:="17777"
DDEExecute Channel:=lngChannel, Command:="[CLOSE]"
DDETerminate Channel:=lngChannel
В связи с недостаточной документацией предлагается исследовать, какие доступны темы, следующим образом (см. программу ниже). Полученный список можно вставить в документ.
lngChannel = DDEInitiate(App:="Excel", Topic:="System")
strTopicList = DDERequest(Channel:=lngChannel, Item:="Topics")
Selection.InsertAfter strTopicList
DDETerminate Channel:=lngChannel
Выяснив таким образом наличие темы «Лист2», можно открыть канал с этой темой и изменить значение в некоторой ячейке.
lngChannel = DDEInitiate(App:="Excel", Topic:="Лист2")
DDEPoke Channel:=lngChannel, Item:="R3C1", Data:="8888"
DDETerminateAll
???Именованные каналы
???Сокеты
??? Интеграция при помощи web-технологий.
Серверные и распределенные базы данных.
Проблемы одновременного доступа.
Сетевые версии прикладного программного обеспечения. Блокировка файлов, блокировка записей, построение запросов (view), «зеркалирование», транзакции, использование прав доступа.
Для приложений могут выпускаться сетевые и несетевые варианты. Очевидно, что для работы Вам требуется обратиться именно к сетевой версии.
Некоторые приложения выпускаются в виде версий, рассчитанных на работу в ограниченной сети (например, не более 5 пользователей). Эти ограничения объясняются тем, насколько продуманы в данной версии все возможные проблемы, возникающие при одновременной многопользовательской работе.
Один из важных вопросов при многопользовательской работе – целостность данных. Если два или более пользователей одновременно изменяют некоторые связанные данные, целостность нарушается. Очевидно, что сетевое приложение должно решать эту проблему, причем тем способом, который работает приемлемое время и доставляет клиентам не слишком много неудобств.
Для разрешения возникающих конфликтов есть несколько возможных путей (которые уже реализованы в тех или иных приложениях):
Блокировка файла,
Перехват управления,
Блокировка части файла (обычно, записи),
Построение выборки (в БД - запрос),
Транзакции
Зеркалирование
Блокирование доступа к файлу для всех остальных пользователей сети во время работы с этим файлом одного пользователя является простейшим способом разрешения конфликта. Но наименее удобным. Возможны вариации: полное блокирование или запрет изменений с разрешением чтения. Например, Вы не можете открыть документ MSWord вторично с полными правами на изменение.
Работая с Net meeting, Вы можете познакомиться с вариантом организации одновременного доступа к файлу нескольких пользователей в режиме перехвата управления. Это, фактически, то же, что и первый вариант. Следящее программное средство решает вопрос о передаче управления не в момент открытия файла, а в другое время.
В MS Excel реализован еще один вид совместного доступа к файлу с возможностью параллельного редактирования документа. Достаточно эклектичное решение и потому не очень удобное. Хотя такое решение имеет объяснение: документ Excel находится на полпути между единым не делимым файлом и структурированным файлом, имеющим записи.
Блокирование редактируемой записи – распространенный способ разрешения конфликтов в файл - серверных системах. При этом приложения, работающие на разных компьютерах, обращаются к биту блокировки записи.
Часто более удобным представляется способ организации доступа пользователей к запросам – части файла, состоящей из нескольких записей. При этом пользователь меняет свой запрос, не ощущая, что, возможно, к тем же записям обращается и другой пользователь. Но, следовательно, требуется некий организатор работы по запросам – специальная программа. В настоящее время общепризнанный язык запросов – SQL. А программа, «понимающая» этот язык – SQL-сервер. Таких программ достаточно много, работают они в разных ОС. SQL-сервер не только предоставляет выборки, но и своевременно вносит все накопившиеся изменения в них.
Транзакции – механизм, позволяющий не нарушать целостность базы данных. Особенно это важно в многопользовательской среде. Транзакция – неделимая операция, возможно состоящая из множества отдельных шагов – модификаций данных. Пример: расчет остатков на конец месяца не может происходить одновременно с добавлением проводок в этом месяце, т.к. вновь добавляемые проводки могут не повлиять на остаток, но войти в перечень. Сложность транзакций растет с ростом информационной системы.
Еще один вариант организации работы с дополнительным управляющим средством – «зеркалирование». В этом случае данные копируются («зеркалируются») на компьютеры всех пользователей. А специальное приложение следит за изменениями и разносит их по компьютерам.
При решении того или иного вопроса, возникшего в результате конфликта, права доступа, степень привилегированности пользователя могут быть решающими. То есть предпочтение отдается изменениям, сделанным привилегированным пользователем.
Один из способов ускорить работу приложений – отказаться от расположения БД в одном месте, а перейти к распределенной БД. Метод зеркалирования – первый шаг в этом направлении.
