Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление вычислительными сетями.pdf
Скачиваний:
112
Добавлен:
01.05.2014
Размер:
1.99 Mб
Скачать

Разработчики рассчитывали получить значительное повышение эффективности связи в городах. Как видно из названия, при использовании этой технологии формируется иерархия из цифровых каналов (Digital Stream, DS), каждому из которых назначен уровень и номер. Цифровые потоки с меньшими номерами мультиплексируются в потоки с большими номерами с определенным сдвигом частоты.

Синхронная цифровая иерархия (Synchronous Digital Hierarchy, SDH) –

это система передачи, определенная комитетом ITU (бывший ССIТТ) в 1988 г. Первоначально разработчики SDH предлагали рассматривать эту технологию в качестве всеобщего всемирного стандарта и заменить ею существующую и уже устаревшую передающую инфраструктуру национальных и интернациональных сетей. Спецификация SDH описывает передачу кадров на физическом уровне эталонной модели OSI и может использоваться как один из транспортных механизмов для технологии АТМ. В табл. 1.2 показаны уровни иерархии SDH.

 

 

Таблица 1.2

 

Уровни иерархии SDH

 

 

 

Уровень

 

Скорость передачи, Мбит/с

STM-0 или STM-1/3

 

51.84

STM-1

 

155.52

STM-4

 

622.08

STM-16

 

2488.32

Основное достоинство SDH, по сравнению с устаревшей структурой PDH, заключается в прозрачности процесса мультиплексирования. Это означает, что базовый канал со скоростью 64 Кбит/с может быть выделен напрямую из уровней высшей иерархии SDH (в настоящее время 2.4 Гбит/с) и наоборот. По этой причине принцип функционирования сети SDH часто называется однофазным мультиплексированием, что отличается от принципа работы сети PDH, в которой прямая локализация определенного коммуникационного канала (например, канала со скоростью 64 Кбит/с) в мультиплексированных каналах второго или третьего уровней иерархии (например, 140 Мбит/с) невозможна. Плезиохронный мультиплексор должен демультиплексировать весь поток информации для выделения нескольких компонентов сигналов, а затем выполнить процедуру мультиплексирования заново. Мультиплексор SDH выделяет необходимые составляющие сигнала, не разбирая весь поток. По сравнению с технологией PDH, SDH позволяет избежать использования большого числа дорогих мультиплексирующих и демультиплексирующих устройств и разрабатывать более гибкую структуру сети.

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

18

Мультиплексор SDH имеет две группы интерфейсов: пользовательскую и агрегатную. Пользовательская группа предназначена для создания пользовательской структуры, а агрегатная — для создания линейных межузловых соединений. Эти интерфейсы позволяют создавать три топологии: "кольцо", "цепочка" и "точка–точка". На их основе можно строить сеть мультиплексоров практически любого масштаба. В идеале такая сеть состоит из нескольких уровней. На первом уровне обеспечивается доступ к сети пользователей, которые через согласующие устройства (модемы) подключаются к мультиплексорам первого уровня. На данном уровне используются, как правило, мультиплексоры STM-1. Второй уровень построен на мультиплексорах STM-4 и отвечает за сбор потоков информации от первого уровня. Третий уровень выполняет транспортные функции и строится на мультиплексорах STM-16. Он собирает потоки информации от второго уровня и транспортирует их далее.

Первый уровень иерархии SDH известен как STM-1 и состоит из кадра длиной 2430 байт, который передается со скоростью 155.52 Мбит/с. Для передачи кадра STM-1 требуется 125 мс. Кадр STM-1 разделяется на девять рядов, каждый размером 270 байт. Первые девять байт каждого ряда занимает секционная служебная нагрузка (Section OverHead — SOH). Байты SOH содержат информацию, которая служит для проверки правильности передачи данных между двумя узлами в сети SDH. Учитывая секционную служебную нагрузку, можно вычислить, что скорость передачи полезных данных в кадрах STM-1 составляет 150.34 Мбит/с.

Вкадре STM-1 данные при передаче располагаются в так называемых контейнерах. Размер контейнера (9260 – 2340 байт) не кратен размеру ячейки. Поэтому отдельные ячейки могут располагаться в двух смежных контейнерах. Ячейки заполняют контейнер слева направо, сверху вниз. Формирование кадра более высокого уровня происходит на более высоком уровне мультиплексирования. В этом кадре как бы "сцепляются" несколько контейнеров с данными кадра STM-1.

1.2.8.Описание технологии ADSL

Впоследнее время все большее внимание уделяется оптимизации использования симметричных пар городских телефонных кабелей. Причина понятна: каждый обычный телефонный абонент соединен абонентской парой со своей районной АТС. Учитывая, что восходящий трафик на информационные запросы обычно существенно меньше нисходящего трафика, т. е. запрашиваемой информации, была предложена новая технология, использующая два неравных, асимметричных по скорости потока: относительно умеренный – от клиента, и существенно более скоростной – к клиенту. Такая технология получила название ADSL

(Asymmetric Digital Subscriber Line), что расшифровывается как

"асимметричная цифровая абонентская линия". Название подчеркивает

19

изначально заложенное в этой технологии различие скоростей обмена в направлениях к абоненту и обратно.

Технология является новым решением по организации "последней мили" между сервис-провайдером и конечным пользователем. Данная технология обладает следующими особенностями:

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

в качестве среды передачи данных используется обычная двухпроводная телефонная линия;

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

Технология ADSL ориентирована, прежде всего, на сервиспровайдеров, предоставляющих стандартные услуги телефонии, а также на доступ к сетям передачи данных (Internet). Данная технология может использоваться сервис-провайдерами, предоставляющими доступ к сетям общего пользования, при условии установки соответствующего оборудования. Таким образом, применение технологии ADSL позволяет:

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

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

Оборудование ADSL, размещенное на АТС, и абонентский ADSL-модем, подключаемые к обоим концам телефонной линии, образуют три канала:

высокоскоростной канал передачи данных из сети в компьютер (скорость – от 32 Кбит/с до 8 Мбит/с);

скоростной канал передачи данных из компьютера в сеть (скорость

от 32 Кбит/с до 1 Мбит/с);

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

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

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

20

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

Доступ по технологии ADSL организуется с помощью специальных модемов (DSL Access Module, DSLAM) как на стороне клиента, так и на стороне оператора. На дальнем конце абонентского окончания должен располагаться так называемый мультиплексор доступа ADSL–ADSLAM. Этот мультиплексор выделяет подканалы из общего канала и отправляет голосовой подканал на АТС, а высокоскоростные каналы данных направляет на маршрутизатор, подключенный к ADSLAM. Ряд производителей начали снабжать DSLAM интерфейсами АТМ, что позволяет напрямую подключать их к ATM-коммутаторам территориальнораспределенных сетей. Также ряд производителей создают пользовательские модемы, которые представляют собой ADSL-модем, но для программного обеспечения являются адаптерами ATM. Покажем на примере организацию доступа клиентских подсетей к информационным ресурсам через проложенные медные телефонные пары без потери телефонного номера на используемой линии.

На рис. 1.3 схематически показано оборудование телекоммуникационного центра (справа) и локальные сети клиентов, подключенных

 

Телефонный

Телефонная

 

сеть

 

кросс-коммутатор

 

LAN 1

 

Коммутационный

 

 

 

 

центр

LAN 2

 

Коммутатор

Телефонные

 

пары

Разделяющие

 

фильтры

 

 

Маршрутизатор

LAN N

АТМ

 

Локальные сети

 

 

клиентов ADSL

Internet

 

Рис. 1.3. Организация доступа по технологии ADSL

21

по выделенным медным парам (слева). В качестве технологического решения для реализации связи с такими клиентами можно использовать оборудование ADSL фирмы 3Com (Affinity line, Rel 1). Его преимущества – высокая скорость передачи данных (в идеальном случае – до 1 Mбит/с на Upload и 3.2 Мбит/с на Download), относительная дешевизна и сохранение телефонной связи.

Медные пары, приходящие в телекоммуникационный центр, подсоединены к разделяющим фильтрам, где телефонный трафик отделяется от данных и поступает на кросс-коммутатор АТС.

Концентратором ADSL-линий служит шасси Total Control Enterprise Hub,

оснащённое двухпортовыми модемными модулями AxCell ADSL. Каждый канал независим и имеет свой интерфейс. ADSL-модемы могут выступать как маршрутизаторами IP-подсетей, так и простыми мостами 2-го уровня семиуровневой модели OSI. В рассматриваемом варианте модемы настраиваются на работу в режиме моста. Физические подсети, представленные сетевыми интерфейсами AxCell-карт, соединяются с коммутатором рабочих групп, где административно организуются в виртуальные сети (VLAN) и интегрируются в общую локальную сеть телекоммуникационного центра.

Средством обеспечения маршрутизации виртуальных сетей является маршрутизатор, соединённый с соответствующим портом коммутатора и взаимодействующий с ним по протоколу ISL (Inter Switch Link). Это позволяет администрировать виртуальные сети ADSL-клиентов, устанавливая для них разного рода ограничения.

Стандарты ADSL. В октябре 1998 г. сектор стандартизации в области телекоммуникаций Международного союза телекоммуникаций (ITU-T) принял первую редакцию стандарта ADSL.Lite. Группа 15 ITU-T, стандартизирующая DSL, присвоила всем стандартам направления ADSL.Lite индекс "G", поэтому в документах ITU-T этот стандарт назван G.Lite. Рабочая группа T1E1.4 института ANSI недавно одобрила стандарт на ADSL со скоростью передачи до 6,1 Мбит/с (стандарт T1.413), определяющий единый терминальный интерфейс со стороны оператора. Вторая версия этого стандарта определила мультиплексированный интерфейс со стороны оператора; протоколы конфигурации и управления сетью.

В 1994 г. был организован ADSL-форум, определяющий концепцию, дальнейшее развитие технологии ADSL и разработку протоколов. В форум входят свыше 200 операторов связи и производителей оборудования. ADSL-форумом выработана рекомендация "ATM over ADSL", определяющая принципы функционирования протоколов сетей ATM через ADSL.

1.3. Сервис глобальных сетей

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

22

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

Протоколы прикладного уровня. Варианты и номенклатура предоставляемых сетью услуг во многом определяются использующимися в ней прикладными протоколами. В настоящее время наиболее известны протоколы, относящиеся к Internet, а также протоколы ISO-IP (ISO 8473), относящиеся к семиуровневой модели открытых систем.

Прикладные протоколы Internet:

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

FTP (File Transfer Protocol) – протокол файлового обмена

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

HTTP (Hypertext Transmission Protocol) – протокол передачи гипертекстовых документов, обычно используемый для связи WWW-серверов и WWW-клиентов;

SMTP (Simple Message Transfer Protocol) – протокол обмена сообщениями электронной почты;

ICMP (Internet Control Message Protocol) – протокол передачи управляющих сообщений, который выполняет функции информирования источника о причинах потери пакетов, о наличии связи с указанным адресом, а также может выполнять функции анализатора трафика. Наряду

сICMP используется протокол SNMP;

NFS (Network File System) – сетевая файловая система,

обеспечивающая доступ к файлам всех Unix-машин сети, т. е. в этом случае файловые системы узлов выглядят для пользователя как единая файловая система. Более подробно организация NFS будет рассмотрена в 5.3.3;

SNMP (Simple Network Menegement Protocol) – простой протокол управления сетью – выполняет функции обеспечения отказоустойчивости (детектирование ошибок, их исправление, восстановление), управления производительностью, управления параметрами передачи пакетов по сети (изменение таких настроечных параметров, как время жизни пакета, уровень секретности и т. п.).

Всемиуровневой модели ISO используются аналогичные по функциональным возможностям протоколы. Так, протокол VT соответствует протоколу TELNET, FTAM – FTP, MOTIS – SMTP, CMIP – SNMP, при этом в модели ISO реализован специальный протокол RDA (Remote Database Access), предназначенный для доступа к удаленным базам данных.

Электронная почта. Электронная почта (E-mail) – средство обмена сообщениями по электронным коммуникациям (в режиме off-line). Можно пересылать текстовые сообщения и архивированные файлы. В последних могут содержаться данные (например, тексты программ, графические

23

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

Разработан ряд альтернативных протоколов электронной почты для прикладного уровня. Наиболее популярны среди них протоколы SMTP в стеке протоколов TCP/IP и Х.400 в модели ISO. Расширение числа возможных форматов данных по сравнению с SMTP сделано в MIME (Multipurpose Internet Mail Extensions). На их базе разработано программное обеспечение E-mail, способное работать в обоих протоколах. Оно включает программы почтовых серверов и клиентов.

На ЭВМ пользователя должна быть установлена программа-клиент, поддерживающая функции создания, передачи и приема сообщений. На почтовом сервере, выделяемом в корпоративной или глобальной сети, организуется промежуточное хранение поступающих сообщений. Связь пользователя с почтовым сервером обычно осуществляется по протоколам IMAP или POP3. Для индивидуального пользователя, общающегося с другими абонентами по телефонной сети общего пользования, такое промежуточное хранение возможно в собственном компьютере, но тогда требуется либо постоянно включенный компьютер, либо предварительная договоренность о времени связи. В территориальных сетях почтовые сообщения проходят через ряд промежуточных федеральных или региональных узлов. В таких узлах устанавливается программное обеспечение (так называемый агент передачи сообщений), выполняющее функции сортировки и маршрутизации сообщений.

Примерами программных систем электронной почты, выполняющих все названные функции E-mail, могут служить Lotus cc:mail и Microsoft Mail.

Они позволяют адресовать сообщения индивидуальному пользователю, на доску объявлений, для последовательного просмотра несколькими исполнителями с возможностью коррекции сообщения; осуществлять поиск сообщений, пришедших на почтовый сервер, по контексту, по адресу, по времени отправки. В сетях Netware на почтовом сервере можно использовать программное обеспечение MHS фирмы Novell, а клиентскими программами могут быть Mapi или Vim. Комплекс программ UUCP (Unix-to-Unix Copy Program), поддерживающих модемную связь между Unix-машинами, включает средства электронной почты (программа Mail) и телеконференций. Комплекс UUPC – эмуляция UUCP для операционной системы MS DOS. В таком комплексе имеется удобный графический пользовательский интерфейс, но можно работать и непосредственно с командами Mail. В настоящее время при разработке многих программных систем предусматривается интерфейс со средствами электронной почты или реализуются встроенные почтовые подсистемы.

24

Файловый обмен. Так называется доступ к файлам, распределенным по различным компьютерам. В сети Internet на прикладном уровне используется протокол FTP. Доступ возможен в режимах off-line и on-line. В режиме off-line посылается запрос к серверу FTP-mail, который формирует и посылает ответ на запрос. В режиме on-line осуществляется интерактивный просмотр каталогов FTP-сервера, выбор и передача нужных файлов. На ЭВМ пользователя нужно установить клиентские средства FTP. Доступ к базам данных удаленных ЭВМ с эмуляцией удаленной машины на ЭВМ пользователя выполняется с помощью протокола Telnet.

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

Каждый обмен порождает два процесса: управляющий (командный) процесс инициирован в течение всего сеанса связи и осуществляется через Тelnet, а процесс передачи файла – только на время передачи. Номера протокольных портов сервера 20 и 21, у клиента могут быть различные номера портов, в том числе и несколько одновременно. Для одновременного обслуживания нескольких клиентов создаются копии программного обеспечения FTP-процессов на сервере и у клиентов.

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

Телеконференции или ньюс-группы. В их рамках обеспечивается доступ к тематической информации, выделенной для группового использования. Существуют глобальные и локальные конференции. Включение материалов в телеконференции, рассылка извещений о вновь поступивших материалах, выполнение заказов на получение заинтересовавшей абонента информации – основные функции программного обеспечения телеконференций. Возможны режимы E-mail и on-line.

Самая крупная система телеконференций – USENET. В USENET информация организована иерархически. Сообщения рассылаются или лавинообразно, или через списки рассылки. В режиме on-line можно

25

прочитать список сообщений и тут же – выбранное сообщение. В режиме off-line из списка выбирается сообщение, на него посылается запрос, после чего копия требуемого сообщения высылается пользователю.

Программное обеспечение телеконференций включает средства E-mail, текстовый редактор, средства файлового обмена и асинхронной групповой связи. Используются также средства аудиоконференций (голосовых телеконференций). Вызов, соединение, разговор происходят, как в обычном телефоне, но связь идет через Internet.

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

Аналоговое телевидение – самый дорогой вид видеоконференций, обеспечивающий высокое качество передачи динамических изображений и требующий полосы пропускания около 5 МГц, что при кодово-импульсной модуляции и кодировании отсчетов 8-битовыми комбинациями эквивалентно пропускной способности каналов в 80 Мбит/с. В других способах передачи видеоинформации требования к пропускной способности существенно снижены благодаря сжатию информации с помощью кодеков.

Специализированная видеоконференцсистема включает дистанционно управляемую видеокамеру, монитор с большим экраном, микрофоны, динамики, устройство для считывания графических документов, кодеки. Требуется выделенный канал со скоростью выше 64 Кбит/с. Пример программного обеспечения – PictureTel.

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

Видеоконференции для двух собеседников на базе ПЭВМ или рабочих станций (так называемые настольные видеоконференции) реализуются на основе мультимедийных средств. Используются компьютер

саудио-, видео- и сетевой платами, микрофон, динамик, видеокамера.

Внастоящее время разработан ряд специальных стандартов видеоконференцсвязи. В группу стандартов T.120, созданных ITU, входят T.122/125 (служба многоточечных соединений), Т.126 (технология whiteboerd), T.127 (передача файлов при многоточечной связи). Стандарт

26

Т.123 содержит описание транспортных протоколов, которые могут использоваться в системах конференцсвязи. Группа стандартов Н.32х описывает реализации мультимедийных приложений в различных типах сетей и включает в себя спецификации Н.320 (совместное использование аудио- и видеокомплектов с узкополосными каналами ISDN), Н.321 (широкополосные каналы), Н.322 и Н.323 (видеоконференцсвязь в локальной сети), а также Н.324 (организация групповых видеоконференций по коммутируемым телефонным каналам). Стандарт Н.310 относится к мультимедийным приложениям с высоким разрешением. В этих стандартах устанавливаются требования к сжатию данных, протоколам их передачи и к синхронизации видео- и аудиопотоков.

Информационные системы. В сети Internet имеются уникальные информационные системы Gopher и более современная WWW, представляющие собой распределенные хранилища информации, серверное и клиентское программное обеспечение для обслуживания этой информации и доступа к ней. Информационная система Gopher представляет собой удобную для использования систему дистанционного доступа к файлам. Файлы размещены на различных Gopher-серверах, находящихся в разных точках земного шара и связанных между собой сетью Internet. Доступ осуществляется через Gopher-клиентов, находящихся в абонентских узлах. В настоящее время система Gopher уступила свои позиции сервису World Wide Web (WWW, "всемирная паутина").

WWW – гипертекстовая информационная система сети Internet. Она существенно более развита по сравнению с Gopher и предоставляет пользователям бόльшие возможности. Во-первых, это гипертекст – структурированный текст с введенными в него перекрестными ссылками, отражающими смысловые связи частей текста. Активизация ссылки вызывает обращение к связанному с ней элементу (тексту, рисунку, файлу и т. д.). Во-вторых, облегчено по сравнению с Gopher представление и получение графических изображений. К началу 1999 г. в мире насчитывалось более 3 млн. WWW-серверов и около двухсот миллионов пользователей.

Клиентские программы WWW называют браузерами (browsers). Имеются текстовые (например, Lynx) и графические (наиболее известны

Netscape Navigator и Microsoft Internet Explorer) браузеры, корпорация Sun

предлагает браузер HotJava. В браузерах имеются команды листания, перехода к предыдущему или последующему документу, печати, перехода по гипертекстовой ссылке и т. п. Из большинства браузеров доступен не только сервис просмотра гипертекстовых страниц, но и такие услуги, как реализация FTP, Gopher, USENET, E-mail. Подготавливаются материалы для их включения в базу WWW с использованием специально разработанного языка разметки гипертекстовых документов – HTML (Hypertext Markup Language) и реализующих его программных редакторов,

например Netscape Composer или Microsoft FrontPage. Для связи

WWW-серверов и клиентов используется протокол HTTP. На базе HTML

27

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

Еще одно расширение языка HTML – XML (Extensible Markup Language) – позволяет использовать в документах типы элементов, создаваемые для конкретных приложений. С помощью обобщенного языка разметки документов SGML (Standard Generalized Markup Language) можно определять содержимое и форму документов в виде последовательности объектов данных, которые могут храниться в различных файлах. В итоговый документ они включаются в соответствии с форматами, задаваемыми в специальном файле описания типов документов DTD (Documeny Type Definition), что упрощает хранение и поиск документов в базах данных.

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

Для разработки приложений в Internet уже созданы специальные средства, такие как язык Java или Internet Visial Basic. Примером браузера на основе языка Java может служить HotJava.

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

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

ПК1

Internet

 

ПК2

Рис. 1.4. Телефонная связь через сеть Internet

28

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

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

Шлюзы могут устанавливаться на серверах Internet-провайдеров, на городских телефонных станциях, учрежденческих АТС, серверах локальных вычислительных сетей, Web-серверах компаний, нуждающихся в организации голосовых "горячих линий", служб технической поддержки, диалоговых справочных служб и т. д. Шлюзы, наконец, могут устанавливаться на маршрутизаторах.

Телефонная

IP-шлюз

сеть А

 

Internet

Телефонная

IP-шлюз

 

сеть В

 

Рис. 1.5. Телефонная связь через сеть Internet с использованием шлюзов

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

29

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

Рассмотрим процесс речевого диалога в системе Internet с информационной точки зрения. Этот процесс имеет следующие три фазы:

соединение абонентов;

обмен информацией;

разъединение абонентов.

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

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

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

Насколько можно судить по данным, приводимым в литературе по теме, специальных разработок для Internet-телефонии, рекомендованных ITU-T, пока не существует. Таковой может считаться спецификация H.323, одобренная Международным советом по электросвязи в 1996 г. Она формулирует технические требования для передачи аудио- и видеоданных по сетям передачи данных и включает в себя стандарты на видеокодеки, на голосовые кодеки, на общедоступные приложения, на управление вызовами и системой. Среди международных стандартов, рекомендуемых

30

для подобных систем, чаще других упоминается G.723.1, регламентирующий передачу речи со скоростью 5.3 и 6.3 Кбит/с, а также G.729 для скорости передачи 8 Кбит/с.

Упомянутые стандарты, гарантирующие достаточно высокое качество речи в идеальных условиях передачи, были разработаны для использования в каналах, отличных от Internet, и позже частично адаптировались для условий потери пакетов. Стандарты, развивающие это направление, включают в себя Voice Activity Detector и элементы, ответственные за синтез речевого сигнала на фрагментах, соответствующих потерянным речевым данным. В настоящее время ведущие в области телекоммуникаций фирмы и университеты разрабатывают алгоритмы вокодеров (кодировщиков речи) для Internet-телефонии. Ориентируясь на последние публикации, в ближайшие годы можно ожидать появления алгоритмов компрессии со средними скоростями 2 – 4 Кбит/с и ниже с качеством синтезированной речи, близким к коммерческому и допустимых искажениях в условиях 20% потерь пакетов с речевыми данными.

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

В сети Internet имеются специальные серверы баз данных,

называемые WAIS (Wide Area Information Server), в которых могут содержаться совокупности баз данных под управлением различных СУБД.

При работе с таким сервером пользователь клиентской ЭВМ выполняет следующую последовательность действий:

выбор нужной базы данных;

формирование запроса, состоящего из ключевых слов;

посылка запроса к WAIS-серверу;

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

выбор нужного заголовка и посылка его к серверу;

получение требуемого документа.

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

Возможно, причина снижения интереса к WAIS кроется в реализации Web-технологии во многих прикладных системах, в том числе в ряде СУБД. Так, в Oracle имеется свой Web-сервер, который принимает HTTP-запросы

31

и переправляет их одному из обработчиков (в Oracle их называют картриджами). Среди обработчиков – интерпретатор языка Java. Возможны обработчики, создаваемые пользователями.

1.4. Примеры глобальных сетей

Internet – крупнейшая международная глобальная сеть. К середине 1993 г. в сети было 1776 тыс. ЭВМ из 137 стран, а уже через шесть лет число подключенных к ней серверов превысило 3 миллиона. В сети используется стек протоколов TCP/IP. Сеть гетерогенная, узлы могут быть с ОС Unix, VMS, MS DOS и др. Взаимодействие узлов с разными ОС осуществляется посредством файловой системы NFS. Для электронной почты используется несколько протоколов, один из них SMTP. Правильнее считать Internet не самостоятельной сетью, а некоторой надсетью – совокупностью многих сетей. Любая сеть, работающая по протоколам TCP/IP и имеющая каналы связи с любой сетью, уже включенной в Internet, тоже становится частью Internet.

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

VBNS – разработка Национального научного фонда США (National Science Foundation, NSF), который был создателем сети NSFnet –

магистральной опорной сети, сыгравшей определяющую роль в развитии инфраструктуры Internet в конце 80-х первой половине 90-х гг. Несколько лет назад NSF начал программу, именуемую vBNS (very high speed Backbone Network Service – высокоскоростная опорная сеть) и имеющую целью поддержку высокоскоростных Internet-соединений для работников науки и образования. Вначале эта программа использовалась для улучшения соединения между суперкомпьютерными центрами. К настоящему времени программа расширилась и обеспечивает высокоскоростное подключение крупных американских научноисследовательских центров и университетов. В этой сети используется технология IP-over-ATM. Основу сети составляют высокоскоростные каналы связи (155 и 622 Мбит/с) и точки доступа NAP (Network Access Points),

являющиеся базовыми узлами магистральной части сети. Внешние шлюзы представлены ATM-переключателями ASX-1000. К портам ASX-1000 подсоединяются (непосредственно или через маршрутизаторы Cisco 7507) cети крупных научных и образовательных центров и автономные системы.

Global Network – планируемая фирмой IBM глобальная сеть ATM. Пользователи могут подписываться на ассортимент приложений и услуг, предоставляемых по сети, вместо покупки и сопровождения собственного программного обеспечения.

DECNet – территориальная сеть фирмы DEC. Сеть стала открытой благодаря сетевому программному обеспечению Pathworks. Pathworks поддерживает такие сетевые технологии, как Novell Netware, LAN Manager,

32

AppleTalk. Могут объединяться сети Ethernet, Token Ring, FDDI, X.25.

Имеются средства для подключения IBM-mainframes. Реализуется спецификация распределенной архитектуры CORBA (Common Object Request Broker Architecture) – с помощью программы ObjectBroker

производятся распределенные вычисления.

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

RUNNET – создаваемая сеть университетов России. Предполагаемые услуги – электронная почта, файловый обмен, доступ к распределенным базам данных, телеконференции. Благодаря скоростным каналам связи обеспечивается режим on-line. Верхний уровень сети составляют федеральные узлы (ФУ). Всего в первой очереди предполагается иметь 15 таких узлов. ФУ в Москве и С.-Петербурге соединены между собой оптоволоконным каналом емкостью 2 Мбит, они являются центральными для остальных 13 ФУ, подключаемых по топологии "звезда" к одному из центральных ФУ по спутниковым каналам связи (от 64 до 512 Кбит/с). Через центральные ФУ имеется выход на международные сети. Так, Санкт-Петербургский узел имеет волоконно-оптический канал связи с Финляндией и через него – с другими международными сетями. Используются наземные станции спутниковой связи "Кедр-М" или "Калинка" с модемами SDM-650 и SDM-100. В качестве маршрутизатора в опорной сети применяется аппаратура CISCO 4000. Коммуникации с региональными узлами осуществляются через коммуникационный сервер. Региональные узлы обслуживают около 50 отдельных регионов.

РОСПАК – федеральная государственная сеть общего пользования. Услуги: электронная почта, доступ к БД в режиме on-line, телеконференции. В настоящее время проходит первый этап ее создания. Предполагается создать 14 магистральных центров коммутации пакетов (МЦКП), каждый по 200 портов по 256 Кбит/с, и не менее 300 региональных центров, каждый до 40 портов по 64 Кбит/с, а также терминальные центры – до 8 портов по 9.6 Кбит/с, связанных посредством телефонных аналоговых линий.

MSUnet – информационно-вычислительная сеть МГУ. Сеть имеет связи с рядом региональных и международных сетей, в частности, с сетью "Спринт" и через нее – с сетью Sprint Link в США (спутниковый канал 64 Кбит/с); кроме того, имеется связь с наземной станцией в Лондоне через спутниковый канал (суммарная пропускная способность 2 Гбит/с) и планируется подключение к московскому общегородскому оптоволоконному каналу. С несколькими институтами РАН связь поддерживается по радиорелейным линиям. Локальная часть сети имеет два транспортных (магистральных) оптоволоконных канала Ethernet, к которым подключаются внутренние локальные подсети. Удаленные пользователи могут работать в сети через сервер доступа по телефонным линиям и модемы.

33

2. АРХИТЕКТУРА СОВРЕМЕННЫХ СИСТЕМ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ

2.1. Распределённая обработка данных

Понятие распределенной обработки данных. Распределенная обработка данных является одной из важнейших сфер применения сетевых технологий. Говоря о распределенной обработке, необходимо начать с рассмотрения понятия "открытая система", поскольку применение подхода открытых систем в настоящее время является основной тенденцией в области информационных технологий, связанных с телекоммуникациями и вычислительными сетями. Идеологию открытых систем реализуют в своих последних разработках все ведущие фирмы-поставщики средств вычислительной техники, передачи информации, программного обеспечения и разработки прикладных информационных систем. Что понимается под открытыми системами? Французская ассоциация пользователей Unix (AFUU) дает следующее определение: "Открытая система – это система, которая состоит из компонентов, взаимодействующих друг с другом через стандартные интерфейсы".

Термин "распределенная обработка данных" (Distributed Data Processing, DDP) применяется для описания систем с несколькими процессорами. Однако многие специалисты трактуют его по-разному, поскольку соединять процессоры можно различными способами и для различных целей. Часто под этим термином понимаются мультипроцессорные комплексы, расположенные в одном месте. Но в общепринятом смысле слово "распределенный" означает, что процессоры территориально удалены друг от друга. Иногда этот термин употребляется применительно к работам, выполняемым на множестве не связанных между собой компьютеров.

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

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

34

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

Преимущества распределенной обработки данных заключаются в следующем:

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

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

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

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

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

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

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

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

35

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

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

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

Отмена закона Гроша. Закон Гроша утверждает, что стоимость обработки обратно пропорциональна квадрату размера машины. Этим объяснялось существовавшее ранее стремление к централизации и программного обеспечения, и обработки данных. Сегодня выполнение команды на ПК обходится во много раз дешевле, чем ее выполнение на мэйнфрейме, что ведет к децентрализации большинства функций.

Развитие систем телекоммуникаций. В последние десять лет произошел резкий скачок в развитии и распространении средств глобальных телекоммуникаций – высококачественных проводных (wired) и

беспроводных (wireless) линий связи.

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

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

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

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

36

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

Возможность взаимодействия систем. По мере внедрения средств обработки данных в организации все острее встает проблема налаживания взаимодействия разобщенных систем.

Необходимость удаленного доступа к базам данных. Базы данных,

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

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

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

Эффективность распределения нагрузки по узлам обработки.

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

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

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

37

Обычно, данные могут храниться двумя способами – непосредственно в виде файлов или в базах данных. Файлы создаются, как правило, для работы с одной прикладной задачей или с группой связанных задач. Представление программиста о файле практически соответствует физической структуре последнего. База данных – это хранящаяся в независимом от приложений виде совокупность данных, из которой с помощью программного обеспечения может быть порождено множество различных программистских записей. Использование баз данных дает большие преимущества. Долгое время их программное обеспечение работало с данными, сосредоточенными в одном месте, однако теперь все большее распространение приобретают распределенные системы баз данных, совместно функционирующие на нескольких узлах. При этом централизация или децентрализация, как правило, диктуется существом самих хранимых данных. В частности, если данные непрерывно обновляются, а территориально разобщенные пользователи должны получать всякий раз их последнее состояние (например, как в системе резервирования авиабилетов), то естественно такие данные централизовать. Информация обычно централизуется и тогда, когда поиск производится во всей её совокупности. С другой стороны, если данные используются локально в точке их происхождения, они могут быть децентрализованными. При низкой скорости обновления или при автономном обновлении (off-line) допустимо хранение нескольких копий одних и тех же данных в разных местах.

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

Распределение вычислительного процесса. Как уже отмечалось,

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

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

Во время функционирования РОС могут возникать параллельные вычислительные процессы между процессами:

внутри одной задачи;

принадлежащими разным задачам;

задачи пользователя и операционной системы;

самой операционной системы.

38

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

еефункционирования:

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

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

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

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

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

Выделяют три элемента взаимодействия асинхронных параллельных процессов – инициацию, завершение и синхронизацию.

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

39

В вычислительных системах для синхронизации процессов широко используется механизм событий, назначение которого аналогично назначению семафоров. Алгоритмы синхронизации, основанные на механизме событий, в различных операционных системах различаются деталями, но в силу своей идеологической близости могут быть проиллюстрированы механизмом событий, используемым в вычислительной машине IВМ/390, который базируется на блоке управления событием (БУС) и двух макрокомандах WAIT и POST. Синхронизация событий в системах с общей памятью может выполняться с его помощью, но при этом любая операция синхронизации приводит, фактически, к одному межмашинному обмену или нескольким. Поэтому в системах с раздельной памятью для синхронизации событий необходим еще один оператор – оператор посылки сообщений.

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

Существуют три типа доступа к ресурсу (закрытия ресурса):

монопольный – только одна транзакция получает доступ к ресурсу (монопольный тип доступа обычно используется при записи информации);

разделяемый – несколько транзакций получают доступ к ресурсу (разделяемый тип доступа обычно используется при чтении информации);

предупредительный – в грáфе запретов введен запрет на узел

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

Всякая транзакция при обращении к ресурсу узла должна:

закрывать доступ к ресурсу одним из типов закрытия;

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

перед окончанием работы с ресурсом открывать его, т. е. снимать ограничение на доступ к нему;

закрыв его, не закрывать доступ к ресурсу повторно.

40

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

Один из неприятных моментов в распределенных вычислительных системах — тупиковые ситуации. Они возникают, когда для решения двух (или более) активных, т. е. уже находящихся в стадии решения, задач (процессов) требуются одни и те же ресурсы (устройства ввода-вывода, наборы данных, программы, ОЗУ), а их приоритет одинаков. Самым простым примером тупиковой ситуации являются состояния, когда два процесса монопольно владеют каждый своим ресурсом, но для завершения этих процессов каждому из них требуется еще ресурс, находящийся в монопольном владении другого. В настоящее время сформировались три основных подхода борьбы с тупиковыми ситуациями: предотвращение, недопущение и обнаружение.

Предотвращение тупиковых ситуаций. Возможны три способа предотвращения тупиковых ситуаций: прерывание процесса, запрос всех требуемых ресурсов одновременно, упорядочение ресурсов.

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

Запрос всех требуемых ресурсов одновременно. Такой запрос,

как правило, производится перед запуском задачи. Это один из наиболее распространенных способов предотвращения самозамыкания, но имеющий два очевидных недостатка:

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

время ожидания ресурса задачей (процессом) может оказаться чрезмерно большим.

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

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

41

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

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

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

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

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

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

42

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

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

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

2.2.Характеристики сетевых систем

Вкачестве характеристик сетевых систем обработки данных обычно рассматриваются следующие основные параметры.

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

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

43

Доступность системы (availability) определяется как вероятность того, что система будет функционировать в данный момент времени, или, другими словами, это доля времени всего периода работы системы, в течение которого последняя выполняет свои функции. Недоступность системы обычно выражается как отказ в предоставлении услуги. Высокая доступность системы обычно достигается использованием дополнительного (избыточного) оборудования.

Надежность системы (reliability) определяется как вероятность того, что система будет выполнять свои функции в течение всего требуемого интервала времени [t0, t], при условии, что она функционировала в момент времени t0. Понятие надежности сильно отличается от понятия доступности, так как надежность является мерой времени, в течение которого возможно предоставление системой услуги (обслуживание заявки, обработка запроса).

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

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

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

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

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

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

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

2.3. Архитектура сетевых распределённых систем

Существует множество вариантом классификации архитектур распределенных вычислительных систем.

По степени связности компонентов распределенные параллельные архитектуры подразделяются на два класса – слабосвязные системы

44

(loosely coupled) и системы с сильной связью (tightly coupled). Рассмотрим эти два класса архитектур, для чего определим обобщенную модель распределенного приложения как событийно управляемую систему, состоящую из набора задач, выполняющихся параллельно в разных адресных пространствах распределенной системы и взаимодействующих между собой посредством обмена синхронными или асинхронными сообщениями.

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

Врамках данной модели возможна реализация как синхронной, так и асинхронной схем обмена сообщениями между компонентами приложения. Отказоустойчивость этих систем складывается из целостности данных каждой задачи, надежности самой задачи и вычислительного элемента, в рамках которых она выполняется, а также надежности доставки сообщений, что предполагает надежность физической линии и надежность механизма передачи. Вычислительный элемент может представлять собой как отдельное адресное пространство, так и отдельную машину. Термин "слабосвязные системы" часто используется в связи с архитектурой обработки транзакций в реальном времени OLTP (On-line Transaction Processing). Надежность доставки сообщений в таких системах часто реализуется с помощью механизма транзакций. Системы OLTP характеризуются низким трафиком между узлами кластера.

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

Вчастности, необходима синхронизация отдельных процессов и нитей выполнения приложения при доступе к разделяемым ресурсам и данным. Для этого часто используется репликация данных между компонентами таким образом, чтобы каждая задача работала со своей копией данных, после чего осуществляется синхронизация глобальных данных с данными каждого компонента. Это означает наличие высокого трафика между узлами кластерной системы, порождаемого копированием больших объемов данных. Термин "система с сильной связью" часто используется по отношению к архитектурам аналитической обработки информации в режиме реального времени OLAP (On-line Analytical Processing). Наряду с таким разделением распределенных систем можно ввести классификацию по степени рассредоточения распределенных компонентов:

1)связь через общую шину с целью образования единого вычислительного комплекса;

45

2)связь по кабелям в пределах одного машинного зала, этажа или

здания;

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

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

5)отсутствие физической связи.

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

Классификация систем по способам распределения данных.

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

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

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

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

46

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

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

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

Представляющаяся авторам настоящего издания наиболее стройной

классификация распределенных архитектур с точки зрения развития клиент-серверного взаимодействия была подробно рассмотрена в учебном пособии "Сетевые технологии".

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

2.4. Intranet и идеология систем клиент-сервер

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

47

intranet практически не отличается от Internet. Здесь такие же локальные и глобальные сети, те же программы: Internet-навигаторы, Web-серверы, электронная почта, телеконференции и даже те же производители программного обеспечения. Главная отличительная особенность intranet кроется в информационном уровне коммуникаций.

Наиболее мощный толчок к развитию сети intranet получили в рамках парадигмы клиент-сервер. Всем технологическим и архитектурным принципам свойственно развиваться и модифицироваться. Именно это и произошло с технологией клиент-сервер. Далее рассматривается эволюционирование систем, построенных в архитектуре такого типа.

Классическая (двухуровневая) модель. Исторически это первая модель в рассматриваемой архитектуре, возникшая как попытка организовать распределенные вычисления с ярко выраженной централизацией.

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

Клиентская часть обычно взаимодействует с сервером базы данных, используя различные API: или специфичные для данного сервера (DB-Library API, SQL*Net и т. д.), или более универсальные (например, ODBC). Клиентские ("front-end") компоненты системы размещаются на связанных в корпоративную сеть персональных рабочих станциях. В той же сети на PC-сервере функционирует и серверный ("back-end") компонент. Как правило, сервер находится в состоянии пассивного ожидания запросов от клиентов на информацию или на определенный ресурс. Обслужив запрос, сервер посылает информацию клиенту, который отображает ее для пользователя.

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

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

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

48

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

снижение требований к мощности клиентского рабочего места;

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

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

в отдельных случаях – увеличение производительности.

Именно по описываемой модели построены intranet-системы, их характерной особенностью является фиксация протокола обмена между клиентской частью и сервером приложений – HTTP, что дает возможность использовать универсальный (или относительно универсальный) клиент – Web-browser. Сервер приложений в системах такого типа принято называть Web-сервером.

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

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

Вбольшей части случаев становится возможным найти общий подход

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

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

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

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

49

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

Быстродействие – основной фактор целесообразности разработки систем для архитектуры клиент-сервер. Применение средств быстрой разработки программ (Rapid Application Development – RAD), таких как Delphi компании Inprise, PowerBuilder фирмы PowerSoft и Visual Basic

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

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

компонент представления (presentation), реализующий функции первой группы;

прикладной компонент (business application), поддерживающий функции второй группы;

компонент доступа к информационным ресурсам (resource acces), или менеджер ресурсов (Resource manager), поддерживающий функции третьей группы.

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

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

50

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

Подводя итог, перечислим основные преимущества распределенных клиент-серверных систем:

компонентная архитектура;

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

нагрузка на отдельные компоненты, а не на систему в целом;

возможность повторного использования компонентов;

возможность одновременного использования компонентов;

простота модификации и масштабирования;

больший потенциал для обеспечения производительности;

возможность независимой разработки компонентов.

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

2.5.Модели распределенных систем в архитектуре клиент-сервер

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

Традиционные подходы в моделировании. На верхнем уровне абстрагирования достаточно четко можно выделить следующие компоненты:

презентационную логику (Presentation Layer – PL);

логику доступа к ресурсам (Access Layer – AL);

бизнес-логику (Business Layer – BL).

51

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

"толстый" клиент. Наиболее часто встречающийся вариант реализации архитектуры клиент-сервер в уже внедренных и активно используемых системах. Такая модель подразумевает объединение в клиентском приложении как PL, так и BL. Серверная часть в описанном подходе представляет собой сервер баз данных, реализующий AL. К описанной модели часто применяют аббревиатуру RDA – Remote Data Access;

"тонкий" клиент. Модель, начинающая активно использоваться в корпоративной среде в связи с распространением Internet-технологий и, в первую очередь, Web-браузеров. В этом случае клиентское приложение обеспечивает реализацию PL, а сервер объединяет BL и AL;

сервер бизнес-логики. Это модель с физически выделенным в отдельное приложение блоком BL.

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

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

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

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

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

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

52

следовательно, обратиться к существующим стандартам такого взаимодействия.

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

Таким образом, следует перейти к анализу существующих распределенных объектных моделей. На настоящий момент наибольшей проработанностью отличаются модели COM/DCOM/ActiveX и CORBA/DCE/Java. Если в первом случае требуемые механизмы поддержки модели являются неотъемлемой частью операционной платформы Win32 (Windows 98/NT/CE/2000), то во втором случае предусмотрена действительная кроссплатформенность. Если попытаться объективно оценить перспективы применения таких моделей, то для этого необходимо понять требования к операционным платформам, выдвигаемые различными функциональными компонентами системы. При построении реальных систем корпоративного масштаба уже мало обходиться их разделением на три базовых фрагмента PL, BL, AL. Поскольку бизнес-логика является блоком, наиболее емким и специфичным для каждого проекта, именно ее приходится разделять на более мелкие составляющие. Такими составляющими могут быть, например,

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

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

53

снова о правиле 20/80, можно прийти к выводу, что наиболее оптимальным выбором, с точки зрения управляемости и надежности системы, является сочетание различных моделей взаимодействия клиентской и серверной частей. По сути, речь идет даже не о трехуровневой, а о многоуровневой (N-tier) модели, объединяющей различных по "толщине" клиентов, серверы баз данных и множество специализированных серверов приложений, взаимодействующих на базе открытых объектных стандартов. Существенным облегчением в реализации многоуровневых гетерогенных систем является активная работа ряда производителей программного обеспечения, направленная на создание переходного ПО. В отличие от продуктов middleware, обеспечивающих верхний транспортный уровень (универсальные интерфейсы доступа к данным ОDВС, JDВС, ВDЕ; Message Oriented Middleware – MOM; Object Request Broker – ORB), переходное ПО отвечает за трансляцию вызовов в рамках одного стандарта обмена в вызовы другого (мосты ODBC/JDBC и BDE/ODBC, COM/COBRA, Java/ActiveX и т. п.). На рис. 2.1 представлена обобщенная многоуровневая модель клиент-серверной системы.

"Толстый"

 

"Тонкий"

 

"Тонкий"

клиент

 

клиент

 

клиент

 

 

 

 

 

СП

СП СП Web-сервер

КОТ

Сервер

Security-сервер

базы данных

Рис. 2.1. Многоуровневая клиент-серверная модель

Различные стандарты взаимодействия могут применяться в различных связках узлов системы, а мосты – встраиваться в любой узел или выделяться в своеобразные серверы приложений (с физическим выделением в узлах сети). Двигаясь между клиентами слева направо на приведенной на рисунке диаграмме, можно наблюдать переход между различными моделями распределенных вычислений – через intranet к Internet.

54

Многоуровневое представление "от клиента". Традиционная архитектура клиент-сервер исторически развивалась в реальных прикладных системах от "толстого" клиента. Клиентские приложения объединяли как пользовательский интерфейс, так и бизнес-логику. В связи с этим инструментальные средства для построения клиентских приложений сами по себе предлагали многоуровневую архитектуру объектов. Эволюция такого рода многоуровневого клиентского инструментария рассматривается далее на примере Inprise Delphi Client-Server.

Концептуально, архитектура Delphi ориентирована на использование цепочек объектов "Data Control – Data Source – Data Set", что может быть переведено следующим образом:

элементы пользовательского интерфейса;

компоненты потоков ввода-вывода;

компоненты доступа к данным.

Введение методики Delphi обеспечило упрощение процесса реализации трехуровневой модели в рамках конкретных приложений, содержащих в себе только фрагмент PL. Транспортный уровень (TL) поддержан компонентами объектного взаимодействия клиента и сервера приложений Remote Server и Provider. Множество данных (Data Sets),

запросы (Query), хранимые процедуры (Quety), таблицы (Table) реально переносятся на Remote Server и представляются множеством данных Client Data Set. Процесс "сужения" клиента продолжался за счет исключения интерфейса доступа к данным BDE (Borland Data Base Engine), что, в свою очередь, упрощается процесс администрирования системы.

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

2.6. Особенности корпоративных приложений архитектуры клиент-сервер в концепции intranet

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

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

55

Клиент 1

Клиент 2

БД

Клиент 3

Рис. 2.2. Архитектура с файловым сервером

На рис. 2.3 приведено традиционное решение в архитектуре клиент-сервер. Клиентские приложения обращаются к серверу БД

(например, InterBase, Oracle, Informix, Sybase, MS SQL). Логика клиентского приложения может быть написана на Paradox, dBase, Delphi или С/С++. Следует еще раз отметить, что при этом все взаимодействие с БД ведется через линки компаний-производителей, причем клиентское приложение может напрямую запрашивать у сервера данные и оперирует понятиями запросов, транзакций и таблиц.

Клиент 1

Клиент 2

SQL

БД

Клиент 3

Рис. 2.3. Традиционная клиент-серверная архитектура

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

Клиент 1

SQL

 

 

БД

Клиент 2

Монитор

Клиент 3

SQL

 

 

БД

Рис. 2.4. Клиент-серверная архитектура с монитором транзакций

56

В числе прочих, компания Borland (Inprise) в программе "Upsizing application" выпустила серию инструментов разработчика, которые с успехом применялись и применяются при разработке клиент-серверных проектов. Это уже упоминавшийся Delphi 2.0 – 5.0 для Win 95/NT, а

также Paradox 5.0, известный с 1995 г. Paradox 7, Visual dBase 5.5, С++ 4.5 с BDE 2.5 и С++ 5.02 с BDE 3.0 для Windows 95/98/NT. При помощи этих инструментов можно разрабатывать локальные приложения для баз данных, а затем легко адаптировать их к использованию в архитектуре клиент-сервер.

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

Однако при создании клиент-серверной системы более чем на 100-200 клиентских мест сразу возникают дополнительные сложности. Во-первых, стоимость коннекта – стоимость клиентской лицензии для SQL-сервера в среднем достаточно высока и при умножении ее на соответствующее количество пользователей возникает пугающая цифра, особенно в современных экономических условиях. Во-вторых, даже если отбросить в сторону финансовые соображения, существуют и дополнительные сложности. На каждый клиентский коннект сервер должен выделять значительное количество памяти на аппаратуре серверной машины, в зависимости от типа SQL-сервера это количество разное, однако общая тенденция очевидна. Вероятность того, что в действующей системе потребуется доступ к данным с клиентских станций разных типов и моделей, достаточно высока – в большой корпоративной или межкорпоративной системе имеется чрезвычайно широкий спектр различной техники – от терминалов и 286 моделей до серьезных Unix-станций и мэйнфреймов. В большой информационной системе, как правило, наблюдается и разнобой физической реализации коммуникаций – от модемных соединений скоростью 2400 бод до выделенных оптоволоконных линий связи. Реально ли в таких условиях рассчитывать на приемлемое клиент-серверное решение задачи построения информационной системы?

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

– для решения внутрикорпоративных задач. Основной проблемой при таком

57

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

Internet. Какими же возможностями обладает разработчик при использовании технологий Internet в проекте закрытой корпоративной сети для различных структур и протоколов?

TCP/IP. Сетевой протокол TCP/IP фактически реализован для любых типов сетей. Любая аппаратурная платформа поддерживает этот протокол.

Коннект. Коннект клиентского браузера к Web-серверу осуществляется исключительно легко. Многие проблемы, которые существовали в прежней архитектуре клиент-сервер, когда клиентское приложение напрямую осуществляло доступ к SQL-серверу, снимаются при использовании технологии Internet. На сервере требуется меньше памяти, логика коннекта позволяет "удерживать" коннект даже при физическом обрыве линии. Поскольку взаимодействие интернетовских браузеров с хостом отлаживалось в самых разных условиях, по-разному передаются и различные куски информации. Так, например в расчете на медленное соединение, клиенту вначале передается текстовая информация, и только потом докачиваются графические или другие большие двоичные объекты. Пользователь модемной линии может не дожидаться докачки всего изображения и принять решение о переходе к новой странице информации.

Данные: файлы, текст, ссылки, изображение, 3D, звук. Понимание того, что ограниченность типов данных является препятствием к широкому применению классических реляционных СУБД, привело к расширению типов данных, используемых современными SQL-серверами. Например, InterBase может оперировать расширенным типом данных BLOb – большими двоичными объектами. А браузеры Internet могут воспринимать текстовую информацию, ссылки на ресурсы (URL), изображение, звук, оперировать присоединенными файлами.

Механизм маршрутизации и логики коннекта. Надежность механизмов маршрутизации Internet позволяет строить сколь угодно сложную и разветвленную сеть.

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

Многоплатформенность. В свое время Internet так или иначе справилась с этой проблемой, и в настоящее время используются готовые решения. Стандартные браузеры реализованы для большинства распространенных программно-аппаратных платформ, новые стандарты

58

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

Стандарты. Бурное развитие Internet порождает множество проблем. Разработчику большой системы приходится иметь дело со множеством неустоявшихся стандартов, или, что очень опасно для будущего системы, – со стандартом де-факто, пока еще не принятым, но уже достаточно распространенным. При планировании, проектировании и разработке системы следует учитывать это обстоятельство.

Intranet. Имея определенное впечатление об intranet как о системе, в которой каждый клиент имеет доступ к данным Web-сервера посредством своего браузера, логично задать вопрос: является ли такая архитектура архитектурой клиент-сервер? Ведь в классическом понимании на клиентское приложение возлагаются некие дополнительные задачи – дополнительная логика. Позволяет ли стандартный браузер решать такие задачи? Если иметь в виду распространенный браузер Netscape, то почти ничего, за исключением простейших диалогов и просматривания данных, такой клиент делать не может, что заставляет этого клиента называть "тонким" (thin client), поскольку в большинстве случаев использование браузера по своим возможностям мало чем отличается от применения терминала со своей системой команд.

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

Клиент. На сегодня существует заметная тенденция по превращению "тонкого" клиента в клиента, оснащенного возможностями исполнения логики приложения. Для этого должен был бы использоваться некий универсальный язык программирования, обладающий достаточно противоречивыми характеристиками. С одной стороны, этот язык должен функционировать на большинстве используемых платформ, т. е. быть легко переносимым с платформы на платформу, с другой – должен быть достаточно выразительным, чтобы с его помощью можно было легко строить довольно сложные приложения. Сейчас трудно предсказать, какой язык сможет наилучшим образом удовлетворить все существующие противоречивые требования к инструментарию разработки распределенных систем, однако наиболее перспективным на роль интернетовского эсперанто является язык Java, разработанный компанией Sun Microsystems.

Приложение. Возможность исполнения логики приложения с применением одного и того же языка как на клиенте, так и на сервере позволяет использовать единый цикл разработки как для сервера, так и для клиента. Быть может, суждено сбыться мечтам разработчиков о прозрачном перемещении логики приложения с клиента на сервер или даже на множество серверов? Возможно, наиболее разумным решением задачи построения сложной корпоративной системы в будущем станет реализация

59

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

Связь с БД. Наиболее важный аспект построения сложной системы – это сложность поддержания данных в целостном и структурированном виде для систем intranet. Наиболее распространенная технология, когда данные представлены в виде гипертекстовых страниц, связанных перекрестными ссылками, не слишком применима для корпораций, имеющих дело с потоком часто обновляемой и меняющейся информации. Технология реляционных баз данных доказала свою применимость для таких случаев. Поэтому весьма важно знать о совместимости подхода Internet к использованию SQL-сервера в качестве хранилища информации. В прессе уже звучали заявления различных ведущих компаний о решении тем или иным способом этой проблемы.

Формирование гипертекстовых страниц. Фактически, основное требование – обеспечить формирование Web-сервером гипертекстовых страниц для клиентского браузера, исходя из результатов запроса к SQL-серверу и шаблона такой странички. При этом особенное внимание в настоящее время уделяется способам представления разнотипных данных, а также информации, имеющей сложную структуру. Практически каждый месяц в печати появляются сообщения о создании или тестировании новых расширений для базового языка разметки гипертексовых документов. Так, среди последних примеров можно назвать язык разметки речевых сообщений (VML), позволяющий воспроизводить на клиентском месте текстовую информацию, используя имитатор человеческого голоса с возможностью задания необходисых громкости, тембра и других параметров. При этом не остаются забытыми и пользователи, чьи клиентские места состоят исключительно из мобильного телефона или карманного компьютера. Для них также разработан ряд стандартов, наиболее важные из которых – протокол беспроводного доступа к информационным ресурсам (Wireless Application Protocol – WAP) и сервис передачи коротких текстовых сообщений (Short Messaging Service – SMS). WAP-сайты располагаются на Internet- и intranet-серверах и представлены в специальном формате WML (Wireless Markup Language). Этот язык разметки специально адаптирован под возможности мобильного телефона – двухцветную графику, маленький экран и небольшую память. При этом SMS используется для отправки коротких сообщений прямо на мобильный телефон или с мобильного телефона. Таким образом, работа с распределенными информационными ресурсами может производиться без применения дополнительного оборудования. SMS является частью цифрового стандарта Глобальной системы мобильных коммуникаций

(GSM).

О создании инструментов создания подобных систем объявили практически все ведущие компании: Oracle, Informix, Sybase, Borland, Microsoft, IBM.

60

3. ОСНОВЫ УПРАВЛЕНИЯ ВЫЧИСЛИТЕЛЬНЫМИ СЕТЯМИ

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

сетевого администрирования;

контроля и анализа трафика;

обслуживания рабочих групп в различных сетевых ОС;

инвентаризации аппаратного и программного обеспечения;

мониторинга работоспособности систем и обслуживания ошибочных и сбойных ситуаций;

администрирования и удаленного мониторинга СУБД, возможности настройки и выполнения административных функций;

обеспечения интегрированной системы безопасности;

управления и обслуживания интегрированной системы резервного архивирования и восстановления информации;

обеспечения заданного уровня сервиса клиента информационной технологии;

интеграции с системами управления телекоммуникационным оборудованием.

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

3.1. Понятие об управлении вычислительными сетями

Управление ВС скорее является искусством, чем наукой. При разрастании сети до сотен (или даже тысяч) узлов обработки, хранения и преобразования данных, поддержание ее работоспособности требует большого опыта и глубоких знаний.

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

61

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

Управление вычислительными сетями – сложный процесс, который, с точки зрения выполняемых функций, можно разделить на несколько. При рассмотрении компьютерных сетей широко употребляются следующие четыре термина: control, management, maintenance и administration.

Трактуются они зачастую довольно свободно; в настоящем издании они определены следующим образом.

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

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

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

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

3.2. Элементы управления сетевыми распределёнными системами

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

62

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

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

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

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

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

63

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

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

качество решения задачи планирования;

применимость для составления планов реализации задач различной степени связности;

возможность использования для ВС различной структуры;

применимость для планирования вычислительного процесса в различных режимах работы ВС;

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

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

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

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

Выбор метода планирования тесно связан с режимом функционирования ЛВС. Выделяют, например, такие методы планирования:

– однопрограммной (однозадачной) пакетной обработки;

– многопрограммной (многозадачной) пакетной обработки;

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

64

однопрограммной обработки в режиме разделения времени (многопользовательские системы);

многопрограммной обработки в режиме разделения времени;

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

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

В зависимости от принципа построения различают статические планы

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

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

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

минимизацию времени выполнения программы;

минимизацию количества требуемых PC;

минимизацию среднего времени окончания выполнения заданий;

максимизацию загрузки PC;

минимизацию времени простоев PC.

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

65

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

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

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

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

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

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

66

расписание, которое затем несколько раз итерационно корректируется с целью построения более эффективного итогового расписания.

В расписании предусматриваются три основные операции:

выбор задач для их назначения на ЭВМ (узлы обработки);

выбор компьютеров для назначения на них задач;

назначение выбранных задач на выбранные компьютеры для выполнения обработки.

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

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

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

Второй этап представляет собой собственно построение оптимального (в смысле выбранного критерия) плана выполнения комплекса задач в сети с использованием результатов первого этапа. Задача второго этапа относится к классу задач теории расписаний. Для их решения, как отмечалось, используются как методы, позволяющие получить точное решение, так и методы приближенного решения. Следует иметь в виду два важных момента, связанных с поставленной проблемой. Во-первых, достаточная стабильность комплексов задач, характерная для систем организационного управления, позволяет выполнять предварительное (статическое) планирование. Во-вторых, относительно небольшое число задач (20-30), входящих в комплекс, упрощает составление плана его решения.

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

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

67

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

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

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

3.3. Сетевая интеграция

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

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

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

"internetworking".

68

Несколько иная проблема, называемая "interoperability", возникает при объединении сетей, использующих разные протоколы более высоких уровней. Как сделать, например, возможным для клиентов сети Novell NetWare доступ к файловому сервису Windows NT или работу с сервисом telnet ОС Unix?

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

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

Ethernet, сеть FDDI).

По этой же причине проблема межсетевого взаимодействия может возникнуть в однородной сети Ethernet, в которой установлено несколько сетевых ОС. В данном случае все компьютеры и все приложения используют для транспортировки сообщений один и тот же набор протоколов, но клиентские и серверные части сетевых сервисов взаимодействуют по разным протоколам. Здесь компьютеры могут быть отнесены к разным сетям, если у них различаются протоколы верхних уровней (например, сеть Windows NT, сеть NetWare). Конечно, эти сети могут спокойно сосуществовать, не мешая друг другу и мирно пользуясь общим транспортом. Однако если потребуется обеспечить доступ к данным файлового сервера NetWare для клиентов Windows NT, администратор сети столкнется в необходимостью согласования сетевых сервисов.

Существует три основных подхода к согласованию разных стеков протоколов:

трансляция;

мультиплексирование;

инкапсуляция.

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

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

69

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

Мультиплексирование протоколов. Другим подходом к согласованию коммуникационных протоколов является технология мультиплексирования. Этот подход состоит в установке нескольких дополнительных стеков протоколов на одной из конечных машин, участвующих во взаимодействии. Компьютер с несколькими стеками протоколов использует для взаимодействия с другим компьютером тот стек, который "понимает" этот компьютер.

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

При использовании технологии мультиплексирования структура коммуникационных средств операционной системы может быть и более сложной: мультиплексирование осуществляется не на уровне стеков, а на уровне отдельных протоколов. В общем случае на каждом уровне может быть установлено несколько протоколов и для каждого уровня может существовать собственный мультиплексор, выполняющий коммутацию между протоколами соседних уровней. Например, рабочая станция может получить доступ к сетям с протоколами NetBIOS, IP, IPX через один сетевой адаптер. Аналогично, сервер, поддерживающий прикладные протоколы NCP, SMB и NFS, может без проблем выполнять запросы рабочих станций сетей NetWare, Windows NT и Solaris одновременно.

Сравнение трансляции и мультиплексирования. Использование техники трансляции связано со следующими достоинствами:

не требуется устанавливать дополнительное программное обеспечение на рабочих станциях;

сохраняется привычная среда пользователей и приложений (транслятор полностью прозрачен для них);

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

Недостатки согласования протоколов трансляцией заключаются в следующем:

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

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

70

при увеличении числа пользователей и интенсивности обращений

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

Достоинства мультиплексирования по сравнению с трансляцией протоколов заключаются в следующем:

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

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

Недостатки данного подхода:

сложнее осуществляется администрирование и контроль доступа;

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

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

Инкапсуляция (туннелирование) протоколов. Инкапсуляция

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

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

Инкапсуляция может быть использована для транспортных протоколов любого уровня. Например, протокол сетевого уровня Х.25 может быть инкапсулирован в протокол транспортного уровня TCP или же протокол сетевого уровня IP может быть инкапсулирован в протокол сетевого уровня Х.25. Для согласования сетей на сетевом уровне могут быть использованы многопротокольные и инкапсулирующие маршрутизаторы, а также программные и аппаратные шлюзы.

Обычно инкапсуляция приводит к более простым и быстрым решениям по сравнению с трансляцией, так как решает более частную задачу, не обеспечивая взаимодействия с узлами транзитной сети.

Наиболее часто встает задача интеграции сегментов сети, функционирующих под управлением СОС клона Unix c сегментами NetWare

или Microsoft Windows NT.

71

4.АРХИТЕКТУРА СЕТЕВЫХ ОС

4.1.Структура сетевой операционной системы

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

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

Средства управления ресурсами ЭВМ

Серверная часть

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

Телекоммуникационная часть

Рис. 4.1. Структурная схема СОС

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

2.Серверная часть, включающая в себя средства распределения собственных ресурсов и услуг компьтера в общее пользование. С помощью этих средств обеспечивается: блокировка файлов и записей, необходимость в которой возникает при их совместном использовании; ведение каталогов-справочников; обработка запросов удаленного доступа к файловой подсистеме и базе данных; управление удаленным доступом к ресурсам.

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

72

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

4. Телекоммуникационная часть (ТКЧ) – средства СОС, обеспечивающие обмен сообщениями в сети. С помощью этих средств осуществляется адресация, буферизация и фильтрация сообщений, выбор маршрута передачи, контроль и обеспечение надежности.

На рис. 4.2 показано взаимодействие компонентов СОС при работе двух процессов в сети.

ПК1

Процесс А

 

Клиент

Управление

 

ресурсами

 

Ресурсы

ТКЧ

клиента

 

ПК2

 

Процесс В

Управление

 

ресурсами

 

Сервер

 

ТКЧ

БД

Рис. 4.2. Взаимодействие процессов под управлением СОС

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

4.2. Сетевые службы

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

73

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

Среди сетевых служб можно выделить такие, которые ориентированы не на простого пользователя, а на администратора. Такие службы предназначены для организации правильной работы сети в целом (например, служба администрирования учетных записей о пользователях Domain User Manager в Windows NT, которая позволяет администратору вести общую базу данных о пользователях сети). Более прогрессивным является подход с созданием централизованной справочной службы, или, по-иному, службы каталогов, которая предназначена для ведения базы данных не только обо всех пользователях сети, но и обо всех ее программных и аппаратных компонентах. В качестве примеров службы каталогов часто приводятся NDS компании Novell и StreetTalk компании Banyan. Другими примерами сетевых служб, предоставляющих сервис администратору, являются: служба мониторинга сети, позволяющая захватывать и анализировать сетевой трафик; служба безопасности, в функции которой может входить, в частности, выполнение процедуры логического входа с проверкой пароля; служба резервного копирования и архивирования.

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

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

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

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

74

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

Сетевые службы операционной системы выполняют функции, соответствующие верхним уровням модели OSI, – прикладному, представительному и сеансовому. Для протоколов этого уровня особенно характерно многообразие стандартов. Только для одного файлового сервиса можно назвать с десяток стандартных протоколов, среди которых наиболее популярны FTAM (протокол передачи файлов стека OSI), NFS, FTP и TFTP (протоколы пересылки файлов стека TCP/IP), NCP (протокол взаимодействия сервера Novell NetWare и оболочки рабочей станции), SMB (протокол, регламентирующий взаимодействие рабочей станции с сервером в сетях Microsoft и IBM). Этому многообразию протоколов соответствует многообразие файловых сервисов.

Транспортные средства операционной системы соответствуют протоколам сетевого, транспортного и канального уровней. На канальном уровне работают драйверы сетевых адаптеров; как правило, операционная система поддерживает стандарты Ethernet, TokenRing, FDDI. Протоколы сетевого и транспортного уровней (IP, TCP, IPX, SPX, NetBEUI и др.) часто также реализуются в виде драйверов. От того, насколько разнообразен набор поддерживаемых коммуникационных протоколов, зависит "открытость" операционной системы, т. е. возможность ее взаимодействия с сетевыми средствами различных производителей.

4.3. Встроенные сетевые службы и сетевые оболочки

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

сетевые службы глубоко встроены в ОС;

сетевые службы объединены в виде некоторого набора – оболочки,

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

На рис. 4.3 показаны первые два варианта построения СОС. Построение СОС как совокупности существующей ОС и отдельной

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

Бурное развитие корпоративных сетей вызвало необходимость более совершенных структур ОС, сетевые функции в которых реализуются основными модулями. Такой подход позволяет повысить производитель-

75

Вариант А

Сетевая оболочка

Локальная ОС

Вариант В

ОС со встроенными

сетевыми

функциями

LAN Manager

Windows NT

Personal Ware

Netware (сервер)

Netware (клиенты)

семейство Unix

и др.

и др.

Рис. 4.3. Варианты построения СОС

ность ВС, обеспечивает их логическую стройность, простоту эксплуатации, гибкость, эффективность и надежность. Примером такого варианта построения может служить широко распространенные СОС Unix и Windows NT.

4.3.1. Встроенные службы

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

Однако в дальнейшем разработчики сетевых ОС посчитали более эффективным подход, при котором сетевая ОС с самого начала работы над ней задумывается и проектируется специально для работы в сети. Сетевые функции у этих ОС глубоко встраиваются в основные модули системы, что обеспечивает ее логическую стройность, простоту эксплуатации и модификации, а также высокую производительность. Важно, что при таком подходе отсутствует избыточность. Если все сетевые службы хорошо интегрированы, т. е. рассматриваются как неотъемлемые части ОС, то все внутренние механизмы этой операционной системы могут быть оптимизированы для выполнения сетевых функций. Примером такой ОС является система Windows NT фирмы Microsoft, которая за счет встроенности сетевых средств обеспечивает более высокие показатели производительности и защищенности информации по сравнению с сетевой ОС LAN Manager той же фирмы, являющейся надстройкой над локальной

76

операционной системой OS/2. Другими примерами сетевых ОС со встроенными сетевыми службами являются все современные версии Unix,

серверной части NetWare, OS/2 Warp.

4.3.2. Оболочка

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

Одна и та же оболочка может предназначаться для работы над совершенно разными операционными системами. В таких случаях оболочка должна строиться с учетом специфики той операционной системы, над которой она будет работать. Так, LAN Server существует в различных вариантах: для работы над операционными системами VAX VMS, VM, OS/400, AIX, OS/2.

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

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

LAN Server и LAN Manager, а также NetWare for Unix, File and Print Services for NetWare, ориентирована на выполнение серверных функций. Серверная оболочка как минимум содержит серверные компоненты двух основных сетевых сервисов – файлового сервиса и печати (именно такой набор серверов реализован в упомянутых NetWare for Unix и File and Print Services for NetWare). Некоторые же оболочки содержат настолько широкий набор сетевых служб, что их называют сетевыми операционными системами. Так, ни один обзор сетевых операционных систем не будет достаточно полным, если в нем отсутствует информация о LAN Server, LAN Manager, ENS, являющихся сетевыми оболочками.

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

77