Как организованы файл серверные автоматизированные системы
Информационные системы типа файл-сервер можно строить двумя способами:
• с использованием несетевых СУБД, созданных для применения на отдельной машине;
• с использованием сетевых СУБД, разработанных для применения в ЛВС.
В любом случае необходимо использовать сетевую операционную систему.
Программы несетевой СУБДи БД, используемые ею, могут храниться на компьютере-сервере или на компьютере-клиенте.
Запуск и функционирование несетевой СУБД, хранящейся на компьютере-клиенте и работающей с локальными данными, не отличается от обычного режима работы на отдельной ПЭВМ. Если используемые данные хранятся на компьютере-сервере, файловая система сетевой ОС «незаметно» для СУБД выполняет подгрузку нужного файла с сервера (удаленного компьютера). Заметим, что не каждая несетевая СУБД без проблем работает в среде любой сетевой ОС.
Если несетевая СУБД используется несколькими пользователями сети, то ее программы, а также БД в целях экономии дисковой памяти эффективнее хранить на компьютере-сервере. При запуске СУБД в таком варианте на каждый компьютер-клиент обычно пересылается полная копия основной программы СУБД и один или несколько файлов ЦБД. После завершения работы файлы ЦБД должны пересылаться с компьютера-клиента обратно на компьютер-сервер для согласования данных.
Существенным недостатком такого варианта применения несетевых СУБД является возможность нарушения целостности данных при одновременной работе с одной БД нескольких пользователей. Поскольку каждая копия СУБД функционирует, «не зная» о работе других копий СУБД, то никаких мер по исключению возможных конфликтов не принимается.
В качестве примеров несетевых СУБД можно назвать первые версии системы dBase III Plus, dBase IY и FoxBase.
Сетевые СУБД не имеют указанного недостатка, так как в них предусматривается «контроль соперничества» (concurrency control). Средства контроля позволяют осуществлять координацию доступа к данным, например, введением блокировок доступа к файлам, записям и даже отдельным полям записей. В сетевых СУБД с коллективным использованием файлов БД вся обработка информации по-прежнему производится на компьютере-клиенте. Функции компьютера-сервера сводятся к предоставлению большой дисковой памяти. Такой подход нельзя считать эффективным, так как для обеспечения приемлемой скорости процесса обработки информации компьютер-клиент должен обладать высоким быстродействием и иметь большую емкость оперативной памяти. Кроме того, пересылка копий файлов БД и команд управления блокировками по линиям связи существенно увеличивает нагрузку на подсистему передачи данных, что снижает общую производительность системы.
Примерами сетевых СУБД являются: FoxPro 2.5 для Windows, dBase IY, Paradox 3.5 для DOS.
Одной из базовых функций информационной системы организации любого масштаба является обеспечение обмена информацией как внутри организации, так и за ее пределами. Однако в этом процессе имеются проблемы, связанные со скоростью обмена информацией и работой с информацией в режиме коллективного доступа. Решают эти проблемы программные продукты, организующие обработку информации по определенным технологиям. В настоящее время наибольшее распространение получили следующие технологии:
Файл-серверная технология – это работа в сетевом пространстве с доступом к файлам СУБД, хранящимся на сервере.
Обработка запроса одного пользователя:
· Обращение к БД (запрос)
· Перекачка данных с блокировкой доступа других пользователей
· Обработка данных на компьютере пользователя
В файл-серверной организации клиент работает с удаленными файлами, что вызывает существенную перегрузку трафика (поскольку СУБД-ФС работает на стороне клиента, то для выборки полезных данных в общем случае необходимо просмотреть на стороне клиента весь соответствующий файл целиком).
В целом, в файл-серверной архитектуре мы имеем "толстого" клиента и очень "тонкий" сервер в том смысле, что почти вся работа выполняется на стороне клиента, а от сервера требуется только достаточная емкость дисковой памяти.
Недостатки файл-серверной системы очевидны:
· Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
· Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
· Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
· Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле.
Технология клиент-сервер разделяет приложение на две части, используя лучшие качества обеих сторон. Клиентская часть обеспечивает интерактивный, легкий в использовании, обычно графический интерфейс - находится на компьютере пользователя. Сервер (программа) обеспечивает управление данными, разделение информации, изощренное администрирование и безопасность - находится на специально выделенном компьютере - сервере).
Заметим, что интерфейс между клиентской частью приложения и клиентской частью сервера баз данных, как правило, основан на использовании языка SQL. Поэтому такие функции, как, например, предварительная обработка форм, предназначенных для запросов к базе данных, или формирование результирующих отчетов выполняются в коде приложения, а все обращения к серверу баз данных сводятся к передаче текста операторов языка SQL.
Поскольку вся работа с БД (выборка, добавление, выполнение триггеров и процедур) происходит на стороне сервера, то в клиент-серверной организации клиенты могут являться достаточно "тонкими", а сервер должен быть "толстым" настолько, чтобы быть в состоянии удовлетворить потребности всех клиентов.
При необходимости произвести обработку информации, хранящейся в БД, запущенное на компьютере пользователя клиентское приложение, работающее с БД, формирует запрос на языке SQL. Сервер базы данных принимает запрос и обрабатывает его самостоятельно. Никакой массив данных (файл) по сети не передается. После обработки запроса на компьютер пользователя передается только результат - то есть, в предыдущем примере, - список платежных поручений, удовлетворяющих нужным критериям. Сам же файл, в котором хранились данные, послужившие источником для обработки, остается незаблокированным для доступа самого сервера по запросам других пользователей.
В серьезных клиент-серверных СУБД существуют дополнительные механизмы, снижающие нагрузку на сеть, снижающие требования к пользовательским компьютерам. В качестве примера приведем хранимые процедуры - то есть целые программы обработки данных, хранящихся в БД. В этом случае от пользователя к серверу не передается даже SQL выражения - передается вызов функции с параметрами вызова. Таким образом, рабочее место пользователя еще сильнее упрощается, логика работы программы переносится на сервер. Пользовательское место становится всего лишь средством отображения информации. Все это означает дальнейшее снижение нагрузки на сеть и пользовательские рабочие станции.
Таким образом, все вышеперечисленные недостатки файл-серверной схемы устраняются в архитектуре клиент-сервер:
Создание архитектур файл-сервер и клиент-сервер обусловлено появлением сетей компьютеров.
Сеть – совокупность компьютеров(рабочих станций), объединенных средствами передачи данных.
В зависимости от удаленности компьютеров друг от друга сети условно подразделяются на локальные и глобальные. В ЛВС расстояние между рабочими станциями – до нескольких км. Такие ЛВС обычно создаются в рамках некоторых организаций, предприятий, цеха и т.д., поэтому их часто называют корпоративными сетями. ГВС можно подразделить на следующие виды:
Для автоматических информационно-управляющих систем (АИУС) уровня технологического участка , цеха, предприятия, характерным является использование ЛВС.
Создание ИС в сетях компьютеров с одной стороны дает существенное преимущество(по надежности, скорости решения задач), с другой стороны вызывает ряд проблем(администрирование, защиты информации). Организация функционирования ЛВС базируется обычно на 2-х принципах управления: централизованное и децентрализованное (одноранговое).
В централизованных ЛВС одна или несколько ЭВМ являются центральными. Центральный узел сети часто называют сервером, а остальные компьютеры(рабочие станции) называются клиентами.
Основное назначение компьютера сервера – управление передачей данных в сети и хранение файлов, используемых иными рабочими станциями. Для компьютера-сервера обычно используются сетевые ОС, которые и реализуют централизованное управление(например, MicroSoft Windows NT-Server).
Любые взаимодействия в сети предполагает наличие 2-х компьютеров(элементов):
1. предоставляющий ресурсы(сервер).
2. потребляющий ресурсы(клиент).
Основные виды потребляемых ресурсов:
- аппаратные(память, устройства отображения),
- программные (ПП, фрагменты ПП),
Исторически первыми появились сетевые ИС с применением файл-серверов(рис. 2.6.2.1.)
Рис. 2.6.2.1. Структура АИС с файл-сервером.
В среде файлового сервера обработка данных распределена по рабочим станциям ЛВС. Сам сервер содержит все файлы данных, необходимых для работы всех приложений клиентов и на нем же расположена и СУБД. На рабочих станциях(клиентах) функционируют копии СУБД и пользовательские приложения. Клиенты обращаются к файл-серверам только по мере необходимости доступа к нужным им файлам. Такая архитектура обладает большими функциональными преимуществами, чем централизованная архитектура.
1. Большая нагрузка на ЛВС, т.к. через нее передаются файлы или блоки данных.
2. Необходимость хранения СУБД на рабочей станции каждого клиента.
При реализации технологии клиент-сервер функции стандартного приложения можно разделить на 5 групп:
1. ввод и отображение данных,
2. прикладные функции, реализующие основные алгоритмы решения прикладных задач(бизнес-логика),
3. функции обработки данных внутри приложения(логика баз данных),
4. функция управления информационными ресурсами (фактически СУБД)
5. служебные функции, необходимые для связывания первых 4-х функций.
С учётом вышесказанного, модель файлового сервера имеет вид (рис2.6.2.2.).
В задачах обработки информации, основанных на системах баз данных, существуют два варианта расположения данных: локальный и удаленный. Локальные данные, как правило, располагаются на жестком диске компьютера, на котором работает пользователь, и находятся в монопольном ведении этого пользователя. Пользователь при этом работает автономно, не завися от других пользователей и никоим образом не влияя на их работу. Удаленные данные располагаются вне компьютера пользователя (пользователей) - на файловом сервере сети или на специально выделенном для этих целей компьютере.
Существуют две технологии (архитектуры) обработки удаленных данных:
файл-серверная архитектура
архитектура клиент-сервер
Обработка запроса одного пользователя: - Обращение к БД (запрос) - Перекачка данных с блокировкой доступа других пользователей - Обработка данных на компьютере пользователя Обработка запроса нескольких пользователей: - Одновременный запрос к тем же данным в БД - Ответ: "Данные заблокированы, подождите, или откройте в режиме только для чтения". |
В стандартной файл-серверной архитектуре данные, располагаясь на файл-сервере, являются, по сути, пассивным источником. Вся ответственность за их получение, обработку, а также за поддержание целостности базы данных лежит на приложении, запущенном с рабочей станции. При этом, поскольку обработка данных осуществляется на рабочей станции, по сети перегоняются вся необходимая для этой обработки информация, хотя интересующий пользователя объем данных может быть меньше пересылаемого раз в десять.
Например, если пользователя интересуют все работники какого-либо предприятия, участвующие в конкретном проекте, его приложение “получит” сначала всех работников и все проекты из базы данных, и только после этого произведет требуемую выборку.
Недостатки ФАЙЛ-СЕРВЕРНОЙ системы:
Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле.
Обработка запроса одного пользователя: – Обращение к БД (SQL-запрос) – Передача ответа – результата обработки Обработка запроса нескольких пользователей: – Одновременный SQL-запрос к тем же данным в БД – Передача ответа – результата обработки. |
В архитектуре клиент-сервер для обработки данных выделяется специальное ядро - так называемый сервер баз данных, который принимает на себя функции обработки запросов пользователей, именуемых теперь клиентами. Сервер баз данных представляет собой программу, выполняющуюся, как правило, на мощном компьютере. Приложения-клиенты посылают с рабочих станций запросы на выборку (вставку, обновление, удаление) данных. При этом сервер выполняет всю “грязную” работу по отбору данных, отправляя клиенту только требуемую “выжимку”. Если приведенный выше пример перестроить с учетом клиент-серверной архитектуры, то приложение-клиент “получит” от сервера в качестве результата список только тех работников, которые участвуют в заданном проекте, и не более того!
Такой подход обеспечивает решение трех важных задач:
уменьшение нагрузки на сеть
уменьшение требований к компьютерам-клиентам
повышение надежности и сохранение логической целостности базы данных.
Понятие объектно-ориентированных баз данных (ООБД). Особенности проектирование ООБД. Основные характеристики и преимущества и недостатки ООСУБД.
Появление объектно-ориентированных СУБД вызвано потребностями программистов на ОО-языках, которым были необходимы средства для хранения объектов, не помещавшихся в оперативной памяти компьютера. Также важна была задача сохранения состояния объектов между повторными запусками прикладной программы. Поэтому, большинство ООСУБД представляют собой библиотеку, процедуры управления данными которой включаются в прикладную программу. Примеры реализации ООСУБД как выделеного сервера базы данных крайне редки.
Особенности проектирование ООБД.
Поскольку система баз данных является системным программным обеспечением, функции которого вызываются приложением, написанным на определенных базовых языках, можно выделить два различных подхода к проектированию ООБД. Первый состоит в хранении и управлении объектами, созданными программами, которые написаны на конкретных объектно-ориентированных языках, в частности, на С++ или Smalltalk Конечно, для этого можно использовать и РБД. Однако такие базы данных ничего не знают об объектах, методах и наследовании. Поэтому необходимо написать "менеджер объектов" или "объектно-ориентированный слой" для управления методами и наследованием и для трансляции объектов в кортежи отношений. Но менеджер объектов вместе с РБД и дают ООБД (конечно, с низкой производительностью).
Другой подход предоставляет доступ к объектно-ориентированным средствам пользователям традиционных языков. Этот подход, по сути, превращает такие языки, как С, FORTRAN, COBOL и т.д., в объектно-ориентированные языки. Спроектированные таким образом ООБД могут использоваться для хранения и управления объектами, созданными программами, написанными и на объектно-ориентированных языках. Хотя для отображения таких объектов в объекты базы данных также нужен программный слой, он намного проще, чем менеджер объектов, требуемый РБД.
Основные характеристики ООСУБД
Структура объектной модели описываются с помощью трех ключевых понятий:
инкапсуляция - каждый объект обладает некоторым внутренним состянием (хранит внутри себя запись данных), а также набором методов - процедур, с помощью которых (и только таким образом) можно получить доступ к данным, определяющим внутреннее состояние объекта, или изменить их. Таким образом, объекты можно рассматривать как самостоятельные сущности, отделенные от внешнего мира.
наследование - подразумевает возможность создавать из классов объектов новые классы объекты, которые наследуют структуру и методы своих предков, добавляя к ним черты, отражающие их собственную индивидуальность. Наследование может быть простым (один предок) и множественным (несколько предков).
полиморфизм - различные объекты могут по разному реагировать на одинаковые внешние события в зависимости от того, как реализованы их методы.
Для поддержания целостности объектно-ориентированный подход предлагает использовать следующие средства:
автоматическое поддержание отношений наследования
возможность объявить некоторые поля данных и методы объекта как "скрытые", не видимые для других объектов; такие поля и методы используются только методами самого объекта
создание процедур контроля целостности внутри объекта
Средства манипулирования данными:
К сожалению, в объектно-ориентированном программировании отсутствуют общие средства манипулирования данными, такие как реляционная алгебра или реляционное счисление. Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, обычно это SmallTalk, C++ или Java.
Основные преимущества и недостатки ООСУБД
В объектно-ориентированных базах данных, в отличие от реляционных, хранятся не записи, а объекты. ОО-подход представляет более совершенные средства для отображения реального мира, чем реляционная модель:
естественное представление данных. В реляционной модели все отношения принадлежат одному уровню, именно это осложняет преобразование иерархических связей модели "сущность-связь" в реляционную модель (см. параграф ). ОО-модель можно рассматривать послойно, на разных уровнях абстракции.
имеется возможность определения новых типов данных и операций с ними.
В то же время, ОО-модели присущ и ряд недостатков:
осутствуют мощные непроцедурные средства извлечения объектов из базы. Все запросы приходится писать на процедурных языках, проблема их оптимизации возлагается на программиста.
вместо чисто декларативных ограничений целостности (типа явного объявления первичных и внешних ключей реляционных таблиц с помощью ключевых слов PRIMARY KEY и REFERENCES) или полудекларативных триггеров для обеспечения внутренней целостности приходится писать процедурный код.
Очевидно, что оба эти недостатка связаны с отсутствием развитых средств манипулирования данными. Эта задача решается двумя способами - расширение ОО-языков в сторону управления данными (стандарт ODMG), либо добавление объектных свойств в реляционные СУБД (SQL-3, а также так называемые объектно-реляционных СУБД).
Исторически первыми появились информационные системы с использованием файл-сервера. Файл-сервер только извлекает данные из файла (файлов) базы данных и передает их клиенту для дальнейшей обработки (рис. 1.1).
В процессе работы из базы данных клиенту передаются большие объемы информации. Значительный сетевой трафик иногда особенно сильно сказывается при одновременной работе даже уже нескольких клиентов, например вы скачиваете игры на Андроид Fruit Ninja или другие приложения. В файл-серверной архитектуре всегда передаются избыточные данные. Неважно, сколько записей из базы данных нужны клиенту — файлы базы данных передаются в самом общем случае целиком. Что касается MS Access, то нагрузку на сеть добавляют еще и объекты приложения, такие как формы, отчеты и т. д. Они вместе с данными хранятся в одном файле на компьютере-сервере.
Рис. 1.1. Структура информационной системы с файл-сервером
В MS Access 2010 у разработчика имеется возможность разделить данные и приложение, работающее с этими данными. В этом случае приложение тиражируется на компьютерах-клиентах, а база данных остается на компьютере-сервере.
Информационные системы с клиент-серверной архитектурой позволяют избежать проблем файл-серверных приложений. При такой архитектуре сервер базы данных, расположенный на компьютере-сервере, обеспечивает выполнение основного объема обработки данных. Клиентское приложение формирует запросы к серверу базы данных, как правило, в виде инструкций языка SQL. Сервер извлекает из базы запрошенные данные и передает на компьютер клиента. Главное достоинство такого подхода — значительно меньший объем передаваемых данных.
Рис. 1.2. Структура информационной системы с сервером базы данных
Обеспечение безопасности данных — очень важная функция для успешной работы информационной системы. Если у базы данных слабая система безопасности, любой достаточно подготовленный пользователь может нанести серьезный ущерб работе предприятия. Следует отметить, что защита данных в файл-серверной информационной системе изначально не может быть обеспечена на должном уровне.
Читайте также: