Клиент - серверные технологии

Автор работы: Пользователь скрыл имя, 25 Октября 2011 в 18:32, курсовая работа

Описание

Клиент-сервер (англ. Client-server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемых серверами, и заказчиками услуг, называемых клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.

Содержание

Введение
1. Архитектура “клиент-сервер”
1.1. Открытые системы
1.2. Клиенты и серверы локальных сетей
1.3. Системная архитектура “клиент-сервер”
1.4. Серверы баз данных
1.5. Принципы взаимодействия между клиентскими
и серверными частями
1.6. Преимущества протоколов удаленного вызова
процедур
1.7. Типичное разделение функций между клиентами
и серверами
1.8. Архитектуры процессора базы данных
2. Трехуровневая архитектура “клиент-сервер”
3. Программные средства разработки
3.1. Универсальные средства
3.2. Персональные СУБД
4. Intranet и архитектура “клиент-сервер”.
4.1. Двухуровневая архитектура “клиент-сервер”
4.2. Трехуровневая архитектура “клиент-сервер”
4.2.1. Программы расширения серверной части

Работа состоит из  1 файл

Курсовая по информатик. 1 курс.DOC

— 138.50 Кб (Скачать документ)

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

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

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

Если  система реализована  на основе стандартного пакета RPC, она может  быть легко перенесена в любую открытую среду.  
 

Технология  “клиент-сервер” применительно  к СУБД сводится к разделению системы  на две части – приложение-клиент (front-end) и сервер базы данных (back-end). Эта  архитектура совмещает лучшие черты обработки данных на мэйнфреймах и технологии “файл-сервер”. От мэйнфреймов технология “клиент-сервер” позаимствовала такие черты, как централизованное администрирование, безопасность, надежность. От технологии “файл-сервер” унаследованы низкая стоимость и возможность распределенной обработки данных, используя ресурсы компьютеров-клиентов. Сейчас графический интерфейс пользователя стал стандартом для систем “клиент-сервер”. Кроме того, архитектура “клиент-сервер” значительно упрощает и ускоряет разработку приложений за счет того, что правила проверки целостности данных находятся на сервере. Неправильно работающее клиентское приложение не может привести к потере или искажению данных. Все эти возможности, ранее свойственные только сложным и дорогостоящим системам, сейчас доступны даже небольшим организациям. Стоимость оборудования, программного обеспечения и обслуживания для персональных компьютеров в десятки раз ниже, чем для мэйнфреймов.

Особенности обработки данных в различных  архитектурах показаны на рис.1. 
 

Рис.1. Обработка данных в различных архитектурах 

Локальный компьютер

            Локальное приложение  

 

      СУБД

 

                  Данные 
 

Архитектура “файл-сервер”

          Клиент    

      Файл-сервер    

        Сетевое приложение

   Данные

                                                СУБД     

                                             Клиент

         пересылка     Сетевое приложение

         данных

                                                СУБД     
 

Архитектура “клиент-сервер” 

         

   Сервер БД

         Клиентское   

         СУБД       приложение

   Данные

         Клиентское             приложение   

пересылка запросов

  и  результатов 
 

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

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

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

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

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

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

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

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

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

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

Упоминавшиеся выше протоколы удаленного вызова процедур особенно важны в системах управления базами данных, основанных на архитектуре "клиент-сервер".  

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

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

1.7. Типичное разделение  функций между  клиентами и серверами

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

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

С другой стороны, иногда хотелось бы перенести  большую часть прикладной системы  на сторону сервера, если разница  в мощности клиентских рабочих станций и сервера чересчур велика. В общем-то при использовании RPC это сделать нетрудно. Но требуется, чтобы базовое программное обеспечение сервера действительно позволяло это. В частности, при использовании ОС UNIX проблемы практически не возникают.  
 

1.8. Архитектуры процессора  базы данных.

Основная  часть любой системы “клиент-сервер”  – это сервер БД. Со времени возникновения  архитектуры “клиент-сервер” появилось  много вариантов архитектуры процессора БД, поскольку он во многом определяет успех всей системы. Основное требование к серверу БД – обеспечение минимального времени выполнения запросов при максимально возможном числе пользователей. Существуют две основные архитектуры для построения процессора БД: архитектура с несколькими процессами и многопоточная архитектура.  

1. Архитектура с несколькими процессами

Характеризуется тем, что несколько экземпляров  исполняемого файла работают одновременно. Эти системы отличаются хорошей масштабируемостью, но требуют значительных расходов памяти, так как память каждому экземпляру приложения выделяется отдельно. Эта архитектура подразумевает наличие эффективного механизма взаимодействия процессов и полагается на операционную систему при разделении процессорного времени между отдельными экземплярами приложения. Самый известный пример сервера, построенного по этой архитектуре, - Oracle Server. Когда пользователь подключается к БД Oracle, он в действительности запускает отдельный экземпляр исполняемого файла процессора базы данных.

2. Многопоточная архитектура

Эта архитектура  использует только один исполняемый  файл, с несколькими потоками исполнения. Главное преимущество – более скромные требования к оборудованию, чем для архитектуры с несколькими процессами. Здесь сервер берет на себя разделение времени между отдельными потоками, иногда давая преимущество некоторым задачам над другими. Кроме того, отпадает необходимость в сложном механизме взаимодействия процессов. По этой архитектуре построены MS SQL Server и Sybase SQL Server.  
 
 
 
 
 
 
 
 

2. Трехуровневая архитектура “клиент-сервер”

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

•презентационная  логика (Presentation Layer - PL), предназначенная для работы с данными пользователя;

•бизнес-логика (Business Layer - BL), предназначенная для проверки правильности данных, поддержки ссылочной целостности ..;

•логика доступа к ресурсам (Access Layer - AL), предназначенная для хранения данных; 

Таким образом можно, можно придти к  нескольким моделям клиент-серверного взаимодействия :  

1. "Толстый" клиент. (fat client)

      Сервер  БД     Пользовательский интерфейс

 

   Данные      Бизнес-логика

       

                                            

        Пользовательский интерфейс 

        Бизнес-логика 
 
 

      Наиболее часто встречающийся вариант реализации архитектуры клиент-сервер в уже внедренных и активно используемых системах. Такая модель подразумевает объединение в клиентском приложении как PL, так и BL, таким образом обеспечивается полная децентрализация управления бизнес-логикой. Однако в случае необходимости выполнения каких-либо изменений в клиентском приложении придется менять исходный код. Серверная часть, при описанном подходе, представляет собой сервер баз данных, реализующий AL. К описанной модели часто применяют аббревиатуру RDA - Remote Data Access.  
 
 
 
 

Информация о работе Клиент - серверные технологии