Организация удаленного доступа к распределенным базам данных. Содержание Введение 3 Основные подходы к проектированию распределенных баз данных 5
Скачать 0.97 Mb.
|
2.5 Выбор средств разработкиВ качестве CASE-средства использован программный продукт ERWin 2.5 фирмы Logic Works. ERwin - средство разработки структуры базы данных. ERwin сочетает графический интерфейс Windows, инструменты для построения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных СУБД и настольных баз данных. С помощью ERwin можно создавать или проводить обратное проектирование (реинжиниринг) баз данных. Предыдущие версии ERwin - 1.5 и 2.1 - завоевали все возможные призы среди программ своего класса, в том числе DBMS Readers' Choice в 1992, 1993, 1994, 1995 годах, Software Development Productivity Award 1993, Data Based Advisor Readers' choice 1992 и 1994. Текущая версия продукта - 2.6. ERWin позволяет проводить анализ системы как в стандарте IDEF1X, так и в стандарте IE, что увеличивает удобство работы с продуктом. ERwin объединяет логический и физический уровни представления модели в единую диаграмму, что позволяет провести анализ предметной области и полностью разработать структуры базы данных используя только один программный продукт. Выбор этого продукта обусловлен также возможностью легкого переноса разработанной модели на другой сервер баз данных. Для написания клиентской части приложений использована среда разработчика Borland Delphi C/S 2.01. Delphi относится к средствам быстрой разработки приложений (RAD - Rapid Applications Development). Определяющим фактором при выборе Delphi в качестве средства разработки клиентской части является наличие большой библиотеки объектов для быстрого построения приложений, работающих с базами данных. Кроме того, Delphi поддерживает интерфейс PVCS, что позволяет вести параллельную разработку проекта несколькими программистами. Для разработки процессов, функционирующих на стороне сервера использована среде разработки Microsoft Visual C 4.2 из пакета Microsoft Developer Studio. Эта среда сочетает в себе мощь языка C++, удобные средства отладки программ и навигации по тексту. Кроме того, она позволяет использовать в программах все возможности операционной системы (RPC, RAS, TAPI, сервисы Windows NT). 2.6 Организация взаимодействия между серверами2.6.1 Выбор модели распределенной базы данныхТак как для обмена данными между серверами предполагается использовать медленные асинхронные каналы связи, а также учитывая большое количество серверов в данной информационной системе использован механизм репликации данных. Недостатки этого механизма, такие как задержка синхронизации различных копий данных, для данной системы играют малую роль. 2.6.2 Модель взаимодействияДля организации репликации данных и удаленного администрирования серверов в районах необходимо предусмотреть средства взаимодействия между серверами. При анализе процесса взаимодействия серверов можно выделить следующие компоненты системы:
В этой схеме в каждый конкретный момент времени в качестве клиента выступает один из взаимодействующих серверов. Таким образом, на каждом из серверов в любой момент времени должен быть запущен процесс, отвечающий за взаимодействие с удаленным узлом сети. В Windows NT в качестве такого процесса может выступать специально разработанный сервис операционной системы (system service). Он должен «уметь» обслуживать подключения удаленных клиентов, а также при необходимости сам выступать в роли клиента. Кроме того, на него можно возложить функции удаленного администрирования и резервного копирования данных. Для организации обмена информацией в общем случае необходимо разработать протокол этого обмена, что само по себе является достаточно сложной задачей. Кроме того, необходимо реализовать поддержку сервисом различных транспортных протоколов (TCP/IP, NetBIOS, IPX/SPX), что выливается в многократное дублирование программного кода. Для решения этой задачи использован слой вызова удаленных процедур Microsoft RPC (Microsoft Remote Procedure Call). 2.6.3 Использование слоя RPC для распределенной обработки данных на платформе Windows NTВ соответствие с моделью RPC любой сервер может рассматриваться как сервер вычислений, т.е. он может предоставлять свои вычислительные мощности клиентам. Рабочая станция может послать запрос серверу на выполнение определенных вычислений и возврат результатов. Используя RPC, клиент не только использует файлы и принтеры сервера, но и разделяет его центральный процессор с другими компьютерами в сети. Слой Microsoft RPC - только часть стандарта среды для распределенных вычислений, названной OSF (Open Software Foundation), разработанной группой компаний для определения компонентов сетевой среды, которая поддерживает распределенные вычисления. 2.6.4 Компоненты Microsoft RPCMicrosoft RPC включает следующие основные компоненты:
В модели PRC можно формально определить интерфейс для удаленной процедуры, используя язык, специально разработанный для этой цели. Этот язык – IDL (Interface Definition Language - язык определения интерфейсов). Диалект языка, реалиçованный фирмой Microsoft, назван MIDL (Microsoft IDL). После создания интерфейса его описание обрабатывается компилятором MIDL. MIDL компилятор генерирует «заглушки» (stubs), которые транслируют вызовы локальных процедур в вызовы процедур, находящихся на сервере. «Заглушка» -- это процедура-заполнитель, которая делает вызовы библиотечных функций RPC для управления вызовами удаленных процедур. Применение заглушек обеспечивает прозрачность сетевого уровня для распределенных приложений. Клиентская программа вызывает их как локальные процедуры, весь код, который передает данные по сети и принимает результаты, генерируется MIDL компилятором и невидим для разработчика. 2.6.5 Механизм работы RPCRPC позволяет клиенту напрямую вызывать процедуры, находящиеся в программе на удаленном сервере. Клиент и сервер имеют различные адресные пространства; так, каждый имеет свою собственную память, в которой распределены данные, используемые процедурами. Следующий рисунок иллюстрирует архитектуру RPC: Рис.2.3. Механизм работы RPC. Как показано на рис.2.3, клиентское приложение вызывает локальную заглушку вместо кода, непосредственно реализующего необходимую процедуру. Заглушка компилируется и линкуется с клиентским приложением. Заглушка клиента выполняет следующие действия:
Заглушка сервера выполняет следующие шаги:
Удаленная процедура выполняется, генерирует выходные параметры и возвращаемое значение. Когда процедура завершена, следующие шаги возвращают данные клиенту:
Клиент завершает процесс принятием данных из сети и их возвратом вызывающей функции:
Для Microsoft Windows и Windows NT библиотеки времени выполнения используются двумя путями: как статическая библиотека, линкуемая в приложение; и библиотека, реализованная как DLL. Серверное приложение содержит вызовы библиотеки времени выполнения сервера, которая регистрирует интерфейсы сервера и позволяет серверу принимать вызовы удаленных процедур. Серверное приложение также содержит специфичные для каждого приложения процедуры, которые вызываются с клиента. Таким образом, реализовав коммуникационный сервис на базе слоя RPC, можно существенно сэкономить время на разработке протоколов обмена информацией, а также получить систему, работающую по любым транспортным протоколам. 2.6.6 Организация логического канала передачи данныхДругой компонент модели - среда передачи данных может быть реализована несколькими способами. В простейшем случае она может быть построена на базе асинхронных каналов связи с использованием протоколов PPP (Point to Point Protocol), а также на базе существующих сетей X.25. На системный сервис можно также возложить ответственность за установление логического канала между серверами. В случае каналов X.25 для установления соединения используется специальная каналообразующая аппаратура (коммутаторы X.25). Решением начального уровня может служить удаленный доступ по протоколу PPP (Point to Point Protocol). Организация удаленного доступа по асинхронным каналам связи по протоколу PPP рассмотрена ниже. |