Распределенная обработка данных. Найханова Л.В. - 28 стр.

UptoLike

Составители: 

28
Приведенное здесь рассуждение описано на основе систем INGRES и ORACLE всего
лишь для того, чтобы конкретизировать стиль изложения, хотя эту идею можно
использовать в более общем смысле. Предположим теперь, что существует два узла - X и
Y, на которых запущены соответственно системы INGRES и ORACLE. Допустим также,
что некоторый пользователь U на узле X желает взглянуть на распределенную базу
данных, которая содержит данные из базы данных INGRES на узле X и из базы данных
ORACLE на узле Y. По определению U является пользователем системы INGRES, а
потому работа с распределенной базы данных должна походить на работу базы данных
INGRES. Таким образом, режим работы пользователя должен поддерживаться системой
INGRES, а не системой ORACLE. В чем заключается такая поддержка?
В принципе, она организована довольно просто. Система INGRES должна иметь
надстроечную программу, которая называется шлюзом и взаимодействует с системой
ORACLE так, чтобы создавалось впечатление, что "работа системы ORACLE выглядит
так же, как и работа системы INGRES". Такая распределенная система показана на рис.
2.3.
Тогда шлюз должен выполнять все перечисленные ниже функции, причем некото-
рые из них с точки зрения технического воплощения представляют собой весьма сложную
задачу. (Более подробно эти проблемы обсуждаются ниже при описании стандартов
удаленного доступа.)
Воплощение протоколов обмена информацией между системами INGRES и
ORACLE. Такие протоколы, помимо прочего, должны содержать сведения о со-
вместимости формата сообщений, с помощью которых утверждения SQL
посылаются со стороны системы INGRES, а также посылаются сведения об
отображении результатов в системе ORACLE (значения данных, коды возврата и
т.д.) в формат сообщения, которое понимала бы система INGRES.
Обеспечение функции "реляционного сервера" для системы ORACLE (аналогич-
ной функции, выполняемой интерактивным процессором языка SQL, который
уже поддерживается в большинстве современных программных продуктов такого
типа). Иначе говоря, шлюз должен обрабатывать произвольные незапланирован-
ные утверждения языка SQL, заданные для базы данных ORACLE. Для того
чтобы обеспечить эту функцию, шлюз должен осуществлять динамическую
поддержку языка SQL или поддерживать интерфейс вызовов на узле системы
ORACLE.
Отображение между типами данных систем INGRES и ORACLE. Эта проблема
включает множество подчиненных проблем, которые связаны с различием про-
цессоров (например, у разных процессоров может по-разному определяться длина
переменной типа ''word''), различием кодировок символов (при сравнении строк в
запросах упорядочения могут быть получены неожиданные результаты), различи-
ем формата чисел с плавающей запятой (широко известная проблема), различием
в способе управления датой и временем (никакие СУБД не поддерживают это
управление одинаковым образом) и т.д.
Отображение диалекта языка SQL, принятого в системе INGRES, на диалект SQL,
принятый в ORACLE. Следует отметить, что как в системе INGRES, так и в сис-
теме ORACLE поддерживаются отдельные инструменты языка SQL, которые не
поддерживаются в другой системе. К тому же в них содержатся некоторые конст-
рукции, синтаксически одинаковые, но семантически различные.
Отображение информации, посылаемой обратно от системы ORACLE (код воз-
врата и т.д.), в формате INGRES.
Отображение каталога ORACLE в формате INGRES таким образом, чтобы узел
INGRES и его пользователи могли понимать содержимое базы данных ORACLE.
Работа в качестве участника (в варианте INGRES) протокола двухфазной фикса-
      Приведенное здесь рассуждение описано на основе систем INGRES и ORACLE всего
лишь для того, чтобы конкретизировать стиль изложения, хотя эту идею можно
использовать в более общем смысле. Предположим теперь, что существует два узла - X и
Y, на которых запущены соответственно системы INGRES и ORACLE. Допустим также,
что некоторый пользователь U на узле X желает взглянуть на распределенную базу
данных, которая содержит данные из базы данных INGRES на узле X и из базы данных
ORACLE на узле Y. По определению U является пользователем системы INGRES, а
потому работа с распределенной базы данных должна походить на работу базы данных
INGRES. Таким образом, режим работы пользователя должен поддерживаться системой
INGRES, а не системой ORACLE. В чем заключается такая поддержка?
      В принципе, она организована довольно просто. Система INGRES должна иметь
надстроечную программу, которая называется шлюзом и взаимодействует с системой
ORACLE так, чтобы создавалось впечатление, что "работа системы ORACLE выглядит
так же, как и работа системы INGRES". Такая распределенная система показана на рис.
2.3.
     Тогда шлюз должен выполнять все перечисленные ниже функции, причем некото-
рые из них с точки зрения технического воплощения представляют собой весьма сложную
задачу. (Более подробно эти проблемы обсуждаются ниже при описании стандартов
удаленного доступа.)
     • Воплощение протоколов обмена информацией между системами INGRES и
        ORACLE. Такие протоколы, помимо прочего, должны содержать сведения о со-
        вместимости формата сообщений, с помощью которых утверждения SQL
        посылаются со стороны системы INGRES, а также посылаются сведения об
        отображении результатов в системе ORACLE (значения данных, коды возврата и
        т.д.) в формат сообщения, которое понимала бы система INGRES.
     • Обеспечение функции "реляционного сервера" для системы ORACLE (аналогич-
        ной функции, выполняемой интерактивным процессором языка SQL, который
        уже поддерживается в большинстве современных программных продуктов такого
        типа). Иначе говоря, шлюз должен обрабатывать произвольные незапланирован-
        ные утверждения языка SQL, заданные для базы данных ORACLE. Для того
        чтобы обеспечить эту функцию, шлюз должен осуществлять динамическую
        поддержку языка SQL или поддерживать интерфейс вызовов на узле системы
        ORACLE.
     • Отображение между типами данных систем INGRES и ORACLE. Эта проблема
        включает множество подчиненных проблем, которые связаны с различием про-
        цессоров (например, у разных процессоров может по-разному определяться длина
        переменной типа ''word''), различием кодировок символов (при сравнении строк в
        запросах упорядочения могут быть получены неожиданные результаты), различи-
        ем формата чисел с плавающей запятой (широко известная проблема), различием
        в способе управления датой и временем (никакие СУБД не поддерживают это
        управление одинаковым образом) и т.д.
     • Отображение диалекта языка SQL, принятого в системе INGRES, на диалект SQL,
        принятый в ORACLE. Следует отметить, что как в системе INGRES, так и в сис-
        теме ORACLE поддерживаются отдельные инструменты языка SQL, которые не
        поддерживаются в другой системе. К тому же в них содержатся некоторые конст-
        рукции, синтаксически одинаковые, но семантически различные.
     • Отображение информации, посылаемой обратно от системы ORACLE (код воз-
        врата и т.д.), в формате INGRES.
     • Отображение каталога ORACLE в формате INGRES таким образом, чтобы узел
        INGRES и его пользователи могли понимать содержимое базы данных ORACLE.
     • Работа в качестве участника (в варианте INGRES) протокола двухфазной фикса-

28