Сетевое ПО Лекция 7 (1061292)
Текст из файла
1Сетевое ПО. Лекция 7(2014 г.)Оглавление1Архитектура клиент-серверных приложений1.1 Способ разделения приложений на части1.2 Классы приложений клиент/сервер1.3 Трехуровневая архитектура клиент/сервер1.4 Промежуточное программное обеспечение1.5 Базовые механизмы реализации промежуточного программного обеспечения.1.5.1Передача сообщений1.5.2Вызов удалённых процедур1.5.3Объектно-ориентированный подход11256778121 Архитектура клиент-серверных приложенийОсновнойзадачейпроектированияприложенийархитектурыклиент/сервер является распределение задач уровня приложения междуклиентом и сервером.1.1 Способ разделения приложений на частиМожно предложить различные схемы разделения приложений на части,причем для каждого конкретного приложения можно предложить своюсхему.Существуют и типовые модели распределенных приложений.
Вследующейдостаточнодетальноймоделипредлагаетсяразделитьприложение на шесть функциональных частей(рис. 7.1):□ средства представления данных на экране, например средстваграфического пользовательского интерфейса;□ логика представления данных на экране описывает правила ивозможные сценарии взаимодействия пользователя с приложением: выбор изсистемы меню, выбор элемента из списка и т. п.;□ логикаприложения-наборправилдляпринятиярешений,вычислительные процедуры и операции;□ логика данных — операции с данными, хранящимися в некоторойбазе, которые нужно выполнить для реализации логики приложения;□ внутренние операции базы данных — действия СУБД, вызываемыев ответ на выполнение запросов логики данных, такие как поиск записи поопределенным признакам;2Сетевое ПО.
Лекция 7(2014 г.)□файловые операции — стандартные операции над файлами ифайловой системой, которые обычно являются функциями операционнойсистемы.На основеэтой модели можно построить несколько схемраспределения частей приложения между клиентом и сервером.У клиента, и у сервера есть базовое программное обеспечение - этооперационная система, работающая на конкретной аппаратной платформе.Платформы и операционные системы клиента и сервера могут бытьразличны.Взаимодействие клиентов и серверов обеспечивают разнообразныепрограммы.( Пример- системы, поддерживающие работу с TCP/IP.)Все функции, выполняемые приложением, могут быть разделенымежду клиентом и сервером так, чтобы оптимизировать использованиекомпьютеров и сетевых ресурсов, а также возможности пользователей повыполнениюразличныхзадачикооперациидругсдругомприиспользовании разделяемых ресурсов(рис. 7.2).Определяющим фактором в успешном функционировании системыклиент/сервер является способ взаимодействия пользователя с системой вцелом.Соответственно,важнымявляетсядизайнпользовательскогоинтерфейса на клиентской машине.
В большинстве систем клиент/серверприменяется графический интерфейс пользователя (graphical user interface GUI.На машине клиента используется модуль представления, которыйявляетсячастьюраспределенногоприложенияиобеспечиваетдружественный пользовательский интерфейс.1.2 Классы приложений клиент/серверВ рамках общей схемы клиент/сервер имеется широкий спектрреализации, каждая из которых по-своему разделяет работу между клиентоми сервером.3Сетевое ПО.
Лекция 7(2014 г.)На рис. 7.2 показано, как может быть выполнено это разделение. Здесьприведены его основные варианты; на практике могут быть реализованы идругие способы разделения.На рис. 7.3 представлены четыре класса приложений.1.Обработка на одном узле. По сути такая обработка не являетсявариантом среды клиент/сервер в обычном смысле. Такая обработкатрадиционно использовалась на мейнфреймах, когда практически всяобработка выполнялась центральным узлом, а пользовательский интерфейсосуществился посредством неинтеллектуальных терминалов. Даже еслипользователь оснащен мощным микрокомпьютером, последний играет рольвсего лишь эмулятора терминала.2.Обработка на сервере. Одна из основных конфигурацийклиент/сервер, в которой клиент отвечает за обеспечение графическогоинтерфейса пользователя, а практически вся обработка выполняется насервере.
Такая конфигурация типична для ранних систем клиент/сервер, вособенности для бизнес-систем уровня отделов. Обоснование использованиятаких систем заключается в том, что пользовательские машины лучше всегоподходятдляреализацииграфического интерфейсапользователя,аподдержку приложений баз данных легче организовать на центральномсервере. Однако, хотя пользователь и получает болееудобный идружественный интерфейс, эта конфигурация принципиально не отличаетсяотпредыдущей,поэтомупроизводительностиилинепроисходитсущественныхзначительногоизмененийувеличенияподдерживаемыхсистемой бизнес-функций.3.Обработка у клиента. В другом предельном случае практическився обработка может осуществляться на машине клиента; на серверевыполняются только программы проверки корректности данных и подобныефункции, которые лучше выполнять на сервере. В целом же более сложныефункции логики базы данных выполняются на машине клиента.
Такаяархитектурапозволяетпользователюработатьсприложениями,4Сетевое ПО. Лекция 7(2014 г.)приспособленными для его конкретных нужд, и в настоящее время, пожалуй,наиболее распространена.4.Обработкаприсотрудничестве.Вэтойконфигурацииприложение выполняется оптимальным образом, используя сильные сторонымашинклиентаисервера.Этаконфигурациянесколькосложнеепредыдущих, ее труднее поддерживать, но она обеспечивает более высокуюпроизводительность и эффективность работы сети по сравнению состальными вариантами конфигураций.На рис.
7.3 в представлены конфигурации, в которых значительнаячасть работы передана клиенту. Эта модель толстого клиента (fat client)получила распространение благодаря такому инструментарию разработкиприложений, как PowerBuilder от Powersoft Corp. и SQL Windows от GuptaCorp.Разрабатываемые с помощью этих инструментов приложения, какправило, применимы на уровне отделов и поддерживают от 25 до 150пользователей . Основное достоинство модели толстого клиента заключаетсяв использовании всей мощи настольной системы и переносе вычислений ссервера, что делает его работу более эффективной (не позволяя ему статьузким местом в работе среды).Однако у такого подхода имеется ряд недостатков.1. Увеличение функциональности вызывает излишнюю загрузкупользовательских машин, что приводит к необходимости дорогостоящегообновления всей клиентской техники.2. При увеличении количества пользователей компании приходитсятратиться и на высокоскоростную сеть, которая сможет выдержатьинтенсивные потоки данных между сервером и толстыми клиентами.3.
Наконец, проще и дешевле поддерживать и обновлять приложенияна одном сервере, чем на десятках или сотнях пользовательских машин.На рис. 7.3 б показан подход тонкого клиента (thin client). Этот подходближе к традиционной обработке на сервере и часто становится первым5Сетевое ПО.
Лекция 7(2014 г.)шагом при переходе корпорации от использования мейнфреймов краспределенной среде.1.3 Трехуровневая архитектура клиент/серверТрадиционная архитектура клиент/сервер включает два уровня, илислоя:уровень клиента и уровень сервера.В трехуровневая архитектуре (рис. 7.4). приложение распределеномежду машинами трех типов:1. пользовательской машиной,2. промежуточным сервером3.
конечным сервером.Пользовательская машина представляет собой машину клиента,который в трехуровневой модели обычно является тонким клиентом.Машиныпромежуточногоуровняявляютсяворотамимеждутонкими клиентами и различными конечными серверами баз данных,преобразуя протоколы и отображая один тип запросов к базам данных вдругой. Кроме того, они способны собирать и обрабатывать данные изразных источников.Взаимодействие между промежуточными и конечными серверамитакжеосуществляетсяпомоделиклиент/сервер,такчтосистемапромежуточного уровня одновременно выступает в роли сервера и клиента.Сервер приложений должен базироваться на мощной аппаратнойплатформе:мультипроцессорные системы,специализированные кластерные архитектурыОСсервераприложенийдолжнаобеспечиватьпроизводительность вычислений, а значит, поддерживатьмногопоточную обработку,вытесняющую многозадачность,мультипроцессирование,высокуюСетевое ПО.
Лекция 7(2014 г.)виртуальную памятьи наиболее популярные прикладные среды.61.4 Промежуточное программное обеспечениеПромежуточное ПО - набор стандартных программных интерфейсов ипротоколов, располагающихся междуприложениеми операционной системой и коммуникационным программнымобеспечением.(рис 7.5)При наличии стандартного программного интерфейса упрощаетсяреализация одного и того же приложения на серверах и рабочих станцияхразных типов.Стандартизованные протоколы необходимы для связи различныхсерверных интерфейсов с клиентами, которым необходим доступ к ним.С точки зрения логики распределенная система в целом можетрассматриваться как множество доступных пользователю приложений иресурсов. Пользователя не должно интересовать физическое размещениеданных и приложений.
Все приложения работают посредством однотипногоAPI.Промежуточное программное обеспечение, охватывающее всеплатформы и сети клиентов и серверов, отвечает за маршрутизациюзапросов клиентов соответствующему серверу.Имеется большое количество пакетов промежуточного программногообеспечения — от самых простых до очень сложных. Однако объединяет ихто, что они способны скрыть сложности и отличия различных сетевыхпротоколов и операционных систем. Разработчики клиентского и серверногопрограммного обеспечения обычно предоставляют возможность выбора приработе одного из нескольких наиболее популярных пакетов промежуточногопрограммного обеспечения.Эти средства помогают улучшить качество взаимодействия клиентов ссерверами за счет промышленной реализации достаточно важных и сложных7Сетевое ПО. Лекция 7(2014 г.)функций, а также упорядочить поток запросов от множества клиентов кмножеству серверов, играя роль регулировщика, распределяющего нагрузку насерверы.1.5 Базовые механизмы реализации промежуточногопрограммного обеспечения. средства передачи сообщений (message-oriented middleware,MOM) средства удаленного вызова процедур (Remote Procedure Call, RPC) брокеры запроса объектов (Object Request Broker, ORB), которыенаходят объекты, хранящиеся на различных компьютерах, и помогают ихиспользовать в одном приложении или документе.1.5.1 Передача сообщенийНа рис.
7.6 показано использование распределенной передачи сообщенийдляреализациифункциональностиклиент/сервер.Процесс-клиентзапрашивает некоторый сервис (например, чтение файла или печать) ипосылает сообщение, содержащее запрос к процессу-серверу. Сервервыполняет запрос и отправляет клиенту сообщение, содержащее ответ. Впростейшей реализации для такого взаимодействия нужны функции: Send иReceive. Функция Send определяет получателя сообщения и включаетсодержимое в отправляемое сообщение. Функция Receive уведомляется отом, от кого следует принимать сообщение (включая "от всех"), и сохраняетсодержимое сообщения в предоставленном ей для этого буфере.На рис.
7.6,а показана реализация передачи сообщений. Процессыпользуются сервисами, предоставляемыми модулями передачи сообщений.Запрос к модулю можно выразить в терминах примитивов и параметров.Примитив определяет выполняемую функцию, а параметры — передаваемыеданные и управляющую информацию. Фактический вид примитива зависитот программного обеспечения, использующегося для передачи сообщений.Это может быть вызов процедуры либо сообщение для процесса,являющегося частью операционной системы.8Сетевое ПО.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.