- •Корпоративные информационные системы. Задача интеграции. Корпоративные системы.
- •Модель 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.
???Доступ к базам данных с помощью web технологий.
???Концепции программных решений. Удаленный вызов процедур. Обращение к удаленным объектам.
Распределенные операционные системы. Сетевые операционные системы. Программное обеспечение промежуточного уровня.
Распределенная операционная система – это операционная система, компоненты которой распределены по компьютерам. В реальности создать такую систему с удовлетворительными характеристиками так и не удалось. Оказалось, что очень сложно организовать совместную работу разных процессоров. Низкая скорость сетевого взаимодействия не позволяет эффективно перераспределить нагрузку по аппаратуре (памяти, процессорам) разных компьютеров.
Сетевые операционные системы характеризуются тем, что работающие на отдельных компьютерах операционные системы общаются при помощи системных служб связи, реализующих одинаковые протоколы. Первые сетевые операционные системы представляли собой оболочки, надстраиваемые над основной операционной системой.
С усложнением протокола взаимодействия удаленных компонент, расширением его функциональности средства связи разделились на две составляющие: низкоуровневое взаимодействие, которое осталось обязанностью операционной системы, и высокоуровневое, для которого стали производиться так называемые средства поддержки среднего слоя. Средний слой берет на себя решение многих задач по поиску (адресация, идентификация) удаленных компонент, по трансформации форматов данных, обеспечению надежной и безопасной связи и т.п.
Удаленный вызов процедур.
Удаленный вызов процедур – первая разработка, реализовавшая прозрачность расположения функций. С некоторого компьютера стало возможным вызвать программу, которая запускалась на другом компьютере, выполнялась и передавала результат клиенту.
Не путайте этот механизм с запуском программы по сети. В последнем случае код выполняемого файла передается по сети на ваш компьютер и запускается на вашем компьютере.
Удаленный вызов процедур позволяет выполнять всю необходимую работу на удаленном компьютере, например, настройку параметров его работы (удаленное администрирование). Это была первая цель при разработке протокола. Вторая цель – распределение нагрузки. Сложную вычислительную задачу можно поручить более приспособленному для этого компьютеру.
Попытаемся разобраться с тем, какие проблемы стояли перед разработчиками RPC, и как эти проблемы были решены.
Связь двух процессов, работающих на разных компьютерах, можно осуществить, используя встроенные в операционную систему коммуникационные средства. Это могут быть сокеты, именованные каналы и т.п. При этом программист прикладного процесса должен знать и использовать некоторую заданную коммуникационную модель. Так, например, для организации связи через сокеты следует использовать подходящий шаблон, в котором для передачи данных применяется системный вызов send(), а для получения – receive(). Более того, следует заранее точно знать, какой транспортный протокол будет использован: TCP или UDP, т.к. от этого существенно зависит шаблон программы. А что будет, если общающиеся компьютеры имеют разную аппаратную платформу, работают под управлением разных операционных систем? В этом случае необходимо еще и позаботиться о преобразованиях форматах, порядка передаваемых параметров и т.п.
Получается, что прикладной программист решает задачи, несвойственные автоматизируемой предметной области. Очень хотелось, чтобы вызов процедуры, расположенной на удаленном компьютере, ничем не отличался от вызова локальной процедуры. То есть необходимо обеспечить прозрачность местоположения процедуры и прозрачность доступа. Если этого добиться, то разработчику прикладного программного обеспечения не нужно будет ничего предпринимать для организации связи. Всё должна взять на себя некая система среднего слоя.
Великолепная фраза, характеризующая описанную ситуацию, есть в книге «Распределенные системы. Принципы и парадигмы» Э.Танненбаума и М. ван Стеена. «Основой множества распределенных систем является явный обмен сообщениями между процессами. Однако процедуры send и receive не скрывают взаимодействия, что необходимо для обеспечения прозрачности доступа. Эта проблема была известна давно, но по ней мало что было сделано до появления в 1980 году статьи [62], в которой предлагался абсолютно новый способ взаимодействия. Хотя идея была совершенно простой (естественно, после того, как кто-то все придумал), её реализация часто оказывается весьма хитроумной».
Вызов локальной процедуры
Вызов библиотечной процедуры
Вызов удаленной процедуры
RPC - это двусторонний протокол. На каждом компьютере должен быть RPC сервер и RPC клиент. RPC клиент получает задания от прикладных процессов и обращается к RPC серверу.
Асинхронный вызов RPC
Пример – DSE RPC.
DSE – Distributed Computing Environment – среда распределенных вычислений была разработана организацией OSF (Open Software Foundation), которая сейчас переименована в Open Group. Спецификация DSE не настолько популярна, как например Sun RPC, но она адаптирована к решениям Microsoft.
Это – программное обеспечение, которое может устанавливаться на ряде операционных систем (UNIX, Windows NT, VMS), после установки которого пользователь может запускать распределенные приложения и обычные. Некоторая часть DSE работает в ядре, поэтому OG распространяет исходный текст, а разработчики встраивают нужное в свои операционные системы. Большая часть DSE работает в пользовательском адресном пространстве.
В основе DSE лежит модель клиент-сервер. Процессы пользователей выступают как клиенты, вызывающие службы, предоставляемые серверными процессами. Некоторые из этих служб являются составными частями DSE, а некоторые написаны прикладными программистами. Связь между клиентами и серверами осуществляется посредством RPC.
Существуют следующие службы DSE:
Служба распределенных файлов
Служба каталогов
Служба защиты
Служба распределенного времени.
Служба распределенных файлов представляет собой всемирную файловую систему, обеспечивая прозрачный доступ к любому файлу. Она может быть построена поверх файловых систем хостов или работать самостоятельно, независимо от них.
Служба каталогов используется для хранения информации о местонахождении любого ресурса системы. Для процессов обеспечивается прозрачность местоположения.
Служба защиты обеспечивает защиту всех ресурсов системы.
Служба распределенного времени позволяет поддерживать глобальную синхронизацию часов различных машин.
Система RPC автоматически отслеживает преобразование данных. Клиенты и серверы могут быть написаны на разных языках.
Файл определения интерфейса |
||||
КОМПИЛЯТОР IDL |
||||
Код клиента |
Код клиентской заглушки |
Заголовочный файл |
Код серверной заглушки |
Код сервера |
КОМПИЛЯТОР С |
||||
Объектный файл клиента |
Объектный файл клиентской заглушки |
|
Объектный файл серверной заглушки |
Объектный файл сервера |
КОМПОНОВЩИК |
Библиотека времени выполнения |
|
Библиотека времени выполнения |
КОМПОНОВЩИК |
Исполняемый файл клиента |
|
|
|
Исполняемый файл сервера |
