Архитектура клиент-сервер
Back Office Systems До недавних пор разрабатываемые прикладные системы (или приложения) были нацелены на решение основных потребностей бизнеса: обработка платежных документов и расчет заработной платы (Payroll), обработка счетов дебиторов (A/R) и кредиторов.(A/P) обработка учетных документов (Inventory Control) обработка заказов (Order Processing) Такие системы называются базовыми ("Back Office Systems"). Основной функцией этих систем является хранение и ведение соответствующих записей. Подобные системы используются во всех сферах деятельности, они могут быть приобретены на стороне и адаптированы к специфике конкретной организации.
Front Office Application В настоящее время возникла острая необходимость в прикладных системах, которые непосредственно способствуют успеху организации на рынке, ее доходности, росту продаж, анализу информацию и поддержке принятия решений, усовершенствованию продукции, автоматизации процессов производства и распределения и т.д. Эти системы можно назвать системами взаимодействия с внешним миром ("Front Office Application"). Они должны быстро разрабатываться, функционировать в разнородных сетевых средах, сочетать использование таких видов информации как аудио, видео, графику и текст, иметь доступ к изолированным источниками информации ("информационным островам").
Распределенные вычисления Термин "распределенные вычисления" (Distributing computing) часто используется для обозначения двух различных, хотя и взаимодополняющих концепций: Распределенная база данных; Распределенная обработка данных. Применение этих концепций дает возможность организовать доступ к информации, хранящейся на нескольких машинах, для конечных пользователей, использующих различные средства.
Распределенная база данных Распределенная база данных - это набор баз данных, связанных между собой логически, но физически расположенных на нескольких машинах, входящих в одну компьютерную сеть. Важнейшие характеристики распределенной базы данных таковы: прозрачность расположения, автономность узлов распределенной базы данных (Site Autonomy), обработка распределенных запросов, выполнение распределенных транзакций.
Характеристики распределенной базы данных Прозрачность расположения позволяет пользователям работать с базами данных, не зная ничего об их расположении. Автономность узлов распределенной базы данных означает, что ведение каждой базы может происходить независимо от других. Распределенный запрос - это такой запрос (SQL-предложение), в ходе выполнения которого происходит доступ к объектам (таблицам или представлениям) разных баз данных. При выполнении распределенных транзакций осуществляется согласованное управление (concurrency control) всеми вовлеченными базами данных.
Распределенная обработка данных Распределенная обработка данных означает разные понятия для разных людей. Например, В Oracle это отделение прикладных программ от выполнения операций с базами данных. Операции с базами данных носят общий характер и могут соответствовать требованиям различных приложений по обработке информации. Выполнение операций с базами данных на одной машине и приложений на другой - это и есть распределенная обработка данных. Связь между приложением и процессами выполнения операций с базами данных реализуется как аппаратурой, так и путем программного обеспечения.
Клиент-сервер Технология клиент-сервер является реализацией распределенной обработки данных. Типичная архитектура клиент/сервер состоит из программы- клиента конечного пользователя, которая имеет доступ на удаленном компьютере-сервере. Это разделение процессов обработки данных основано на группировании функций. Не существует никакого стандартного определения, что такое клиент и чем занимается сервер. Однако можно полагать, что … сервер обеспечивает сервис, клиент запрашивает сервис у сервера. К одному и тому же серверу может обращаться множество клиентов с требованием предоставить им какой-либо сервис, и именно сервер решает, как обработать такие запросы.
В среде клиент-сервер последний играет намного большую роль, чем просто распределитель данных. Фактически сервер выполняет основную часть работы системы. Сервер в некоторой мере руководит клиентом, каким образом тот должен получать доступ и управлять данными. Реально клиентские приложения предназначены только для предоставления данных пользователю или для их доставки от конечного пользователя
Почему клиент-сервер Использование решения клиент/сервер может заинтересовать вас в следующем случае: представьте, что вы ответственны за создание приложения, которое обращается к данным, постоянно находящимся в локальной сети или на файловом сервере. Внутри вашего подразделения к этому приложению могут обратиться одновременно несколько пользователей, а со временем появляются и другие приложения для работы с этими данными. Предположим, что эти данные представляют интерес и для других подразделений внутри вашей организации
Например в некоторых подразделениях нашей компании должны быть созданы дополнительные приложения. При этом, скорее всего, необходимо переместить данные на сервер для того, чтобы сделать их доступнее для всех пользователей. Поскольку это происходит на уровне организации, важно, чтобы используемое решение позволяло осуществить доступ к данным не только быстро, но и в необходимом для приложения виде. Следует отметить, что глобальная доступность данных приводит к появлению некоторых проблем. Самые важные из них - чрезмерная сетевая нагрузка и зaщита данных.
В приведенном примере показано что технологи клиент –сервер обладает целым рядом преимуществ. Допускает ведомственный доступ к данным, что позволяет подразделениям обрабатывать только ту часть данных, за которую они ответственны. Обеспечивает доступ к данным способом, предложенным производителем базы данных. Устанавливает правила целостности данных для всей базы данных. Обеспечивает "разделение труда" между клиентом и сервером (каждый выполняет задачи, для решения которых более приспособлен). Может использовать улучшенные возможности целостности данных, обеспечиваемые большинством серверов базы данных. Уменьшает сетевую нагрузку, поскольку клиенту возвращаются подмножества данных, а не все таблицы, в случае локальных баз данных.
Следует отметить, что использование технологии клиент-сервер не всегда оправдано. Разработчик должен провести полный анализ требований к системе для определения того, является ли технология клиент- сервер именно тем средством, которое необходимо для решения поставленных задач. Кроме того, следует учесть, что системы клиент/сервер весьма дорогостоящие. В эту стоимость входит программное обеспечение, операционная система, сервер базы данных и аппаратные средства, соответствующие программному обеспечению этого уровня. Не стоит забывать и о затратах пользователей работе с операционной системой и программным обеспечением базы данных
Клиент Основная функция компьютера-клиента ( или программы-клиента) состоит в выполнении приложения (интерфейса с пользователем и логики представления) и осуществлении связи с сервером, когда этого требует приложение.
Сервер Как следует уже из самого термина, главная функция компьютера-сервера заключается в обслуживании потребностей клиента. Термин "Сервер" используется для обозначения двух различных групп функций: файл-сервер и сервер баз данных (далее эти термины означают в зависимости от контекста либо программное обеспечение, реализующее указанные группы функций, либо компьютеры с этим программным обеспечением.) Файл-серверы не предназначены для выполнения операций с базами данных, их основная функция -разделение файлов между несколькими пользователями, т.е. обеспечение одновременного доступа многих пользователей к файлам на компьютере - файл-сервере
Но чаще компьютер с сервером баз данных выделяется только для выполнения операций с базами данных. Связь с клиентом, анализ и выполнение запроса к базе данных, включая возврат клиенту результата запроса (набора строк из базы данных), управление одновременным доступом к базе данных многих пользователей, перенаправление запросов к другим серверам сети, выполнение реляционных операций, управление словарем-справочником данных и обеспечение защиты - таковы некоторые основные функции сервера баз данных. Одно из важных требований к серверу - это то, что операционная система, в среде которой размещен сервер баз данных, должна быть многозадачной (и, желательно, но не обязательно, многопользовательской).