Добавлен: 04.04.2023
Просмотров: 118
Скачиваний: 1
Различные подходы могут комбинироваться в различных последовательностях, удовлетворяющих практически любые вычислительные потребности. Поскольку Интернет является важным фактором в вычислительных средах клиент-серверных приложений, то технология, поддерживающая работу через Интернет станет основой нового типа распределенных вычислений.
Интернет расширяет охват и мощь клиент-серверной архитектуры. С помощью общепринятых стандартов, это позволяет упростить и расширить клиент-серверную архитектуру как внутри, так и между компаниями. Так же из-за Интернета происходят изменения в языках программирования и технологии распределенных объектов.
Клиент-серверная архитектура по-прежнему остается единственной и лучшей архитектурой с точки зрения использования Интернета и других новых технологий. Но, независимо от развитий других архитектурных подходов, клиент-серверная архитектура, вероятно, останется основой большинства вычислительных событий в течение следующего десятилетия.
Конечно, с появлением большого числа людей, соединенных посредством компьютерной сети, пошло бурное развитие клиент-серверных приложений. Однако сервер в этом случае используется крайне экономно – это лишь средство для хранения данных и выполнения несложных операций. Основную вычислительную роль при этом выполняет именно клиент, присоединенный к сети. Такая архитектура позволяет максимально использовать ресурсы компьютера, предоставляет богатый пользовательский интерфейс, а также гарантирует, что все важные данные пользователя хранятся на компьютере дома, а не на сервере неизвестно какой страны.
При этом возникает несколько проблем – заставить человека установить какое-либо приложение можно лишь действительно предоставив ему это приложение в качестве средства решения проблемы. А как же быть тому числу предпринимателей, которые любыми способами хотят привлечь человека своим выгодным товаром? Пока что клиент-серверная архитектура не сильно им в этом помогает. Приложения пишутся для определенной платформы и версии операционной системы, что напрочь лишает взаимодействия пользователей разных операционных систем.
Однако прогресс не стоит на месте, и в 1989 году была предложена концепция всемирной паутины. А уже через четыре года появился первый браузер Mosaic. При этом в мире приложений начинает вырисоваться два класса приложений – тонкие клиенты, примером этого может служить тот же браузер Mosaic, и толстые клиенты, которые по-прежнему берут на себя значительную часть обработки информации и используют сервер для хранения и взаимодействия.
Клиентские приложения не сдают позиций, потому что все на что способен первый браузер - это отображать информацию. Динамика отсутствует. Одно лишь значительное преимущество – сайты становятся визитной картой с оригинальным дизайном, расположением меню, цветовой гаммой и т.п. Это не распространялось на клиентские приложения. Они по-прежнему создавались на основе стандартных вариантов, стандартного места расположения меню, стандартных цветов и шрифтов. С одной стороны простота и функциональность, с другой стороны – красота и изящество.
Конечно же, красота и изящество не могла не найти своих сторонников.
Также это позволило пользователям разных операционных систем просматривать одни и те же сайты. При этом были возможны некоторые несоответствия в отображении информации.
В 1996 году с появлением JavaScript 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, позволяющую локально запускать веб приложения. Звучит немного парадоксально – имеется в виду, что приложение может работать с данными и при следующем подключении уже синхронизировать их с сервером.
Такая возможность (работать оффлайн) также будет включена в последний Silverlight, что позволит даже с веб-страницами работать в оффлайн режиме.
В ближайшее время, как и последние много лет, основной средой обмена информацией останется интернет. Судя по тенденциям, клиентские и веб приложения будут развиваться параллельно, только немного другим путем – теперь это будут не монолитные порталы, написанные одной командой и использующие ресурсы одной эко-системы. Это будут наряженные елки – один костяк и множество подключенных сервисов, возможно даже разработанные разными фирмами. Это приведет к тому, что основное внимание и львиная доля времени будет расходоваться на разработку сложных сервисов, но потом они легко будут подключаться к всевозможным порталам, приложениям и другим сервисам. Тем самым в скором будущем мы будем находиться не только во всемирной паутине, но еще и каждая ниточка этой паутины будет состоять из такого же сложного смешения различных сервисов, потребляемых различными устройствами. Но это огромное разнообразие сервисов будет полезно после окончательного внедрения нового протокола IPV6, что позволит подключать к интернету даже микроволновые печи, холодильники и т.д. Именно управление таким огромным количеством устройств в сети приведет к созданию множества сервисов и порталов, которые в онлайн режиме помогут управлять вашими электроприборами [11].
ЗАКЛЮЧЕНИЕ
В рамках выполнения данной работы была рассмотрена тема «Варианты архитектуры клиент-сервер».
Первая глава работы обзорная. В ней дается понятие термину «клиент-сервер» - это вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределяются между поставщиками услуг (сервисов), которые называются серверами, и заказчиками услуг - клиентами.
Сервер представляет собой программу, реализующую какие-либо услуги другим программам и обслуживающую клиентские запросы на получение ресурсов определенного типа.
Клиент — это программа, которая пользуется услугами, представляемыми сервером.
Во второй главе представлены существующие варианты архитектуры клиент-сервер.
Первый вариантом архитектуры клиент-сервер принято называть одноуровневой (однозвенной) архитектурой. В данном случае клиент отвечал исключительно за отображение информации, предоставляемой со стороны сервера.
Следующим шагом в развитии клиент-серверной архитектуры стало появление двухуровневой архитектуры. Особенностью этого подхода стало использование «толстых» клиентов, которые отвечали за реализацию основных задач по отображению информации пользователю и обработке всех данных. Центральный сервер выполняли лишь функции хранения и предоставления данных.