Добавлен: 27.06.2023
Просмотров: 75
Скачиваний: 2
Общим решением проблем является использование технологий, реализующие протоколы удаленного вызова процедур стандартизованным и платформо - независимым способом. При использовании таких технологий обращение к сервису в удаленном узле выглядит как стандартный вызов процедуры. Средства, в которых, содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Этим, специфика сетевой среды и протоколов скрыта от прикладного программиста.
При вызове удаленной процедуры, программы производят преобразование форматов данных клиента в промежуточные машинно-независимые форматы, а потом происходит преобразование в форматы данных сервера. При ответе, производятся обратные преобразования. Таким образом, если система реализована на основе стандартного пакета, то она может быть легко перенесена в любую доступную открытую среду.
Некоторые авторы представляют многозвенную архитектуру (трехзвенную) в виде пяти уровней:
1. Представление;
2. Уровень представления;
3. Уровень логики;
4. Уровень данных;
5. Данные.
К представлению относится вся информация, непосредственно отображаемая пользователю: сформированные html-страницы, таблицы стилей, изображения. К уровеню представления относится то, что имеет отношение к общению пользователя с системой. Основная функция слоя представления – это отображение информации и интерпретация вводимых пользователем команд с преобразованием их в соответствующие операции в контексте логики и данных.
Уровень логики включает в себя основные функции системы, предназначенные для достижения поставленной перед ним цели. В эти функции входят вычисления на основе вводимых и хранимых данных, проверка всех элементов данных и обработка команд, поступающих от слоя представления, а также транспортировка информации уровню данных.
Уровень доступа к данным – это подмножество функций, обеспечивающих взаимодействие с иными системами, которые решают задачи в интересах приложения.
Все данные системы хранятся в базе данных.
2.6 Клиент-серверная архитектура применительно к ИС.
Термин "клиент-сервер" означает архитектуру программного комплекса, в которой его части взаимодействуют по схеме "запрос-ответ". Если рассмотреть две взаимодействующие части комплекса, то одна из них (клиент) выполняет активную функцию, т. е. определяет запросы, а другая (сервер) пассивно на них отвечает. Во время развития системы роли могут меняться, например какой то программный блок будет одновременно выполнять функции сервера по отношению к одному блоку и клиента по отношению к третьему блоку.
Любая информационная система должна иметь три основные функциональные части - модули хранения данных, обработки этих данных и интерфейса с пользователем. Каждая из этих частей может быть реализована независимо от остальных двух. Например, не меняя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем так, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Не меняя программ представления данных и их хранения, можно изменить программы обработки, например, изменив алгоритм полнотекстового поиска. Так же не изменяя программ представления и обработки данных, можно изменить программное обеспечение для хранения данных, перейдя, на другую файловую систему. В классической клиент-серверной архитектуре три основные части приложения приходится распределять по двум физическим модулям. Обычно, ПО хранения данных располагается на сервере (например, сервере базы данных), интерфейс с пользователем - на стороне клиента, а обработку данных приходится распределять между клиентской и серверной частями. В этом-то и заключается основной недостаток двухуровневой архитектуры, из них вытекает несколько неприятных особенностей, сильно усложняющих разработку клиент-серверных систем. А именно, при разбиении алгоритмов обработки данных необходимо синхронизировать поведение обеих частей системы. Все разработчики должны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения. Это создает большие сложности при разработке клиент-серверных систем, их установке и обслуживании, поскольку необходимо тратить значительные усилия на координацию действий разных групп специалистов. В действиях разработчиков часто возникают противоречия, а это, несомненно, тормозит развитие системы и принуждает менять уже готовые и проверенные элементы системы. Чтобы избежать несогласованности различных элементов архитектуры, пытаются выполнять обработку данных на одной из двух физических частей - либо на стороне клиента ("толстый" клиент), либо на сервере ("тонкий" клиент, или архитектура, называемая "2,5- уровневый клиент-сервер"). Каждый подход имеет свои недостатки. В первом случае неоправданно перегружается сеть, поскольку по ней передаются необработанные, а значит, избыточные данные. Кроме того, усложняется поддержка системы и ее изменение, так как замена алгоритма вычислений или исправление ошибки требует одновременной полной замены всех интерфейсных программ, а иначе могут возникнуть ошибки или несогласованность данных. Систему с обработкой информации на сервере абсолютно невозможно перенести на другую платформу, что является серьезным недостатком.
2.7 Толстый и тонкий клиенты.
Как значится в словаре Free Online Dictionary of Computing, тонкий клиент - это клиентское устройство (или программа), передающее большую часть исполняемых им функций серверу. Толстый клиент определить намного проще - это все клиенты, не являющиеся тонкими.
Тонкий клиент (thin client) — терминал сети без жестких дисков, вычислительная мощность которого и объем памяти определяются задачами пользователя. Все программы и приложения, хранящиеся на сервере, становятся доступными для пользователя при включении его устройства и выполнении процедуры регистрации на сервере. Тонким клиентом называют
Также персональные компьютеры (и мобильные) с оптимально низкой мощностью процессора, малой ROM и RAM, позволяющий пользователю осуществлять ввод и отображение данных с помощью выполнения вычислений и хранения информации на более мощном ПК или серверах, с которыми он может содействовать с помощью каналов не высокой пропускной способности. К тонкому клиентуесть возможность подключения внешних устройства ввода/вывода данных (мониторы, скан-системы, устройства печати и проекторы).
Клиент называется тонким, если он совсем не содержит или содержит малую часть бизнес-логики, т. е. представляет собой исключительно презентационный слой. К толстым принадлежат клиенты с большей долей бизнес-логики. Лучший пример тонкого клиента — Web-браузер, настолько универсальный, что способен подключаться к абсолютно разным прикладным программам, о них "не знает" ничего, и, тем не менее обеспечивать приемлемый интерфейс пользователя. Вся концепция сетевого компьютера строится на идее создания дешевого небольшого устройства, на котором будет работать Web-браузер.
Централизация администрирования настольных устройств |
Из-за централизованного оперирования приложениями и их модификациями, производимыми на сервере, они становятся доступными для всех пользователей одновременно, нет необходимости в контакте с отдельными пользователями. |
Упрощение технологии обслуживания рабочих мест |
Используя соответствующие сервисные средства, аператор системы одновременно может обслуживать множество устройств. |
Контроль за действиями пользователя |
Благодаря отсутствию накопителей на рабочем месте, пользователь не может добавить в конфигурацию программного обеспечения что-то свое-иное, устанавливая вредоносные приложения. |
Мобильность пользователей |
Пользователь, не привязанный к конкретному рабочему месту, может произвольно передвигаться в рамках локальной сети, используя устройства дистанционного доступа. |
Повышение производительности труда операторов |
Сведения на сервере заметно повышают производительность труда операторов. |
Преимущества тонких клиентов
Технология «тонкий клиент-сервер» базируется на трех основных составляющих: 1) 100% выполнение прикладных задач на терминальном сервере, 2)операционная система, рассчитанная на многих пользователей
3) технология распределенного отображения пользовательского интерфейса приложений.
Пользователи имеют возможность одновременно заходить в систему и выполнять приложения на сервере в разных, защищенных друг от друга сессиях сервера.
В системе с использованием тонкого клиента по сети или коммутируемой телефонной линии на сервер передаются сигналы, отражающие нажатие на ту или иную клавишу либо то или иное движение мыши. А сервер производит соответствующие действия и формирует изменения экрана пользователя и передаѐт эти изменения тонкому клиенту.
Тонкий клиент получает от сервера изменѐнные образы экрана и отображает их на дисплее (в современных системах может передаваться не весь изменѐнный экран, а лишь части изображения с соответствующими командами, на основании которых программное обеспечение тонкого клиента формирует изменѐнную картинку). Клиентом может выступать любой ПК, но, т.к. в его тех части почти не выполняются операции по обработке данных, в качестве тонких клиентов можно использовать и недорогие устройства, имеющие низкую производительность, не содержащие компоненты с движущимися частями (жесткие диски, вентиляторы), оснащенные, как правило, устройствами с весьма ограниченным объемом памяти (ОЗУ).
При работе в терминальной системе все прикладные программы, данные и параметры настроек хранятся на терминальном сервере. Это даѐт много преимуществ в плане изначального разворачивания рабочих мест (нет необходимости устанавливать программное обеспечение на каждом терминале), более удобного проведения резервного копирования данных (надо копировать только содержимое сервера), восстановления сессий после сбоев (все пользовательские сессии автоматически сохраняются на сервере). Еще одно преимущество технологии тонких клиентов состоит в том, что она ориентирована на с0трудников, пользующихся дистанционным д0ступом. Если какое-то время сотрудникам компании нужно работать вне офиса (скажем, в командировке, в другом офисе или дома), эта проблема легко решается с помощью систем на базе тонких клиентов.
Технология тонких клиентов предоставляет высокую производительность и на низко производительных рабочих местах, за счѐт использования вычислительных ресурсов терминального сервера. При необходимости увеличить вычислительную мощность всей системы достигается заменой всего лишь одного устройства – терминального сервера, все рабочие места автоматически переходят на более высокий уровень производительности без необходимости замены каких-либо устройств
Толстый или Rich-клиент – это приложение, обеспечивающее расширенную функциональность независимо от центрального сервера. Чаще всего в таком случае сервер является лишь хранилищем данных, а вся работа по обработке и представлению этих данных переносится на машину клиента.
Большинство современных средств быстрой разработки приложений (RAD), которые работают с различными базами данных, реализует стратегию: "толстый" клиент обеспечивает интерфейс с сервером базы данных через встроенный SQL. Такой вариант реализации системы с "толстым" клиентом, кроме перечисленных выше недостатков, обычно обеспечивает недопустимо низкий уровень безопасности. Например, в банковских системах приходится всем операционистам давать права на запись в основную таблицу учетной системы. Кроме того, данную систему почти невозможно перевести на Web-технологию, так как для доступа к серверу базы данных используется специализированное клиентское ПО.
Итак, рассмотренные выше модели имеют следующие недостатки:
"Толстый" клиент:
- сложность администрирования;
- усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе;
- усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
- перегружается сеть вследствие передачи по ней необработанных данных;
- слабая защита данных, поскольку сложно правильно распределить полномочия.
"Толстый" сервер:
- усложняется реализация, так как языки типа PL/SQL не приспособлены для разработки подобного ПО, и нет хороших средств отладки;
- производительность программ, написанных на языках типа PL/SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
- программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;
- получившиеся таким образом программы полностью непереносимы на другие системы и платформы.
Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры клиент-сервер.
Рассмотрим следующие компоненты:
- презентационная логика (Presentation Layer - PL);
- бизнес-логика (Business Layer - BL);
- логика доступа к ресурсам (Access Layer - AL).
Таким образом, можно придти к нескольким моделям клиент-серверного взаимодействия 1):
"Толстый" клиент. Наиболее часто встречающийся вариант реализации архитектуры клиент-сервер в уже внедренных и активно используемых системах. Такая модель подразумевает объединение в клиентском приложении как PL, так и BL. Серверная часть, при описанном подходе, представляет собой сервер баз данных