Системная архитектура клиент-сервер. Удаленный вызов процедур.

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

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

Общим решение проблемы мобильности систем, основанным на архитектуре клиент-сервер, является опора на программные пакеты, реализующие удаленный вызов процедур (Remote Procedure Call).

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

 

Сервера баз данных.

Термин «сервер БД» используется для обозначения всей СУБД, основанной на архитектуре клиент-сервер, включая серверную и клиентскую часть. Такие системы предназначены для хранения и обеспечения доступа к БД. Обычно одна БД целиком хранится в одном узле сети и поддерживается сервером в сервере БД, представляющим собой простое и дешевое приближение к распределенным БД, так как общая БД доступна для всех пользователей локальной сети. Доступ к базам данных из прикладной программы или пользователя осуществляется с использованием клиентской части системы. В качестве основного интерфейса между клиентскими и серверными частями выступает язык SQL.

Язык SQL представляет собой текущий стандарт интерфейса СУБД в открытых системах. Соблюдая предосторожности при программировании, можно создать прикладные информационные системы мобильные в классе SQL-серверов.

Серверы БД, интерфейс которых основан на языке SQL, обладают своими преимуществами и недостатками.

Преимущества: стандартный открытый интерфейс.

Недостатки. При высоком уровне интерфейса между клиентской и серверной частями системы со стороны клиента работает слишком мало программ СУБД. Это нормально, если на стороне клиента используется маломощная работающая станция. Но если клиентский компонент обладает достаточной мощностью, то часто возникает необходимость возложить на него большие функции управления БД. Разгрузить сервер, который в этом случае является узким местом этой системы. Одним из корректных направлений СУБД является гибкая конфигурированная система, при которой распределяются функции между клиентской и пользовательской системами.

Преимущества протоколов удаленного вызова процедур(RPC)

Использование механизма удаленного вызова процедур позволяет перераспределить функции между клиентскими и серверными частями систем, т. к. в тексте программы RPC ничем не отличается от ее обычного вызова. Следовательно, любой компонент системы может располагаться и на стороне сервера, и на стороне клиента.

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