logo search
Программа ГЭ_спец_2012 ответы light

Архитектура "клиент-сервер": открытые системы, клиенты и серверы локальных сетей, системная архитектура "клиент-сервер", серверы баз данных.

Открытые системы.

Открытая система – это любая система (компьютер, вычислительная сеть, ОС, программный пакет и т.д.), которая построена в соответствии с открытыми спецификациями. Открытые спецификации – опубликованные, общедоступные описания систем, соответствующие стандартам. Основной подход открытых систем – упрощение комплексирования вычислительных систем за счет международной и национальной стандартизации аппаратных и программных интерфейсов. Главная причина развития открытых систем – повсеместный переход к локальным и глобальным сетям. Открытые системы позволяют быть независимыми от поставщиков и наращивать мощность системы, используя аппаратные и программные средства различных производителей, придерживающихся стандартов открытых систем.

Практической опорой системных и прикладных программных средств открытых систем является стандартизованная ОС. В настоящее время такой ОС является ОС Unix, открытость которой заключается в стандартизованном программном интерфейсе м/д ядром и приложениями, что позволяет переносить приложение из одной версии ОС в другую. Модель OSI (модель взаимодействия открытых систем) касается только открытости средств взаимодействия устройств, связанных в вычислительную сеть. Пример открытой системы – Internet (стандарты RFC).

Технологии и стандарты обеспечивают производство системных и программных средств со свойствами мобильности и интероперабельности. Мобильность – простота переноса программной системы в широком спектре аппаратно-программных средств, соответствующих стандартам. Интероперабельность - упрощение комплексирования программных систем на основе использования готовых компонентов со стандартными интерфейсами.

Клиенты и серверы локальных сетей.

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

Рабочая станция предназначена для непосредственной работы пользователя или категории пользователей и обладает ресурсами, соответствующими локальным потребностям данного пользователя. Специфические особенности рабочей станции: 1) объем ОЗУ; 2) наличие и объем дисковой памяти (можно использовать внешнюю память дискового сервера); 3) характеристики процессора и монитора. При необходимости можно использовать ресурсы и/или услуги, предоставляемые сервером.

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

Примеры серверов:

1) сервер телекоммуникаций, обеспечивающий услуги по связи данной локальной сети с внешним миром;

2) вычислительный сервер, производящий вычисления, которые невозможно выполнить на рабочих станциях;

3) дисковый сервер, обладающий расширенными ресурсами внешней памяти;

4) файловый сервер, поддерживающий общее хранилище файлов для всех рабочих станций;

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

Клиент локальной сети - компонент, запрашивающий услуги у некоторого сервера и сервером - компонент, оказывающий услуги некоторым клиентам.

Системная архитектура «клиент-сервер».

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

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

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

Еще 1 проблема связана с возможностью использования разных представлений данных в узлах неоднородной локальной сети. В разных компьютерах может существовать различная адресация, представление чисел, кодировка символов и т.д. Это особенно существенно для серверов высокого уровня: телекоммуникационных, вычислительных, БД.

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

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

Серверы БД.

Сервер БД используют для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая и серверную, и клиентскую части. Такие системы предназначены для хранения и обеспечения доступа к БД.

1) Принципы взаимодействия м/д клиентскими и серверными частями.

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

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

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

Протоколы RPC важны в СУБД, основанных на архитектуре "клиент-сервер".

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

- механизм удаленного вызова скрывает различия между взаимодействующими компьютерами. Физически неоднородная локальная сеть приводится к логически однородной сети взаимодействующих программных компонентов.

3) Разделение функций м/д клиентами и серверами.

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

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