Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 1.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
786 Кб
Скачать
☆

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

Взаимодействие компонентов РПС через заранее определенные интерфейсы предполагает наличие у нее такого свойства как открытость (openess).

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

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

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

Правильное определение открытой распределенной системы самодостаточно и нейтрально.

Самодостаточность означает, что в системе имеется все необходимое для реализации интерфейса.

Нейтральность означает, что спецификация не определяет внешний вид реализации.

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

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

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

Переносимость (portability) характеризует то, насколько приложение, разработанное для распределенной системы А, может без изменений выполняться в распределенной системе В, реализуя те же, что и в А интерфейсы.

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

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