ОСНОВНЫЕ ПОНЯТИЯ АРХИТЕКТУРЫ КЛИЕНТ-СЕРВЕР. Схема клиент сервер
13. Модель Клиент-сервер
В этой базовой модели все процессы в РИС делятся на две возможно перекрывающиеся группы. Процессы, реализующие некоторую службу, например, службу файловой системы или БД, называются серверами. Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами.
Взаимодействие в рамках модели клиент-сервер может быть как синхронным, когда клиент ожидает завершения обработки своего запроса сервером, так и асинхронным, при котором клиент посылает серверу запрос и продолжает свое выполнение без ожидания ответа сервера. Модель клиент-сервер может использоваться как основа описания различных взаимодействий (рис.1.2).
Рис. 1.2 Модель взаимодействия клиент-сервер
Обычно нет четкого различия разделения функций системы между клиентом и сервером. Например, сервер распределенной БД может выступать клиентом, передающим запросы на файловые серверы, отвечающие за хранение таблиц этой БД.
Рассмотрим некое типичное приложение, которое в соответствие с современными представлениями может быть разделено на следующие логические уровни (рис.1.3).
Рис. 1.3 Логические уровни приложения
Уровень интерфейса обычно реализуется на клиенте, что вполне естественно.
На уровне обработки обычно реализуется основная бизнес-логика приложения (функциональность).
Уровень данных содержит программы, которые предоставляют данные обрабатывающим их приложениям. Особым свойством этого уровня является требование сохранности (persistence). Это означает, что когда приложение не работает, данные должны сохраняться в определенном месте (файле или БД) для последующего использования. Этот уровень обычно реализуется на сервере.
Кроме хранения данных, уровень данных обеспечивает поддержку целостности данных для разных приложений. Для БД поддержание целостности означает, что схемы БД, специфические условия приложений (триггеры БД), хранимые процедуры и прочее также хранятся на этом уровне.
Обычно уровень данных реализуется в форме реляционной БД. Это обеспечивает независимость данных от приложений. Применение реляционных баз данных в модели клиент-сервер помогает отделить уровень обработки от уровня данных, рассматривая данные и их обработку независимо друг от друга.
Варианты архитектуры клиент-сервер
Разделение системы на три логических уровня приводит к проблеме физического распределения приложений по отдельным компьютерам в модели клиент-сервер. Самая простая организация предполагает использование двух типов машин:
1. Клиентские машины (рабочие станции), на которых устанавливаются программы-клиенты, реализующие интерфейс.
2. Серверы, реализующие все остальное, то есть уровни обработки и данных.
Проблема такой организации состоит в том, что система не является распределенной, все происходит на сервере, а клиент используется как простой терминал.
Поскольку на практике разных пользователей системы обычно интересует доступ к одним и тем же данным, наиболее простым разнесением функций системы между несколькими компьютерами будет разделение логических уровней приложения между одной серверной частью приложения, отвечающей за доступ к данным, и находящимися на нескольких компьютерах клиентскими частями, реализующими интерфейс пользователя. Логика приложения может быть отнесена к серверу, клиентам или разделена между ними.
Таким образом, программные решения варьируются от минимизации функций интерфейса пользователя на клиенте (тонкий клиент) до передачи клиенту всей работы с пользовательским интерфейсом (толстый клиент). В обоих случаях мы отделяем от приложения графический внешний интерфейс, связанный с остальной частью приложения (находящейся на сервере) с помощью конкретного для данного приложения протокола. В этом подходе внешний интерфейс делает только то, что нужно для предоставления интерфейса приложения.
Архитектуру построенных по такому принципу называют клиент-серверной или двухзвенной (two-tiered architecture) (рис. 1.4). Хотя подобные системы часто не относят к классу распределенных, но формально они могут считаться простейшими представителями распределенных систем.
Рис. 1.4 Двухзвенная архитектура
Развитием архитектуры клиент-сервер является трехзвенная архитектура (three-tiered architecture), в которой интерфейс пользователя, логика приложения и доступ к данным выделены в самостоятельные составляющие системы, которые могут работать на независимых компьютерах (рис. 3).
В такой архитектуре программы, составляющие часть уровня обработки выносятся на отдельный сервер (сервер приложений), но дополнительно могут частично находиться на машинах клиентов и серверов. Типичный пример – обработка транзакций. В этом случае отдельный процесс – монитор транзакций – координирует все транзакции.
Запрос пользователя в подобных системах последовательно обрабатывается клиентской частью системы, сервером логики приложения и сервером баз данных. Однако обычно под распределенной системой понимают системы с более сложной архитектурой, чем трехзвенная.
Рис. 3. Трехзвенная архитектура
Главная его особенность – это размещение логически разных компонентов на разных машинах.
Применительно к приложениям автоматизации деятельности предприятия, распределенными обычно называют системы с логикой приложения, распределенной между несколькими компонентами системы, каждая из которых может выполняться на отдельном компьютере.
Таким образом, в обиходе под распределенной системой часто подразумевают рост многозвенной архитектуры «в ширину», когда запросы пользователя не проходят последовательно от интерфейса пользователя до единственного сервера баз данных.
В современных архитектурах подобное распределение на клиенты и серверы называется горизонтальным распределением. При таком типе распределения клиент или сервер может содержать физически разделенные части логически однородного модуля, причем работа с каждой из частей может происходить независимо (рис. 5).
Рис. 5. Компоненты распределенной системы
Пример – web-сервер, реплицированный на несколько машин в локальной сети. При изменении одной Web-страницы – изменения рассылаются по всем серверам. Сервер, которому будет передан приходящий запрос, выбирается по принципу «карусели». Такая форма распределения используется для выравнивания нагрузки на серверы популярных web-сайтов.
Также могут быть распределены и клиенты. Для простых приложений можно обойтись без серверов. В этом случае говорят об одноранговом распределении (пиринговом). Подобное происходит, например, при связи двух (или более) пользователей. Оба должны запустить одно и то же приложение, чтобы начать сеанс.
Есть и другие варианты организации архитектур, например, которые распределены как вертикально, так и горизонтально.
Итоги
Распределенные системы (РС) состоят из автономных компьютеров, работающих совместно, в виде единой связной системы. Их преимущества по сравнению с монолитными системами:
РИС упрощают интеграцию разных приложений в единую систему;
Масштабируемость. Размер РИС ограничен только размерами базовой сети.
Платой за эти преимущества часто есть усложнение ПО, снижение производительности и проблемы с безопасностью.
Существуют разные типы распределенных систем. Распределенные ОС используются для управления аппаратными средствами взаимосвязанных КС к которым относятся мультипроцессорные и гомогенные мультикомпьютерные системы. Эти РС на самом деле не состоят из автономных компьютеров, но успешно воспринимаются в виде единой системы. Сетевые ОС, с другой стороны, объединяют разные компьютеры, работающие под управлением своих ОС, так что пользователи могут получать доступ к локальным службам каждого из узлов.
Современные РС обычно содержат поверх сетевой ОС промежуточный слой ПО (middleware), предназначенный для того чтобы скрыть гетерогенность и распределенную природу базового набора компьютеров. РС с промежуточным слоем требуют специфическую модель распределения и связи. Известные модели основаны на удаленном вызове процедур, а также на распределенных объектах, файлах и документах.
Для каждой РС важна схема ее внутренней организации. Наиболее распространенная модель – Клиент-сервер. Эта модель тесно связана с традиционным программированием, в котором службы реализуются в виде процедур в отдельных модулях. Дальнейшее уточнение обычно состоит в подразделении на уровень пользовательского интерфейса, уровень обработки и уровень данных. Сервер обычно отвечает за уровень данных, а уровень пользовательского интерфейса реализуется на стороне клиента. Уровень обработки может быть реализован на клиенте, на сервере или разделен между ними.
В современных РС для построения крупных систем такой вертикальной организации приложений модели клиент-сервер недостаточно. Необходимо горизонтальное распределение, при котором клиенты и серверы физически распределены и реплицируются на несколько компьютеров. Типичным примером успешного применения горизонтального распределения является Web.
НОУ ИНТУИТ | Лекция | Типовые архитектуры
Аннотация: В лекции рассматриваются типичные способы построения распределенных систем
Итак, как говорилось ранее, в настоящее время накоплен значительный успешный опыт в разработке распределенных приложений, который позволяет говорить о наличии типовых архитектур, некоторые из которых будут рассмотрены в этом разделе.
Клиент-сервер
Первый тип, который будет нами изучен, - архитектура "клиент-сервер" (рис. 2.1). Это в настоящее время наиболее распространенная архитектура, в которой выполнено, пожалуй, большинство работающих информационных систем. Существует даже мнение, что почти все остальные архитектуры могут быть представлены как большая или меньшая вариация этой, базовой.
Рис. 2.1. Архитектура "клиент-сервер"В традиционном понимании система, выполненная в архитектуре "клиент-сервер", представляет собой совокупность взаимодействующих компонент двух типов - клиентов и серверов. Обычным также является разнесение этих компонент по узлам двух типов - соответственно узлам-клиентам и узлам-серверам. Клиенты обращаются к серверам с запросами, серверы их обрабатывают и возвращают результат. Клиент, вообще говоря, может обращаться с запросами к нескольким серверам. Серверы также могут обращаться с запросами друг к другу. Таким образом, типичный протокол для одного факта взаимодействия может быть представлен в виде двух обменов - запрос на сервер и ответ сервера.
Наиболее часто встречающийся класс приложений, выполненных в архитектуре "клиент-сервер", - различные приложения, работающие с базами данных. В таком случае в качестве сервера выступает СУБД, обеспечивающая выполнение запросов клиента, который, в свою очередь, реализует интерфейс пользователя.
Рассмотренные далее модели систем, по сути, являются вариациями архитектуры "клиент-сервер".
Модель сервиса (один сервис - много серверов)
Модель сервиса (рис. 2.2) представляет собой реализацию ситуации, при которой одну услугу реализует не один, а несколько серверов, представляемых клиенту как единое целое. Строго говоря, предложенная модель является чистым клиент-сервером, у которого сервер имеет сложную структуру (не монолитен). Этот вариант особенно хорош для критичных сервисов, для которых недопустима приостановка обслуживания. Поскольку сервис реализуется сразу несколькими серверами, остановка одного из них не является критической1. Для прекращения обслуживания клиентов необходима остановка всех серверов системы. Кроме того, такая схема позволяет реализовать различные стратегии балансировки нагрузки между серверами системы.
Таким образом, может быть существенно увеличена как производительность системы, так и ее устойчивость к сбоям. Однако наряду с плюсами у предложенной модели есть и минусы: самый большой - более сложная реализация по сравнению с базовой архитектурой. В самом деле, поскольку все серверы обеспечивают один и тот же сервис, возникают проблемы либо с репликацией обрабатываемых данных (поддержание на всех серверах системы актуальной копии данных), либо с поддержанием целостности распределенных данных.
Технология подключения через proxy
Примером системы, построенной в такой архитектуре, является привычная система из браузера, прокси-сервера и веб-сервера.
Отличием от ранее рассмотренных моделей является то, что клиент соединяется не с сервером, а с неким промежуточным компонентом (посредником) (рис. 2.3). Этот посредник, в свою очередь, от имени кли-
Рис. 2.3. Технология подключения через proxyента передает запрос серверу. При этом посредник может сам решать, на какой из серверов послать запрос (возможны стратегии балансировки нагрузки). Кроме того, он может поддерживать кэш последних задаваемых запросов и при очередном запросе пользователя вернуть ему ответ, не обращаясь к серверу2.
Следует отметить, что при неправильном построении посредник может стать узким местом всей системы.
Как уже говорилось ранее, этот подход особенно часто применяют при работе в Internet.
Сервер инициирует соединение
В классической архитектуре "клиент-сервер" инициатором диалога всегда выступает клиент. Можно, однако, представить и другую ситуацию - диалог инициирует сервер, "проталкивая" информацию на клиента. Роль клиента в таком случае сводится к реакции (просмотру) на сообщения сервера. Типичным примером является работа "по подписке". Представим себе, что сервер получает какие-то события из внешнего источника. События имеют тип. Клиент, заинтересованный в получении события определенного типа, сообщает о своей заинтересованности серверу. Сервер, получив очередное событие, передает его всем заинтересованным в нем клиентам. Приведенный алгоритм является упрощенным описанием работы очень часто используемой службы событий (подобная служба есть практически во всех современных middleware ).
Мобильные агенты
Идея рассматриваемой модели (рис. 2.4) состоит в том, что зачастую, как это ни парадоксально, клиент сам в состоянии выполнить ту задачу, решение которой он запросил у сервера, более того, данные, необходимые для решения этой задачи, располагаются на клиенте. В таком случае для разгрузки сервера (и очень часто - для снижения сетевого трафика) целесообразно решать эту задачу на клиенте. Но как это сделать, если у клиента нет соответствующего программного модуля, содержащего необходимую функциональность? Ответ таков - этот модуль нужно клиенту отправить. Клиент, получив модуль (этот модуль называется мобильным агентом), может выполнить его локально, решив таким образом задачу. В качестве примера можно рассмотреть взаимодействие браузера и
Рис. 2.4. Мобильные агентывеб-сервера, возвращающего страницу, которая содержит апплет. Апплет также передается клиенту и выполняется в браузере (т.е. на клиенте), выполняя какие-то значимые для пользователя действия. Основная проблема для такого подхода состоит в сложности реализации механизма передачи и выполнения мобильных агентов, а также контроля безопасности3. Однако, современные средства middleware ( Java, например) такими возможностями обладают.
Тонкий клиент
В течение нескольких последних лет наблюдается постоянное увеличение количества применяемых портативных устройств - сотовых телефонов, PDA и т.д. Возникает естественное желание использовать такие устройства как средства для работы с информационными системами - почему бы, например, не зайти на wap -сайт туристического агентства и не заказать путевку прямо с сотового телефона? Поскольку в большинстве современных телефонов встроен wap -браузер, в этом нет ничего невозможного.
Однако интерфейс, предоставляемый браузерами, весьма ограничен. С другой стороны, в силу ограниченной мощности мобильных устройств в них пока не удается размещать приложения со сложной бизнес-логикой.
Рис. 2.5. Тонкий клиентРешить эту проблему можно, используя технологию "тонкого клиента" (рис. 2.5). Суть этой технологии состоит в том, что клиент выполняет очень ограниченную по функционалу задачу (очень часто - только прием ввода с клавиатуры и других устройств и обработка команд рисования). Схема работы подобных систем в простейшем случае следующая. Клиентская программа передает весь ввод пользователя (нажатия клавиш, движение мыши и т.д.) по сети серверу. Сервер разбирает и обрабатывает этот ввод и передает клиенту готовые экраны, которые тот просто отображает4. Этот принцип используется в системах типа X-Windows уже очень давно. Таким образом, сервер фактически берет на себя не только задачу управления данными, но и вообще все задачи по логике клиентского интерфейса.
Архитектура P2P (Peer to Peer)
Другой архитектурой, встречающейся, в основном, в специальных областях, является архитектура P2P (рис. 2.6). Приложение, выполненное в такой архитектуре, не имеет четкого разделения на серверные и клиентские модули - все его части равноправны и могут выполняться на любых узлах.
Рис. 2.6. Архитектура P2PТаким образом, на одном и том же узле в один момент выполняются части системы, обрабатывающие запросы других частей (и узел выполняет "серверную" часть), а в другой момент времени - части системы, посылающие запросы (и узел выполняет "клиентскую" часть). Причем приложение может быть устроено так, что вызывающая часть не знает, локально или удаленно расположена вызываемая. Построенные таким образом приложения обладают уникальными свойствами - их части никак не привязаны друг к другу и к узлам, на которых они исполняются. Таким образом, от запуска к запуску может меняться состав модулей, расположенных на узле. Это позволяет организовывать очень изощренные политики распределения нагрузки, а также обеспечивать очень хорошие показатели масштабируемости и отказоустойчивости. Такая архитектура активно используется для разработки параллельных вычислительных систем для решения сложных вычислительных задач. Например, базовая техника при программировании с применением технологии MPI состоит в том, что на нескольких узлах запускается одна и та же программа, которая, однако, ведет себя иначе (срабатывают различные ветви условных переходов), в зависимости от порядкового номера машины, на которой она запущена. Совокупность этих процессов представляет собой распределенную систему, решающую поставленную задачу.
www.intuit.ru
Приложения клиент-сервер. Классы приложений клиент-сервер. Трехзвенная архитектура клиент-сервер.
Архитектура клиент-сервер - сетевое окружение, в котором управление данными осуществляется на серверном узле, а другим узлам предоставляется доступ к данным.
Приложение клиент-сервер- любое приложение, в котором инициатор действия находится в одной системе, а исполнитель действия — в другой.
Окружение клиент-сервер состоит из клиентов и серверов. Клиентские машины представляют собой однопользовательские персональные компьютеры или рабочие станции. Наиболее известные примеры подобных интерфейсов — интерфейсы операционных систем Microsoft Windows и Macintosh.
Наиболее распространенным типом сервера в архитектуре клиент-сервер является сервер баз данных, управляющий реляционной базой данных. Существуют классы приложений с разными вариантами распределения задач между сервером и клиентом:
♦ Обработка данных на базе хоста. Данная схема не является настоящим приложением клиент-сервер, а относится к традиционному окружению мэйнфрейма, когда вся или практически вся обработка данных осуществляется на главной вычислительной машине. В подобной вычислительной среде интерфейс пользователя предоставляет примитивный терминал.
♦ Обработка данных на базе сервера. Простейшим классом конфигурации клиент-сервер является схема, в которой клиент отвечает лишь за предоставление графического интерфейса пользователя, тогда как практически вся обработка данных осуществляется на сервере.
♦ Обработка данных на базе клиента. Практически вся обработка данных осуществляется на клиенте, за исключением процедур проверки целостности данных и прочей логики, относящейся к обслуживанию базы данных, которые лучше исполнять на сервере. Она позволяет пользователю работать с приложениями, соответствующими его локальным потребностям. Архитектура с использованием сервера приложений (трехзвенная архитектура):
предполагает наличие следующих компонентов приложения: клиентское приложение (обычно говорят «тонкий клиент» или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных.
Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом:
1.) Представление данных — на стороне клиента.
2.) Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
3.)Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.
Мультипрограммирование.
Мультипрограммирование, или многозадачность,— это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера. Наиболее характерными критериями эффективности вычислительных систем являются:
- пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени;
- удобство работы пользователей, заключающееся, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;
- реактивность системы — способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главная цель и критерии эффективности: максимальная пропускная способность, т. е. решение максимального числа задач в единицу времени.
Канал - специализированный процессор ввода-вывода. Обычно канал имеет систему команд, отличающуюся от системы команд центрального процессора. Эти команды специально предназначены для управления внешними устройствами. Канальные программы могут храниться в той же оперативной памяти, что и программы центрального процессора.
Другой способ совмещения вычислений с операциями ввода-вывода реализуется в компьютерах, в которых внешние устройства управляются не процессором ввода-вывода, а контроллерами. Каждое внешнее устройство имеет свой собственный контроллер, который автономно отрабатывает команды, поступающие от центрального процессора.
Но существует другой способ мультипрограммирования –разделение времени, который повышает удобство и эффективность работы пользователя.
Пользователям предоставляется возможность интерактивной работы сразу с несколькими приложениями. Системы разделения времени призваны исправить основной недостаток систем пакетной обработки — изоляцию пользователя-программиста от процесса выполнения его задач. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго и время ответа оказывается приемлемым. Время реакции системы - заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия), а соответствующее свойство системы — реактивностью.
cyberpedia.su
Сеть типа клиент-сервер
Под сетью типа клиент-сервер понимают сеть, в центре которой находится мощный PC (называемый сервером или файловым сервером), соединенный с отдельными рабочими станциями (клиентами). Такое соединение компьютеров называют сетью типа клиент-сервер.
Отдельные рабочие станции используют ресурсы сервера, поэтому могут быть оснащены более скромно. Управление сетью, в смысле управления отдельными рабочими станциями, а также контроль за периферийными устройствами сети, такими как модемы, факсы и т. д., осуществляется специальным мощным сетевым программным обеспечением. Топология таких сетей может быть различной.
Топология "звезда"
В сети с топологией "звезда" файловый сервер находится в центре (рис. 24.4).
Рис. 24.4. Топология "звезда"
Сеть такого типа имеет свои достоинства.
П Повреждение кабеля является проблемой для одного конкретного компьютера и в целом не сказывается на работе сети.
П Просто выполняется подключение, т. к. рабочая станция должна соединяться только с сервером.
П Надежный механизм защиты от несанкционированного доступа.
П Высокая скорость передачи данных от рабочей станции к серверу.
Кроме достоинств, имеются и недостатки. Перечислим их.
П Если географически сервер находится не в центре сети, то подключение к нему отдельных удаленных рабочих станций может быть затруднительным и дорогим.
П В то время как передача данных от рабочей станции к серверу (и обратно) происходит быстро, скорость передачи данных между отдельными рабочими станциями мала.
П Мощность всей сети зависит от возможностей сервера. Если он недостаточно оснащен или плохо сконфигурирован, то будет являться "тормозом" для всей системы.
П Невозможна коммуникация между отдельными рабочими станциями без сервера.
Кольцевая топология В случае кольцевой тополгии все рабочие станции и сервер соединены друг с другом по кольцу, по которому посылаются данные и адрес получателя. Рабочие станции получают соответствующие данные, анализируя адрес посланного сообщения. Топология такой сети показана на рис. 24.5.
Достоинства:
П т. к. информация постоянно циркулирует по кругу между последовательно соединенными PC, то существенно сокращается время доступа к этим данным;
П нет ограничений на длину всей сети, т. е. имеет значение только расстояние между отдельными компьютерами.
Недостатки:
П время передачи данных увеличивается пропорционально числу соединенных в кольцо компьютеров;
П каждая рабочая станция причастна к передаче данных. Выход из строя одной станции может парализовать всю сеть, если не используются специальные переходные соединения;
П при подключении новых рабочих станций сеть должна быть кратковременно выключена.
Рис. 24.5. Кольцевая топология Шинная топология Сеть с шинной топологией похожа на центральную линию, к которой подключены сервер и отдельные рабочие станции. Она получила широкое распространение, что, прежде всего, можно объяснить небольшими потребностями в кабеле и высокой скоростью передачи данных.
Для исключения затухания электрического информационного сигнала вследствие переотражений в линии связи такой сети на концах линии устанавливаются специальные заглушки, называемые терминаторами (рис. 24.6).
Достоинства:
П небольшие затраты на кабели;
П рабочие станции в любой момент времени могут быть установлены или отключены без прерывания работы всей сети;
П рабочие станции могут коммутироваться друг с другом без помощи сервера.
Недостатки:
П при обрыве кабеля выходит из строя весь участок сети от места разрыва;
П возможность несанкционированного подключения к сети, поскольку для увеличения числа рабочих станций нет необходимости в прерывании работы сети.
Рис. 24.6. Шинная топология
⇐Топология сети | Аппаратные средства PC | Компоненты локальной сети⇒
www.delphiplus.org
Варианты клиент-серверной архитектуры. - МИГКУ ИТ-51вс
Варианты клиент-серверной архитектуры.
Централизованная система
Все данные на одном ПК. Таких приложений вагон и маленькая тележка — от всяких наколенных поделок на M$ Access до Mozilla Firefox (он использует файловую СУБД SQLite для хранения некоторых данных)
Архитектура «файл-сервер»
Наиболее простой случай распределённой обработки данных, на сервере располагаются только файлы БД, а клиентское приложение оперирует собственной копией СУБД, самостоятельно работает с данными, получаемыми от сервера.Использование файл-серверов предполагает, что вся обработка данных выполняется на рабочей станции, а фал-сервер лишь выполняет функции накопителя данных и средств доступа.
Двухуровневая архитектура «клиент-сервер»
Основана на использовании только сервера баз данных, когда клиентская часть содержит уровень представления данных, а на сервере находится база данных вместе с СУБД и прикладными программами.Сервер баз данных отличается от файл-сервера тем, что в его оперативной памяти, помимо операционной системы, функционирует централизованная СУБД, обеспечивающая совместное использование рабочими станциями базы данных, размещённой во внещней памяти этого сервера.Сервер баз данных даёт возможность отказаться от пересылки по сети файлов данных и передавать только ту выборку из базы данных, которая удовлетворяет запросу пользователя.
Трёхуровневая архитектура «клиент-сервер»
Позволяет помещать прикладные программы на отдельные серверы приложений, с которыми через API-интерфейс устанавливается связь клиентских рабочих станций (как Deathmatch в Quake). Работа клиентской части приложения сводится к вызову необходимых функций сервера приложения, которые называются «сервисами». Прикладные прогаммы в свою очередь обращаются к серверу баз данных с помощью SQL-запросов.Плюсы:
- многократность повторного использования общих функций обработки данных в множестве клиентских приложений при существенной экономии системных ресурсов
- параллельность в работе сервера приложений и сервера баз данных, причём сервер приложений может быть менее мощным, чем сервер баз данных
- оптимизация доступа к базе данных через сервер приложений из клиентских мест путём диспетчиризации выполнения запросов в вычислительной сети
- повышение скорости и надёжности обработки данных в результате дублирования программного обеспечения на нескольких серверах приложений, которые могут заменять друг друга в сети в случае перегрузки или выхода из строя одного из них
- перенос функций администрирования системы по проверке полномочий доступа пользователей с сервера баз данных на сервер приложений.
Многоуровневая архитектура «клиент-сервер»
Вариант для территориально-распределённых предприятий. Наиболее удачным примером будет предприятие с легионом филиалов со своими копиями БД, адаптированными под региональные и функциональные обстоятельства, и центральным офисом с интегрированной (полной) базой данных для централизованного ведения и администрирования (и анализа, Холмс!) общих данных для всех филиалов.Возможны следующие режимы репликации данных:
синхронный тиражируемые данные обновляются по мере возникновения необходимости одновременно на серверах баз данных и во всех копиях. Требуемое быстродействие может исчисляться в единицах Мбит по-сравнению с единицами Кбит при асинхронном режиме асинхронный тиражирование происходит в строго определённые моменты времени, например каждый час работы информационной системы.Направление тиражирования:
равноправное в обоих направлениях (да, это невероятно звучит) сверху-вниз («ведущий-ведомый») когда на серверах филиалов содержатся только некоторые подмножества данных центральной базы данных. снизу-вверх при обновлении данных в филиалах в определённые моменты времени обновляется центральная база данных.Bibliography
1. Проектирование экономических информационных систем — Смирнова Г.Н.
migku.wikidot.com
ОСНОВНЫЕ ПОНЯТИЯ АРХИТЕКТУРЫ КЛИЕНТ-СЕРВЕР » Буквы.Ру Научно-популярный портал
в несколько раз уменьшает объем информации, передаваемый по сети.
В архитектуре «клиент-сервер» сервер базы данных не только обеспечивает доступ к общим данным, но и берет на себя всю обработку этих данных. Клиент посылает на сервер запросы на чтение или изменение данных, которые формулируются на языке SQL. Сервер сам выполняет все необходимые изменения или выборки, контролируя при этом целостность и согласованность данных, и результаты в виде набора записей или кода возврата посылает на компьютер клиента.
Она позволяет оптимальным образом распределить вычислительную нагрузку между клиентом и сервером, что также влияет на многие характеристики системы: стоимость, производительность, поддержку.
1.2. История…
Архитектура и термин «клиент-сервер» впервые использовались в начале 80-тых годов. Первые приложения с архитектурой «клиент-сервер» были базы данных.
До этого не было ясного разделения — программа обычно всё делала сама — в том числе работала с данными в файловой системе, представлением данных пользователю и др. Со временем рос объем и критичность данных для бизнеса, и это со временем начало породить проблемы (быстродействия, безопасности и другие).
Тогда придумали, что удобно поставить базу данных на мощном отдельном компьютере (сервере) и разрешить эту базу данных использовать многим пользователям малого компьютера (клиентам) через сеть, что и было сделано.
По существу «взрыв» популярности технологии «клиент-сервер» был вызван изобретением фирмой IBM простого языка запросов к реляционным базам данных SQL. Сегодня SQL всеобщий стандарт работы с базами данных. В последнее время этот «взрыв» продолжает изобретение Интернета, в котором буквально каждое взаимодействие происходит по архитектуре «клиент-сервер».
1.3. Протоколы
Сервер и клиент в сети между собой «разговаривает» на «языке» (в широком смысле слов), понятном обеим сторонам. Этот «язык» называют протоколом.
В случае банка, протоколом можно назвать бланки, которые заполняет клиент.
В нашем же случае, примеры протоколов:
MySQL Client/Server Protocol
Заметим, что протоколы может быть разных уровней. Классификационные системы уровней может быть разные, но одна из самых известных линеек — OSI (Open Systems Interconnection ), в котором 7 уровней.
Например, HTTP — протокол прикладного (седьмого — самого высокого) уровня, а IP — протокол сетевого (третьего) уровня.
1.4. Распределение функций в архитектуре «клиент-сервер»
В классической архитектуре клиент-сервер приходится распределять три основные части приложения по двум физическим модулям. Обычно ПО хранения данных располагается на сервере (например, сервере базы данных), интерфейс с пользователем — на стороне клиента, а вот обработку данных приходится распределять между клиентской и серверной частями. В этом-то и заключается основной недостаток двухуровневой архитектуры, из которого следуют несколько неприятных особенностей, сильно усложняющих разработку клиент-серверных систем.
Процесс разработки таких систем достаточно сложен и одной из наиболее важных задач является как раз решение о том, как функциональность приложения должна быть распределена между клиентской и серверной частью. Пытаясь решить эту задачу, разработчики получают двух-звенные, трехзвенные и многозвенные архитектуры. Все зависит от того, сколько промежуточных звеньев включается между клиентом и сервером.
Основная задача, которую решает клиентское приложение, — это обеспечение интерфейса с пользователем, т. е. ввод данных и представление результатов в удобном для пользователя виде, и управление сценариями работы приложения.
Основные функции серверной СУБД — обеспечение надежности, согласованности и защищенности данных, управление запросами клиентов, быстрая обработка SQL-запросов.
Вся логика работы приложения — прикладные задачи, бизнес-правила — в двух-звенной архитектуре распределяются разработчиком между двумя процессами: клиентом и сервером (рис. 1).
Сначала большая часть функций приложения решалась клиентом, сервер занимался только обработкой SQL-запросов. Такая архитектура получила название «толстый клиент — тонкий сервер».
Появление возможности создавать на сервере хранимые процедуры, т. е. откомпилированные программы с внутренней логикой работы, привело к тенденции переносить все большую часть функций на сервер. Сервер становился все более «толстым», а клиент — «утоньшался».
Такое решение имеет очевидные преимущества, например его легче поддерживать, т. к. все изменения нужно вносить только в одном месте — на сервере.
рассмотренные выше модели имеют следующие недостатки.
1. «Толстый» клиент:
– сложность администрирования;
– усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе;
– усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
– перегружается сеть вследствие передачи по ней необработанных данных;
– слабая защита данных, поскольку сложно правильно распределить полномочия.
2. «Толстый» сервер:
– усложняется реализация, так как языки типа PL/SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки;
– производительность программ, написанных на языках типа PL/SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
– программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;
– получившиеся таким образом программы полностью непереносимы на другие системы и платформы.
Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры клиент-сервер. многоуровневая архитектура клиент-сервер позволяет существенно упростить распределенные вычисления, делая их не только более надежными, но и более доступными.
Однако язык, на котором пишутся хранимые процедуры, не является достаточно мощным и гибким, чтобы на нем было удобно реализовывать сложную логику приложения.
Тогда возникла тенденция поручить выполнение прикладных задач и бизнес-правил отдельному компоненту приложения (или нескольким компонентам), которые могут работать как на специально выделенном компьютере — сервере приложений, так и на том же компьютере, где работает сервер базы данных. Так возникли трехзвенные и многозвенные архитектуры «клиент-сервер».
Рис. 1. Распределение функций между клиентом и сервером
Появилось специальное программное обеспечение (ПО) промежуточного слоя, которое должно обеспечить совместное функционирование множества компонентов такого многокомпонентного приложения. Такие приложения являются гибкими, масштабируемыми, но сложными в разработке.
bukvi.ru
Архитектура информационных систем, Архитектура телеобработки данных, Архитектура файл-сервер, Архитектура клиент-сервер
Архитектура компьютерной системы строится на основе аппаратной части (ЭВМ), телекоммуникационного и программного обеспечения. Уровень развития каждой из составляющих определенный совершенством и информационной системы, технологии обработки данных, что обусловило возникновение таких схем обработки данных: телеобработки; файл-сервер; клиент-сервер; Internet-система; хранилище данных и система оперативной аналит ичному обработки данных тощо.
Архитектура телеобработки данных
В период мэйнфреймов (1950-1990 годы) традиционной многопользовательской архитектурой информационных систем была схема телеобработки, при которой один компьютер был соединен с несколькими рабочими местами польз стувачив - терминалами (клавиатура и дисплей) (рис. 12).
рис 12. Технология архитектуры телеобработки данных
С центральным процессором терминалы были связаны кабелями, которыми они отправляли сообщения. СУБД центральной. ЭВМ, которая, в свою очередь, просматривала базу данных, вычисляла результат, а дальше отправят яла его на экран пользовательского терминала. Применение пользователей и. СУБД работали на одном компьютере, и, поскольку система обслуживала много разных пользователей, каждый из них чувствовал снижению ния быстродействия по мере увеличения нагрузки на систему. При такой архитектуры основная нагрузка ложилась на компьютер, который должен выполнять не только действия приложений и. СУБД, но и значительную работу ежедн в обслуживание терминалов (подключение терминалов, форматирование данных, выводились на экран терминалов и т.д.о).
В последние годы двадцатого века был достигнут значительный прогресс в разработке высокомощных персональных компьютеров и дорогие мейнфрей-языке системы заменялись сетями персональных компьютеров. Эта т тенденция привела к появлению следующих двух типов архитектуры информационной системы: файл-сервера и клиент-сервера.
Архитектура файл-сервер
Информационная система этого типа состоит из трех компонент: сервер баз данных, клиент (персональный компьютер с клиентскими приложениями и. СУБД), сеть и коммуникационное программное обеспечение ( (рис 133).
рис 13. Архитектура 1С. Файл / сервер
На сервере расположены. СУБД и файлы, необходимые для работы клиентских приложений. Клиентские приложения и их персональные. СУБД расположены и функционируют на отдельных рабочих станциях и звертают ться к файловому серверу только по мере необходимости получения доступа к файлам. Сервер отбирает из базы файлы (а не отдельные их записи), которые сетью отправляются клиенту для обработки. Таким или ном, файловый сервер функционирует как совместно используемый жесткий диск. Архитектура с использованием файлового сервера характеризуется следующими основными недостатками: большой объем сетевого графика; на каждой рабочей станции должна быть полная копия пользовательской. СУБД, управление параллельностью, восстановлением и целостностью базы данных осложняется, поскольку доступ к одним и тем же файлов здийснюеть ся одновременно несколькими. СУБСУБД.
Архитектура клиент-сервер
Клиент-серверная информационная система состоит из трех основных компонент: программное обеспечение сервера программное обеспечение конечного пользователя промежуточное программное обеспечение (рис 14)
рис 14. Двухуровневая архитектура 1С клиент-сервер
Программное обеспечение сервера обеспечивает обслуживание клиентов. Для реализации архитектуры клиент-сервер обычно используют многопользовательские. СУБД, например, Oracle или Microsoft SQL Server. В таких. СУБД предусмотрены механизмы блокировки и элементы управления многопользовательским доступом, которые обеспечивают защиту данных от опасности параллельного доступа. Кроме этого, сервера баз данных дово дится охранять данные от несанкционованного доступа, оптимизировать запросы к базе данных, обеспечивать целостность данных и контроль завершение транзакций. В клиент-серверной организации клиенты могли бы ути достаточно"тонкими", а сервер должен быть"толстым"настолько, чтобы удовлетворять потребности всех клиентентів.
К программному обеспечению конечного пользователя относят средства разработки программ и генераторы отчетов, в том числе электронные таблицы и текстовые процессоры. С помощью этого программного обеспечения ния пользователи устанавливают связь с сервером, формируют запросы, которые автоматически генерируются в запросы на языке SQL и отправляются на сервер. Сервер принимает и обрабатывает запросы, а затем передает полученные результаты клиентам. Промежуточное программное обеспечение - часть системы «клиент-сервер", которая связывает программное обеспечение конечного пользователя с сервераром.
Схема клиент-сервер проста: клиент направляет серверу запрос на нужные данные; сервер их принимает, обрабатывает и отправляет клиенту только те данные, которые были заказаны. Двухуровневая модель клиент-сервер опт тимальна для предприятий с числом пользователей менее 100, поскольку операционная система сервера при обслуживании большого количества клиентов слишком перегружается управлением многочисленными пи дключеннямы в сервера.
Трехуровневая модель, в отличие от двухуровневой, решает проблемы масштабирования. При использовании трехуровневой модели, кроме клиента и сервера, есть еще и дополнительный промежуточный цепь (сервер применения я), который управляет транзакциями - анализирует запросы, организует их очередь, направляет запросы на выполнение т.д. (рис и5.5).
рис 15. Трехуровневая архитектура 1С клиент-сервер
Клиент-серверные информационные системы имеют ряд преимуществ по сравнению с файл-серверными информационными системами. Во-первых, снижается сетевой трафик при выполнении запросов. Например, при необходимости каждая насчитывается. Ання зарплаты. Страхарчук. А. Я, клиент отправляет серверу запрос, который компилируется и выполняется сервером, после чего результат запроса (записи относительно зарплаты. Страхарчук. А. Я, а не всех работников) передается на рабочую станцию ??Во-вторых, архитектура клиент-сервер становится незаменимой, когда количество пользователей, которые одновременно пользуются теми же данными, превышает 10-15. Еще одним преимуществом арх итектуры клиент-сервер является возможность сохранения бизнес-правил на сервере, что позволяет избежать дублирования кода в различных приложениях, использующих общую базу данных. Кроме перечисленных перева г, современные серверные. СУБД имеют широкие возможности управления пользовательскими привилегиями и правами доступа к различным объектам базы данных, резервного копирования и архивирования данных, а также оптимизма ции выполнения запросея запитів.
uchebnikirus.com