* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Варианты технологии клиент — сервер
18 марта 2009
В настоящее время весьма актуален переход от небольших локальных сетей персональных компьютеров к промышленным корпоративным информационным системам — UPSIZING. Большинство средних и крупных государственных и коммерческих организаций постепенно отказываются от использования только ПК, задачей сегодняшнего дня является создание открытых и распределенных информационных систем. На сегодняшний день развитие информационных технологий предлагает создание единых сетей предприятий и корпораций, объединяющих удаленные компьютеры и локальные сети, часто использующие разные платформы, в единую информационную систему. Т. е. необходимо объединить пользователей компьютеров в единое информационное пространство и предоставить им совместный доступ к ресурсам. Однако здесь возникает множество трудностей, связанных с решением задачи по организации каналов связи (кабель Ethernet не протянешь по городу, а тем более до другого конца планеты). При построении корпоративных сетей иногда используются телефонные каналы, но связь по таким коммутируемым линиям ненадежна, аренда выделенных линий связи дорога, а эффективность такого канала невысокая. Проблема возникает и при интегрировании в корпоративную сеть разнородных ЛВС, а также в подключении больших компьютеров, например, IBM mainframe или VAX. Сложности возникают и при объединении в одну локальную сеть компьютеров с разными ОС. Поэтому построение корпоративной сети задача не из легких.
Проблема первая — это каналы связи. Самым оптимальным вариантом является использование уже существующих глобальных сетей передачи данных общего пользования, чтобы коммуникационный протокол в корпоративной сети совпадал с принятым в существующих глобальных сетях. Наиболее рациональным выбором здесь следует считать протокол Х.25. Данный протокол позволяет работать даже на низкокачественных линиях связи, так как разрабатывался он для подключения удаленных терминалов к большим ЭВМ и соответственно включает в себя мощные средства коррекции ошибок, освобождая от этой работы пользователя. Дальнейшее развитие Х.25 - Frame Relay, а также новые протоколы типа АТМ, хотя и обещают значительно большие скорости, требуют практически идеальных линий связи и, возможно, не скоро будут широко применяться в будущем. Существующие в нашей стране глобальные сети общего доступа — SprintNet, Infotel, Pochet и прочие — построены на базе Х.25 Протокол Х.25 позволяет организовать в одной линии до 4096 виртуальных каналов связи. Если протянуть к офису одну выделенную линию, то ее можно одновременно использовать для объединения нескольких удаленных офисов, подключения корпоративных информационных ресурсов, доступа к системам электронной почты. Выделенная линия — это обычная телефонная линия, с которой можно работать на скоростях 9600 — 28800 бит/с. Более скоростные линии (64 Кбит/с и более) стоят значительно дороже. Обычно сети Х.25 строятся на двух типах оборудования — Switch, или центр коммутации пакетов (ЦКП), и PAD (packet assembler/disassembler — сборщик/разработчик пакетов), называемый также пакетным адаптером данных (ПАД) или терминальным концентратором. ПАД служит для подключения к сети Х.25 оконечных устройств через порты. Пример использования ПАД в корпоративной сети — подключение банкоматов к центральному компьютеру банка. Задача ЦКП состоит в определении маршрута, т. е. в выборе физических линий и виртуальных каналов в них, по которым будет пересылаться информация. Переход к многопользовательским СУБД — качественный технологический скачок, обеспечивающий деятельность организаций в будущем. Реализация перехода к новой информационной системе (ИС) зависит от используемой и перспективной моделей клиент — сервер. Модели клиент — сервер являются технологией взаимодействия компьютеров в сети. Каждый из компьютеров имеет свое назначение и играет свою определенную роль. Одни компьютеры в сети владеют и распоряжаются информационно- - вычислительными ресурсами (процессоры, файловая система, почтовая служба, служба печати, база данных), другие имеют возможность обращаться к этим службам, пользуясь их услугами. Компьютер, управляющий тем или иным ресурсом, называют сервером этого ресурса, а компьютер, пользующийся им, — клиентом. Каждый конкретный сервер определяется видом того ресурса, которым он владеет. Например, назначением сервера баз данных является обслуживание запросов клиентов, связанных с обработкой данных; файловый сервер, или файл-сервер, распоряжается файловой системой и т. д. Этот принцип распространяется и на взаимодействие программ. Программы имеют распределенный характер, т. е. одна часть функций прикладной программы реализуется в программе-клиенте, а другая — в программе-сервере, а для их взаимодействия определяется некоторый протокол. Рассмотрим эти функции. Один из основных принципов технологии клиент-сервер заключается в разделении функций стандартного интерактивного приложения на четыре группы, имеющие различную природу. Первая группа — функции ввода и отображения данных. Вторая группа — объединяет чисто прикладные функции, характерные для данной предметной области (для банковской системы — открытие счета, перевод денег с одного счета на другой и т. д.). Третья группа — фундаментальные функции хранения и управления информационно-вычислительными ресурсами (базами данных, файловыми системами и т. д.). Четвертая группа — служебные функции, осуществляющие связь между функциями первых трех групп. В соответствии с этим в любом приложении выделяются следующие логические компоненты: - компонент представления (presentation), реализующий функции первой группы; - прикладной компонент (business application), поддерживающий функции второй группы; - компонент доступа к информационным ресурсам. Различия в реализации технологии клиент — сервер определяются следующими факторами: - видами программного обеспечения, в которые интегрирован каждый из этих компонентов; - механизмами программного обеспечения, используемыми для реализации функций всех трех групп; - способом распределения логических компонентов между компьютерами в сети; - механизмами, используемыми для связи компонентов между собой. Выделяются четыре подхода, реализованные в следующих моделях: 1) модель файлового сервера (File Server - FS); 2) модель доступа к удаленным данным (Remote Data Access - RDA); 3) модель сервера баз данных (Data Base Server - DBS); 4) модель сервера приложений (Application Server - AS). Архитектура файл-сервер не имеет сетевого разделения компонентов PS и PL и использует компьютер для функций отображения, что облегчает построение графического интерфейса. Файл-сервер только извлекает данные из файлов. Объектами разработки в файл-серверном приложении являются компоненты приложения, определяющие логику диалога PL, а также логику обработки BL и управления данными DL. Однако такая архитектура имеет недостаток: при выполнении запросов к базе данных клиенту могут передаваться большие объемы данных, загружая сеть и приводя к непредсказуемости времени реакции. Для устранения этого недостатка в локальной сети размещается сервер приложений, совмещенный с сервером доступа, в среде которого выполняются обычные файл-серверные приложения. Кроме того, файл-серверные системы создаются на основе локальных СУБД, которые привлекают своей простотой, удобством использования и доступностью. Но такие системы не отвечают требованиям обеспечения целостности данных. Архитектура клиент – сервер. Особенностью архитектуры клиент — сервер является использование выделенных серверов баз данных, понимающих запросы на языке структурированных запросов SQL и выполняющих поиск, сортировку и агрегирование информации. Объектами разработки в таких приложениях помимо диалога и логики обработки являются, прежде всего, реляционная модель данных и связанный с ней набор SQL- операторов для типовых запросов к базе данных. Большинство конфигураций клиент — сервер использует двухуровневую модель: приложение работает у клиента, СУБД – на сервере. Результаты SQL-запроса должны вернуться к клиенту для обработки, потому что там находится BL (логика принятия решений). Такая схема приводит к дополнительному усложнению администрирования приложений, разбросанных по различным клиентским узлам. Модель файлового сервера(FS) является базовой для локальных сетей ПК. До недавнего времени была популярна среди отечественных разработчиков, использовавших такие системы, как FoxPro, Clipper, Clarion, Paradox и т. д. Один из компьютеров в сети считается файловым сервером и предоставляет другим компьютерам услуги по обработке файлов. Файловый сервер работает под управлением сетевой операционной системы (Novell NetWare) и играет роль компонента доступа к информационным ресурсам (т. е. к файлам). На других ПК в сети функционирует приложение, в кодах которого совмещены компонент представления и прикладной компонент. Протокол обмена представляет собой набор вызовов, обеспечивающих приложению доступ к файловой системе на файл-сервере. К недостаткам технологии данной модели относят низкий сетевой трафик (передача множества файлов, необходимых приложению), небольшое количество операций манипуляции с данными (файлами), отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы). Модель доступа к удаленным данным (RDA) существенно отличается от FS-модели методом доступа к информационным ресурсам. В RDA-модели коды компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Доступ к информационным ресурсам обеспечивается операторами специального языка (SQL, если речь идет о базах данных) или вызовами функций специальной библиотеки (если имеется специальный интерфейс прикладного программирования — API). Запросы к информационным ресурсам направляются по сети удаленному компьютеру, который обрабатывает и выполняет их, возвращая клиенту блоки данных. Говоря об архитектуре клиент — сервер, подразумевают данную модель. Основное достоинство RDA-модели заключается в унификации интерфейса клиент — сервер в виде языка SQL и широком выборе средств разработки приложений. К недостаткам можно отнести существенную загрузку сети при взаимодействии клиента и сервера посредством SQL-запросов; невозможность администрирования приложений в RDA, т. к. в одной программе совмещаются различные по своей природе функции (представления и прикладные). Модель сервера баз данных (DBS) реализована в некоторых реляционных СУБД (Informix, Ingres, Sybase, Oracle). Ее основу составляет механизм хранимых процедур — средство программирования SQL-сервера. Процедуры хранятся в словаре баз данных, разделяются между несколькими клиентами и выполняются на том же компьютере, где функционирует SQL-сервер. В DBS-модели компонент представления выполняется на компьютере-клиенте, в то время как прикладной компонент оформлен как набор хранимых процедур и функционирует на компьютере-сервере БД. Там же выполняется компонент доступа к данным, т. е. ядро СУБД. Понятие информационного ресурса сужено до баз данных, поскольку механизм хранимых процедур — отличительная характеристика DBS-модели — имеется пока только в СУБД. Достоинства DBS-модели: - возможность централизованного администрирования прикладных функций; - снижение трафика (вместо SQL-запросов по сети направляются вызовы хранимых процедур); - возможность разделения процедуры между несколькими приложениями; - экономия ресурсов компьютера за счет использования единожды созданного плана выполнения процедуры. К недостаткам относится: - ограниченность средств написания хранимых процедур, представляющих собой разнообразные процедурные расширения SQL, которые уступают по изобразительным средствам и функциональным возможностям в сравнении с языками С или Pascal. Сфера их использования ограничена конкретной СУБД из-за отсутствия возможности отладки и тестирования разнообразных хранимых процедур. На практике чаще используются смешанные модели, когда целостность базы данных и некоторые простейшие прикладные функции обеспечиваются хранимыми процедурами (DBS-модель), а более сложные функции реализуются непосредственно в прикладной программе, которая выполняется на компьютере-клиенте (RDA-модель). Модель сервера приложений (AS) представляет собой выполняемый на компьютере-клиенте процесс, отвечающий за интерфейс с пользователем (т. е. реализует функции первой группы). Прикладной компонент реализован как группа процессов, выполняющих прикладные функции, и называется сервером приложения (Application Server - AS). Доступ к информационным ресурсам осуществляет менеджер ресурсов (например, SQL-сервер). Из прикладных компонентов доступны такие ресурсы, как: базы данных, очереди, почтовые службы и др. AS, размещенная на компьютере, где функционирует менеджер ресурсов, избавляет от необходимости направления SQL-запросов по сети, что повышает производительность системы. Модели RDA и DBS опираются на двухзвенную схему разделения функций: - в RDA-модели прикладные функции отданы программе-клиенту (прикладной компонент сливается с компонентом представления); - в DBS-модели ответственность за их выполнение берет на себя ядро СУБД (прикладной компонент интегрируется в компонент доступа к информационным ресурсам). В AS-модели реализована трехзвенная схема разделения функций. Здесь прикладной компонент выделен как важнейший изолированный элемент приложения. Сравнивая модели, следует отметить, что AS обладает наибольшей гибкостью и имеет универсальный характер.