Обработка и хранение информации
Этот же принцип распространяется и на взаимодействие процессов. Если один из них выполняет некоторые функции, предоставляя соответствующий набор услуг, такой процесс рассматривается в качестве сервера. Сегодня технология "клиент-сервер" получает все большее распространение, однако сама по себе она не предлагает универсальных рецептов. Она лишь дает общее представление о том, как должна быть организована современная распределенная информационная система. В каждом конкретном случае технологическое решение должно быть основано на конкретных предметных областях и соответствующих прикладных платформах.
В соответствии с этим один из основных принципов технологии "клиент-сервер" заключается в разделении функций стандартного приложения на три группы, имеющие различные назначение и структуру. В любом приложении выделяются следующие логические компоненты:
- компонент ввода и представления данных (Data Input/ Presentation);
- прикладной компонент (Business Application), поддерживающий функции, необходимые для выполнения действий в данной предметной области;
- компонент доступа к информационным ресурсам (Resource Acces) или менеджер ресурсов (Resource Manager), поддерживающий глобальные функции хранения и управления данными (базами данных, файловыми и почтовыми системами и т.д.).
Различия в реализации приложений в рамках технологии "клиент-сервер" определяются тем, какие механизмы используются для реализации функций всех трех групп и как логические компоненты распределяются между компьютерами в сети. Выделяются три подхода, каждый из которых реализован в соответствующей модели:
- доступа к удаленным данным (Remote Date Access - RDA);
- сервера базы данных (DateBase Server - DBS);
- сервера приложений (Application Server - AS).
В модели RDA реализация представления данных и прикладного компонента совмещены и выполнятся на компьютере-клиенте. Этот компьютер поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к удаленным информационным ресурсам обеспечивается, как правило, с помощью специального языка запросов (Structured Querry Language - SQL) - если речь идет о базах данных; или вызовами функций специальных библиотек - если имеется соответствующий интерфейс (Application Program Interface - API).
Запросы направляются по сети удаленному компьютеру (например, серверу базы данных), который обрабатывает и выполняет запросы и возвращает клиенту блоки данных. Говоря о таком виде архитектуры "клиент-сервер" в большинстве случаев имеют в виду модель, называемую "толстым клиентом" ( рис. 3.9).
Модель доступа к удаленным данным и сервисам, обслуживающим работу по извлечению, передаче и записи данных (DBS-модель), строится в предположении, что процесс, выполняемый на компьютере-клиенте, ограничивается функциями представления, а собственно прикладные функции реализованы в хранимых процедурах (Stored Procedure - SP). Такие процедуры называют компилируемыми резидентными процедурами или процедурами базы данных ( рис. 3.10).
Они находятся непосредственно в базе данных и выполняются на компьютере-сервере (где функционирует ядро СУБД). В этом случае понятие информационного ресурса сужено до конкретной базы данных, поскольку механизм управления хранимыми процедурами заложен прямо в СУБД.
На практике часто используются смешанные модели, когда поддержка целостности базы данных и некоторые прикладные функции поддерживаются хранимыми процедурами (DBS-модель), а часть сложных функций реализуются непосредственно в прикладной программе, которая выполняется на компьютере-клиенте (RDA-модель).
В модели сервера приложений (AS-модель) процесс, выполняющийся на компьютере-клиенте, отвечает, как правило, за ввод и отображение данных. Прикладные функции выполняются группой процессов (серверов приложений), функционирующих на удаленном компьютере (или нескольких компьютерах). Доступ к информационным ресурсам, необходимым для решения прикладных задач, обеспечивается ровно тем же способом, что и в RDA-модели. Из прикладных компонентов доступны ресурсы различных типов - базы данных, индексированные файлы, очереди, и др. Серверы приложений выполняются, как правило, на том же компьютере, где функционирует менеджер ресурсов, однако могут выполняться и на других компьютерах ( рис. 3.11).
Модель "клиент-сервер", когда подавляющее большинство прикладных программ и сервисов расположено на стороне сервера, называется "тонким клиентом". Подчеркнём важное архитектурное и функциональное различие между рассмотренными моделями.
RDA и DBS модели реализуют двухзвенную схему разделения функций. В RDA-модели прикладные функции приданы программе-клиенту, в DBS-модели ответственность за их выполнение берет на себя ядро СУБД. В первом случае прикладной компонент сливается с компонентом представления, во втором - интегрируется в компонент доступа к информационным ресурсам. Напротив, в AS-модели реализована классическая трехзвенная схема разделения функций, когда прикладной компонент выделен как важнейший элемент приложения. Для его реализации используются универсальные механизмы многозадачной операционной системы и стандартизованные интерфейсы для взаимодействия с двумя другими компонентами. Собственно, из этой особенности AS-модели и вытекают ее преимущества, которые имеют важнейшее значение для чисто практической деятельности по организации коллективной работы в локальной сети или распределенной работы с удаленными базами данных или сервисными приложениями через Internet.
В распределенных корпоративных информационных системах с портальной моделью представления данных, информационного отображения и сопровождения процессов и жесткой системой информационной безопасности используются, как правило, трехзвенная модель, однако каждая из описанные выше моделей свои имеет преимущества и используется самостоятельно и в разных сочетаниях с другими моделями и приложениями [27].
Для передачи данных используются различные структуры коммутации. В первой из них взаимодействующие информационные системы связаны выделенным каналом. Такое взаимодействие называется смежным, и это наиболее эффективная структура в смысле безопасности и надежности передачи данных, но пригодна лишь в том случае, когда система должна взаимодействовать лишь с одним партнером и расстояние между ними невелико.
При большом расстоянии в канал следует "врезать" повторители, усилители и другие подобные им устройства. В тех случаях, когда система должна работать с группой партнеров, используется ячеистая сеть, состоящая из каналов и узлов коммутации. В четвертой структуре передатчик направляет блоки данных в сервер, который накапливает их и передаёт получателю тогда, когда последний будет готов их принять - например, персональному компьютеру или мобильному устройству, который часть времени отключены от сети.
Передача данных между смежными и несмежными системами происходит по-разному. Между смежными системами передача опирается на физическую платформу, которая включает лишь физический уровень и физические средства соединения ( рис. 3.12).
В соответствии с эталонной семиуровневой моделью взаимодействия открытых систем (Reference Model of Open System Interconnection - RM OSI) в сетях коммутации пакетов для передачи данных между несмежными компьютерными системами создается сетевая платформа, образуемая физическими средствами соединения, физическим, канальным и сетевым уровнями. Оконечные системы частично погружены в эту платформу, а над ней располагаются только 4-7 уровни этих систем. На границе сетевого и транспортного уровня прикладные процессы передают друг другу пакеты данных.
При любом типе соединения, как только компьютеров становится больше двух, возникает проблема выбора конфигурации физических связей или топологии сети. Под топологией сети понимается конфигурация графа, вершинам которого соответствуют конечные узлы сети (компьютеры, рабочие станции, серверы или испольнительные устройства) и коммуникационное оборудование (коммутаторы, маршрутизаторы), а ребрам - электрические, электронные и информационные связи между ними. Число возможных конфигураций резко возрастает при увеличении числа связываемых устройств.
Так, если три компьютера однозначно связываются двумя способами, то для четырех компьютеров можно предложить уже шесть топологически различных конфигураций (при условии однотипности компьютеров). Множество возможных конфигураций объединяются в две основные группы: полносвязные (Fully Connected Topology) и неполносвязные (Incompletely Connected Topology) ( рис. 3.13).
Полносвязная топология соответствует сети, в которой каждый компьютер непосредственно связан с каждым. Это логически самый простой вариант, но самый громоздкий и неэффективный. Во-первых, каждый компьютер в сети должен иметь большое количество коммуникационных портов, достаточное для связи с каждым из остальных компьютеров. Во-вторых, для каждой пары компьютеров должна быть выделена отдельная физическая линия связи, а в некоторых случаях даже две, если невозможно использование этой линии для двусторонней передачи.
Полносвязные топологии в крупных сетях применяются редко, так как для связи N узлов требуется N(N-1)/2 физических дуплексных линий связи. Чаще этот вид топологии используется в комплексах, где очень жесткие требования к безопасности и надежности, или в сетях, объединяющих небольшое количество выделенных компьютеров.
Ячеистая топология (Mesh Network) получается из полносвязной путем удаления некоторых нефункциональных связей. Ячеистая топология допускает соединение большого количества компьютеров и характерна для крупных корпоративных сетей. Все другие варианты соединений ( рис. 3.14), основаные на неполносвязных топологиях - когда для обмена данными между двумя несмежными компьютерами может потребоваться промежуточная передача данных через другие узлы сети - применяются в зависимости от количества компьютеров в сети, информационной нагрузки (трафика), уровня распределенности сети, количества прикладных и сервисных программ, требованиями к безопасности и т д.
Программно-аппаратные устройства распределенной обработки данных являются составной частью информационной инфраструктуры высокотехнологичных компаний ( рис. 3.6, рис. 3.7). На сегодняшний день на российском рынке представлены многочисленные продукты зарубежных и российских производителей для реализации соответствующих функций в распределенных корпоративных системах [28, 29].