Клиент-серверная архитектура (курсовая) (548451), страница 2
Текст из файла (страница 2)
Клиент-серверная архитектура.2.1. Основные понятия.2.1.1. Определения.Архитектура информационной системы - концепция, определяющаямодель, структуру, выполняемые функции и взаимосвязь компонентовинформационной системы. [3]Клиент-сервер(Client-server)—вычислительнаяилисетеваяархитектура, в которой задания или сетевая нагрузка распределены междупоставщиками услуг (сервисов), называемыми серверами, и заказчикамиуслуг, называемыми клиентами. [4]Сервер — это программа, представляющая какие-то услуги другимпрограммам и обслуживающая запросы клиентов на получение ресурсовопределенного вида.Клиент — это программа, использующая услугу, представляемуюпрограммой сервера.Часто люди клиентом или сервером просто называют компьютер, накотором работает какая-либо из этих программ.
В сущности, клиенти сервер — это роли, исполняемые программами. Клиенты и серверафизически могут находиться на одном компьютере. Одна и та же программаможет быть и клиентом, и сервером одновременно. [5]2.1.2. История.Основным недостатком персональных компьютеров является ихневысокая вычислительная мощность и надежность, а также необходимость8в приобретении дополнительных аппаратных средств для устраненияизолированности отдельных персональных компьютеров друг от друга.Какправило,вычислительнаяпользователяммощностьикомпьютеровпрекрасныенужнысвойстваивысокаяперсональныхкомпьютеров. Поэтому там, где для выполнения сложных вычисленийиспользуютсямощныеизолированныецентральныекомпьютерыстерминалами, их пользователям периодически приходится ходить наперсональные компьютеры для редактирования текстов или выполнениязадач, использующих электронные таблицы.
Это заставляет пользователейосвоить 2 различные операционные системы (на больших машинах обычноустановлены OC MVS, VMS, VM, UNIX, а на персональных - MS DOS/MSWindows, OS/2 или Mac) и не решает задачи совместного использованияданных.В результате опроса представителей 300 крупнейших фирм США,использующих персональные компьютеры, выяснилось, что для 81%опрошенных необходим доступ к данным более чем одного компьютера.Чтобы решить эту задачу, персональные компьютеры начали объединять влокальные сети и устанавливать на них специальные операционныесистемы, например, NetWare фирмы Novell, для совместного использованиякомпьютерами сети файлов, размещенных в различных узлах сети. Этатехнология называется файл-сервер.Однако файл-серверы имеют ряд недостатков. Они не позволяют вполной мере обеспечить конфиденциальность доступа и целостностьданных.
По сети файлы передаются целиком, независимо от того, какаячасть содержащихся в них данных нужна пользователю. Это сильноперегружает сеть и уменьшает быстродействие системы. Невысока инадежность системы на основе файл-серверов. Сбой на одной из рабочихстанций в момент записи файла приводит к потере или искажению данных.Для обеспечения непротиворечивости данных приходится блокироватьфайлы, что также приводит к замедлению работы.
Естественным желанием9специалистов в области вычислительной техники было совместитьпреимуществаперсональныхкомпьютеровимощныхцентральныхкомпьютеров.Первымшагомвэтомнаправленииявилосьиспользованиеперсональных компьютеров в качестве интеллектуальных терминалов. Притаком подходе в персональном компьютере, соединенном с центральнымкомпьютером,запускаетсяспециальноепрограммноеобеспечение,позволяющее этому персональному компьютеру работать в режимеэмуляции терминала.
При этом мы получаем архитектуру, реализующую вседостоинства архитектуры с мощным центральным компьютером, но, крометого, персональный компьютер может использоваться и самостоятельно, посвоему прямому назначению. Теперь нет необходимости иметь на столе 2дисплея, однако большинство недостатков, присущих архитектуре сцентральным компьютером, все еще сохраняется. Кроме того, хотяперсональные компьютеры, имеющие дисплеи с картой VGA, позволяютработать с графикой, однако использовать их в качестве графическоготерминала большой центральной машины неудобно. Задача выполняется вцентральном компьютере и по проводам передаются графические образыэкрана.
Эти образы довольно велики и скорость смены изображения наэкране может быть очень низкой.Следующим шагом в решении описанной выше проблемы явилосьиспользованиеархитектуры клиент-сервер.В такой архитектуре всекомпьютеры сети разделены на 2 группы: клиенты и серверы.
Компьютерсервер - это мощный компьютер с большой оперативной памятью ибольшим количеством дискового пространства. На нем хранится базаданныхивыполняетсявычислительныхресурсов.сложнаяНаобработка,требующаякомпьютерах-клиентахбольшихвыполняютсяпервичная обработка данных при вводе, форматирование данных, а такжеокончательная (финишная) обработка данных, извлеченных с сервера. Вкачествекомпьютеров-клиентовобычно10используютсяперсональныекомпьютеры типа IBM PC или Macintosh. Преимущества архитектурыклиент-сервер очевидны.
Каждый тип компьютера используется по своемуназначению, а следовательно, обеспечивается более полное использованиевозможностей компьютеров.На компьютерах-клиентах работают знакомые пользователям PCпакеты, позволяющие предоставлять результаты работы всей системы вудобном для анализа и принятия решений виде. На этих компьютерах легкоможнореализоватьдружественныйпользовательскийинтерфейсприложения, использующий графику, цвет, звук, работу с окнами имышью и т.д.
Компьютер-клиент позволяет быстро выполнять ввод ипервичный контроль данных. Для финишной обработки данных могутиспользоваться те редакторы или пакеты электронных таблиц, которыепользователь считает наиболее удобными. В качестве компьютеровклиентов могут одновременно использоваться компьютеры разных типов сразличными операционными системами.Архитектура клиент-сервер позволяет реализовать распределеннуюобработку, поскольку часть работы (интерфейс с пользователем, финишнаяобработка) выполняется на компьютере-клиенте, а часть - на компьютересервере. Это позволяет снизить загрузку сервера и оптимизировать егоработу, а также увеличить число клиентов, одновременно работающих ссервером.Наиболеечастоархитектураклиент-серверприменяетсядляприложений, созданных с использованием систем управления базамиданных (СУБД).Дальнейшимразвитиемархитектурыклиент-серверявилосьиспользование в сети не одного, а нескольких серверов баз данных.
Этопозволило перейти от работы с локальной БД к работе с распределенной БД.Причем работа с распределенной базе данных (БД) "прозрачна" дляпользователя, т.е. он работает с ней так же, как с локальной БД, незадумываясь о том, на каком сервере лежат его данные. Пользователь11обращается к одному из серверов, тот, не найдя у себя нужных данных,автоматически обращается к другим серверам.Многосервернаяархитектурасегодняпредставляетсяоченьперспективной. Она позволяет заменить одну мощную центральную машинуна несколько менее мощных и, следовательно, более дешевых, и еще большераспараллелить обработку данных.
Кроме того, такаяархитектураповышает надежность системы, поскольку при выходе из строя одного изсерверов все приложения, работающие с данными других серверов, могутпродолжать работу. При выходе из строя части локальной или глобальнойсети система может попытаться найти альтернативный путь к нужномусерверу (по другим ветвям сети). Кроме того, на локальных серверах могутхраниться данные, наиболее часто используемые в данном узле, чтопозволяет свести к минимуму передачу данных по сети от сервера к серверу.[6]2.2.Клиент-серверная архитектура применительно к БД.2.2.1. Понятие архитектуры клиент-сервер.Вообще говоря, клиент-серверная система характеризуется наличиемдвух взаимодействующих самостоятельных процессов - клиента и сервера,которые, в общем случае, могут выполняться на разных компьютерах,обмениваясь данными по сети.
По такой схеме могут быть построенысистемы обработки данных на основе СУБД, почтовые и другие системы.Файл-серверная система тоже использует технологию клиент-сервер,однако с точки зрения архитектуры прикладных программ важным являетсято, какого рода ресурсы предоставляет клиентам сервер.В файл-серверной системе данные хранятся на файловом сервере(например, Novell NetWare или Windows NT Server), а их обработка12осуществляетсянарабочихстанциях,накоторых,какправило,функционирует одна из, так называемых, "настольных СУБД" - Access,FoxPro, Paradox и т.п.Приложение на рабочей станции "отвечает за все" - за формированиепользовательскогонепосредственноеинтерфейса,логическуюманипулированиеобработкуданными.данныхФайловыйизасерверпредоставляет услуги только самого низкого уровня - открытие, закрытие имодификацию файлов, именно файлов, а не базы данных.
База данныхсуществует только в "мозгу" рабочей станции.Такимобразом,непосредственнымманипулированиемданнымизанимается несколько независимых и несогласованных между собойпроцессов. Кроме того, для осуществления любой обработки (поиск,модификация, суммирование и т.п.) все данные необходимо передать по сетис сервера на рабочую станцию.
[7]Рис. 2.1.2. Архитектура файл-сервер.13Понятиеархитектурыклиент-сервервсистемахуправленияпредприятием связано с делением любой прикладной программы на триосновных компонента или слоя. Этими тремя компонентами являются: компонент представления (визуализации) данных; компонент прикладной логики; компонент управления базой данных.Действительно, любая программа, компьютеризирующая выполнениетой или иной прикладной задачи, должна обмениваться информацией спользователем, осуществлять собственно обработку этой информации врамках автоматизации того или иного бизнес-процесса, и, наконец, хранитьданные, используемые в программе, на том или ином постоянном носителе.Критерием,позволяющимотнестиприкладнуюпрограммукархитектуре клиент-сервер, является то, что хотя бы один из трех еекомпонентовполностьювзаимодействиемеждувыполняетсянакомпонентамидругомнакомпьютере,разныхикомпьютерахосуществляется через ту или иную сетевую среду посредством передачизапросов на получение того или иного ресурса.Поскольку архитектура клиент-сервер является частным случаемтехнологии клиент-сервер, в ней обязательно есть клиент и сервер.Соответственно, выделяют клиентскую и серверную стороны приложения.Клиентскаясторонаприложенияфункционируетнарабочемместепользователя, в роли которого в подавляющем числе случаев выступаетперсональныйкомпьютер.Сервернаясторонафункционируетнаспециализированном комплексе, включающем в себя мощные аппаратныесредства, требуемый набор стандартного программного обеспечения,систему управления базами данных и собственно структуры данных.