Концепции программных решений в РИС

Содержание:

Введение

  1. Основные задачи распределенной обработки…………………….. 3

    1. Прозрачность……………………..……………………………. 4
    2. Открытость……………………..……………………………… 6
    3. Масштабируемость (возможность расширения) ………… 7
  1. Концепции программных решений……………………………… 10

  1. Модели промежуточного уровня.…………………………….…… 12

3.1.Службы (сервисы) промежуточного  уровня…………...…… 13

3.2. Промежуточный уровень и открытость. ……………..……. 14

Список литературы……………………..……………………..…….….…. 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

В литературе упоминаются разные определения  понятия распределенной системы (РС), но все они могут быть сведены  к следующим определениям (Таненбаум):

  1. Распределенная система – это набор независимых компьютеров, представляющихся их пользователям как единая система.
  2. Распределенная информационная система (РИС) – это совокупность взаимодействующих друг с другом программных компонент. Каждая из таких компонент может рассматриваться как программный модуль (приложение), исполняемый в рамках отдельного процесса.

 

Пользователи и приложения единообразно работают в РС независимо от того, где и когда происходит это взаимодействие.

Для этого РС должны иметь такие  характеристики как сокрытие от пользователей различий между компьютерами и способов связи между ними. Другой важной характеристикой РС является способ, при помощи которого обеспечивается единообразная работа пользователей (и приложений) в РС.

РС должны относительно легко поддаваться  расширению (масштабированию), а выход из строя некоторой части РС не должен приводить к отказу всей РС и пользователи не должны даже об этом уведомляться.

 

Для того чтобы поддерживать представление  разных компьютеров и сетей в  виде единой системы организация  РС часто включает в себя дополнительный уровень ПО, который находится  между прикладным уровнем и ОС. Такая РС обычно называется системой промежуточного уровня (middleware).

  1. Основные задачи распределенной обработки

Какие основные задачи распределенных систем?

Основная задача – облегчение доступа к удаленным ресурсам и контроль совместного использования этих ресурсов (компьютеров, файлов, данных в БД).  Web-страницы и сети также входят в этот список.

Для решения этой основной задачи, РС должна удовлетворять следующим  требованиям:

  1. Прозрачность.
  2. Открытость.
  3. Гибкость.
  4. Масштабируемость (расширяемость).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1. Прозрачность

Важная задача РС состоит в том, чтобы скрыть тот факт, что процессы и ресурсы физически распределены по разным компьютерам. РС, которые представляются пользователям и приложениям в виде единой системы называются прозрачными (transparent).

Концепция прозрачности применима  к разным аспектам РС, а именно:

 

Таблица 1.1 Разные формы прозрачности в РС

Прозрачность

Описание

Доступ

Скрывается разница в представлении  данных и способе доступа к  ресурсам

Местоположение

Скрывается местоположение ресурса

Перенос

Скрывается факт перемещения ресурса

Смена местоположения

Скрывается факт перемещения ресурса  в процессе обработки в другое место

Репликация

Скрывается факт репликации ресурса

Параллельный доступ

Скрывается факт возможного совместного  использования ресурса несколькими  конкурирующими пользователями

Отказ

Скрывается отказ и восстановление ресурсов

Сохранность

Скрывается место хранения ресурса (программного) на диске или в  памяти


 

Прозрачность доступа. Цель – скрыть разницу в способах представления и передачи данных между разными типами ПК и ОС, способах представления имен файлов, правил работы с ними и др.

Прозрачность местоположения. Цель – скрыть реальное физическое размещение ресурса. Важную роль в реализации этого играет именование.

Прозрачность переноса. Цель – скрыть факт физического перемещения ресурса. При этом смена местоположения не влияет на доступ.

Прозрачность смены  местоположения – отличается от предыдущего тем, что местоположение ресурса может произойти при его использовании. Пример - мобильные пользователи.

Прозрачность репликации (дублирования). Цель - скрыть факт наличия нескольких копий ресурса.

Прозрачность параллельного  доступа. Цель – скрыть от пользователя факт совместного использования ресурса. При этом обеспечивается целостность и непротиворечивость ресурса (например, механизм блокировок в БД).

Прозрачность отказов. Цель – обеспечить нормальную работу при наличии отказов (или скрыть факт отказа и не уведомлять об этом пользователя). Пример – при работе с перегруженным Web-сервером браузер выжидает нужное время, а потом сообщает о недоступности страницы. 

Прозрачность сохранности. Цель – скрыть реальное хранение ресурса. Пример – использование объекта Recordset для работы с данными.

Степень прозрачности

Не все эти атрибуты должны быть полностью реализованы в РС, поскольку  обеспечение прозрачности влияет на производительность.

 

 

 

 

 

 

 

 

 

 

1.2. Открытость

Открытая РС (open distributed system) – это система, предлагающая службы, вызов которых требует стандартные синтаксис и семантику. Например, в сетях формат сообщений должен соответствовать протоколам.

В РС службы (и компоненты) определяются через интерфейсы, которые часто  описываются при помощи языка определения интерфейсов (Interface Definition Language, IDL). Описание интерфейса точно отражает синтаксис служб: имена доступных функций, типы параметров, возвращаемых значений и т.п. Сложнее формально описать семантику служб. На практике эти описания задаются неформально, средствами естественного языка.

Открытые РС должны иметь такие  свойства как:

- Интероперабильность (способность к взаимодействию);

- Переносимость (из одной системы  в другую без изменения интерфейсов);

- Гибкость – легкость конфигурирования  системы, состоящей из разных  компонентов. То есть РС должна  быть расширяемой программно  и аппаратно.

Отделение правил от механизмов

В построении гибких открытых РС решающим фактором оказывается организация  таких систем в виде наборов относительно небольших, легко заменяемых или  адаптируемых компонентов. Это предполагает необходимость определения не только интерфейсов верхнего уровня, с которыми работают пользователи и приложения, но и интерфейсов между компонентами и модулями системы (компонентная инженерия).

 

 

 

 

 

1.3. Масштабируемость (возможность расширения)

Масштабируемость системы может  измеряться по трем разным показателям:

  1. размер – легкость подключения к ней новых пользователей и ресурсов;
  2. территориально – пользователи и ресурсы могут быть разнесены в пространстве;
  3. административно – система проста в управлении при работе во многих административно независимых организаций.

Эта характеристика РС может снижать  производительность системы.

Проблемы масштабируемости

Любая РС должна масштабироваться. Но вопросы ее практической реализации должны рассматриваться вместе с  другими требованиями, такими как  безопасность и производительность.   

Таблица 1.2. Примеры ограничений  масштабируемости размера

Концепция

Пример

Централизованные службы

Один сервер на всех пользователей

Централизованные данные

Единый телефонный справочник, доступный  в режиме подключения 

Централизованные алгоритмы

Организация маршрутизации на основе полной информации о сети. В больших  системах большое число сообщений  необходимо направлять по множеству  каналов. В этих случаях лучше  использовать децентрализованные алгоритмы.


 

Проблемы географической масштабируемости – неэффективность блокировок доступа  к общим ресурсам (как в локальных  сетях).

 

 

Технологии масштабирования.

Основные технологии: сокрытие времени ожидания связи, распределение и репликация.

1. Сокрытие времени ожидания  связи применяется в случае географического масштабирования. Основная идея – постараться избежать ожидания ответа на запрос от удаленного сервера. Это означает разработку приложения-клиента с использованием асинхронной связи. При получении ответа, приложение-клиент прервет свою работу и вызовет специальный обработчик для завершения отправленного ранее запроса. Асинхронная связь используется в системах пакетной обработки и параллельных приложениях, в которых во время ожидания одной задачей завершения связи предполагается выполнение других независимых задач.

Во многих задачах приложения не могут эффективно использовать асинхронную  связь. Например, в задачах интерактивной  обработки с использованием форм. В этих случаях для сокращения объема взаимодействия часть вычислений, которые обычно выполняются на стороне  сервера, обычно перемещают на сторону  клиента.

Особенно это касается проверки данных на форме. Более эффективное  решение – переместить на сторону  клиента проверку данных всех полей  формы. Перенос кода на клиента в  настоящее время поддерживается в Web с помощью Java-апплетов.

2. Распределение. Предполагает разбиение компонентов на более мелкие части с последующим их распределением в системе. Пример – система доменных имен Интернета (DNS). Пространство DNS организовано иерархически в виде дерева доменов (domains) разбитых на зоны (по странам и областям деятельности). Имена каждой зоны обрабатываются одним сервером имен.

 

Получается, что служба доменных имен распределена по нескольким серверам, что позволяет избежать обработки  всех запросов одним сервером.

Второй пример – Web. Каждый документ имеет уникальное имя URL. Физически середа Web разнесена по многим серверам. Имя сервера, содержащего конкретный документ, определяется его URL-адресу. Это позволяет наращивать количество документов без потери производительности

3. Репликация (дублирование). Применение репликации повышает доступность ресурсов, а также помогает выравнивать нагрузку компонентов, что ведет к улучшению производительности. Кроме того, в географически распределенных системах репликация (в виде близко лежащей копии) помогает уменьшить проблему ожидания связи.

Особую форму репликации представляет собой кеширование (caching). Хотя отличия между ними незначительны. Как и при репликации, результатом кеширования является создание копии ресурса, обычно в непосредственной близости от клиента. В отличие от репликации кеширование – это действие, предпринимаемое со стороны клиента, а не сервера.

 

Проблемы масштабируемости. Проблема непротиворечивости ресурса. Поскольку при репликации и кешировании создаются копии ресурса, модификация одной копии делает ее отличной от остальных.

Проблема строгой непротиворечивости ресурса состоит в немедленном распространении изменений во все копии. При одновременном изменении двух или более копий необходимо строго соблюдать порядок внесения изменений во все копии. Практически обеспечить это бывает довольно сложно, а иногда – невозможно. Это означает, что репликация может включать и отдельные не масштабируемые решения.

 

 

 

  1. Концепции программных решений

Хотя аппаратные решения важны  для РС, наибольшее влияние на них  оказывают именно программные решения. Эти решения влияют, в первую очередь, на удобство работы пользователя в  РС. С одной стороны, РС работают как менеджеры ресурсов, помогая пользователям совместно использовать такие ресурсы как память, процессоры, периферийное оборудование, сеть и данные. В этом они подобны ОС. С другой – РС скрывают сложность и гетерогенность аппаратуры, предоставляя виртуальную машину для выполнения приложений.

Эти функции обычно выполняют ОС. Для распределенных компьютеров  ОС можно разделить на две категории: сильно связанные и слабо связанные. Сильно связанные ОС обычно называются распределенными ОС (Distributed Operation System, DOS) и используются для управления мультипроцессорными и гомогенными мультикомпьютерными системами. Основная их цель – скрыть тонкости управления аппаратным обеспечением.

Слабо связанные ОС называются сетевыми ОС (Network Operation System, NOS). Они используются для управления гетерогенными мультикомпьютерными системами. Помимо традиционных функций управления ресурсами, они должны обеспечить доступ удаленных клиентов к локальным службам.

Однако, для создания РС служб сетевой ОС недостаточно. Необходимо добавить к ним дополнительные компоненты для организации поддержки прозрачности распределения. Эти компоненты образуют средства промежуточного уровня (middleware) и составляют основу современных РС. (табл.1.3).

 

 

 

 

 

Таблица 1.3. Краткое описание ОС и  средств промежуточного уровня.

Система

Описание

Назначение

Распределенные ОС

Сильно связанные ОС для мультипроцессоров и гомогенных мультикомпьютерных систем

Сокрытие и управление аппаратным обеспечением

Сетевые ОС

Слабо связанные ОС для гетерогенных мультикомпьютерных систем (локальных или глобальных сетей)

Предоставление локальных служб  удаленным клиентам

Средства промежуточного уровня

Дополнительный уровень поверх сетевых ОС, реализующий службы общего назначения

Обеспечение прозрачности распределения


Таким образом, основную роль в построении РС играют программные средства (службы) промежуточного уровня, между ОС и распределенными приложениями. На рис. 1 приведена общая структура РС с промежуточным уровнем.

Рис. 1.1 Общая структура РС с промежуточным  уровнем.

 

  1. Модели промежуточного уровня.

Для упрощения разработки и интеграции РС, основная часть промежуточного ПО должна базироваться на некоторой модели, определяющей распределение и связь. Самая простая ранняя модель – представление всех объектов в виде файлов (распределенная файловая система). Пример – файловая система Unix.

Вторая ранняя модель основана на удаленных вызовах процедур (Remote Procedure Calls, RPC). В этой модели акцент делается на сокрытии сетевого обмена за счет того, что процессу разрешается вызывать процедуры, реализация которых находится на удаленной машине. При вызове процедуры параметры передаются на удаленную машину, где она выполняется, после чего управление передается в точку вызова процедуры. Внешне это выглядит как обычный вызов процедуры.

Более современные модели основаны на взаимодействии распределенных объектов. Пример – DCOM, COM+ (а также основанные на них технологии ActiveX). Идея распределенных объектов состоит в том, что каждый объект реализует интерфейс, скрывающий все внутренние детали реализации объекта от пользователя. Интерфейс содержит методы, реализуемые объектом, и все, что видит процесс – это интерфейсы.

В Web применяется модель распределенных документов. В этой модели информация организована в виде документов, каждый из которых размещен в каком-то месте, причем физическое размещение документа скрыто от пользователя (прозрачно). Документы могут содержать ссылки на другие документы, которые могут быть извлечены и отображены на экран.

 

 

 

 

 

3.1.Службы (сервисы) промежуточного уровня

Эти службы предназначены для обеспечения  основных характеристик РС, прежде всего прозрачности, открытости и  масштабируемости. Все ПО промежуточного уровня должно поддерживать прозрачность доступа путем предоставления высокоуровневых средств связи, скрывающих низкоуровневую пересылку сообщений по сети. Интерфейс транспортного уровня (IP), который предоставляется сетевой ОС, полностью заменяется другими средствами. Способ, которым поддерживается связь, зависит от модели распределения, предлагаемой ПО промежуточного уровня. Это упоминавшийся нами RPC и системы распределенных объектов. Кроме того, системы промежуточного уровня предоставляют средства для прозрачного доступа к распределенным БД, файловым системам, документам Web.

Важная служба, общая для всех систем промежуточного уровня – именование (naming). В Web любой документ поименован посредством URL, содержащим имя сервера, на котором находится документ с данным URL.

Другая важная служба – обеспечение сохранности данных. Пример – механизм распределенных транзакций.

Еще одна важная общая служба – обеспечение защиты программ и данных. Основная проблема защиты в системах промежуточного уровня – в распределенности. В сочетании с требованием расширяемости защита превращается в одну из наиболее трудно реализуемых в РС служб.

 

 

 

 

 

 

 

3.2.Промежуточный уровень и открытость.

Современные РС обычно создаются в виде систем промежуточного уровня для нескольких платформ. При этом приложения создаются для конкретной распределенной системы и не зависят от платформы (ОС). Часто эта независимость заменяется жесткой зависимостью от конкретной системы промежуточного уровня. Проблема заключается в том, системы промежуточного уровня менее открыты, чем утверждается.

Как мы уже говорили, открытая система – это система, предлагающая службы, вызов которых требует стандартные синтаксис и семантику. (например, в сетях формат сообщений должен соответствовать протоколам, в системах объектов - интерфейсам).

В открытых РС должны быть одинаковыми  как протоколы, используемые промежуточными уровнями каждой из систем, так и  интерфейсы, которые предоставляются  приложениям.

 

 

 

 

 

 

 

 

 

 

 

Список литературы

    1. Распределенные базы данных. Википедия. http://ru.wikipedia.org/wiki/распереленные_бд
    2. Глобально распределенные информационные системы 
      http://www.ci.ru/inform4_97/astr1.htm
    3. Коннолли, Т., Бегг, К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. —  М.: Издательский дом «Вильяме», 2003. – 433 с.
    4. Сахаров А. А. Концепция построения и реализации информационных систем, ориентированных на анализ данных // СУБД. - 1996. - № 4. - С. 55-70.
    5. Коровкин С. Д., Левенец И. А., Ратманова И. Д., Старых В. А., Щавелёв Л. В. Решение проблемы комплексного оперативного анализа информации хранилищ данных // СУБД. - 1997. - № 5-6. - С. 47-51.
    6. Энсор Д., Стивенсон Й. – М.: Oracle. Проектирование баз данных: Пер. с англ. – К.: Издательская группа BHV, 1999. – 560 с.

 

 

 

 


Концепции программных решений в РИС