Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Архитектура серверных систем

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

О модели взаимодействия клиент-сервер простыми словами. Архитектура «клиент-сервер» с примерами

  • 28.07.2016
  • Сервера и протоколы
  • Комментариев нет

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. В этой записи мы поговорим о том, как работают приложения и сайты в сети Интернет, да и вообще в любой компьютерной сети. В основе работы приложения лежит так называемая модель взаимодействия клиент-сервер, которая позволяет разделять функционал и вычислительную нагрузку между клиентскими приложениями (заказчиками услуг) и серверными приложениями (поставщиками услуг).

Модель взаимодействия клиент-сервер. Архитектура «клиент-сервер».

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

Концепция взаимодействия клиент-сервер

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

Здесь мы разберемся с концепцией, которая позволяет нам выполнять все эти действия в сети Интернет. Данная концепция получила название «клиент-сервер». Как понятно из названия, в данной концепции участвуют две стороны: клиент и сервер. Здесь всё как в жизни: клиент – это заказчик той или иной услуги, а сервер – поставщик услуг. Клиент и сервер физически представляют собой программы, например, типичным клиентом является браузер. В качестве сервера можно привести следующие примеры: все HTTP сервера (в частности Apache), MySQL сервер, локальный веб-сервер AMPPS или готовая сборка Denwer (последних два примера – это не проста сервера, а целый набор серверов).

Клиент и сервер взаимодействую друг с другом в сети Интернет или в любой другой компьютерной сети при помощи различных сетевых протоколов, например, IP протокол, HTTP протокол, FTP и другие. Протоколов на самом деле очень много и каждый протокол позволяет оказывать ту или иную услугу. Например, при помощи HTTP протокола браузер отправляет специальное HTTP сообщение, в котором указано какую информацию и в каком виде он хочет получить от сервера, сервер, получив такое сообщение, отсылает браузеру в ответ похожее по структуре сообщение (или несколько сообщений), в котором содержится нужная информация, обычно это HTML документ.

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

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

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

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

Простая схема взаимодействия клиент-сервер

Мы видим, что к одному серверу может обращаться сразу несколько клиентов (действительно, на одном сайте может находиться несколько посетителей). Также стоит заметить, что количество клиентов, которые могут одновременно взаимодействовать с сервером зависит от мощности сервера и от того, что хочет получить клиент от сервера.

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

Почему веб-мастеру нужно понимать модель взаимодействия клиент-сервер

Давайте теперь ответим на вопрос: «зачем веб-мастеру или веб-разработчику понимать концепцию взаимодействия клиент-сервер?». Ответ, естественно, очевиден. Чтобы что-то делать своими руками нужно понимать, как это работает. Чтобы сделать сайт и, чтобы он правильно работал в сети Интернет или хотя бы просто работал, нам нужно понимать, как работает сеть Интернет.

Мы уже упоминали, что большая часть сетевых протоколов имеют архитектуру клиент-сервер. Например, веб-мастеру или веб-разработчику будут интересны протоколы седьмого и шестого уровня эталонной модели. Сетевым администраторам важно понимать, как происходит взаимодействие на уровнях с пятого по второй. Для инженеров связи наибольший интерес представляют протоколы с четвертого по первый уровень модели OSI.

Поэтому если вы действительно хотите быть профессионалом в сфере web, то сперва вам необходимо понимать, как происходит взаимодействии в сети (именно на седьмом уровне), а уже потом начинать изучать инструменты, которые позволят создавать сайты.

Архитектура «клиент-сервер»

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

Существует два вида архитектуры взаимодействия клиент-сервер: первый получил название двухзвенная архитектура клиент-серверного взаимодействия, второй – многоуровневая архитектура клиент-сервер (иногда его называют трехуровневая архитектура или трехзвенная архитектура, но это частный случай).

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

Двухуровневая модель взаимодействия клиент-сервер

Здесь четко видно, что есть клиент (1-ый уровень), который позволяет человеку сделать запрос, и есть сервер, который обрабатывает запрос клиента.

Если говорить про многоуровневую архитектуру взаимодействия клиент-сервер, то в качестве примера можно привести любую современную СУБД (за исключением, наверное, библиотеки SQLite, которая в принципе не использует концепцию клиент-сервер). Суть многоуровневой архитектуры заключается в том, что запрос клиента обрабатывается сразу несколькими серверами. Такой подход позволяет значительно снизить нагрузку на сервер из-за того, что происходит распределение операций, но в то же самое время данный подход не такой надежный, как двухзвенная архитектура. На рисунке ниже вы можете увидеть пример многоуровневой архитектуры клиент-сервер.

Многоуровневая архитектура взаимодействия клиент-сервер

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

Читать еще:  Ошибка vcomp110 dll

Если мы посмотрим на данную архитектуру с позиции сайта. То первый уровень можно считать браузером, с помощью которого посетитель заходит на сайт, второй уровень – это связка Apache + PHP, а третий уровень – это база данных. Если уж говорить совсем просто, то PHP больше ничего и не делает, кроме как, гоняет строки и базы данных на экран и обратно в базу данных.

Преимущества и недостатки архитектуры клиент-сервер

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

К недостаткам модели взаимодействия клиент-сервер можно отнести то, что стоимость серверного оборудования значительно выше клиентского. Сервер должен обслуживать специально обученный и подготовленный человек. Если в локальной сети ложится сервер, то и клиенты не смогут работать (в качестве частного случая можно привести пример: мощности сервера не всегда хватает, чтобы удовлетворит запросы клиентов, если вы хоть раз работали с биллинговыми системами, то понимаете о чем я: время ожидания ответа от сервера может быть очень большим).

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

Классификация архитектур информационных систем. Архитектура «файл-сервер». Многоуровневая архитектура клиент-сервер

Системы . Информационные системы и их свойства.

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

Информационная система – это система обработки информации и соответствующие организационные ресурсы , которые обеспечивают и распространяют информацию.

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

2. Этапы развития ИС:

1) 50-е гг. (статистическая обработка).

2) 60-е гг. Основные черты: техническое обеспечение ЭВМ 1-2 поколения, информационное обеспечение , массивы данных, программное обеспечение специализирующие ПО , архитектура ИС – централизованное .

3) 70-80 –е гг. Аппаратные обеспечения, микропроцессорная техника (процессорная), программное обеспечение, информационное обеспечение, базы данных, архитектуры ИС.

4) Конец 80-е . Информационное обеспечение базы данных, прикладные программы (СУБД), технические средства (ЭВМ 3-4 поколения), средства разработки ИС (персонально-локальная централизованная с сетевым доступом).

5) Современные ИС. Характеризуется интенсивными разработками с целью повышения интеллектуальности баз данных в след. Направлениях: новые модели знаний, средства оперативного анализа (OLAP) , средства поддержки ( DSS), новые формы более естественные для человека.

Классификация информационных систем.

Архитектура ИС – концепция определяющая модели, структуру, выполняемые функции, и взаимосвязь компонентов информационной системы.

Архитектура программы – это структура системы, которая включает элементы программы , видимые извне свойства этих элементов и связи между ними.

Классификация архитектур информационных систем. Архитектура «файл-сервер». Многоуровневая архитектура клиент-сервер

.1.Централизованная архитектура.

1) пользователи совместно используют дорогие ресурсы ЭВМ и дорогие периферийные устройства.

2)централизация ресурсов и оборудования облегчает обслуживание и эксплуатацию вычислительной системы

3)отсутствует необходимость администрирования рабочих мест пользователей.

1)Главным недостатком для пользователя является то, что он полностью зависит от администратора хост-ЭВМ.

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

хранения данных и кода программы

обработка данных происходит исключительно на стороне клиента.

1)многопользовательский режим работы с данными

2) удобство централизованного управления доступом

3)низкая стоимость обработки

4)высокая скорость разработки

5)невысокая стоимость обновления и изменения ПО

1)Проблемы многопользовательской работы с данными( последовательный доступ, отсутствие гарантии целостности)

3)плохая возможность подключения новых клиентов

Многоуровневыйы клиент сервер

Многоуровневый клиент сервер — это разновидность архитектуры клиент сервер, в котором функция обработки данных вынесена на один или несколько серверов.

1) Клиентское ПО не нуждается в администрировании;

3) Низкие требования к скорости канала между терминалом и сервером.

1) Повышенная сложность серверной части;

2) Высокие требования к производительности серверов;

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

Архитектуры ИС

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

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

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

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

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

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

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

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

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

Читать еще:  Сетевая архитектура это

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

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

Два основных типа клиент-серверной архитектуры.

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

Основной принцип технологии клиент-сервер заключается в разделении функций приложения на три группы:

ввод и отображение данных (взаимодействие с пользователем);

прикладные функции, характерные для данной предметной области;

функции управления ресурсами (файловой системой, базой даных и т.д.)

Поэтому, в любом приложении выделяются следующие компоненты:

компонент представления данных

компонент управления ресурсом

Связь между компонентами осуществляется по определенным правилам, которые называют протокол взаимодействия.

Два основных типа клиент-серверной архитектуры.

В любой сети (даже одноранговой), построенной на современных сетевых технологиях, присутствуют элементы клиент-серверного взаимодействия, чаще всего на основе двухзвенной архитектуры. Двухзвенной (two-tier, 2-tier) она называется из-за необходимости распределения трех базовых компонентов между двумя узлами (клиентом и сервером)

Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные ресурсы. Т.е. сервер не вызывает сторонние сетевые приложения и не обращается к сторонним ресурсам для выполнения какой-либо части запроса (рис. 2)

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

сервер терминалов — распределенное представление данных;

файл-сервер — доступ к удаленной базе данных и файловым ресурсам;

сервер БД — удаленное представление данных;

сервер приложений — удаленное приложение.

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

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

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

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

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

Преимущества такого подхода очевидны:

возможно централизованное администрирование прикладных функций;

снижение стоимости владения системой (TOC, total cost of ownership) за счет аренды сервера, а не его покупки;

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

Основной недостаток — ограниченность средств разработки хранимых процедур по сравнению с языками высокого уровня.

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

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

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

Как правило, третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом (рис. 4):

Представление данных — на стороне клиента.

Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).

Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.

Трехзвенная архитектура может быть расширена до многозвенной (N-tier, Multi-tier) путем выделения дополнительных серверов, каждый из которых будет представлять собственные сервисы и пользоваться услугами прочих серверов разного уровня.

Статьи к прочтению:

Клиент сервер в картинках

Похожие статьи:

Архитектура системы — представление о совокупности функциональных компонентов системы и их взаимосвязях. Практически все модели организации…

По определению, архитектура — это описание сложной системы, состоящей из множества элементов, как единого целого. Архитектура современного персонального…

Архитектура серверной подсистемы.

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

При работе с данными используется ограниченное число операций:

  1. Определение структуры данных – создание таблиц, изменение структуры таблиц, удаление таблиц и т.п.
  2. Манипулирование данными – добавление, изменение или удаление данных
  3. Выборка данных

Механизм этих операций не зависит от того, какой продукт ими пользуется (Microsoft Access, SAP R/3 или, например, SQL-версия программы 1С:Предприятие). Поэтому удобно осуществление этих операций возложить на отдельный программный продукт – сервер баз данных. Существует много серверов баз данных отличающихся друг от друга форматом файлов данных, алгоритмами выполнения операций и прочими особенностями. Одними из наиболее популярных серверов баз данных являются Microsoft SQL Server (обычно читается как «Майкрософт сиквел-сервер») и Oracle Database.

Читать еще:  Документы в архитектуре

Использование готового сервера баз данных даёт разработчику ИС следующие преимущества:

  1. Упрощается разрабатываемая программа – вместо того, чтобы писать, например, механизм записи в файл данных, предусматривая при этом запрещение записи в файл информации одновременно несколькими пользователями, нам будет достаточно обратиться из нашей программы к серверу баз данных и отдать команду выполнить запись.
  2. Сервер баз данных берёт на себя значительную нагрузку, что уменьшает стоимость всей системы. Дело в том, что компьютер пользователя рассчитывается исходя из пиковой (т.е. максимальной) нагрузки. Но такая нагрузка на него приходится редко, т.е. большую часть времени компьютеры пользователей нагружены на малую долю их реальной мощности. Если наиболее ресурсоёмкие операции, а именно к таким операциям и относятся операции с базами данных, мы делегируем серверу баз данных, то требования к пользовательским компьютерам можно будет значительно уменьшить.
  3. Сервер баз данных оптимизирует операции. Например, он хранит промежуточные результаты выборки из базы. Если какие-то запросы к базе данных используются часто, то сервер сохранит результаты этих запросов и сможет выдавать их пользователям, не обращаясь повторно к базе данных.

С точки зрения компании-пользователя ИС, выбор программы-сервера баз данных определяется следующими параметрами:

  1. Стоимость программы. Эта величина зависит от числа одновременных подключений к серверу баз данных, от количества процессоров в составе компьютеров-серверов баз данных и прочих параметров
  2. Стоимость администрирования сервера баз данных (заработная плата администраторов + затраты на прием на работу администраторов)
  3. Стоимость аппаратных мощностей, необходимы для работы сервера баз данных (компьютеров-серверов, сетевого оборудования, а также устройств резервного копирования)

Производительность программ-серверов баз данных во многих случаях не очевидна. Например, Oracle Database 9 версии позволяет устанавливать различный приоритет для разных запросов к базе данных. Некоторые регламентные операции в ИС сильно нагружают сервер баз данных, например, закрытие склада (пересчёт стоимости всех товаров) или начисление амортизации основных средств. Во время проведения этих операций загрузка серверов баз данных резко возрастает, что увеличивает время ожидания работников, выполняющих текущие операции. Если мы установим более низкий приоритет для соответствующих запросов, то это повысит время их выполнения (что может быть не так важно), но заметно понизит время отклика системы на прочих операциях. Microsoft SQL Server 2000 подобной возможности нам не предоставляет, но зато предъявляет, в большинстве случаев, заметно меньшие требования к аппаратному обеспечению.

Так же стоит обратить внимание на способность программы-сервера баз данных работать в режиме кластера. Кластер – это система из нескольких компьютеров, одновременно выполняющих одну программу. Кластеры легко масштабируются – для этого достаточно добавить ещё один компьютер, установить на него программу и включить компьютер в кластер (программным путём). Вместе с кластерами выгодно использовать так называемые блэйды (blade – лезвие) – специальные аппаратные комплексы, представляющие собой несколько компьютеров в одном корпусе. Они проще в администрировании, легко масштабируются (достаточно просто вставить ещё одно «лезвие» в соответствующий слот) и могут быть дешевле набора из «полноценных» серверов.

Терминальные службы

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

Дело в том, что совокупная стоимость владения клиентскими компьютерами будет включать в себя затраты на:

  1. Закупку машин. Некоторые программы, установленные у пользователей, могут предъявлять высокие требования к производительности их компьютеров, например, Microsoft Excel или Adobe Acrobat, не говоря уже о графических пакетах.
  2. Поддержание компьютеров в работоспособном состоянии. Эта статья затрат может заметно возрасти если в составе информационной системы компании есть компьютеры удалённых филиалов, расположенных, например, в других городах.
  3. Установка программного обеспечения на компьютеры пользователей и его администрирование.

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

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

Схема участка сети, на котором работает терминальная служба

Многоуровневые архитектуры

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

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

Рисунок 2.1.1- Варианты клиент-серверной архитектуры ИС

В соответствии с современными представлениями архитектуру ИС можно представить трёхслойной (3-layer) или трёхуровневой (3-tier). Первый термин относится к логике системы:

  1. Интерфейс пользователя
  2. Внутренняя логика приложения
  3. База данных

Второй термин (трёхуровневая архитектура) относится набору компонентов, из которых состоит программный продукт:

  1. Клиентское приложение. Именно эту программу видят пользователи системы, т.е. она реализует первый слой – интерфейс пользователя. Это приложение может дополнительно брать на себя обязанность обработки бизнес-логики, всей – при отсутствии сервера приложений или только части – при его наличии.
  2. Сервер приложения. Эта программа выполняет значительную часть работы по выполнению вычислений.
  3. Сервер базы данных. Эта программа управляет хранением данных, изменением структуры хранимых данных, записью данных в базу и выборкой данных из неё (Microsoft SQL Server, Oracle Database, MySQL и т.д.).

Второй компонент из приведённых выше (сервер приложений) является опциональным.

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

Основные варианты многоуровневых архитектур

Основные варианты многоуровневых архитектур ИС следующие:

  1. Двухзвенная архитектура – сервер приложений не используется.
  2. Трёхзвенная архитектура с использованием толстого клиента – сервер приложений используется, клиентский компьютер взаимодействует с сервером баз данных напрямую
  3. Трёхзвенная архитектура с использованием тонкого клиента – сервер приложений используется, клиентский компьютер не взаимодействует с сервером баз данных напрямую.

Во всех этих вариантах различается нагрузка на сеть и нагрузка на рабочие станции.

Двухуровневая архитектура

Самый простой вариант установки. Серверная часть не используется.

Дата добавления: 2018-05-13 ; просмотров: 311 ;

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×