Инструменты пользователя

Инструменты сайта


examination:rsubd:question20

Вопрос №20. Промежуточное программное обеспечение для доступа к данным

Промежуточное программное обеспечение для доступа к данным

Шлюзы, которые описаны в предыдущем подразделе, иногда более конкретно называются шлюзами типа «точка-точка». Такие шлюзы имеют ряд очевидных недостатков. Во-первых, они предоставляют ограниченную независимость от размещения. Во-вторых, для практически одинаковых приложений может потребоваться использовать несколько отдельных шлюзов (скажем, один – для СУБД DB2, другой – для СУБД Oracle и третий – для СУБД Informix), не имея при этом никакой поддержки, например, для операции соединения, которая включает несколько узлов разных типов, и т.д. Вследствие этого (и несмотря на технические трудности, указанные в предыдущем подразделе) за несколько последних лет через довольно короткие интервалы времени стали появляться продукты, реализующие шлюзы со все более сложными функциональными возможностями. Фактически все разработки, которые относились к так называемому промежуточному программному обеспечению (middleware) для доступа к данным или к связующему программному обеспечению (mediator), теперь выделились в важное самостоятельное направление программирования.

Очевидно, что указанные выше термины (промежуточное программное обеспечение и оболочка) определены не совсем точно. Любая часть программного обеспечения, используемая для сокрытия различий между отдельными системами, которые предназначены для совместной работы, например, монитор выполнения транзакций, может обоснованно считаться промежуточным программным обеспечением. Но сосредоточимся на том, что можно назвать промежуточным программным обеспечением для доступа к данным. Примером такого программного обеспечения могут служить продукты Cohera компании Cohera, DataJoiner корпорации IBM, а также OmniConnect и InfoHub корпорации Sybase. В качестве примера рассмотрим продукт DataJoiner.

Охарактеризовать этот продукт можно несколькими способами (рис. 8). С точки зрения отдельного клиента он выглядит, как обычный сервер базы данных (т.е. СУБД). DataJoiner сохраняет данные, поддерживает запросы SQL, предоставляет доступ к каталогу, выполняет оптимизацию запросов и т.д. Фактически основой системы DataJoiner является версия AIX СУБД DB2 компании IBM. Но данные хранятся в основном не на узле системы DataJoiner (хотя такая возможность также имеется), а на любом количестве других скрытых от пользователя узлов, которые контролируются несколькими другими СУБД (или даже диспетчерами файлов, подобными, например, VSAM). Таким образом, DataJoiner фактически дает пользователю доступ к виртуальной базе данных, которая представляет собой объединение всех таких скрытых от пользователя баз данных и/или файлов. Кроме того, эта система позволяет использовать запросы, которые охватывают все указанные базы данных и/или файлы, а также принимает решение по созданию глобально оптимальных планов выполнения запросов, используя заложенные в ней знания о возможностях, скрытых от пользователя систем (а также о характеристиках сети).


Рис. 7. DataJoiner – пример промежуточного программного обеспечения для доступа к данным

Система, подобная описанной выше, – далеко еще не полная распределенная система баз данных, поскольку все возможные узлы, скрытые от пользователя, не имеют информации о существовании друг друга (т.е. не могут рассматриваться как равноправные партнеры в совместном деле). Однако если к скрытым от пользователя узлам будет добавлен новый узел, он сможет использовать все возможности, предоставляемые узлам клиентов и, следовательно, выдавать запросы через систему DataJoiner, которая гарантирует доступ к любому узлу (или сразу ко всем остальным узлам). В целом это означает, что система представляет собой так называемую интегрированную систему, которая известна и как система, состоящая из нескольких баз данных. Интегрированная система – это распределенная система, обычно неоднородная, которая поддерживает почти полную локальную автономию. Локальные транзакции в ней управляются локальными СУБД; реализация же глобальных транзакций – это отдельный вопрос.

Для каждой из скрытых от пользователя систем в программном продукте DataJoiner предусмотрен такой компонент, как драйвер, фактически представляющий собой шлюз «точка-точка», или оболочку, в том смысле, который указан в предыдущем подразделе. Для доступа к удаленной системе в таких драйверах обычно применяется интерфейс ODBC. Продукт DataJoiner также поддерживает глобальный каталог, который используется, в частности, для определения действий в ситуациях, когда встречается семантическое несовпадение между системами.

Отметим, что система DataJoiner может применяться сторонними поставщиками, которые разрабатывают общие средства, чтобы не слишком заботиться о различиях между теми продуктами СУБД, на которых предполагается их использовать. Наконец, отметим, что компания IBM включила в технологию DataJoiner свой программный продукт – СУБД DB2; очевидно, это было сделано в целях усовершенствования СУБД DB2, чтобы она взяла на себя роль единственного настоящего интерфейса (по крайней мере, единственного настоящего интерфейса IBM) к данным, хранимым во всех формах. Иными словами, с помощью своей СУБД DB2, в которой применяется технология DataJoiner, компания IBM предприняла попытку решить проблему, известную под названием «проблемы интеграции информации».

examination/rsubd/question20.txt · Последние изменения: 2014/01/15 08:21 (внешнее изменение)