Архитектура клиент-сервер
Веб-приложение – это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер (в широком смысле).
Основная часть приложения, как правило, находится на стороне веб-сервера, который обрабатывает полученные запросы в соответствии с бизнес-логикой продукта и формирует ответ, отправляемый пользователю. На этом этапе в работу включается браузер, именно он преобразовывает полученный ответ от сервера в графический интерфейс, понятный пользователю.
Архитектура «клиент-сервер» определяет общие принципы организации взаимодействия в сети, где имеются серверы, узлы-поставщики некоторых специфичных функций (сервисов) и клиенты (потребители этих функций).
Практические реализации такой архитектуры называются клиент-серверными технологиями.
Двухзвенная архитектура — распределение трех базовых компонентов между двумя узлами (клиентом и сервером). Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме.
Расположение компонентов на стороне клиента или сервера определяет следующие основные модели их взаимодействия в рамках двухзвенной архитектуры:
- Сервер терминалов — распределенное представление данных.
- Файл-сервер — доступ к удаленной базе данных и файловым ресурсам.
- Сервер БД — удаленное представление данных.
- Сервер приложений — удаленное приложение.
Клиент – это браузер, но встречаются и исключения (в тех случаях, когда один веб-сервер (ВС1) выполняет запрос к другому (ВС2), роль клиента играет веб-сервер ВС1). В классической ситуации (когда роль клиента выполняет браузер) для того, чтобы пользователь увидел графический интерфейс приложения в окне браузера, последний должен обработать полученный ответ веб-сервера, в котором будет содержаться информация, реализованная с применением HTML, CSS, JS (самые используемые технологии). Именно эти технологии «дают понять» браузеру, как именно необходимо «отрисовать» все, что он получил в ответе.
Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов и выдающий им HTTP-ответы. Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает. Наиболее распространенными видами ПО веб-серверов являются Apache, IIS и NGINX. На веб-сервере функционирует тестируемое приложение, которое может быть реализовано с применением самых разнообразных языков программирования: PHP, Python, Ruby, Java, Perl и пр.
База данных фактически не является частью веб-сервера, но большинство приложений просто не могут выполнять все возложенные на них функции без нее, так как именно в базе данных хранится вся динамическая информация приложения (учетные, пользовательские данные и пр).
База данных — это информационная модель, позволяющая упорядоченно хранить данные об объекте или группе объектов, обладающих набором свойств, которые можно категоризировать. Базы данных функционируют под управлением так называемых систем управления базами данных (далее – СУБД). Самыми популярными СУБД являются MySQL, MS SQL Server, PostgreSQL, Oracle (все – клиент-серверные).
Трехзвенная архитектура — сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате.
Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом:
- Представление данных — на стороне клиента.
- Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
- Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.
Трехзвенная архитектура может быть расширена до многозвенной (N-tier, Multi-tier) путем выделения дополнительных серверов, каждый из которых будет представлять собственные сервисы и пользоваться услугами прочих серверов разного уровня.
Двухзвенная архитектура проще, так как все запросы обслуживаются одним сервером, но именно из-за этого она менее надежна и предъявляет повышенные требования к производительности сервера.
Трехзвенная архитектура сложнее, но, благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура предоставляет:
- Высокую степень гибкости и масштабируемости.
- Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня).
- Высокую производительность (т.к. задачи распределены между серверами).
Общее определение термина сервер
Итак, давайте разберемся с вопросом: что такое сервер? Но для начала немного исторической справки. Сервер – это имя. Перевод имени Сервер с персидского – глава, предводитель, вождь. Собственно, нам такое определение подходит для дальнейшего разговора. Если говорить конкретно про компьютерную тематику и отрасль IT, то термин сервер имеет два значения:
- Сервер – программное обеспечение, принимающее и обрабатывающее запросы клиентов с целью оказания тех или иных услуг.
- Сервер – это аппаратный комплекс, имеющий большие вычислительные мощности. Обычно сервер собирают под какие-либо конкретные сервисные функции. Например, сервер баз данных или файловый сервер.
Если говорить в контексте веб-разработки, то хостинг, на котором мы размещаем сайты – это сервер, который включает в себя как программную часть, так и аппаратную часть.
Базовые серверные архитектуры
В небольших организациях, использующих несколько компьютеров, связь между ними может быть осуществлена посредством одноранговой JIKC, в которой все рабочие станции (PC) практически равноправны. Каждая PC может обслуживать запросы от других PC и, в свою очередь, направлять им свои запросы; таким образом, любая PC может выполнять функции как клиента, так и сервера. В современных условиях PC является технологической основой организации автоматизированного рабочего места (АРМ) пользователя практически в любой сфере деятельности (см. п. 4.2). При этом характеристики PC определяют возможности технического и программного (системного) обеспечения АРМ. Увеличение числа PC в одноранговой JIKC снижает ее эффективность, и, как следствие, требуется изменение топологии сети с вводом по крайней мере одного сервера, осуществляющего управление работой сети в целом. JIKC с выделенным сервером (серверами) реализует собой двуранговую сеть. Сервер представляет собой высокопроизводительный компьютер, имеющий современный процессор (зачастую два или более процессоров), быстродействующие ОЗУ и винчестер большой емкости (во многих случаях RAID-массив). Функции управления сервером возлагаются на системного администратора; он организует размещение данных и ПО, регистрирует уникальные имена пользователей и их пароли, задает права доступа к находящимся на сервере разделяемым ресурсам. Сервер может выполнять функции клиента только по отношению к другому серверу более высокого уровня иерархии. В JIKC с выделенным сервером обеспечивается более высокая эффективность работы сети, практически снимается ограничение по числу PC, реализуются возможности проведения эффективной политики информационной безопасности, однако при этом стоимость сети в целом увеличивается.
Во многих компаниях с большим числом компьютеров в составе JIKC одновременно используются несколько специализированных серверов: файловый сервер, сервер баз данных, почтовый сервер, сервер безопасности и др.
На сервере баз данных размещаются необходимые для работы БД (например, базы информационно-справочной системы «Консуль- тантПлюс», основные базы автоматизированной банковской системы и др.). При необходимости содержимое БД может модифицироваться со стороны различных PC, с них же пользователи имеют возможность отбирать требующиеся данные.
Почтовый сервер обеспечивает хранение получаемых и отправляемых сообщений, что позволяет в удобное для пользователя время отправить через него собственное сообщение или прочитать принятое.
Сервер безопасности реализует основные операции проводимой политики информационной безопасности с активным использованием криптографических средств.
Любая компьютерная сеть (КС) в целом может быть представлена в виде двух взаимодействующих составляющих: коммутационной системы и совокупности абонентов (включая их оборудование: PC, серверы и др.). Абоненты сети могут как предоставлять сетевые услуги, так и потреблять их. Изменение масштабов КС приводит к изменению сложности ее обеих составляющих. Типовым стандартом скорости передачи данных в Л КС в настоящее время является уровень в 100 Мбит/с, реже поддерживаются скорости 10 Мбит/с и 1 Гбит/с. В ЛКС для соединения устройств между собой обычно используют витую пару, реже коаксиальный и оптоволоконный кабель, иногда радиоканал и инфракрасный канал.
Основным назначением коммутационной системы является формирование транспортной среды для связи абонентов друг с другом. Для передачи большого трафика на значительные расстояния широкое применение находят спутниковые, радиорелейные, кабельные и оптоволоконные каналы связи. Трафик — объем передаваемых данных за определенный период времени. В целом телекоммуникационная система может быть представлена в виде совокупности объединенных с помощью специализированного коммуникационного оборудования каналов связи. Ее свойства оценивают скоростью передачи данных по каналу связи (бит/с); пропускной способностью канала связи (количеством передаваемых символов за секунду); достоверностью передачи данных (количеством ошибок на один переданный символ); надежностью (средним временем безотказной работы в часах).
Объединение КС различного масштаба позволяет создавать иерархические сетевые структуры, обеспечивающие доступ к множеству территориально распределенных информационных и вычислительных ресурсов. Каждая из отдельных сетей может иметь собственную внутреннюю организацию коммутационной системы и специфические особенности управления доступом к ее ресурсам. Основным назначением устройств сопряжения является согласование формы представления сообщения при его передаче из одной сети в другую, в соответствии с принятыми в них стандартами.
В глобальных сетях и в локальных сетях со сложной структурой направление пакетов (сообщений) по конкретным каналам связи
газаторов. Для связи сетей между
Мост — устройство, обеспечи-
вающее обмен данными между сетями с одинаковыми методами передачи данных. Шлюз — устройство, реализующее обмен данными между сетями с различными протоколами взаимодействия; шлюз обеспечивает согласование протоколов и реализует подключение ЛКС к глобальной сети.
JIKC структурных подразделений компаний являются базой построения единой корпоративной КС, служащей основой автоматизированной системы управления компанией, и обеспечивающей организацию единого информационного пространства. Значительный рост числа корпоративных сетей объясняется присущими им возможностями совместного использования распределенных сетевых ресурсов, реализацией режима удаленного доступа, поддержкой сложившейся традиционной технологии работы пользователей. Как правило, корпоративные сети используют в своей основе технологию сети Интернет (протоколы TCP/IP, систему адресации ресурсов, гипертекст), и, соответственно, их называют интранет-сетями. Семейство протоколов TCP/IP (Transmission Control Protocol — протокол управления передачей данных, Internet Protocol — межсетевой протокол) обеспечивает взаимодействие между компьютерами различных архитектур, работающих под управлением различных операционных систем. Для развертывания интранет-сетей необхбди-
мо наличие унифицированных аппаратных и программных средств, поддерживающих технологию сети Интернет.
Файловый сервер |
□ |
Общая технология выполнения программ предполагает до начала выполнения программы ее размещение в быстродействующей оперативной памяти компьютера. Поэтому, где бы ни находились обрабатываемые данные и обрабатывающая их программа, они должны «встретиться» в процессоре выполнения программ реализации решения задач, формирования ответов на запросы пользователей. Технологии файл-сервер и клиент-сервер по-разному решают вопрос организации процесса обработки данных. Технология файл- сервер (рис. 4.1) благодаря сетевым возможностям позволяет выполнять обработку данных на PC, при расположении данных (файлов) на файловом сервере (другой PC). В процессе выполнения программы подлежащие обработке данные в нужной последовательности скачиваются с сервера, при необходимости обработанные данные передаются (возвращаются) на сервер для сохранения. Таким образом, для технологии файл-сервер характерен интенсивный трафик, предъявляющий жесткие требования к пропускной способности канала.
Операции с файлами
Рис. 4.1. Модель технологии файл-сервер
Основными функциями файл-сервера являются: хранение и архивирование данных, обеспечение одновременного доступа многих пользователей к данным с сохранением их целостности, передача данных. В общем случае на файл-сервере помимо совместно используемых файлов с данными могут находиться и программы, запускаемые с различных PC. Однако технология файл-сервер не ориентирована на выполнение основного объема операций обработки данных непосредственно на сервере. На такой технологии работают СУБД старого поколения — Clipper, FoxPro и др. При этом вся бизнес-логика реализуется посредством установленного на PC прикладного ПО.
Более производительная технология клиент-сервер предполагает размещение обрабатывающих программ на сервере совместно с об
рабатываемыми данными. При необходимости обработки данных клиент (в качестве клиента можно рассматривать АРМ, выполняемую программу или работающего пользователя) обращается к серверу за предоставлением определенного ресурса, в частности для выборки в соответствии с заданным условием отбора данных из находящейся на сервере БД. Выполнив необходимую обработку, программа отправляет результаты обработки клиенту (рис. 4.2). Поскольку, как правило, результаты обработки по объему гораздо меньше, чем объем обрабатываемых данных, то имеет место значительное снижение сетевого трафика по сравнению с технологией файл-сервер; кроме того, значительно снижаются требования к ресурсам PC.
Запросы к СУБД (SQL- запросы)
Результаты выполнения запросов
Рис. 4.2. Модель технологии клиент-сервер (двухзвенная система)
Технология клиент-сервер реализуется при работе с современными СУБД — Oracle, DB2, Microsoft SQL Server и др. При этом на клиентском месте (в составе АРМ) должно находиться специализированное ПО, предназначенное для осуществления взаимодействия с СУБД, включая формирование пользовательских запросов, отображение полученных результатов и др. Работа с некоторыми СУБД, например Oracle, предполагает установку на PC фирменного ПО — клиента Oracle, реализующего протоколы связи с находящейся на сервере СУБД Oracle. На сервере помимо СУБД функционирует ОС (как правило, ОС из семейств Unix или Windows), причем СУБД в максимальной степени использует реализованные в ОС возможности управления файлами, обеспечения безопасности данных и др. При реализации технологии клиент-сервер, как правило ^основная часть обработки данных осуществляется непосредственно на АРМ. Некоторые СУБД, например Oracle, позволяют реализовать ту или иную часть решения аналитических задач средствами СУБД.
Сервер БД (с СУБД) |
В последние годы проявляется тенденция сближения двух концептуально отличающихся направлений в развитии систем обработ
ки данных. Одно из них представлено централизованными структурами на базе мэйнфреймов, другое — распределенными системами. В системе классификации компьютеров мэйнфреймы занимают место между суперкомпьтерами и персональными компьютерами. Обладая большими вычислительными ресурсами, мэйнфреймы обеспечивают реализацию централизованных систем обработки данных, обеспечивающих параллельное решение задач многих клиентов (пользователей) в реальном времени; мэйнфреймы широко используются в узлах коммутации сети Интернет. В распределенных системах основным средством обработки данных является ПК. Среди новых решений выделяются системы с серверами приложений, реализующие трехзвенную архитектуру клиент-сервер (трехранговую сеть). Основным устройством трехзвенной системы является сервер приложений. Под приложением понимается пакет прикладных программ (программа), ориентированный на обработку данных, решение функциональных задач в конкретной предметной области, легко переносимый на различные компьютеры (рис. 4.3). Такой пакет реализует нужное число специализированных приложений, каждое из которых может быть запущено с любого клиентского места (с учетом прав доступа). Приложения в процессе их выполнения взаимодействуют с сервером БД, при этом, как правило, взаимодействие сервера приложений с сервером БД осуществляется в пакетном режиме работы. Таким образом, клиент полностью лишен непосредственного доступа к обрабатываемым данным, поскольку между ним и БД находится исполняемое приложение. В крупных корпоративных ИС приложения могут быть распределены по различным серверам приложений. Подобное решение с технической точки зрения является более сложным по сравнению с двухзвенными системами, поэтому они получили название трехзвенных систем. Такие системы обладают большей гибкостью и повышенной безопасностью, так как все возможности клиента при работе с хранящимися на сервере БД данными определяются (ограничиваются) допустимыми операциями конкретного приложения; при этом внутренние особенности выполнения приложения и характер его взаимодействия с БД полностью скрыты от клиента.
Базирующиеся на трехзвенных клиент-серверных архитектурах технологии воссоздают своего рода виртуальные мэйнфреймы, предполагающие взаимодействие с пользователями посредством простых терминалов, определяемых термином «тонкий» клиент. «Тонкий» клиент — клиентское устройство (АРМ пользователя), где основная (бблыная) часть операций обработки данных передана для выполнения на сервер. Соответственно под термином «толстый» клиент понимают клиента, не относящегося к категории «тонких» клиентов, т.е. клиентское устройство, обеспечивающее выполнение основной части операций по обработке данных средствами самого клиентского
устройства. До настоящего времени при реализации АРМ различной предметной направленности клиентские устройства преимущественно выполняются в виде «толстого» клиента (на базе современного ПК с избыточными вычислительными ресурсами).
Сервер приложений |
Результаты выполнения запросов |
□ |
Операции взаимодействия с приложениями (интерфейс приложений) |
Сервер БД Запросы (с СУБД) к СУБД (SQL- запросы)
Рис. 4.3. Модель технологии клиент-сервер (трехзвенная система) с сервером приложений
Современная тенденция возврата к «тонкому» клиенту является прямым решением проблемы сложности, порожденной архитектурой клиент-сервер, консолидирующей ресурсы в одном месте. Наиболее широко «тонкий» клиент («тонкий» Web-клиент) используется при работе в сети Интернет. Web-технологии обеспечивают пользователям удобный единообразный доступ к данным с любых компьютеров, устраняют зависимость от аппаратно-операционной платформы клиента, обеспечивают возможность применения типовых решений (браузеров, протоколов и др.), реализуют полезные для аналитических приложений возможности (просмотр не полностью загруженных страниц, асинхронную обработку, сжатие и кодирование данных и др.), снижают общую стоимость решений и др. (рис. 4.4). Работа пользователя осуществляется, как правило, через браузер Internet Explorer, реализующий типовой Web-интерфейс с широкими возможностями навигации по информационным ресурсам сети на основе имеющихся на Web-страницах гиперссылок.
Основные виды архитектуры ЭВМ
При рассмотрении компьютерных устройств принято различать их архитектуру и структуру. Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя. Структура компьютера — это совокупность его функциональных элементов и связей между ними. Элементами могут быть самые различные устройства — от основных логических узлов компьютера до простейших схем. Структура компьютера графически представляется в виде структурных схем, с помощью которых можно дать описание компьютера на любом уровне детализации. Наиболее распространены следующие архитектурные решения.
1. Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд. Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной. Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью. Совокупность проводов магистрали разделяется на отдельные группы: шину адреса, шину данных и шину управления. Периферийные устройства подключаются к аппаратуре компьютера через специальные контроллеры — устройство управления, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования.
2. Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд (параллельно могут обрабатываться несколько фрагментов одной задачи). Структура такой машины имеет общую оперативную память и несколько процессоров. Такая архитектура применяется для решения задач с огромным объемом вычислений.
3. Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Отдельный компьютер в многомашинной системе имеет классическую архитектуру и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
В современных машинах часто присутствуют элементы различных типов архитектурных решений. Существуют и такие архитектурные решения, которые радикально отличаются от рассмотренных.
Классификация ВМ
Многообразие свойств и характеристик порождает различные виды классификации вычислительных машин. Их делят: по этапам развития, по принципу действия, по назначению, по производительности и функциональным возможностям, по условиям эксплуатации, по количеству процессоров и т.д. Четких границ между классами компьютеров не существует.По мере совершенствования структур и технологии производства, появляются новые классы компьютеров (и границы существующих классов существенно изменяются).
1. По принципу действия вычислительные машины делятся на три больших класса: аналоговые (АВМ), цифровые (ЦВМ) и гибридные (ГВМ). АВМ – вычислительные машины непрерывного действия, работают с информацией, представленной в непрерывной (аналоговой) форме, т.е. в виде непрерывного ряда значений какой-либо физической величины(механического воздействия, перемещения, электрического напряжения и др.). ЦВМ – вычислительные машины дискретного действия, работают с информацией, представленной в дискретной, а точнее, в цифровой форме. ГВМ – вычислительные машины комбинированного действия, работают с информацией, представленной и в цифровой, и в аналоговой форме (совмещают в себе достоинства АВМ и ЦВМ). Их используют в управлении сложными техническими комплексами.
2. По назначениювычислительные машины делятся на три группы: универсальные (общего назначения), проблемно-ориентированные и специализированные.
Универсальные вычислительные машины предназначены для решения самых разных задач: экономических, математических, информационных и других, отличающихся сложностью алгоритмов и большим объемом обрабатываемых данных.
Характерными чертами универсальных машин являются:
· разнообразие форм обрабатываемых данных: двоичных, десятичных, символьных, при большом диапазоне их изменения и высокой точности их представления;
· обширная номенклатура выполняемых операций, как арифметических, логических, так и специальных;
· большая емкость оперативной памяти;
· развитая организация системы ввода-вывода информации.
Проблемно-ориентированные вычислительные машины служат для решения более узкого круга задач, связанных, как правило, с управлением технологическими объектами; регистрацией, накоплением и обработкой относительно небольших объемов данных; выполнением расчетов по относительно несложным алгоритмам. Они обладают ограниченными по сравнению с универсальными машинами аппаратными и программными ресурсами. К проблемно-ориентированным вычислительным машинам можно отнести, в частности, всевозможные управляющие вычислительные системы (АСУТП, САПР).
Специализированные вычислительные машины используются для решения узкого круга задач или реализации строго определенной группы функций. Такая их узкая ориентация позволяет четко специализировать структуру, существенно снизить их сложность и стоимость при сохранении высокой производительности и надежности их работы. К специализированным машинам можно отнести, например, программируемые микропроцессоры специального назначения, выполняющие логические функции управления отдельными несложными техническими устройствами, агрегатами и процессами.
3. По размерам и функциональным возможностям вычислительные машины можно разделить на сверхбольшие (суперЭВМ) – многопроцессорные и (или) многомашинные комплексы, которые используются для решения сложных и больших научных задач — в управлении, разведке, в качестве централизованных хранилищ информации и т.д. Большие (мэйнфреймы) — предназначены для решения широкого класса научно-технических задач. Малые (конструктивно выполненные в одной стойке). Сверхмалые (микроЭВМ).
Заметим, что иногда классификация осуществляется и по иным признакам: например, элементной базе, конструктивному исполнению и др.
Свойства ЭВМ любого типа оценивается с помощью их технико-экономических характеристик, основными из которых являются: операционные ресурсы(характеризуются количеством реализуемых операций, формами представления данных, а также способами адресации), емкость памяти (определяется общим количеством ячеек памяти для хранения информации), быстродействие(определяется числом коротких операций типа сложения, выполняемых за 1 сек), надежность(среднее время работы между двумя отказами),стоимость(это суммарные затраты на приобретение аппаратных и базовых программных средств ЭВМ, а также затраты на эксплуатацию).