- •Распределенные информационные системы
- •Тема 1. Введение в распределенные системы (3 ч)
- •3. Концепции аппаратных решений
- •1. Что такое распределенная система?
- •2. Основные задачи распределенной обработки
- •2.1. Прозрачность
- •2.2. Открытость
- •2.3. Масштабируемость (возможность расширения)
- •3. Концепции аппаратных решений
- •4. Концепции программных решений
- •5. Модель Клиент-сервер
- •6. Итоги
- •Тема 2. Модели взаимодействия компонентов рс (2 часа)
- •2.1 Понятие промежуточной среды
- •2.2 Модели взаимодействия компонентов рс
- •2.2.1 Обмен сообщениями
- •2.2.2 Удаленный вызов процедур
- •2.2.3 Обращение к удаленным объектам (rmi)
- •2.2.4 Связь на основе потоков данных
- •Тема 3. Распределенные системы объектов (4 часа)
- •Задачи построения рис
- •Преимущества использования
- •Повторное использование кода
- •Изолированная разработка
- •Сопровождение приложений
- •Тонкие клиенты
- •3.2 Объектная модель corba
- •Объектная модель corba
- •Базовый объектный адаптер boa
- •Динамический интерфейс вызова (dii)
- •Репозиторий интерфейсов (Interface Repository)
- •Протоколы взаимодействия различных объектных брокеров (giop, iiop)
- •Основные службы (сервисы) стандарта corba
- •Достоинства orb
- •Выводы. Достоинства и недостатки использования corba
- •Технология ActiveX – основные возможности
- •Технология ole – связывание и вставка объектов
- •3.3.2 Распределенная компонентная модель объектов (dcom)
- •Обеспечение безопасного доступа к удаленному объекту
- •Достоинства и недостатки dcom
- •Балансировка нагрузки
- •Just-in-time-активация и пул объектов
- •Распределенные транзакции
- •Отложенные компоненты
- •Тема 4 Разработка распределенных приложений на платформе Microsoft.Net Framework
- •4.1. Основы платформы .Net Framework
- •4.2 Введение в среду Common Language Runtime
- •Примеры программ для платформы ms.Net
- •Первая программа на c#
- •Первая программа на vb.Net
- •4.3 Преимущества платформы ms.Net
- •4.4 Поддержка средств распределенной разработки
- •4.5 Сервисы и интерфейс программной компоненты
- •4.6 Среда Microsoft Message Queuing (msmq)
- •Базовая модель ejb
- •Средства защиты ejb
- •Транзакции
- •Тема 5. Современные технологи разработки распределенных систем
- •5.1 Технология Web-сервисов
- •5.1.1 Основы Web-сервисов
- •Общее взаимопонимание
- •5.1.2 Взаимодействие с веб-сервисами
- •Документно-ориентированные взаимодействия
- •5.1.3. Технология веб-сервисов
- •5.1.4. Пример использования
- •5.2. Определение сервисно-ориентированной архитектуры
- •5.3. Преимущества soa
- •5.4 Стек технологий веб-сервисов
- •5.5. Принципы взаимодействия веб-сервисов в рамках сервисно-ориентированной архитектуры
- •Тема 7. Распределенные бд
- •7.1. Свойства рбд
- •7.2. Механизм распределенных транзакций
- •7.3. Целостность данных
- •7.4 Прозрачность расположения
- •7.5. Обработка распределенных запросов
- •7.7. Технология тиражирования данных
- •7.8 Архитектура "клиент-сервер"
Достоинства orb
В теории, CORBA представляется как лучшая клиент/сервер middleware-система, но на практике она хороша лишь настолько, насколько хороши продукты, ее реализующие. К основным коммерческим ORB относятся: Orbix от фирмы IONA Technologies; DSOM от IBM; ObjectBroker от Digital; JOE от Sun; Visibroker от Visigenic и Netscape; ORB+ от HP.
Небольшой список достоинств, которыми обладает каждая CORBA ORB:
Статические и динамические вызовы методов. CORBA ORB предоставляет возможность либо статически определить вызовы методов прямо во время компиляции, либо находить их динамически, но уже во время работы программы.
Отображение в языки высокого уровня. CORBA ORB позволяет вызывать методы у серверных компонент используя любой из некоторого списка языков высокого уровня — C, C++, SmallTalk, Java и Ada. Совершенно неважно, на каком языке написаны объекты. CORBA отделяет интерфейсы от реализации и предоставляет языково-независимые типы данных, что позволяет осуществлять вызов методов, минуя границы какого-то конкретного языка программирования и конкретной операционной системы.
Само-описывающаяся система. С помощью своих метаданных, CORBA позволяет описывать интерфейс любого сервера, известного системе. Каждая CORBA ORB должна поддерживать Репозитарий Интерфейсов, который хранит необходимую информацию, описывающую синтаксис интерфейсов, поддерживаемых серверами. В своей работе клиенты используют эти метаданные для осуществления вызовов к серверам.
Прозрачность. ORB может выполняться как сам по себе (например, на портативном компьютере), так и в окружении других ORB, с которыми она взаимодействует путем CORBA 2.0 IIOP (Internet Inter-ORB Protocol) протокола. ORB может осуществлять меж-объектное взаимодействие и для одного процесса, и для нескольких процессов, выполняющихся на одной машине, и для процессов, чье выполнение происходит в сети, под разными операционными системами. Реализация этих взаимодействий не затрагивает сами объекты. В общих чертах, при использовании технологии CORBA, разработчик не должен беспокоиться ни о таких вещах как расположение серверов, запуск (активирование) объектов, выравнивание размера переменных в зависимости от платформы и операционной системы, ни и о том, как осуществляется передача сообщений. Решение всех этих задач берет на себя продукт, поддерживающий стандарт CORBA.
Встроенная безопасность. Все свои запросы ORB дополняет некоторой контекстной информацией которая обеспечивает сохранность данных.
Полиморфизм при вызове методов. Как уже говорилось, ORB не просто вызывает удаленный метод — ORB вызывает метод на удаленном объекте. То есть выполнение одних и тех же функций на разных объектах будет приводить к различным действиям, в зависимости от типа объекта.
Выводы. Достоинства и недостатки использования corba
Достоинства
|
Недостатки
|
3.3. Модели распределенных объектов Microsoft COM, DCOM, COM+, .NET
Альтернатива модели CORBA – набор моделей объектов, разработанных для Microsoft Windows.
Промежуточные среды Microsoft Windows
1. Компонентная модель COM (Component Object Model) является наследником средств динамического связывания приложений DDE (Dynamic Data Exchange), имевшихся еще в самых первых версиях Microsoft Windows. Она позволяет разбить приложение, работающее на отдельном ПК, на компоненты, характеризуемые четко описанными интерфейсами. Таким образом, с помощью этой модели можно организовать распределенную систему в рамках одного ПК. Появилась в Windows 95.
2. Распределенная компонентная модель DCOM (Distributed Component Object Model) - расширение СОМ до уровня сетевых приложений и включает в себя среду распределенных вычислений DCE (Distributed Computing Environment) и механизм удаленного вызова процедур (RPC — Remote Procedure Calling).
3. Модель СOM+ - расширение DCOM возможностями распределенной обработки транзакций (MTS). Предназначена для создания систем, распределенных в локальной сети. Основной целью разработки среды COM+ было создание инфраструктуры для разработки распределенных систем автоматизации предприятия. Появилась в Windows 2000.
COM+/MTS = DCOM + MTS – совместное использование DCOM и MTS (Microsoft Transaction Server).
Эти модели предшествовали появлению .Net Framework.
3.3.1 Модель COM (Component Object Model)
Компонент - это хранилище (в виде DLL или EXE файла) для одного или нескольких классов. Все, что знает программа-клиент о классе, это его уникальный идентификатор и один или несколько интерфейсов, которые обеспечивают доступ к реализованным данным классом методам. Допускается реализация компонента и программы-клиента на разных языках (Visual C++, Visual Basic). В реестре системы сохраняется информация о местоположении компонента, который содержит данный класс. Это позволяет системе прозрачно для клиента перенаправлять вызовы методов к нужному компоненту и возвращать результаты.
Таким образом, обеспечивается выполнение двух важных принципов компонентного программирования:
независимость от языка программирования
прозрачность местоположения сервера для клиента.
Определение. Модель СОМ (Component Object Model) или ее еще называют Модель многокомпонентных объектов – это программная модель, которая определяет набор правил, по которым должны строиться компоненты. Только при соблюдении этих правил компоненты обеспечивают корректное и надежное функционирование.
Модель СОМ состоит из набора стандартных функций и спецификаций (стандартов обмена, стандартов вызова функций), которые обеспечивают разработку программ.
Правила определяют стандартный внутренний интерфейс между объектами и методику взаимодействия объектов, а именно – вызов функций и обмен данными между объектами.
Модель СОМ построена по принципу «клиент-сервер».
Клиентом является программа, которая вызывает функции компонента или использует его данные.
Серверы объектов СОМ
Каждый объект СОМ реализован внутри некоторого сервера, содержащего код, который реализует методы интерфейсов объекта, а также контролирует данные объекта, пока тот активен. Один сервер может поддерживать (и зачастую поддерживает) более одного объекта некоторого класса и даже поддерживать несколько классов. Рассмотрим три основные типа серверов:
Сервер "в процессе" (in-process): объекты реализуются в динамически подключаемой библиотеке, и, таким образом, исполняются в том же процессе, что и клиент.
Локальный сервер (out-process): объекты реализованы в отдельном процессе, исполняющемся на той же машине, что и клиент.
Удаленный сервер (remote server) объекты реализованы в DLL либо в отдельном процессе, которые расположены на удаленном по отношению к клиенту компьютере.
Возможность создания удаленных серверов поддерживает Распределенная СОМ (DCOM).
С точки зрения клиента, объекты, реализованные любой из трех разновидностей серверов, выглядят одинаково; доступ к методам объектов клиент по-прежнему осуществляет через указатели интерфейсов. При необходимости он может проводить различие между разными типами серверов, но это не обязательно. Запуск объекта, получение указателей на его интерфейсы, вызов их методов и освобождение указателей выполняются клиентом одинаково независимо от того, каким сервером реализован объект: "в процессе", локальным или удаленным.
Таким образом:
Важность и универсальность модели СОМ заключается в том, что с точки зрения клиента, объекты, реализованные в любом из трех видов серверов, выглядят одинаково; доступ к методам объектов клиент по-прежнему осуществляет посредством интерфейсов.
