Корпоративные базы данных - статьи




Переносимость и интероперабельность информационных систем и международные стандарты - часть 6


должна быть интегрирована и по мере возможности обладать достаточной эффективностью.

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

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



Содержание  Назад  Вперед