Реализация распределенной базы данных с удаленным доступом

Автор работы: Пользователь скрыл имя, 30 Ноября 2011 в 00:17, курсовая работа

Краткое описание

В дипломном проекте рассмотрены общие подходы к реализации распределенных систем обработки данных на базе технологии клиент-сервер, а также задача создания действующей информационной системы на примере системы автоматизации расчетов с абонентами АО «Связьинформ» РМ. Актуальность построения этой системы обусловлена резким ростом количества предоставляемых услуг связи, а также переходом некоторых районов на повременную систему тарификации разговоров.
В процессе написания дипломной работы автором велась разработка архитектуры информационной системы, механизма репликации данных, средств удаленного доступа и удаленного администрирования системы, структуры БД, а также некоторых компонентов клиентской части системы (справочной службы и картотеки абонентов).

Содержание работы

ВВЕДЕНИЕ 4
1. ОСНОВНЫЕ ПОДХОДЫ К ПРОЕКТИРОВАНИЮ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ 6
1.1 ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ 6
1.2 СЕРВЕР БАЗЫ ДАННЫХ 10
1.2.1 Технология и модели "клиент-сервер" 10
1.2.2 Механизмы реализации активного ядра 19
1.2.3 Хранимые процедуры 20
1.2.4 Правила (триггеры) 21
1.2.5 Механизм событий 21
1.3 ОБРАБОТКА РАСПРЕДЕЛЕННЫХ ДАННЫХ 22
1.4 ВЗАИМОДЕЙСТВИЕ С PC-ОРИЕНТИРОВАННЫМИ СУБД 30
1.5 ОБРАБОТКА ТРАНЗАКЦИЙ 33
1.6 СРЕДСТВА ЗАЩИТЫ ДАННЫХ В СУБД 37
1.7 ПРИМЕНЕНИЕ CASE-СРЕДСТВ ДЛЯ ИНФОРМАЦИОННОГО МОДЕЛИРОВАНИЯ В СИСТЕМАХ ОБРАБОТКИ ДАННЫХ . 41
2. РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ С УДАЛЕННЫМ ДОСТУПОМ 43
2.1 АНАЛИЗ СУЩЕСТВУЮЩЕЙ СИСТЕМЫ 44
2.2 НОВАЯ СХЕМА ОБМЕНА ИНФОРМАЦИЕЙ 45
2.3 ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ 47
2.4 ВЫБОР СЕРВЕРА БАЗ ДАННЫХ 48
2.5 ВЫБОР СРЕДСТВ РАЗРАБОТКИ 55
2.6 ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ МЕЖДУ СЕРВЕРАМИ 56
2.6.1 Выбор модели распределенной базы данных 56
2.6.2 Модель взаимодействия 56
2.6.3 Использование слоя RPC для распределенной обработки данных на платформе Windows NT 57
2.6.4 Компоненты Microsoft RPC 57
2.6.5 Механизм работы RPC 58
2.6.6 Организация логического канала передачи данных 61
2.7 ОРГАНИЗАЦИЯ ДОСТУПА УДАЛЕННЫХ ПОЛЬЗОВАТЕЛЕЙ 61
2.7.1 Необходимость удаленного доступа 61
2.7.2 Использование слоя RAS для удаленного доступа на платформе Windows NT 61
2.7.3 Обеспечение информационной безопасности при удаленном доступе 63
2.8 ПРОЕКТИРОВАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ 63
2.9 СХЕМА РЕПЛИКАЦИИ ДАННЫХ 65
2.10 ПРОЕКТИРОВАНИЕ КОММУНИКАЦИОННОГО СЕРВЕРА 67
2.10.1 Постановка задачи 67
2.10.2 Архитектура коммуникационного сервера 68
2.10.3 Вспомогательное программное обеспечение 70
3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ 71
3.1 ПЛАН ВЫПОЛНЕНИЯ ДИПЛОМНОГО ПРОЕКТА 71
3.2 РАСЧЕТ ОЖИДАЕМОЙ ПРОДОЛЖИТЕЛЬНОСТИ ВЫПОЛНЕНИЯ РАБОТ И ИХ ДИСПЕРСИЙ 73
3.3 ПОСТРОЕНИЕ ЛЕНТОЧНОГО ГРАФИКА ВЫПОЛНЕНИЯ РАБОТЫ 74
3.4 ОПРЕДЕЛЕНИЕ ПЛАНОВОЙ СЕБЕСТОИМОСТИ НИР 76
ЗАКЛЮЧЕНИЕ 79
СПИСОК ЛИТЕРАТУРЫ 80

Содержимое работы - 1 файл

РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ С УДАЛЕННЫМ ДОСТУПОМ.doc

— 1.41 Мб (Скачать файл)

      В случае каналов X.25 для установления соединения используется специальная каналообразующая аппаратура (коммутаторы X.25).

      Решением  начального уровня может служить  удаленный доступ по протоколу PPP (Point to Point Protocol). Организация удаленного доступа по асинхронным каналам связи по протоколу PPP рассмотрена ниже.

2.7 Организация  доступа удаленных  пользователей

2.7.1 Необходимость удаленного  доступа

 

      При реализации данной системы экономически целесообразно устанавливать серверы баз данных  только в тех районах республики, в которых количество абонентов достаточно велико. Для районов с малым числом абонентов наилучшим решением является использование сервера баз данных ближайшего РУС. Для этого необходимо организовать доступ операторов к территориально удаленному серверу. Средой передачи данных в этом случае являются телефонные линии, протоколом передачи на сетевом уровне - PPP (или SLIP).

2.7.2 Использование слоя  RAS для удаленного доступа на платформе  
Windows NT

 

      На  платформе Windows NT задача удаленного доступа по протоколу PPP решается с помощью сервера RAS (Remote Access Server - сервер удаленного доступа). Сервер RAS - это процесс, который принимает и обрабатывает запросы клиентов на подключение через асинхронные линии и передачу данных. Схема взаимодействия удаленного клиента с сервером RAS приведена на рис.2.4. 

 

Рис.2.4. Схема удаленного доступа с использованием RAS. 

      В качестве транспортного протокола  могут использоваться протоколы  TCP/IP, IPX/SPX, NetBIOS. Подключение клиента через сервер удаленного доступа абсолютно прозрачно, т.е. клиент может работать с удаленными серверами так, как если бы он находился в локальной сети.

      В системе Windows NT существует программный интерфейс приложений (Application Program Interface), который позволяет установить логический канал с удаленной сетью по асинхронному соединению. Он носит название RAS API (Remote Access Service API).

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

      Win32 RAS позволяет RAS-клиенту установить соединение, получить информацию о существующих соединениях и завершить соединение. Связь осуществляется по протоколам PPP или SLIP. В качестве транспортного протокола могут быть использованы стеки TCP/IP, IPX/SPX и NetBIOS.

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

 

      Учитывая  то, что информация на серверах баз  данных носит коммерческий характер, особую роль играет вопрос её защиты от несанкционированного доступа. Система  Windows NT имеет сертификат соответствия уровню безопасности C2 Министерства обороны США. Данный уровень безопасности предполагает обязательную идентификацию пользователей системы для определения прав доступа к отдельным ресурсам системы. Удаленный вход в сеть также требует соответствующих привилегий, кроме того, все попытки удаленного доступа обязательно фиксируются в журнале событий. В систему Windows NT встроена возможность шифрования трафика в каналах передачи данных, таким образом злоумышленник, имеющий возможность перехвата данных в каналах связи, не получает доступа к жизненно важным данным (пароли и имена пользователей, финансовая информация).

      Одним из способов ограничения доступа  удаленных пользователей к ресурсам сети является использования так  называемых серверов-барьеров (FireWalls) на стыке внутренней и внешней (какой в данном случае является удаленный пользователь) сетей. В данном случае можно гибко регулировать права удаленного пользователя на доступ к отдельным компьютерам в сети. Кроме того, серверы-барьеры скрывают топологию сети от внешнего пользователя. На платформе Windows NT функции сервера-барьера выполняет продукт Microsoft Proxy Server. Одним из побочных эффектов использования этого класса продуктов является экономия IP-адресов.

2.8 Проектирование  структуры базы данных

 

      Построим  информационную модель системы расчета  с абонентами.

В ходе исследования существующей схемы расчетов были выявлены следующие основные сущности: 

  • Клиент (абонент, владелец телефона)
  • Услуга
  • Подразделение
  • Начисление
  • Телефонный разговор, подлежащий повременной тарификации
  • Начисление за повременные разговоры (за один день)
  • Оплата
  • Категория клиента
  • Проведенные расчеты
 

      IDEF1X-диаграмма взаимодействия между этими сущностями представлена в Приложении 6.

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

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

  • Клиент (владелец телефона)
  • Услуга
  • Подразделение
  • Начисление
  • Постоянное начисление
  • Категория клиента
 

      Для регистрации изменений используется структура данных, представленная на рис.2.5. 

 

Рис.2.5. Структура данных для поддержки  механизма регистрации изменений 

 

 Суть  данной модели такова: 

  1. Каждая  сущность характеризуется набором состояний, изменяющихся во времени.
  2. Каждое состояние характеризуется набором атрибутов сущности, а также датой начала и датой окончания состояния.
  3. Сущность однозначно идентифицируется своим внешним ключом и актуальной датой.
  4. Дочерние таблицы ссылаются на сущность по её внешнему ключу.
  5. При смене состояния внешний ключ не меняется.
 

    Целостность данных обеспечивается с помощью  триггеров на сервере. 

      Для дальнейшего анализа выделим  в структуре базы данных несколько  подсистем: 

  • Картотека абонентов
  • Начисления
  • Повременный учет
 

      После определения атрибутов сущностей  схема данных с учетом механизма  поддержки истории принимает  вид, приведенный в Приложении 6.

      SQL-скрипт для генерации базы данных представлен в Приложении 1.

 

2.9 Схема  репликации данных

 

      Тиражирование данных в системе построено по схеме с одним сервером подписки (центральный сервер) и множеством серверов репликации (районы). 

 

Рис.2.6. Организация репликации данных. 

      Данные  на центральном сервере доступны только для чтения чтобы избежать конфликтов по модификации записи. 

 

Рис.2.7. Подробная схема репликации данных. 

      Схема репликации приведена на рис.2.7. Рассмотрим процесс передачи изменений подробнее: 

  1. При изменении  данных в реплицируемой таблице новые данные через триггер записываются в журнал изменений. Кроме того, туда заносится  имя таблицы, код сделанного изменения и первичный ключ измененной записи.
  2. При возникновении в базе определенного события (например при большом количестве записей в журнале изменений) или в определенный момент времени коммуникационный сервис запускает процесс репликации.
  3. Процесс репликации устанавливает соединение с сервером подписки и начинает синхронизацию данных.
  4. Сервер подписки принимает измененную запись и модифицирует соответствующим образом таблицу на своей стороне.
  5. Если в процессе изменения записи был сгенерирован новый ключ, то он передается на сервер репликации.
  6. Сервер репликации заменяет первичный ключ реплицируемой записи на ключ, возвращаемый с сервера подписки и удаляет соответствующую запись из журнала изменений.
 

      При передаче изменений коммуникационным сервисом используется протокол двухфазной фиксации транзакций (Two-phase commit transactions), что позволяет застраховаться от ошибок.

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

2.10 Проектирование коммуникационного сервера

2.10.1 Постановка задачи

 

      Для решения задач репликации, резервного копирования, удаленного доступа и  удаленного управления на сервере баз  данных необходим процесс, планирующий  запуск процессов и обрабатывающий подключения удаленных пользователей. Основные требования, предъявляемые к коммуникационному серверу таковы: 

  1. Так как  информационная система носит распределенный характер, а также учитывая отсутствие квалифицированных кадров в местах установки сервера необходимо предусмотреть возможность удаленного конфигурирования системы.
  2. Для облегчения задач администрирования необходимо как можно более полно автоматизировать выполнение наиболее часто встречающихся задач, таких как резервное копирование данных и репликация.
  3. Учитывая необходимость дальнейшего расширения системы необходимо предусмотреть возможность наращивания функциональности коммуникационного сервера.
  4. Учитывая разнородность сети необходимо обеспечить возможность подключения пользователей по нескольким протоколам: TCP/IP, Named Pipes, IPX/SPX, NetBIOS.

2.10.2 Архитектура коммуникационного  сервера

 

      Учитывая  специфику платформы Windows NT коммуникационный сервер построен по архитектуре системного сервиса (System Service). Для разработки коммуникационного сервера применялась среда разработчика Microsoft Developer Studio 4.2/Visual C++ Enterprise Edition.

      Архитектура сервера представлена в Приложении 2.

      Для обеспечения наращиваемости системы  проведено разделение функциональности сервера на две части: 

  • Ядро  сервера - обслуживает подключения удаленных пользователей, планирует запуск пользовательских задач а также обеспечивает возможность удаленного конфигурирования системы.
  • Пользовательские задачи - обеспечивают реплицирование, резервное копирование, синхронизацию картотек, съем данных с аппаратуры повременного учета.
 

      Пользовательские  задачи реализованы в виде многопоточных  DLL. Каждая пользовательская задача должна обеспечивать две точки входа: 

  • void TaskProc(void) - основной поток - реализует необходимую функциональность.
  • void Terminate(void) - функция для принудительного останова задачи (например при останове сервера)
 

      Информация  о пользовательских задачах хранится в реестре Windows NT

(ключ HKEY_LOCAL_MACHINE\SOFTWARE\Svyazinform\CommService\Tasks, рис.2.8).

 

      Рис.2.8. Конфигурация задач коммуникационного сервера в реестре Windows NT.  

Информация о работе Реализация распределенной базы данных с удаленным доступом