Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Конспект лекций

.pdf
Скачиваний:
28
Добавлен:
22.03.2016
Размер:
7.3 Mб
Скачать

Министерство образования и науки Российской Федерации

Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”

КОНСПЕКТ ЛЕКЦИЙ ПО ДИСЦИПЛИНЕ

«С Е Т И Э В М И Т Е Л Е К О М М У Н И К А Ц И И»

Для подготовки бакалавров по направлениям 230100.62 «Информатика и вычислительная техника» 010500.62 «Прикладная математика и информатика»

Санкт-Петербург

2011

Тема 1. ПРИНЦИПЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ

Лекция 1. Понятие сети. Задачи, решаемые вычислительными сетями .

Международный институт стандартизации определяет понятие «сеть»

как совокупность узлов и соединяющих их ветвей. Это определение явля-

ется наиболее общим, охватывающим сети всех категорий. В сфере вычислительных сетей роль узлов будут играть ЭВМ и вспомогательные соединительные устройства, а роль ветвей – множество линий каналов передачи данных между ними.

Среди основных задач, решаемых сетями ЭВМ, могут быть названы:

информационный обмен между физически удаленными пользователями, в том числе сервис электронной почты;

удаленный доступ к вычислительным и информационным ресурсам;

распределенная обработка информации, имеющая два аспекта – совместную работу нескольких пользователей с одним массивом данных и работу с данными, находящимися на нескольких сетевых узлах, как с единым целым.

Взависимости от целей создания сети могут иметь различную архитектуру и различные принципы организации.

1.2.Классификация вычислительных сетей

Взависимости от физической удаленности различных узлов сети друг

от друга сетевые системы принято делить на три категории: локальные вычислительные сети (ЛВС) (их радиус находится в пределах 300 м), корпоративные и глобальные сети.

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

Перед ЛВС ставились следующие задачи:

разделение общего периферийного оборудования;

передача файлов с целью использования уникального периферийного оборудования в удаленных ЭВМ сети;

разделение ресурсов более мощных ЭВМ, подключенных в единую сеть с менее мощными;

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

Глобальные вычислительные сети – сети большого радиуса распро-

странения – стали следствием интеграции вычислительной техники и систем связи. Основными их задачами являются сбор, хранение и обработка данных на узлах, физически далеко отстоящих друг от друга, обмен информацией между ними, а также доступ к вычислительным и прочим ресурсам удаленных ЭВМ. Каналы связи между узлами обработки могут быть самыми разнообразными как по виду носителя, так и по типу. Для таких систем характерна импульсивность потоков информации в отличие от достаточно равномерного трафика в ЛВС. Следствием этого являются необходимость планирования и сглаживания пиковых нагрузок на соединительную подсистему, а также более тщательное согласование работы передающих и принимающих узлов обработки. Еще одним недостатком можно назвать очень большую стоимость прокладки и обслуживания высококачественных линий связи, без которых использование систем удаленного обмена попадает в жесткую зависимость от качества и скорости передачи данных.

Корпоративные сети, занимающие промежуточное положение между локальными и глобальными вычислительными сетями, в том числе сети Intranet, являются сегодня наиболее перспективным типом вычислительных сетей. Подобные сетевые системы, основанные на Internet-технологиях, позволяют пользоваться сервисом, аналогичным услугам сети Internet, но в рамках одной организации, предприятия или их группы. Основная задача таких сетей состоит в поддержке оперативного обмена разнотипной информацией и осуществлении доступа к ресурсам. Несомненными их преимуществами являются возможность визуального управления потоками данных, диалоговое общение, возможность передачи мультимедиа-инфор- мации, интуитивный интерфейс и др. Основные отличительные черты корпоративной сети – это наличие центрального администрирования, поддержка в своем составе разноплатформенных узлов и мультисегментность.

Следует заметить, что приведенная классификация не является единственно возможной. Еще один часто применяемый вариант – это разделение сетей по чисто географическому принципу: на локальные сети,

соединяющие узлы в пределах одного здания (Local Area Networks – LAN), сети среднего радиуса действия, объединяющие несколько локальных сетей либо узлы одного города или района (Metropolitan Area Networks – MAN), и сети широкого (континентального и общемирового) радиуса действия (Wide Area Networks – WAN).

Лекция 2. Архитектура открытых систем

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

Для преодоления такого и других подобных недостатков были созданы системы распределенной обработки (СРО) информации на основе сетей с архитектурой «клиент–файловый сервер». Соответственно, и наиболее вероятной областью применения подобных систем являются задачи, допускающие хранение большей части информации в одном месте – файловом сервере (ФС).

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

СРО, использующие выделенные файловые серверы, также, разумеется, не лишены целого ряда недостатков. Важнейшими из них являются:

необходимость выделения специальной ЭВМ, имеющей достаточно высокую производительность и не принимающей при этом непосредственного участия в процессе обработки данных;

чрезвычайно насыщенный трафик файлового обмена между ФС и рабочими станциями;

необходимость дополнительных мер по защите расположенной на ФС информации от несанкционированного доступа;

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

жесткая зависимость производительности системы от скорости передачи данных по сети, поскольку на узлы обработки необходимые данные передаются с ФС. Преодолеть этот недостаток можно, комбинируя размещение информации на сервере (общая глобальная база данных) и на рабочих станциях (данные определенного этапа обработки), а также через построение мультисегментных сетей и сетей с несколькими файловыми серверами.

Можно сказать, что системы, базирующиеся на сети с выделенным сервером, занимают срединное положение между системами с архитектурой «клиент–клиент» и системами типа «клиент–сервер» и тем самым способны решать более широкий класс задач, чем каждая из этих систем в отдельности, хотя и сочетают в себе ряд их недостатков.

Системы, построенные на основе технологии «клиент–сервер», являются сегодня наиболее популярными среди всех СРО, решающих задачи, связанные с функционированием большеобъемных баз данных. Такие системы являются плодом дальнейшего развития идеологии выделения отдельной вычислительной машины под серверные функции и имеют три различных компонента, каждый из которых выполняет конкретную работу: сервер базы данных, клиентское приложение и сеть.

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

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

Подобные системы имеют целый ряд достоинств. Прежде всего, поскольку клиентское приложение и сервер базы данных работают совместно и распределяют загрузку приложения, система «клиент–сервер» может обеспечить лучшую производительность, чем система с файловым сервером. Сервер управляет базой данных для нескольких клиентов, а клиенты посылают данные на сервер, получают и анализируют полученные с сервера данные. В системе «клиент–сервер» клиентское приложение работает с небольшими специальными наборами данных, например со строками таблицы, а не с целыми файлами, как в системах с файловым сервером. Как уже отмечалось, сервер базы данных здесь является

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

Однако если в качестве сервера выступает однопроцессорная машина, то могут иметь место все те недостатки, которые возникали при работе на многотерминальной ЭВМ в режиме разделения времени, даже несмотря на то, что терминалы – клиенты – являются интеллектуальными и часть этапов процесса обработки данных выполняется на них.

Следующим этапом в развитии систем, с точки зрения взаимодействия клиента и сервера, явилась концепция сетевых компьютеров («тонких клиентов»), базирующаяся на архитектуре «клиент–система серверов». Ее суть состоит в объединении положительных сторон архитектуры «клиент–сервер» и архитектур однородных многопользовательских и многопроцессорных высокопроизводительных систем. Рабочее место пользователя («тонкий клиент») представляет собой персональный компьютер, оснащенный микропро-цессором, монитором и сетевой картой (либо модемом) и подключенный к глобальной или корпоративной сети.

На клиентской станции происходит лишь загрузка средств визуальной сетевой навигации, с помощью которых осуществляются формирование заданий, обмен данными и взаимодействие с системой серверов. Всю обработку заданий берет на себя именно эта система, строящаяся по иерархическому принципу, опирающемуся на вычислительные мощности серверов. В зависимости от сложности и специфики стоящей задачи, а также от наличия свободных ресурсов на серверах различных уровней, задание (или, возможно, различные его компоненты) распределяется на тот или иной сервер либо на их группу. Как и в случае архитектуры «клиент– сервер», основным типом приложений являются СУБД, но возможно решение и чисто вычислительных задач. Серверы, входящие в сеть, могут иметь самые различные функции: быть серверами баз данных, серверами приложений, информационными и контролирующими серверами.

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

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

Наиболее явным недостатком идеи может считаться пока еще слабое развитие инфраструктуры подобных сетей.

Еще одна серьезная проблема, возникающая при использовании подобных систем обработки и передачи данных, – это задача динамического оптимального перераспределения заданий (или сервисных функций) между сер-верами разного уровня с учетом их свободных вычислительных мощностей, расположения в сети относительно базовых хранилищ данных, потерь на реорганизацию вычислительного процесса, а также текущих приоритетов и параметров обрабатываемых заданий.

Лекция 3. Выбор оптимальной архитектуры обработки данных

Ранее были рассмотрены методы и средства выбора оптимальной аппаратной конфигурации сетевого проекта. Однако, как показывает опыт, не менее важным при построении оптимальной сети предприятия является грамотный выбор базовой архитектуры обработки данных.

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

Одной из наиболее перспективных архитектур распределенных систем является концепция сетевых вычислений (Network Computing – NC), подразумевающая распределение по территориально рассредоточенной сети не только хранилищ данных и узлов их возникновения и утилизации, но и вычислительного процесса. Такая технология может быть описана как взаимодействие системы серверов и множества клиентов различной степени интеллектуальности.

Интегральная производительность распределенной системы складывается из следующих составляющих:

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

информации от искажений и несанкционированного доступа и минимально допустимого качества;

производительности серверов при обработке клиентских запросов;

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

производительности клиента.

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

1.«Сверхтолстый» клиент. Эта парадигма наиболее явно реализована в архитектуре «клиент–файловый сервер». В самом деле, сервер в данном случае выполняет пассивную функцию хранения слабоструктурированной информации, а вся ее обработка осуществляется на клиентских рабочих станциях. Как следствие, в системе (при достаточно интенсивной работе клиентов) необходимы существенные вычислительные мощности на всех рабочих станциях, требуется и высокая производительность сетевой подсистемы. При этом в связи с постоянной передачей больших цельных объемов информации возникает явная угроза несанкционированного доступа к ней.

2.Обычный клиент. Это классическая «двузвенная» клиент-серверная система, упрощенным примером которой является взаимодействие клиента-анализатора данных и сервера базы данных (БД), работающего под управлением интеллектуальной СУБД с возможностью предварительной обработки информации, причем клиентское приложение может напрямую запрашивать у сервера данные и оперирует понятиями запросов, транзакций и таблиц.

3.«Облегченный» клиент и «тонкий» клиент. Эта категория взаимо-

действия покрывает в настоящее время наибольшую сферу крупных распределенных систем. Ее основа – использование многозвенных архитектур с сохранением интеллектуальности клиентских рабочих станций. При этом в состав системы вводится система серверов различного назначения (серверы БД, серверы доступа, серверы приложений, серверы защиты и т. д.), реализация которой в общем случае скрыта от клиента, – он работает со всей системой через так называемый терминальный сервер,

выполняющий функции интерфейса, или, вернее, – отображения пространства серверных ресурсов (вычислительных, информационных и т. п.) в пространство клиентских представлений. Это позволяет достичь подлинной интероперабельности и платформонезависимости при реализации всей совокупности системы, а также получить возможность легкого как качественного, так и количественного масштабирования. При этом система сохраняет полную функциональность во всех своих составляющих.

4. «Сверхтонкий» клиент. В этом случае клиент фактически представляет собой неинтеллектуальный терминал, не поддерживающий ни одну из стадий вычислительного процесса распределенной системы и отвечающий лишь за ввод данных, управляющих сообщений, а также (при необходимости) за визуализацию результатов. Фактически – это бездисковая рабочая станция, оснащенная средствами высокоскоростного доступа к глобальным или к корпоративным сетевым ресурсам. В соответствии с современными стандартами такая работа подразумевает использование технологий Internet/Intranet (рис. 1.1). Под этим понимается как применение стека протоколов семейства TCP/IP, так и использование доступа к разнотиповым структурированным данным средствами Web (в частности, с использованием XML).

Основным средством разработки таких систем наряду с уже упоминавшимися языками разметки электронных документов и структур данных является кроссплатформенный интерпретируемый язык Java и его подмножества, позволяющие выполнять приложения на клиентской станции, но хранить их на соответствующих серверах.

Клиентская часть

Средства

доступа к

сервису Web

Отображение

бизнес-при-

Web-серверы

Internet/

Intranet

CGI ISAPI

Сервер защиты

Серверные

информации

бизнес-

 

 

приложения

Удаленные базы данных

Рис. 1. Организация клиент-серверного обмена с использованием «сверхтонкого» клиента (архитектура Web)

Конечным развитием «сверхтонкого» клиента является организация доступа к иерархии серверов с использованием мобильных устройств, таких, как сотовые телефоны, портативные компьютеры и встроенные системы. В настоящее время разработан протокол беспроводного доступа (WAP) и активно развиваются соответствующие сервисы. Следует, однако, заметить, что последний вариант архитектуры взаимодействия имеет существенные ограничения, связанные с неполной функциональностью рабочих станций.

Новый толчок дальнейшему развитию сетевых вычислений (особенно в части, касающейся архитектуры обработки информации) дала идеология проектирования платформонезависимых распределенных приложений

CORBA (Common Object Request Broker Architecture), являющаяся на сегодня фактическим стандартом разработки крупных гетерогенных программно-аппаратных комплексов.

Основная идея, активно развиваемая в CORBA, – возможность построения законченного приложения на основе независимых и распределенных объектов. Основой, обеспечивающей функционирование распределенных приложений, разработанных в соответствии со стандартами CORBA, является брокер запросов объектов (Object Request Broker – ORB). Схема работы приложения, состоящего из размещенных в неоднородной сети объектов, заключается в следующем:

прием от клиента информации о запрашиваемом методе;

поиск реализации объекта в распределенной среде;

при необходимости – активизация объекта (порождение экземпляра объекта и выделение ему необходимых вычислительных ресурсов);

передача экземпляру объекта параметров запроса;

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

при необходимости – уничтожение порожденного экземпляра объекта.

Стандарт CORBA предполагает несколько вариантов запросов методов объекта. В простейшем случае – это обращение через статический интерфейс, когда клиент, ORB и реализация объекта находятся в одном адресном пространстве.

Для более сложных случаев предусмотрены динамические вызовы; при этом с кодом приложения компонуется библиотека, обеспечивающая обращения к ORB на этапе исполнения, и предоставляется возможность взаимодействия ORB и реализации объекта посредством объектного адаптера (Object Adapter), специфичного для конкретной реализации объекта. Для обеспечения динамических обращений стандарт CORBA предусматривает наличие специальной службы, интегрированной в ORB, – хранилища интер-