Модели сетевых служб и распределенных приложений.
Значительная часть приложений, работающих в компьютерах сети, является сетевыми. Достаточно типичным является сетевое приложение, состоящее из двух частей: одна часть работает на компьютере, хранящем базу данных большого объема, а вторая – на компьютере пользователя. Можно представить себе случай, когда приложение распределено и между большим числом компьютеров. Распределенным в сетях может быть не только прикладное, но и системное программное обеспечение – компоненты операционных систем. Программы, которые выполняют некоторые общие и часто встречающиеся в распределенных системах функции, обычно становятся частями операционных систем и называются сетевыми службами.
Целесообразно выделить три основных параметра организации работы приложений в сети:
- способ разделения приложения на части, выполняющиеся на разных компьютерах сети;
- выделение специализированных серверов в сети, на которых выполняются некоторые общие для всех приложений функции;
- способ взаимодействия между частями приложений, работающих на разных компьютерах.
Существуют типовые модели распределенных приложений. Следующая модель детально разделяет приложение на шесть частей:
- средства представления данных на экране, например средства графического пользовательского интерфейса;
- логика представления данных на экране описывает правила и возможные сценарии взаимодействия пользователя с приложением: выбор в системе меню, выбор элемента в списке…;
- прикладная логика – набор правил для принятия решений, вычислительные процедуры и операции;
- логика данных – операции с данными, хранящимися в некоторой базе, которые нужно выполнить для реализации прикладной логики;
- внутренние операции базы данных – действия СУБД, вызываемые в ответ на выполнение запросов логики данных, такие, как поиск записи по определенным признакам;
- файловые операции – стандартные операции с файлами и файловой системой, которые обычно являются функциями операционной системы.
На основе этой модели можно построить несколько схем распределения частей приложения между компьютерами сети.
Распределенная обработка информации в системах клиент-сервер.
На практике приложения разделяют на две или три части, но наиболее распространенной является двухзвенная схема, когда нагрузка ложится в основном на один узел – либо на центральный компьютер, либо на клиентскую машину. Термин клиент-сервер справедлив для любой двухзвенной схемы, но исторически он оказался более тесно связан со схемой, в которой сервер управляет базами данных и файлами, хранящимися в этих базах.
В схеме файлового сервера на клиентской машине выполняются все части приложений, кроме файловых операций. В сети имеется достаточно мощный компьютер, имеющий дисковую подсистему большого объема – он играет роль файлового сервера и представляет собой централизованное хранилище данных, находящихся в разделяемом доступе. Для того, чтобы в этой схеме можно было использовать локальные приложения, в сетевые операционные системы ввели такой компонент сетевой файловой службы, как редиректор, который перехватывает обращения к удаленным файлам и направляет запросы в сеть, чтобы освободить приложение от необходимости явно задействовать сетевые системные вызовы.
Файловый сервер представляет собой компонент наиболее популярной сетевой службы – сетевой файловой системы, которая лежит в основе многих распределенных приложений и некоторых других сетевых служб. Первые сетевые ос (NetWare, Novell, IBM, PC LAN Program, Microsoft MS-Net) обычно поддерживали две сетевые службы – файловую службу и службу печати, оставляя реализацию остальных функций разработчикам распределенных приложений.
Такая схема обладает хорошей масштабируемостью, так как дополнительные пользователи и приложения лишь незначительно увеличивают нагрузку на файловый сервер. Но есть и недостатки:
- во многих случаях возрастает сетевая нагрузка, что приводит к увеличению времени реакции приложения.
- компьютер клиента должен быть высокой вычислительной мощности, чтобы справляться с представлением данных, логикой приложения, логикой данных и поддержкой операций базы данных.
Наиболее часто используется схема, в которой на серверный компьютер возлагаются функции проведения внутренних операций базы данных и файловых операций. Клиентский компьютер при этом выполняет все функции, специфические для данного приложения, а сервер – функции, реализация которых не зависит от специфики приложений, из-за чего они могут быть оформлены в виде сетевых служб. Практически все мощные СУБД, позволяющие поддерживать большое число сетевых приложений, построены в соответствии и описанной моделью клиент-сервер.