- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель 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.
Архитектура системы.
Перечень основных компонент системы.
Прикладные объекты |
|
Службы вертикального уровня |
|
Службы горизонтального уровня |
|
Службы общего назначения |
|
|
|
|
|
|
|
ORB |
||||||
Брокер запросов
Схема расположения компонент системы на компьютерах.
Структура связей corba.
В технологии CORBA предполагается, что в сети работают клиентские и серверные приложения. На одном компьютере могут быть установлены и приложения – клиенты и приложения – серверы. Сервер поставляет один или несколько объектов. Клиенты и серверы общаются не непосредственно, а через Smart Agent сетевого агента, которому известно местоположение всех объектов. Более того, приложение – клиент не знает даже, где находится сетевой агент, то есть агент тоже может перемещаться по сети!
Как это организовано разберем, пользуясь картинкой. Не уменьшая общности, покажем на картинке все службы CORBA, считая, что на компьютере К запущено только клиентское приложение, на компьютере С – только серверное, а на компьютере А – сетевой агент.
Компьютер К |
|
Компьютер А |
|
Компьютер С |
|
5 |
|
|
|
O |
|
Smart Agent |
|
BOA |
|
|
6 |
2 |
1 |
Клиент 3 4 Stub |
|
Implementation Repository |
7 |
Сервер
Sceleton |
|
|
|
||
|
|
|
|
|
В среде CORBA на одном из компьютеров должна функционировать специальная программа Smart Agent, осуществляющая взаимодействие брокеров (с клиентских компьютеров). Эта служба при помощи Implementation Repository хранит информацию обо всех запущенных серверах.
На каждом компьютере с серверными приложениями должна быть запущена служба BOA. Если запускается сервер, он обращается к этой службе (1), сообщая о себе. Служба BOA (2) связывается со службой Implementation Repository и передает ей информацию о сервере.
К клиентскому приложению присоединяется специальная программа – заглушка. На каждом компьютере с клиентскими приложениями устанавливается служба ORB (Object Request Broker) – объектный брокер запросов. Когда клиентское приложение обращается к серверу, заглушка перехватывает такое обращение (3), преобразует в транспортный формат и помещает в буфер (4). При первом обращении к серверу брокер ORB компьютера клиента находит в сетевом окружении работающий экземпляр сетевого агента Smart Agent (5) и через него (6) получает информацию о сервере, передает ее заглушке. Далее заглушка передает сообщение серверу. На стороне сервера запрос получает специальный объект, называемый скелетом scelet (7). Он преобразует запрос из транспортной формы в обычный вид и передает его серверу. Ответ сервера передается скелету, тот, преобразовав ответ в транспортный формат, передает в буфер заглушки, она, в свою очередь, передает ответ клиенту. Эти передачи стрелками не изображены, чтобы не запутывать картину.
Остается добавить, что в качестве транспортного протокола CORBA использует протокол UDP. Вспомните, что это – протокол из стека протоколов TCP/IP, не гарантирующий доставку. В этом случае за корректность передаваемых данных отвечают программы, организующие общение по сети. С целью организовать общение компьютеров для CORBA следует соответствующим образом настроить одинаковые сетевые порты компьютеров.
В конце отметим, что технология CORBA поддерживается в операционной системе Windows. Вы можете написать на языке C++ Builder приложения, соответствующие данной технологии.
IDL Interface Definition Language
OMG определяет IDL как средство для описания интерфейсов, к которым обращаются клиенты и которые должны быть реализованы на стороне сервера. Объявления интерфейсов, написанные на OMG IDL, полностью определяют интерфейс и задают параметры каждой операции.
CORBA по определению не привязана ни к языкам программирования, ни к операционным системам, ни к транспортным протоколам, ни к двоичным структурам объектов. Совместимость CORBA – приложений, написанных на разных языках программирования с помощью программных инструментов различных производителей и работающих в разных операционных средах, обеспечивается строгой стандартизацией языка IDL и схемы его отображения на конкретные языки программирования.
IDL – декларативный язык, похожий на С++. Помимо объявлений IDL описание может содержать директивы препроцессора (которые полностью взяты из С++).
Классический CORBA – проект начинается с создания его IDL –объявлений.
После создания необходимого набора IDL-деклараций и помещения их в один или несколько файлов с расширением IDL происходит следующее. Эти файлы обрабатываются специальным компилятором, результатом работы которого является набор сгенерированных файлов, часть которых используется на стороне сервера, а часть – на стороне клиента. Файлы на стороне сервера определяют структуру серверных объектов, поэтому их обычно называют «скелетами» sceleton. Задача программиста – нарастить этот скелет, то есть дописать текст процедур. Файлы на стороне клиента образуют образуют так называемую заглушку (stub). Заглушка содержит полностью готовый к выполнению код, который превращает вызовы клиентом локальных методов заглушки в вызов соответствующих им удаленных методов реальных серверных объектов.
Базовые типы языка IDL: целое, беззнаковое целое и т.п., строка, логическое значение, перечисление (совокупность именованных констант), тип – любой (any). Заметим, что строки бывают двух видов: ограниченные и неограниченные.
Особо выделяется тип octet, который предполагает передачу данных от сервера к клиенту без всяких преобразований. Данные других типов при переходе от сервера к клиенту могут пересекать границы операционных систем и аппаратных платформ. При этом может происходить, например, перекодировка символов из ASCII в EBCDIC или изменение порядка байтов внутри целых чисел.
В IDL особо выделяются сконструированные типы данных. К ним относят массивы (arrays), последовательности (sequence), структуры (struct) и объединения (union). Сконструированные типы описываются при помощи инструкции typedef.
IDL позволяет задавать многомерные массивы. При создании массива обязательно говорить typedef. Массив может содержать произвольное количество размерностей, любое число элементов, элементы массива могут быть разных типов. При описании массива следует явно (то ест ь числом) указать количество элементов в каждой размерности.
Последовательности IDL во многом похожи на массивы. Разница заключается в том, что размерности массива должны быть указаны явно, а длина последовательности может быть произвольной, изменяющейся.
Структура - именованная совокупность полей любого типа. Структура не может содержать ни методов, ни определений типов – только данные. Структура может содержать вложенные структуры.
Объединение. Семантика объединений IDL такая же, как и в С++: объединение можно трактовать как структуру, все поля которой расположены, начиная с одного и того же адреса. В любой момент времени активным является поле только одного и того же типа. В качестве типов полей могут использоваться любые типы IDL. Объединение всегда содержит признак, говорящий о том, поле какого типа используется в настоящий момент. Часто этот признак называют дискриминатором. Дискриминатор может иметь только один из так называемых «интегральных» типов: char, Boolean, перечисление, целое.

RB