Файл: Варианты архитектуры клиент-сервер (Модели клиент-сервер).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.06.2023

Просмотров: 86

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Клиент-серверную модель можно разделить на три части :

  • User Interface - Пользовательский интерфейс
  • Business or Application Logic - Бизнес и логика приложения
  • Data Management - Управление данными

Традиционное развитие веб-приложений распространило реализации пользовательского интерфейса в сети, причем большая часть логики интерфейса пользователя и код выполняется на сервере (тонкий клиент, толстый сервер).

Этот метод имеет несколько ключевых проблем:

  • Неудовлетворительное распределение обработки - с большим числом клиентов, делает все обработки на сервере неэффективно.
  • Высокая латентность ответа пользователя - традиционные вебприложения не реагируют достаточно быстро. Высокое качество взаимодействия с пользователем является очень чувствительным к задержкам, и очень быстрая реакция имеет важное значение.
  • Трудная модель программирования – программирование пользовательского интерфейса через клиент-сервер достаточно сложно.
  • Если правила доступа распространяются через пользовательский код интерфейса, то при росте кода пользовательского интерфейса возникают новые векторы атаки.
  • Сложное управления на серверах.
  • Offline трудности. Код пользовательского интерфейса должен выполняться на клиенте и в автономном ситуациях.
  • Снижение возможностей для взаимодействия. Когда клиент-сервер состоит из передачи внутренней части пользовательского интерфейса в браузере, бывает очень трудно понять эту связь и использовать ее для других приложений.

Необходимо решить, какой код должен работать на клиенте, а какой на сервере. Коду пользовательского интерфейса лучше работать на браузере, а бизнес-логике и управлению данными лучше работать на стороне сервера. Хороший дизайн включает в себя создание объектов, которые инкапсулируют большую часть своего поведения и минимальной площади поверхности. Он должен быть интуитивно понятным и легко взаимодействовать с хорошо разработанным интерфейсом объекта. Кроме того, клиент-серверное взаимодействие должно быть построено на хорошо продуманном интерфейсе. Проектирование модульных удаленных интерфейсов часто называют сервис-ориентированной архитектурой (SOA). Клиент-серверная реализация высокого качества должна иметь простой интерфейс между клиентом и сервером. На стороне клиента должен инкапсулировать презентации и код взаимодействия с пользователем. Код на стороне сервера должен инкапсулировать правила поведения и взаимодействия данных. Веб-приложения должны быть разделены на два основных элемента, пользовательский интерфейс и веб-сервис.


Преимущества чистой модели клиент-сервер:

  • Масштабируемость. Чем больше клиентов, которые используют приложения, тем больше клиентских машин, которые доступны, в то время как сервер остается постоянным.
  • Немедленный ответ пользователя. Клиентский код может немедленно реагировать на действия пользователя, а не ждать для передачи данных по сети.

Организованная модель программирования. Такая модель обеспечивает более чистый подход к безопасности. Когда все запросы идут через код пользовательского интерфейса, данные могут передаваться через различные интерфейсы до проверки безопасности. Это может сделать анализ безопасности более сложным. С другой стороны, с понятным интерфейсом вебслужбы есть четко определенные шлюз безопасности для работы

и анализа безопасности. Клиентская часть управления - сохранение информации о состоянии сессии на клиенте уменьшает нагрузку на сервер. Это также позволяет клиентам использовать более «спокойное» взаимодействие, которое может еще больше повысить масштабируемость и возможности кэширования. Автономные приложения. Если большая часть кода для приложений уже построена, чтобы работать на клиенте, создание автономной версии приложения почти наверняка будет легче. Взаимодействие. К структурированным данным с минимальными API-интерфейсами для взаимодействия намного проще подключать дополнительных потребителей и производителей и взаимодействовать с существующими системами. 3.4. 3-уровневая архитектура.

В настоящее время клиент-серверная архитектура имеет гибкую модульную архитектуру. Она может быть изменена или дополнена. Различные подходы могут быть скомбинированы в различных комбинаторных последовательностях, удовлетворяющих практически любые вычислительным потребностям. Поскольку Интернет становится важным фактором в вычислительных средах клиент-серверных приложений, работающих через Интернет станет важным нового типа распределенных вычислений. Интернет расширит охват и мощь клиент-серверной архитектуры. С помощью общепринятых стандартов, это позволит облегчить и расширить клиент-серверную архитектуру как внутри, так и между компаниями. Так же из-за интернета будут происходить изменения в языках программирования к технологии распределенных объектов. Клиент-серверная архитектура по-прежнему остается единственной и лучшей архитектурой с точки зрения использования Интернета и других новых технологий. Но, независимо от развитий других архитектурных подходов, клиент-серверная архитектура, вероятно, останется основой для большинства вычислительных событий в течение следующего десятилетия.


3.5. Прошлое и будущее клиентов.

Конечно же, с появлением большого количества людей, соединенных посредством компьютерной сети, сразу пошло бурное развитие клиентсерверных приложений. Но сервер в этом случае используется крайне экономно – это средство для хранения данных и выполнения несложных операций. Основную вычислительную роль берет на себя именно клиент, присоединенных к этой сети. Довольно удачная архитектура дает возможность использовать максимально ресурсы компьютера, богатый пользовательский интерфейс, важные данные пользователя хранятся на компьютере дома, а не сервере неизвестно какой страны. Проблем несколько – заставить человека установить какое-либо приложение можно лишь действительно предоставив ему его как средство решения проблемы. А как же быть тому количеству предпринимателей, которые любыми способами хотят привлечь человека своим выгодным товаром? Пока что клиент-серверная архитектура не сильно им в этом помогает. Да и приложения пишутся для определенной платформы и версии операционной системы, что напрочь лишает взаимодействия пользователей разных операционных систем. Но прогресс не стоит на месте, и в 1989 году была предложена концепция всемирной паутины. А уже через четыре года появляется первый браузер Mosaic. Сразу же в мире приложений начинает вырисоваться два класса приложений – тонкие клиенты, примером которого может служить тот же браузер Mosaic и толстые клиенты, которые по прежнему берут на себя значительную часть обработки информации и используют сервер для хранения и взаимодействия. Клиентские приложени я не собирается сдавать позиций, потому что все, что может сейчас браузер - это отображать информацию. Динамика отсутствует. Одно лишь значительное преимущество – сайты становятся визитной картой, имеющие свой оригинальный дизайн, расположение меню, цветовую гамму. Для клиентских приложений это не было распространено – все создавалось на основе стандартных вариантов, стандартное место расположения меню, стандартные цвета и шрифты. С одной стороны простота и функциональность, с другой стороны – красота и изящество. Конечно же, красота и изящество не могла не найти своих сторонников. Также пользователи разных операционных систем могли спокойно просматривать сайты. Возможны некоторые несоответствия в отображении информации, но все же лучше чем ничего. С появлением JavaScript в 1996 году html-страницы получают небывалую динамику и немного начинают походить на обычные клиентские приложения. Конечно же, до полноценных клиентских приложений им, скорее всего, не дойти никогда, но страницы оживают. Живые страницы делают переворот в интернете, и идет бурное совершенствование скриптовой технологии, что приводит к рождению в 2005 году AJAX, а именно идеи асинхронного обращения к серверу для получения лишь необходимой части страницы, а не всей страницы. Инновационные решения, основанные на AJAX, типа карт Windows Live Local, приблизили веб-приложения к уровню удобства обычных клиентских программ. Вот тут веб-страницу можно было уже спутать с обычным клиентским приложением. Но выглядеть как в клиентском приложении, и работать как клиентское приложение – это разные вещи. Все же доступ к ресурсам ограничен, соединение между клиентом и сервером одноразовое – уже просмотренные страницы при следующем обращении необходимо загружать опять. Но это проблемы, которые могут быть решены с появлением нового http-протокола. В свое время, толстые клиенты, работающие на компьютере пользователя, при грандиозном развитии веб-технологий становятся в прямом смысле толстыми – они сложны для клиента при обновлении версии, они прихотливы к семействам операционных систем, плохо взаимодействуют с веб-серверами, потому что зачастую построены с использованием клиентсерверной структуры. Здесь надо было срочно искать способы исправить ситуацию. Корпорация Microsoft не задержалась с предложением и выпустила на рынок программную технологию Microsoft .NET Framework, призванную объединить множество различных служб, написанных на разных языках, для общей совместимости. Эта виртуальная машина может быть установлена на разных семействах Windows, а также на других операционных системах, что позволяет использовать любой из языков NET-семейства для написания работоспособных приложений для всех операционных систем, на которых установлен framework. Одна из проблем, которая так долго преследовала клиентские приложения, частично была решена. Итак, гонка клиентских и веб-приложений находится на той стадии,


когда веб просто физически не может проникнуть глубже в ресурсы пользователя, чтобы увеличить быстродействие. Возможности в реализации отдельных техник все же еще не доступны по сравнению с клиентскими приложениями и есть проблема постоянного обращения к серверу, потому что все еще мы работаем с обычным html-кодом. Клиентские же приложение со своим богатством и простотой реализации сложнейших техник веба слишком неохотно потребляются пользователями, привыкшими к этому времени с помощью браузера решать самые сложные свои задачи. К тому же, клиентские приложения по прежнему привязаны к определенным протоколам передачи данных для обмена информацией. А это влечет за собой дублирование определенных сервисов. Так мы плавно перешли от истории к дням сегодняшним и видим, что бесспорного лидера нет, и каждая из технологий имеет свои достоинства и недостатки. После долгих блужданий возле клиентского компьютера интернетгиганты все же готовы смирится с тем, что для увеличения быстродействия отдельных сервисов, для дальнейшего усложнения систем придется рассчитывать на мощности своих серверов, а не пытаться максимально глубоко влезть в ресурсы пользователей. В связи с этим последнее время очень интенсивно пошло развитие сервисов, построенных для использования облачных вычислений (cloud computing) – технология обработки данных, в которой программное обеспечение предоставляется пользователю как Интернет-сервис. При этом пользователь не заботится об архитектуре облака, а лишь получает необходимые ему мощности от целых кластеров. Такие сервисы на данный момент уже предоставляют Microsoft, Amazon (Elastic Compute Cloud). Тем самым вся необходимая пользователю функциональность перемещается на сервера тех фирм, которые ее предоставляют. Доступ осуществляет через браузер, а, значит, отсутствует привязанность к разным семействам операционных систем. Ярким примером может служить: Gmail - почтовый клиент Google, предоставляющий богатый инструментарий для работы с почтой прямо из браузера. Тем же временем продолжается совершенствование способов приблизить веб в клиентским приложениям. В 2006 году корпорация Microsoft выпустила плагин к IE – Silverlight, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Софтверные же компании имеют другую позицию – а именно видят будущее в smart client-ах – локальных приложениях, которые всецело ориентированы на потребление всевозможных сервисов из вне. Smart Client — это легко устанавливаемое и управляемое клиентское приложение, предоставляющее пользователю адаптивный, отзывчивый и богатый пользовательский интерфейс, полностью использующее возможности локальных ресурсов компьютера и интеллектуально управляющее взаимодействием с распределенными источниками данных. Ключевыми особенностями, отличающими Smart Client, являются: Богатый пользовательский интерфейс. Чтобы называться «умным», клиентское приложение должно иметь удобный пользовательский интерфейс, подстраиваясь под нужды пользователя, допуская персонализацию и предоставляя все современные способы управления (drag’n’drop, контекстные меню, дочерние окна, нотификации и т. д.) Простая установка, не требующая участия пользователя. Приложение должно предлагать пользователю автоматическую установку, не требующую перезагрузки, долгого ожидания или большого объема закачиваемых файлов. Автоматическая установка обновлений. Появление новых версий приложения должно автоматически проверяться, их установка так же должна происходить в автоматическом режиме. Возможность работы при отсутствии соединения с сервером. Если приложение в своей работе взаимодействует с удаленными источниками данных, оно также должно работать и предоставлять максимум возможной функциональности и при «отсоединенной» (оффлайн) работе. Примерами существующих смарт-клиентов могут быть: IssueVision - help desk management application TaskVision – клиентское приложение, которое позволяет подключенным пользователям создавать задачи, проекты и распределять их между другими пользователями. Взаимодействие между пользователями


построено с использованием веб-сервисов.

Поскольку обмен структурированными данными между клиентом с

сервисом производится с помощью стандартного языка XML – то

приложение может взаимодействовать с большинством существующих

сервисов, не зависимо от языка реализации. Однако даже с этими решениями

у «smart» клиентов в случае прерывания связи с Internet только один выбор

— отключаться, поэтому для устранения этого неудобства в Microsoft

предложили технологию Live Mesh, позволяющую локально запускать Webприложения.

Звучит немного парадоксально – имеется в виду, что

приложение может работать с данными и при следующем подключении уже

синхронизировать их с сервером.

Такая возможность (работать оффлайн) также будет включена в

последний Silverlight, что позволит даже с веб-страницами работать в

оффлайн режиме.

Заключение

В ближайшее время, как и последние много лет, основной средой обмена

информацией останется интернет. Судя по тенденциям, клиентские и веб

приложения будут развиваться параллельно, только немного другим путем –

теперь это будут не монолитные порталы, написанные одной командой и

использующие ресурсы одной эко-системы. Это будут наряженные ѐлки –

один костяк и множество подключенных сервисов, возможно даже

разработанные разными фирмами. Это приведет к тому, что основное

внимание и львиная доля времени будет расходоваться на разработку

сложных сервисов, но потом они легко будут подключаться к всевозможным

порталам, приложениях и другим сервисам. Тем самым в скором будущем

мы будем находиться не только во всемирной паутине, но еще и каждая

ниточка этой паутины будет состоять из такого же сложного смешения

различных сервисов, потребляемых различными устройствами. Но это

огромное разнообразие сервисов будет полезно после окончательного

внедрения нового протокола IPV6, что позволит подключать к интернету

даже микроволновые печи, холодильники и т.д. Именно управление таким

огромным количеством устройств в сети приведет к созданию множества

сервисов и порталов, которые в онлайн режиме помогут управлять вашими

электроприборами.

Используемая литература

Г.М.Лодыженский Системы баз данных. Коротко о главном. СУБД N 1, 2, 3, 4 1995.

Д.Васкевич Стратегии клиент/сервер. Диалектика, Киев, 1997.