
- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель 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.
Отображение idl на языки программирования
Задачей отображения IDL на конкретный язык программирования является генерация типов данных, классов, констант, методов – всего того, что позволяет прикладным частям серверных и клиентских приложений взаимодействовать с инфраструктурой CORBA и с ее помощью друг с другом.
Фрагменты, реализующие некоторые задачи инфраструктуры CORBA, отображаются на языки программирования несколько иначе, чем стандартные IDL – объявления.
Скелет содержит сгенерированный класс (часто этот класс тоже называют скелетом). В этом классе есть все необходимое для взаимодействия серверного приложения с CORBA. Нет в нем реализации тех методов, которые программист объявил в IDL – декларации. Данный класс нужен только для того, чтобы на основе его создать производный класс (имя этого производного класса программист задает сам), который содержит все реализации.
Таким образом, задача создания серверной логики для данного типа CORBA – объектов разбивается на две части: системно-коммуникационная часть обеспечивается сгенерированным кодом в базовом классе, а прикладная часть записывается явно программистом в классе, производном от сгенерированного.
Нетрудно сообразить, что серванты являются экземплярами этого производного класса.
Со стабами дело обстоит несколько иначе. Сгенерированный код на стороне клиента используется полностью, как есть. Программисту нужны только элементарные знания об его использовании.
Опишем подробнее, что происходит на стороне клиента.
На базе IDL – объявления генерируется класс, который содержит реализацию всех методов, объявленных для данного интерфейса. Но реализация этих методов не имеет никакого отношения к бизнес – логике приложения. Задача этих методов – упаковка информации о вызове (имя метода, число, типы, значения его аргументов, тип возвращаемого результата, перечень возможных исключений и т.п.) и преобразование этой информации в вид, пригодный для передачи на сторону сервера по сети в соответствии с требованиями протокола GIOP (General Inter-ORB Protocol) – протокола обмена информацией CORBA.
Для выполнения реального вызова в процессе работы программы нужно создать экземпляр этого класса. Это делает не программист, а сама CORBA. Такая переменная (ее называют proxy-объект) создается автоматически в тот момент, когда в клиентское приложение попадает объектная ссылка CORBA. При создании proxy-объекта создается "указатель" на него, который и используется программистом для выполнения удаленных вызовов, которые физически являются локальными вызовами методов proxy-объекта. Тип этого указателя также генерируется автоматически на основе IDL – объявлений. Этот указатель имеет также название "объектная ссылка CORBA". Не следует ее путать с "объектной ссылкой CORBA", которая является результатом создания CORBA – объекта на стороне сервера.
Объектные адаптеры.
Основные задачи объектных адаптеров – OA:
Создание CORBA – объектов, и, следовательно, объектных ссылок уровня ORB IOR (Interoperable Object Reference). Создание объекта не обязательно связано с созданием серванта (это может быть выполнено и позднее). С каждым создаваемым объектом сопоставляются Object ID – уникальный ключ внутри фабрики объектов и Object Key - Object ID и идентификатор фабрики объектов.
Создание сервантов по указанию программиста, например в момент поступления запроса от клиентского приложения.
Управление созданными сервантами и направление к ним запросов клиентов.
Уничтожение сервантов. Это нетривиальная задача, так как следует убедиться в том, что сервант никому больше не нужен. В условиях многопоточных приложений это непросто. Обычно OA ведет счетчик объектных ссылок на каждый сервант.
Умение работать с OA нужно только «чистому» CORBA – программисту. Тем не менее, попытаемся кратко разобраться с некоторыми характеристиками работы объектных адаптеров.
Политика нитей. Определяется, каким образом обрабатываются запросы. Варианты ответов: один за другим, запросы клиентов к серванту могут поступать в конкурентном режиме из различных потоков.
Политика продолжительности жизни. Создаваемые серванты могут быть временными (прекращать существование по окончании работы серверного приложения, создавшего его) или долгоживущими.
Политика уникальности объектного идентификатора. Можно разрешить (или запретить) режим работы, при котором на один сервант может ссылаться несколько объектных ссылок. Это удобно применять в том случае, если есть много долгоживущих объектов, состояние которых хранится в БД (для каждого объекта в отдельной записи), тогда удобно применять в качестве ключа значение Object ID для серванта, который не имеет состояния, но в случае необходимости извлекает всю необходимую информацию из БД.
Политика назначения идентификатора определяет, кто назначает ID создаваемому объекту, сама фабрика объектов или программист.