Тема 1 Введение в Internet и intranet

advertisement
Национальный технический университет Украины
"Киевский политехнический институт"
Информационные телекоммуникационные
платформы и стандарты Интернет
Курс лекций.
Для студентов специальностей 6.0924, 7.092401, 7.092402
Составитель
АЛЕКСЕЕВ Николай Александрович
Киев 2004
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Содержание
Тема 1 Введение в Internet и intranet .......................................................................................... 4
1.1 Логическая архитектура компьютерных сетей ............................................................... 4
1.1.1 Понятие логической архитектуры сети .................................................................... 4
1.1.2 Семиуровневая модель OSI, понятие протокола. .................................................... 4
1.2 Первые вычислительные системы и одноранговая архитектура .................................. 6
1.3 Классическая архитектура «клиент-сервер» .................................................................. 8
1.4 Архитектура «клиент-сервер», основанная на Web-технологии ................................ 13
Тема 2 Основы современных сетевых технологий ................................................................ 17
2.1 Схема взаимодействия с Web-сервером Обобщенное описание ................................ 17
2.1.1 Обработка запроса от Web-клиента ........................................................................ 18
2.2 Распределенная обработка информации на основе мигрирующих
программ................................................................................................................................. 20
2.2.1 Java-технология ........................................................................................................ 20
2.2.2 Технологии, основанные на использовании языков сценариев ........................... 24
2.2.3 Технологии ActiveX .................................................................................................. 26
2.3 Доступ к реляционным базам данных ........................................................................... 29
2.3.1 Доступ к серверу СУБД через Web-сервер ............................................................ 29
2.3.2 Интерфейс CGI ......................................................................................................... 30
2.3.3 Интерфейсы API и FastCGI ..................................................................................... 31
2.3.4 Доступ к серверу СУБД напрямую ......................................................................... 32
Тема 3 Протоколы Internet/Intranet ........................................................................................... 34
3.1 Эталонная модель TCP/IP ............................................................................................... 35
3.2 Анатомия модели TCP/IP ................................................................................................ 35
3.2.1 Прикладной уровень ................................................................................................ 35
3.2.2 Межхостовый уровень ............................................................................................. 35
3.2.3 Межсетевой уровень ................................................................................................ 36
3.2.4 Уровень сетевого доступа ........................................................................................ 36
3.3 Преимущества TCP/IP ..................................................................................................... 36
3.4 Уровни и протоколы TCP/IP ........................................................................................... 36
3.4.1 Протокол IP ............................................................................................................... 37
3.4.2 Протокол ТСР ........................................................................................................... 38
3.4.3 Протокол UDP ........................................................................................................... 38
3.4.4 Telnet .......................................................................................................................... 39
3.4.5 FTP ............................................................................................................................. 39
3.5 TFTP .................................................................................................................................. 39
3.6 SMTP ................................................................................................................................. 40
3.7 NFS .................................................................................................................................... 40
3.8 SNMP ................................................................................................................................ 41
3.9 World Wide Web. Протокол HTTP .................................................................................. 41
Тема 4 Платформа.NET ............................................................................................................. 44
4.1 Концепция и возможности подхода .NET ..................................................................... 44
4.2 Описание платформы .NET ............................................................................................ 49
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
2
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
3
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Тема 1 ВВЕДЕНИЕ В INTERNET И INTRANET
1.1 Логическая архитектура компьютерных сетей
1.1.1 Понятие логической архитектуры сети
Стремительный рост неоднородности и масштабности современных компьютерных
сетей приводит к чрезмерному усложнению технологии их функционирования, без понимания которой невозможна организация эффективной защиты информационнокомпьютерных ресурсов. Технология же функционирования любой системы определяется ее архитектурой, отражающей входящие в систему компоненты, их назначение и взаимосвязи друг с другом.
По отношению к компьютерным сетям целесообразно различать их физическую и
логическую архитектуру.
Физическая архитектура описывает структуру, назначение и взаимосвязи реализаций
протоколов нижнего и среднего уровней эталонной модели сетевого взаимодействия —
протоколов физического, канального, сетевого, транспортного и сеансового уровней
(рис.1). Соответственно физическая архитектура определяется структурой, назначением
и взаимосвязями аппаратных средств компьютерной сети, а также программных реализаций протоколов нижнего и среднего уровней эталонной модели. Для полного анализа физической архитектуры необходимо ее рассмотрение по уровням детализации, соответствующим физическому, канальному, сетевому, транспортному и сеансовому уровням
эталонной модели сетевого взаимодействия.
Логическая архитектура описывает структуру, назначение и взаимосвязи программных средств компьютерной сети, реализующих протоколы верхних уровней эталонной
модели — протоколы уровня представления и прикладного уровня (рис. 1). Логическая
архитектура отражает целостную технологию функционирования компьютерной сети и
может быть детализирована посредством различных уровней физической архитектуры.
1.1.2 Семиуровневая модель OSI, понятие протокола.
Протокол –
Строго определенная процедура и формат сообщений, допустимые для
коммуникаций между двумя или более системами через общую среду передачи данных.
Формализованный набор правил, используемый ПК для коммуникаций. Изза сложности коммуникаций между системами и необходимости соблюдения различных коммуникационных требований протоколы разделяются на
модульные уровни. Каждый уровень выполняет конкретную функцию для
расположенного выше уровня
В настоящее время используется достаточно большое количество сетевых протоколов, причем в рамках одной и той же сети определяется сразу несколько из них. СтремлеФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
4
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
ние к максимальному упорядочению и упрощению процессов разработки, модернизации
и расширения сетей определило необходимость введения стандартов, регламентирующих
принципы и процедуры организации взаимодействия абонентов компьютерных сетей. С
этой целью была разработана так называемая Эталонная модель взаимодействия открытых систем, состоящая из семи уровней. (OSI, Open Systems Interconnection), разработанна международной организацией стандартизации (ISO, International Standards Organization). Модель OSI напоминает разные "уровни" обычного почтового адреса - от страны и
штата (округа) до улицы, дома (места назначения) и фамилии получателя. Для доставки
информации соответствующему получателю устройства на маршруте передачи используют разные уровни детализации. Каждый из уровней представляет определенную группу функций, необходимых для работы компьютерной сети.
Коммуникации: обеспечение точной доставки
данных между конечными станциями.
Прикладной
Уровень представления
Уровни, соответствующие логической архитектуре сети
Уровни, соответствующие физической архитектуре сети
Сеансовый
Транспортный
Маршрутизаторы, коммутаторы уровня 3
Сетевой
Соединение: управлеМосты, коммутаторы
Канальный
ние физической доставкой данных по сети.
Кабели,повторители,концентраторы,модемы
Физический
Рис. 1.1 - Соответствие между уровнями эталонной модели и типами архитектуры
компьютерной сети
Основным, с точки зрения пользователя, является прикладной уровень. Этот уровень
обеспечивает выполнение прикладных процессов пользователей. Наряду с прикладными
протоколами, он определяет протоколы передачи файлов, виртуального терминала, электронной почты.
Следующий (шестой) уровень называется представительным (уровень представления данных). Он определяет единый для всех систем синтаксис передаваемой информации. Необходимость данного уровня обусловлена различной формой представления информации в сети передачи данных и компьютерах. Этот уровень играет важную роль в
обеспечении «открытости» систем, позволяя им общаться между собой независимо от их
внутреннего языка.
Пятый уровень называют сеансовым, так как основным его назначением является
организация сеансов связи между прикладными процессами различных рабочих станций.
На этом уровне создаются порты для приема и передачи сообщений и организуются соединения — логические каналы между процессами. Необходимость протоколов этого
уровня определяется относительной сложностью сети передачи данных и стремлением
обеспечить достаточно высокую надежность передачи информации.
Четвертый, транспортный уровень (уровень сквозной передачи) служит для передачи данных между двумя взаимодействующими открытыми системами и организации
процедуры сопряжения абонентов сети с системой передачи данных. На этом уровне
определяется взаимодействие рабочих станций — источника и адресата данных, органиФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
5
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
зуется и поддерживается логический канал (транспортное соединение) между абонентами.
Третий, сетевой уровень, предназначен для маршрутизации информации и управления сетью передачи данных. В отличие от предыдущих, этот уровень в большей степени
ориентирован на сеть передачи данных. Здесь решаются вопросы управления сетью передачи данных, в том числе маршрутизация и управление информационными потоками.
Канальный уровень обеспечивает функциональные и процедурные средства для
установления, поддержания и расторжения соединений на уровне каналов передачи данных. Процедуры канального уровня обеспечивают обнаружение и, возможно, исправление ошибок, возникающих на физическом уровне.
Физический уровень обеспечивает механические, электрические, функциональные и
процедурные средства организации физических соединений при передаче бит данных
между физическими объектами.
В настоящее время различают следующие разновидности логической архитектуры
компьютерных сетей:
 одноранговая архитектура;
 классическая архитектура «клиент-сервер»;
 архитектура «клиент-сервер», основанная на Web-технологии.
Появление каждой из перечисленных разновидностей сетевых архитектур связывают с отдельными этапами эволюции вычислительных систем. Правильно выбранная архитектура компьютерной сети позволяет достигнуть выдвинутых требований по общей
производительности, надежности защиты сетевых ресурсов, гибкости настройки сети, а
также минимизации денежных затрат на ее построение и администрирование.
1.2 Первые вычислительные системы и одноранговая архитектура
Первый этап эволюции вычислительных систем, соответствующий пятидесятым,
шестидесятым и семидесятым годам двадцатого века, относится к началу использования
компьютеров после изобретения первой электронно-вычислительной машины (ЭВМ).
Каждая вычислительная система того времени была основана, как правило, на использовании одного многопользовательского компьютера, так как персональные компьютеры еще не появились. Архитектура таких вычислительных систем, функционирующих
в автономном режиме, была централизованной, когда к одному центральному компьютеру подсоединялись алфавитно-цифровые терминалы (рис. 1.2).
Если компьютеры объединялись линиями связи в сеть, то такая сеть имела одноранговую архитектуру, при которой отсутствовали компьютеры, полностью предоставляющие свои ресурсы в общее пользование для других компьютеров сети.
Таким образом, централизованная архитектура относится к автономной вычислительной системе, основанной на использовании одного многопользовательского компьютера, а одноранговая архитектура — к компьютерной сети, состоящей из ЭВМ одного
ранга, когда отсутствуют компьютеры, полностью предоставляющие свои ресурсы в общее пользование.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
6
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Рис. 1.2 - Архитектура первых вычислительных систем
Все ресурсы вычислительной системы при централизованной архитектуре, включая
информацию, были сконцентрированы в центральной ЭВМ, называемой еще мэйнфреймом (main frame — центральный блок ЭВМ). В качестве основных средств доступа к информационно-компьютерным ресурсам использовались алфавитно-цифровые терминалы,
которые соединялись с центральной ЭВМ кабелем. Поскольку терминал — устройство
простое, не требовалось никаких специальных действий со стороны конечного пользователя по настройке и конфигурированию программного обеспечения в виду его отсутствия
на терминале. Управление терминалами осуществлялось централизованно с компьютера.
Все терминалы были однотипными. Следовательно гарантировалось, что программа, запущенная на компьютере, будет работать со всеми терминалами одинаково.
Основным достоинством централизованной архитектуры с точки зрения обеспечения безопасности хранения и обработки данных является относительная простота построения и администрирования системы защиты информации. Эта относительная простота определяется концентрацией компьютерных ресурсов в одном месте. Ведь защита
любых объектов, находящихся в одной точке, реализуется намного проще, чем в случае
их территориального распределения.
Наряду с достоинствами первые вычислительные системы обладали рядом недостатков, связанных с отсутствием гибкости этих систем, неудобством их использования
конечными пользователями, а также дороговизной обслуживания.
В то время как вычислительные системы с описанной централизованной архитектурой выходят из употребления, одноранговые сети из-за своей дешевизны используются
широко. Однако в настоящее время они, как правило, объединяют не многопользовательские ЭВМ, а персональные компьютеры. При этом главным признаком одноранговой сети по-прежнему является отсутствие компьютеров, полностью предоставляющих свои
ресурсы в общее пользование.
К существенным недостаткам одноранговых сетей можно отнести их низкую безопасность, невысокую производительность и сложность администрирования. Кроме того,
при увеличении количества узлов сети эти показатели постепенно ухудшаются. Поэтому
одноранговую сетевую архитектуру целесообразно использовать при небольшом количестве объединяемых компьютеров и невысоких требованиях по безопасности и производительности обработки данных.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
7
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
1.3 Классическая архитектура «клиент-сервер»
Недостатки, свойственные первым вычислительным системам с централизованной
архитектурой, а также одноранговым компьютерным сетям, устраняются при построении
вычислительных систем по архитектуре «клиент-сервер». Эта архитектура появилась на
втором этапе эволюции компьютерных технологий, наступившем в восьмидесятых годах
двадцатого века. Особенности данного этапа состоят в децентрализации архитектуры автономных вычислительных систем и их объединении в глобальные компьютерные сети.
Децентрализация архитектуры первых вычислительных систем стала возможной в
связи с появлением персональных компьютеров, к которым мигрировала часть функций
центральных ЭВМ. В результате появилась возможность создавать распределенные локальные и глобальные вычислительные системы, объединяющие персональные компьютеры и компьютеры, полностью предоставляющие свои ресурсы в общее пользование для
других компьютеров сети. Компьютеры, предоставляющие те или иные общие ресурсы,
были названы серверами, а компьютеры, использующие общие ресурсы, — клиентами.
Соответственно архитектуру таких распределенных вычислительных систем стали называть архитектурой «клиент-сервер» (рис. 1.3). Персональные компьютеры, исполняющие
роль клиентов, называют еще рабочими станциями сети.
Рис. 1.3 -Типовая архитектура «клиент-сервер»
Конкретный сервер характеризуется видом ресурса, которым он владеет. Так, если
ресурсом является только база данных, то речь идет о сервере базы данных, назначение
которого — обслуживать запросы клиентов, связанные с обработкой данных; если ресурс
— это файловая система, то говорят о файловом сервере или файл-сервере. В настоящее
время серверы, как правило, выделяют в общее пользование комплекс ресурсов — базы
данных, файловые системы, различные сервисы, предоставляемые выполняемыми на
сервере программами, а также внешние устройства, например, принтеры.
Различают несколько моделей архитектуры «клиент-сервер», каждая из которых отражает соответствующее распределение компонентов программного обеспечения между
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
8
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
компьютерами сети. Распределяемые программные компоненты выделяют по функциональному признаку.
Функции любого программного приложения могут быть разделены на три группы:
 функции ввода и отображения данных;
 прикладные функции, характерные для предметной области приложения;
 Функции накопления информации и управления данными (базами данных, файлами).
Соответственно любое программное приложение можно представить как структуру
из трех компонентов:
 компонент представления, реализующий интерфейс с пользователем;
 прикладной компонент, обеспечивающий выполнение прикладных функций;
 компонент доступа к информационным ресурсам или менеджер ресурсов, выполняющий накопление информации и управление данными.
Различают следующие модели архитектуры «клиент-сервер», соответствующие нижеприведенным типам распределения перечисленных компонентов между рабочей станцией и сервером сети:
 на сервере расположены только данные (рис. 1.4);
 кроме данных на сервере расположен менеджер информационных ресурсов,
например, система управления базой данных (СУБД) (рис. 1.5);
 на сервере сконцентрированы как данные и менеджер ресурсов, так и прикладной
компонент (рис. 1.6);
 на одном сервере расположен прикладной компонент, а на другом — данные и менеджер ресурсов (рис. 7).
Рис. 1.4 -Модель доступа к удаленным данным
Модель архитектуры «клиент-сервер», при которой на сервере расположены данные
(рис. 1.4), не обеспечивает высокую производительность, так как вся информация обрабатывается на рабочих станциях, а файлы, содержащие эту информацию, для обработки
должны быть переданы по сети с сервера. Передача же по сети больших объемов данных,
возможно, избыточных, приводит к существенному снижению общей скорости информационного обмена. Это, в свою очередь, может привести к перегрузкам сети. По этим причинам модель доступа к удаленным данным может использоваться только для маленьких
сетей.
При использовании модели сервера управления данными на сервере, кроме самой
информации, расположен менеджер информационных ресурсов, например, система
управления базой данных (СУБД) (рис. 1.5). Компонент представления и прикладной
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
9
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
компонент совмещены и выполняются на компьютере-клиенте, который поддерживает
как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к
информационным ресурсам обеспечивается, как правило, операторами специального
языка (например, языка SQL, если речь идет о базах данных) или вызовами функций специализированных программных библиотек. Запросы к информационным ресурсам
направляются по сети менеджеру ресурсов, например, серверу базы данных. Последний
обрабатывает запросы и возвращает клиенту блоки данных.
Рис. 1.5 -Модель сервера управления данными
Главным преимуществом модели сервера управления данными перед моделью доступа к удаленным данным является снижение объема информации, передаваемой по сети, так как выборка требуемых информационных элементов из файлов выполняется не на
рабочих станциях, а на сервере. Кроме того, в настоящее время существует множество
инструментальных средств, обеспечивающих быстрое создание приложений с развитым
интерфейсом, работающих с SQL-ориентированными СУБД. Это обеспечивает унификацию и широкий выбор средств разработки приложений. С использованием подавляющего
большинства этих средств как раз и создаются программы, в которых смешаны прикладные функции и функции представления.
Основным недостатком модели сервера управления данными является отсутствие
четкого разграничения между компонентом представления и прикладным компонентом,
что затрудняет дальнейшее совершенствование вычислительной системы, архитектура
которой построена на основе данной модели.
Учитывая перечисленные достоинства и недостатки модели сервера управления
данными, можно сделать вывод, что эту модель целесообразно использовать при построении вычислительных систем, ориентированных на обработку умеренных, не увеличивающихся со временем объемов информации. При этом сложность прикладного компонента приложения не должна быть высокой.
Модель комплексного сервера в сравнении с моделью сервера управления Данными
является более технологичной. Она строится в предположении, что процесс, выполняемый на компьютере-клиенте, ограничивается функциями представления, в то время, как
собственно прикладные функции и функции доступа к данным выполняются сервером
(рис. 1.6). Прикладные функции могут быть реализованы в отдельных программах или в
хранимых процедурах, которые называют также процедурами базы данных. Эти процеФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
10
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
дуры хранятся в самой базе данных и выполняются на компьютере-сервере, где функционирует и компонент, управляющий доступом к данным, т. е. ядро СУБД.
Рис. 1.6 -Модель комплексного сервера
Преимущества модели комплексного сервера перед моделью сервера управления
данными очевидны: это и более высокая производительность, и более совершенное централизованное администрирование, и, соответственно, экономия ресурсов сети. Учитывая указанные достоинства, можно сделать вывод, что модель комплексного сервера является оптимальной для крупных сетей, ориентированных на обработку больших и увеличивающихся со временем объемов информации.
При существенном усложнении и увеличении ресурсоемкости прикладного компонента для него может быть выделен отдельный сервер, называемый сервером приложений. В этом случае говорят о трехзвенной архитектуре «клиент-сервер» (рис. 7), предполагающей наличие трех звеньев: первое звено — компьютер-клиент, второе — сервер
приложений, а третье — сервер управления данными. Архитектуру «клиент-сервер», при
которой прикладной компонент расположен на рабочей станции вместе с компонентом
представления (см. рис. 1.4 и 1.5) или на сервере вместе с менеджером ресурсов и данными (рис. 1.6), называют двухзвенной архитектурой.
В рамках сервера приложений могут быть реализованы несколько прикладных
функций, каждая из которых оформляется как отдельная служба, предоставляющая некоторые услуги всем программам, которые желают и могут ими воспользоваться. Серверов
приложения может быть несколько, каждый из которых ориентирован на представление
некоторого набора услуг. Любая программа, которая пользуется ими, рассматривается как
клиент приложения. Детали реализации прикладных функций в сервере приложения
полностью скрыты от клиента приложения. Запросы, поступающие от клиентов приложения, выстраиваются в очередь к процессу-серверу приложения, который извлекает, а
затем передает их для обработки службе в соответствии с приоритетами.
Клиент приложения трактуется более широко, чем компонент представления. Он
может поддерживать интерфейс с конечным пользователем (тогда он является компонентом представления), может обеспечивать поступление данных от некоторых устройств
(например, датчиков), может, наконец, сам по себе быть сервером приложения. Последнее позволяет реализовать прикладную систему, содержащую серверы приложений нескольких уровней. Архитектура такой системы может выглядеть как ядро, окруженное
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
11
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
концентрическими кольцами. Ядро состоит из серверов приложения, в которых реализованы базовые прикладные функции. Кольца символизируют наборы серверов приложения, являющихся клиентами по отношению к серверам внутреннего уровня. Число уровней серверов приложений не ограничено.
Рис. 1.7 -Трехзвенная архитектура «клиент-сервер»
Четкое разграничение в архитектуре «клиент-сервер» компонентов программных
приложений и рациональное распределение этих компонентов между компьютерами сети
позволяют достигнуть такого уровня гибкости, который недостижим в одноранговой архитектуре. Благодаря этому обеспечивается высокая эффективность использования компьютерных ресурсов, реализуются возможности расширения и дальнейшего совершенствования вычислительной системы.
Сетевую архитектуру «клиент-сервер», появившуюся на втором этапе эволюции
компьютерных технологий, называют классической архитектурой «клиент-сервер». Ей
присущи следующие особенности:
 на сервере порождается не конечная информация, а данные, подлежащие интерпретации компьютерами-клиентами;
 фрагменты прикладной системы распределены между компьютерами сети;
 для обмена данными между клиентами и сервером могут использоваться закрытые
протоколы, несовместимые с открытым стандартом TCP/IP, применяемом в сети
Internet;
 каждый из компьютеров сети ориентирован на выполнение только своих локальных
программ.
Последняя особенность способствует повышению информационно-компьютерной
безопасности. В случае выполнения на каждом компьютере только своих локальных программ исключается миграция программ по сети при обработке серверами запросов со
стороны клиентов. Соответственно снижается вероятность запуска на выполнение вредоносных программ и заражения компьютерными вирусами.
С точки зрения безопасности обработки и хранения данных архитектура «клиентсервер» обладает и рядом недостатков:
 территориальная распределенность компонентов программных приложений и неоднородность элементов вычислительной системы приводят к существенному
усложнению построения и администрирования системы информационнокомпьютерной безопасности;
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
12
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
 часть защищаемых информационных ресурсов может располагаться на персональных компьютерах, которые характеризуются повышенной уязвимостью;
 использование для обмена данными между компьютерами сети закрытых протоколов требует разработки уникальных средств защиты, а соответственно — повышенных затрат;
 при потере параметров настройки программного обеспечения какого-либо компьютера-клиента необходимо выполнение сложных процедур связывания и согласования этого компьютера с остальной частью вычислительной системы, что приводит
к увеличению времени восстановления работоспособности компьютерной сети при
возникновении отказов.
1.4 Архитектура «клиент-сервер», основанная на Web-технологии
Многие недостатки, свойственные компьютерным сетям с классической архитектурой «клиент-сервер», снимаются в вычислительных системах новой архитектуры, которые сконцентрировали и объединили в себе лучшие качества централизованных систем и
классических систем «клиент-сервер». Новая архитектура компьютерных сетей была
названа как intranet-архитектура. Ее часто называют также Web-архитектурой или архитектурой «клиент-сервер», основанной на Web-технологии. Эта архитектура стала итогом
многолетних исследований и разработок в области приложения глобальных сетевых технологий Internet к локальным сетям. Появление в 1993 году архитектуры intranet относят
к началу третьего этапа эволюции вычислительных систем.
Основной особенностью архитектуры intranet является возвращение к серверам ряда
функций, которые были вынесены за пределы центральной ЭВМ на втором этапе эволюции вычислительных систем. Базисом новой архитектуры является Web-технология,
пришедшая из Internet.
В соответствии с Web-технологией на сервере размещаются так называемые Webдокументы, которые визуализируются и интерпретируются программой навигации,
функционирующей на рабочей станции (рис. 1.8). Программу навигации называют еще
Web-навигатором или Web-браузером Web.
Логически Web-документ представляет собой гипермедийный документ, объединяющий ссылками различные Web-страницы, каждая из которых может содержать ссылки и
на другие объекты. Физически Web-документ представляет собой текстовый файл специального формата, содержащий ссылки на другие объекты и Web-документы, расположенные в любом узле сети. Web-документ реально включает только одну Web-страницу, но
логически может объединять любое количество таких страниц, принадлежащих различным Web-документам.
Web-страница, являясь информационным аналогом страницы бумажного документа,
может включать как текст, так и рисунки. Но, в отличие от бумажной страницы, Webстраница может быть связана с компьютерными программами и содержать ссылки на
другие объекты. Программа, связанная с Web-страницей, начинает автоматически выполняться при переходе по соответствующей ссылке или открытии Web-страницы. Любые
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
13
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
ссылки, включенные в Web-страницу, выделяются другим цветом и/или подчеркиванием.
Для перехода по ссылке достаточно щелкнуть по ней мышью.
Рис. 1.8 -Архитектура «клиент-сервер», основанная на Web-технологии
Получаемая таким образом система гиперссылок основана на том, что некоторые
выделенные участки одного документа, которыми могут быть части текста и рисунки,
выступают в качестве ссылок на другие логически связанные с ними объекты. При этом
объекты, на которые делаются ссылки, могут находиться на любом компьютере сети. В
Web-страницу могут быть включены ссылки на следующие объекты:
 другую часть Web-документа;
 другой Web-документ или документ другого формата (например, документ Word
или Excel), который может размещаться на любом компьютере сети;
 мультимедийный объект — рисунок, звук, видео;
 программу, которая при переходе на нее по ссылке будет выполняться на сервере;
 программу, которая при переходе на нее по ссылке будет передана с сервера на рабочую станцию для интерпретации или запуска на выполнение навигатором;
 любой другой сервис — электронную почту, копирование файлов с другого компьютера сети, поиск информации и т. д.
Из раскрытого понятия Web-документа становится ясно, что программа навигации,
выполняемая на рабочей станции, может не только визуализировать Web-страницы и выполнять переходы к другим объектам, но и активизировать программы на сервере, а также интерпретировать и запускать на выполнение программы, относящиеся к Webдокументу, для исполнения на рабочей станции.
Передачу с сервера на рабочую станцию документов и других объектов по запросам,
поступающим от навигатора, обеспечивает функционирующая на сервере программа,
называемая Web-сервером. Когда Web-навигатору необходимо получить документы или
другие объекты от Web-сервера, он отправляет серверу соответствующий запрос. При достаточных правах доступа между сервером и навигатором устанавливается логическое
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
14
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
соединение. Далее сервер обрабатывает запрос, передает Web-навигатору результаты обработки, например требуемый Web-документ, и разрывает установленное соединение.
Web-сервер выступает в качестве информационного концентратора, который доставляет информацию из разных источников, а потом однородным образом предоставляет ее
пользователю. Навигатор, снабженный универсальным и естественным интерфейсом с
человеком, позволяет последнему легко просматривать информацию вне зависимости от
ее формата.
Таким образом, в рамках Web-документа может быть выполнена интеграция данных
и программных объектов различных типов, расположенных в совершенно разных узлах
компьютерной сети. Это позволяет рассредоточивать информацию в соответствии с естественным порядком ее создания и потребления, а также осуществлять к ней единообразный доступ. Приставка Web здесь, а также в названии самой технологии, переводимая
как паутина, как раз и отражает тот факт, что работа пользователя осуществляется на основе перехода по ссылкам, которые как нити паутины связывают разнотипные объекты,
распределенные по узлам компьютерной сети.
Web-документы, помимо связывания распределенных и разнотипных данных, позволяют рассматривать информацию с нужной степенью детализации, что существенно
упрощает анализ больших объемов информации. Можно сконцентрировать внимание на
главном, а затем изучить выбранный материал во всех подробностях. Можно эффективно
реализовать многомодельный подход представления материала, создавая различные
«взгляды» на требуемую предметную область, отражающие точки зрения той или иной
группы сотрудников организации.
Компьютер-клиент, на котором должна выполняться программа навигации, может
быть полностью стандартизован. В такой компьютер, помимо процессора, основной памяти и монитора, достаточно включить небольшой участок внешней памяти, необходимый для хранения и работы программы навигации, а также устройство сопряжения с линией связи. Кроме того, программу навигации можно вообще реализовать аппаратно в
специализированном процессоре.
Изложенное позволяет выделить следующие отличительные черты intranetархитектуры:
 на сервере порождается конечная информация, предназначенная для представления
пользователю программой навигации, а не полуфабрикат, как в системах с классической архитектурой «клиент-сервер»;
 все информационные ресурсы, а также прикладная система сконцентрированы на
сервере;
 для обмена данными между клиентами и сервером используются протоколы открытого стандарта TCP/IP, применяемые в Internet;
 облегчено централизованное управление не только сервером, но и компьютерамиклиентами, так как они стандартизованы с точки зрения программного обеспечения
(на каждой рабочей станции достаточно наличия только стандартной программы
навигации);
 на рабочих станциях помимо своих программ могут выполняться программы с других компьютеров сети.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
15
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Все перечисленные особенности, за исключением последней, способствуют решению проблемы информационно-компьютерной безопасности.
Концентрация на сервере всех информационных ресурсов и прикладной системы
существенно упрощает построение и администрирование системы безопасности, так как
защита любых объектов, находящихся в одном месте, реализуется намного проще, чем в
случае их территориального распределения.
Использование для обмена данными между компьютерами сети протоколов открытого стандарта (TCP/IP) приводит к унификации всех способов взаимодействия между
рабочими станциями и сервером. Не нужно решать задачу обеспечения безопасного информационного взаимодействия для множества приложений каждого компьютера. Решение по безопасности взаимодействия для одного компьютера и будет стандартным для
всех. Кроме того, по отношению к протоколам открытого стандарта намного интенсивнее
и шире публичное обсуждение вопросов информационной безопасности и богаче выбор
защитных средств.
Облегченное централизованное управление сервером и компьютерами-клиентами
снижает вероятность допущения непреднамеренных ошибок пользователями, операторами и администраторами. Такие ошибки являются одной из основных угроз информационно-компьютерной безопасности и приводят к прямому ущербу. В качестве примера могут выступать неправильно введенные данные или ошибки в программе, вызвавшие
остановку либо разрушение системы. Эти ошибки также создают слабые места, которыми могут воспользоваться злоумышленники.
В архитектуре intranet распределенная обработка информации предполагает возможность выполнения на рабочих станциях программ, полученных с сервера. Такой вид распределенной обработки позволил сконцентрировать всю прикладную систему на сервере.
Однако возможность выполнения на рабочих станциях программ с сервера порождает
новые угрозы информационно-компьютерной безопасности, например, появляется угроза
подмены передаваемой с сервера программы. Соответственно возможность миграции
программ предъявляет дополнительные требования по поддержанию безопасности сетевого взаимодействия.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
16
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Тема 2 ОСНОВЫ СОВРЕМЕННЫХ СЕТЕВЫХ ТЕХНОЛОГИЙ
2.1 Схема взаимодействия с Web-сервером Обобщенное описание
В настоящее время наиболее перспективной является архитектура «клиент-сервер»,
основанная на Web-технологии.
Обмен информацией по Web-технологии не отличается от информационного обмена,
реализуемого по принципу «клиент-сервер», когда программа-сервер осуществляет обработку запросов, поступающих от программы-клиента.
Компьютер-клиент
Компьютер-сервер
FTP-сервер
Web-навигатор
Web-сервер
Программные
шлюзы
Gopher-сервер
Другие серверы
Telnet-сервер
Рис. 2.1 - Обобщенная схема взаимодействия Web-навигатора с сервером
В качестве программ-клиентов выступают программы Web-навигации, располагаемые на рабочих станциях сети, или служебные Web-приложения. Web-навигаторы используются для непосредственной визуализации и интерпретации Web-документов, хранящихся на сервере, а также для доступа к другим отдельным сервисам (рис. 2.1):
 сервису копирования файлов с сервера (FТР-сервису);
 сервису управления сервером (Telnet-сервису);
 сервису многоуровневых меню по доступу к компьютерным ресурсам
 (Gopher-сервису).
Доступ к другим отдельным сервисам возможен в связи с тем, что с самого начала
программы навигации разрабатывались как мультипротокольные программы, обеспечивающие интерфейс доступа ко многим ресурсам сети.
К Web-навигаторам относятся такие известные продукты, как Netscape Navigator
компании Netscape или Internet Explorer от Microsoft.
Служебные Web-приложения используются чаще всего для получения некоторых
статистических данных о Web-сервере или индексирования содержащейся там информации с целью пополнения базы данных поисковых систем.
При использовании Web-технологии в качестве основной программы-сервера выступает Web-сервер, который запускается на компьютере-сервере и осуществляет обраФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
17
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
ботку запросов, приходящих от Web-клиентов. Взаимодействие между Web-клиентом и
Web-сервером осуществляется в соответствии с протоколом HTTP (HyperText Transfer
Protocol — протокол передачи гипертекста). Будучи запущенным, Web-сервер контролирует логический порт, по умолчанию номер которого равен 80, и полагает, что любые сообщения, присланные к этому порту, предназначены для Web-сервера.
При получении запроса от Web-клиента Web-сервер устанавливает связь по протоколу TCP/IP и обменивается информацией в соответствии с протоколом HTTP. В случае запроса защищенной информации Web-сервер может потребовать от пользователя введения
идентификатора и пароля. Защищенные Web-документы предоставляются только при
наличии у пользователей соответствующих прав доступа.
Web-документы, получаемые навигатором от Web-сервера, представляют собой текстовые файлы, написанные на специальном языке, называемом языком HTML (HyperText
Markup Language — гипертекстовый язык меток). Этот язык состоит из набора соглашений, в соответствии с которыми в текстовый файл помимо требуемого текста на любом
языке мира вставляются метки, определяющие форматирование этого текста и его внешний вид в окне Web-навигатора, а также ссылки на любые объекты и отображаемые графические файлы. Кроме меток в Web-документ могут быть вставлены программы на языках JavaScript (Java Scripting) и VBScript (Visual Basic Scripting), интерпретируемые Webнавигатором при загрузке и просмотре Web-документа.
Для доступа к той информации, которая не может обрабатываться Web-сервером
непосредственно, например для доступа к базам данных, используется система программных шлюзов. Программный шлюз, получив запрос от Web-сервера, обрабатывает
его сам или выступает в качестве посредника между сервером Web и каким-либо другим
сервером, например, сервером СУБД (рис. 2.1). Программные шлюзы разрабатываются в
соответствии с определенными стандартами, определяющими способы вызова Webсервером прикладных программ или функций динамических библиотек, а также способы
обмена информацией с этими программными объектами. Одним из наиболее распространенных стандартов данного типа является интерфейс CGI (Common Gateway Interface —
общий интерфейс шлюзов).
2.1.1 Обработка запроса от Web-клиента
Рассмотрим полную последовательность шагов, реализуемую Web-сервером при обработке запроса, поступившего от Web-клиента.
Web-навигатор или другой Web-клиент посылает Web-серверу запрос на получение
от него какого-либо информационного ресурса. Запрос передается в формате HTTP, а адрес ресурса указывается в формате URL.
После получения запроса Web-сервер определяет наличие запрашиваемого ресурса
среди локальных ресурсов, т. е. среди ресурсов, которыми данный сервер управляет.
Если запрашиваемый ресурс имеется в наличии, то Web-сервер проверяет права доступа к этому ресурсу и, если права не нарушены, то возвращает содержимое ресурса
Web-клиенту.
Если запрос Web-клиента нарушает права доступа к ресурсу, то Web-сервер отклоняет запрос и возвращает соответствующее предупреждение клиенту.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
18
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
В случае, если запрашиваемый ресурс не относится к локальным ресурсам Webсервера, сервер определяет наличие в его файлах настройки информации о перемещении
ресурса в сети. Если ресурс был размещен на сервере, но в данный момент перемещен в
другое место, то сервер сообщает об этом клиенту (рис. 2.4).
Если Web-сервер поддерживает виртуальное дерево другого Web-сервера, то запрос
будет перенаправлен на нужный ресурс по аналогии с предыдущим шагом (рис. 2.4).
Если Web-сервер используется в качестве сервера-посредника (proxy-сервера), то он
выступает, с одной стороны, в качестве Web-сервера для клиента, пославшего запрос, а с
другой стороны — в качестве Web-клиента, который посылает запрос к другому Webсерверу (рис. 2.8).
Рис. 2.2 - Схема перенаправления запроса
После возвращения информации клиенту сервер разрывает соединение с ним.
Рис. 2.3 - Использование Web-сервера в качестве сервера-посредника
Web-сервер может использоваться для решения широкого круга задач. Наиболее типичными для современных серверов являются следующие функции:
 ведение иерархической базы данных документов, обработка запросов и контроль за
доступом к информации со стороны программ-клиентов;
 предварительная обработка данных перед ответом на запрос;
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
19
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
 взаимодействие с внешними программами и другими серверами, например, с информационно-поисковыми системами.
Большинство современных Web-серверов, таких как Enterprise Server от корпорации
Netscape и Internet Information Server от Microsoft, реализуют криптографический протокол SSL (Secure Sockets Layer), обеспечивающий поддержание конфиденциальности, целостности и подлинности передаваемых по сети данных. Этот протокол реализован и в
современных Web-навигаторах — Netscape Navigator и Internet Explorer. Данная особенность позволяет безопасно использовать Web-технологию в компьютерных сетях.
2.2 Распределенная обработка информации на основе мигрирующих программ
Одной из главных особенностей intranet-архитектуры является распределенная обработка информации на основе мигрирующих программ. Программа навигации, выполняемая на рабочей станции, может не только визуализировать Web-старницы и выполнять
переходы к другим ресурсам, но и активизировать программы на сервере, а также интерпретировать и запускать на выполнение программы, относящиеся к Web-документу, которые передаются вместе с этим документом с сервера. Такой вид распределенной обработки информации позволяет сконцентрировать всю прикладную систему непосредственно
на сервере.
Существует три основных вида программ, которые могут быть связаны с Webдокументом и передаваться на рабочую станцию для выполнения:
 Java-аплеты, подготовленные и используемые по технологии Java;
 программы, написанные на языке сценариев JavaScript, VBScript (Visual Basic
Scripting) или VRML;
 программные компоненты ActiveX Controls, соответствующие технологии ActiveX.
•
Наличие нескольких разновидностей мигрирующих программ объясняется их различными возможностями, а также конкуренцией между ведущими корпорациями в области программных и сетевых технологий — корпорациями Sun Microsystems, Netscape,
Microsoft и другими.
2.2.1 Java-технология
Технология Java была разработана компанией Sun Microsystems в начале 90-х годов в
связи с возникновением острой необходимости в компьютерных программах, ориентированных на использование в сетевой среде и интеграцию с Web-сервисом. К таким программам изначально были предъявлены требования по мобильности, предполагающие
независимость от аппаратных и операционных платформ, а также безопасность и надежность обработки информации.
В результате были разработаны язык программирования Java, а также целостная
технология создания и использования мобильных программ, получившая название Javaтехнологии.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
20
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Язык Java является простым объектно-ориентированным языком программирования,
построенным на основе языка C++, из которого убрали все лишнее и добавили новые
возможности для обеспечения безопасности и надежности распределенных вычислений.
Много полезных идей было заимствовано из языков Objective С и SmallTalk.
Для снижения сложности программирования и количества допускаемых ошибок в
язык Java были внесены жесткая объектная ориентация описаний и строгая типизация
данных. В этом языке нет данных, не входящих в объекты, и нет функций, не являющихся методами какого-либо объекта. Строгая типизация информационных элементов позволяет на стадии компиляции выявлять ошибки, связанные с несовместимостью типов данных.
Реализованный в языке модульный принцип построения программ и простота языка
дают возможность не только быстро разрабатывать новые программы, но и применять
элементы уже написанных и проверенных программ, а также эффективно модернизировать старые. Кроме того, в стандарт языка входит множество полезных библиотек, на основе которых можно строить вычислительные системы любой сложности. Этот стандартный набор постоянно пополняется новыми важными функциями.
Независимость от аппаратно-операционных платформ, а также безопасность и
надежность обработки информации были достигнуты разработкой виртуального Javaпроцессора, предназначенного для выполнения Java-программ путем их интерпретации.
Определены его архитектура, представление элементов данных и система команд.
Виртуальный Java-процессор обеспечивает среду для исполнения Java-программ.
При этом любая Java-программа должна соответствовать спецификации этого абстрактного процессора, которая полностью определяет его машинно-независимую систему команд, типы обрабатываемых данных, а также регистры. Поэтому для возможности исполнения Java-программы виртуальным Java-процессором ее исходные тексты должны
быть оттранслированы в высокоуровневые машинно-независимые коды этого абстрактного процессора, называемые байт-кодами.
Оттранслированные Java-программы, предназначенные для выполнения на рабочей
станции в среде Web-навигатора, называют Java-аплетами или просто аплетами. По своей
структуре каждый аплет представляет собой небольшую программку, в которой должно
быть определено несколько обязательных функций. Аплет загружается по сети с сервера
и выполняется в среде Web-навигатора (рис. 2.4). Ссылки на аплеты располагаются в
Web-документах, но непосредственно в состав Web-документов аплеты не входят. Они
хранятся в отдельных файлах на сервере.
Независимость байт-кодов Java от аппаратно-операционных платформ достигается
программной реализацией для каждой из этих платформ только виртуального Javaпроцессора, который и предназначен для интерпретации аплетов.
Байт-коды Java-программ обладают следующими особенностями:
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
21
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Рис. 2.4 - Схема передачи и выполнения машинно-независимых Java-программ
 они могут не только легко интерпретироваться, но и эффективно компилироваться
«на лету» непосредственно в машинные коды для любой современной аппаратной
платформы;
 средняя длина команды в байт-кодах сокращена до минимума, что снизило сложность и объем Java-аплетов по сравнению с обычными исполняемыми программами;
 байт-коды каждой программы содержат избыточную информацию, которая позволяет проверить их на безопасность выполнения.
Под компиляцией «на лету» или, как ее еще называют, динамической компиляцией
понимается компиляция аплетов в машинные коды рабочей станции, выполняемая сразу
же после получения аплетов на этой рабочей станции с целью их выполнения как обычных исполняемых программ. Вместо виртуального процессора при динамической компиляции предполагается использование специализированного компилятора. Динамическая
компиляция байт-кодов и их дальнейшее выполнение повышает быстродействие Javaаплетов, которое при их интерпретации ниже скорости выполнения обычных исполняемых программ. Однако без принятия дополнительных мер при использовании динамической компиляции может быть снижена безопасность обработки информации. Поэтому
динамическая компиляция Java-аплетов в Web-навигаторах пока не используется.
Байт-коды разрабатывались так, чтобы максимально сократить среднюю длину команды. Java-процессор имеет минимум регистров, стековую архитектуру и часто использует косвенную адресацию. Поэтому большинство из команд занимает всего один байт, к
которому добавляется при необходимости номер операнда. Кроме того, для обработки
каждого типа данных Java-процессор имеет свой набор команд. В результате средняя
длина Java-команды составляет всего 1,8 байта. Средняя длина команды для классических RISC-процессоров равна примерно 4 байтам.
Для высокой надежности и безопасности выполнения Java-аплетов предусмотрены
две важные функции:
 проверка байт-кодов перед их выполнением на целостность и правильность инструкций;
 контроль и блокирование опасных действий в процессе интерпретации байт-кодов.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
22
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Первую функцию реализует загрузчик и верификатор байт-кодов, а вторую — диспетчер безопасности виртуального Java-процессора. Диспетчер безопасности запрещает
аплетам осуществлять доступ к файлам и периферийным устройствам, а также выполнять системные функции, такие как распределение памяти.
Виртуальный Java-процессор обеспечивает выполнение и других функций, влияющих на надежность обработки информации, например, «сбор мусора», т. е. освобождение
неиспользуемой оперативной памяти. Кроме того, язык Java содержит необходимые средства для корректной работы со всеми объектами и ресурсами в случае возникновения исключительных ситуаций.
Технологический цикл подготовки Java-аплетов тот же, что и для программ на других языках программирования. Отличием является лишь то, что при редактировании
внешних связей требуемые компоненты могут доставляться по сети. Процесс выполнения аплетов существенно отличается от аналогичного процесса для обычных программ
(рис. 2.9).
Поскольку аплеты и другие части прикладной системы хранятся на сервере, то за
счет централизации облегчается сопровождение и администрирование системы. Это в
свою очередь гарантирует, что пользователь всегда будет использовать самые последние
версии программ.
Следует отметить, что на языке Java могут создаваться не только аплеты, являющиеся мигрирующими программами, но и стационарные программные приложения. Однако
для высокого быстродействия исходный текст таких программ следует компилировать не
в байт-коды, а в машинно-зависимые коды, обеспечивающие высокую скорость исполнения.
Рис. 2.5 -Схема подготовки и выполнения Java-аплетов
В настоящее время существует достаточное количество инструментальных средств
для разработки как Java-аплетов, так и Java-приложений. Среди них — Microsoft Visual
J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java Workshop и ряд других.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
23
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
2.2.2 Технологии, основанные на использовании языков сценариев
Параллельно с мощной Java-технологией появились технологии создания и применения мигрирующих программ, основанные на использовании языков сценариев. Наиболее важным отличием таких технологий от Java-технологии является покомандная интерпретация исходных текстов программ, исключающая необходимость их компиляции перед выполнением. Вспомним, что в Java-технологии мобильная Java-программа для возможности выполнения должна быть откомпилирована в байт-коды. Функция интерпретации мобильных программ, написанных на языке сценариев, возложена на Web-навигатор.
Языки сценариев часто называют еще языками скриптов (script — сценарий) или
макроязыками. Их интерпретируемая природа упрощает отладку и создание составленных на них программ. К основным представителям языков сценариев, предназначенных
для написания мигрирующих программ, относятся:
 язык JavaScript, разработанный совместно компаниями Netscape и Sun
Microsystems, а также подобный ему язык VBScript (Visual Basic Scripting) от Microsoft;
 язык VRML (Virtual Reality Modeling Language — язык моделирования виртуальной
реальности), разработанный компанией Silicon Graphics.
Язык сценариев JavaScript впервые появился в Web-навигаторе Netscape
Navigator 2.0 под названием LiveScript. Впоследствии Netscape отказалась от такого
названия, начав работать вместе с Sun Microsystems и попав под влияние Java. JavaScript
вовсе не представляет собой производную от Java. Хотя эти языки имеют некоторые общие атрибуты, но их можно назвать не более чем дальними родственниками (табл. 2.1).
JavaScript является упрощенным интерпретируемым языком с базовыми объектноориентированными функциями. Свойство простоты объясняется отсутствием жесткой
архитектуры типов и семантики. Объектно-ориентированная ориентация проявляется в
возможностях работы с окнами, строкой состояния и другими элементами интерфейса
Web-навигатора и сетевого окружения как с объектами в иерархии, к которым можно обращаться по имени.
JavaScript беднее языка Java, но гораздо удобнее и эффективнее для ряда задач, связанных с обработкой Web-документов и взаимодействием с пользователем при его просмотре. Он имеет большое число встроенных функций и команд. Программы, написанные с помощью JavaScript, могут выводить на экран диалоговые окна, производить математические вычисления, проигрывать различные аудио- и видеофайлы, получать новые
документы, обрабатывать нажатие на кнопки в формах и многое другое. С помощью
JavaScript можно также устанавливать атрибуты и свойства бинарных библиотек Java, a
также программных модулей (plug-ins), подключенных к Web-навигатору.
Таблица 2.1- Сравнительные характеристики языков Java и JavaScript
Java
JavaScript
Программа для возможности выполнения Программа интерпретируется на стороне
на стороне клиента должна быть откомпи- клиента в исходном виде
лирована в байт-коды
Объектно-ориентирован. Аплеты образуют Объектно-базирован. Отсутствуют классы и
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
24
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
объектные классы с наследованием
механизм наследования
Аплеты вызываются из Web-страниц, но Программы вызываются из Web-страниц и
хранятся обособленно от Web-документов в встроены
непосредственно
в
Webотдельных файлах на сервере
документы
Типы данных и переменные должны быть Типы данных и переменные не объявляютпредварительно объявлены
ся, а вводятся
Статическое связывание. Объектные ссыл- Динамическое связывание. Объектные
ки должны существовать на этапе компиля- ссылки проверяются во время выполнения
ции
Не может осуществлять запись в дисковую Не может осуществлять запись в дисковую
память и выполнять системные функции
память и выполнять системные функции
Команды JavaScript встраиваются непосредственно в Web-страницу и выполняются
Web-навигатором во время загрузки этой страницы или во время определенных действий,
производимых пользователем при работе с ней, например, при щелчке мышью на одном
из объектов страницы, при позиционировании указателя в место расположения ссылки
или при вводе информации в поля HTML-формы.
Как и для любой другой технологии или языка, используемых в компьютерной сети,
обеспечение безопасности обработки информации является первоочередной задачей.
JavaScript, хотя его и нельзя назвать языком с самым высоким уровнем защиты, тем не
менее, адекватен большинству требований. В нем не реализованы некоторые возможности, поскольку они косвенно делают защиту более уязвимой. Программе на JavaScript,
как и программе на языке Java, запрещено выполнять операции с локальными файлами.
Поэтому программа не в состоянии изменять или получать доступ к пользовательским
данным. Кроме того, язык JavaScript не поддерживает сетевые функции. Он не может,
например, напрямую открыть порт TCP/IP, а способен только обеспечить загрузку объекта по заданному адресу и формирование данных, передаваемых Web-серверам. Современные Web-навигаторы позволяют устанавливать уровни безопасности и управлять ими
так, что программа на JavaScript может обратиться только к ограниченному кругу информации.
Быстрота создания программ, небольшие размеры программных модулей, удобный
доступ ко всем внутренним функциям Web-навигатора, а также безопасность JavaScriptтехнологии привели к высокой популярности языка JavaScript, не уступающей популярности языка Java.
К недостаткам технологии JavaScript следует отнести невысокое быстродействие
JavaScript-программ, являющееся неотъемлемым атрибутом всех интерпретируемых языков программирования.
Нужно отметить, что реализации языка JavaScript компаний Netscape и Microsoft
различаются. Эти несоответствия могут привести к несовместимости при использовании
Web-навигаторов Netscape Navigator и Internet Explorer. Поэтому при создании приложений на JavaScript необходима проверка их работоспособности в среде различных программ навигации.
Язык сценариев VBScript (Visual Basic Scripting) от Microsoft во многом подобен
JavaScript. Он является подмножеством языка Visual Basic и также предназначен для проФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
25
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
граммирования страниц Web. С его помощью можно заставить взаимодействовать разные
объекты на Web-странице, включая программные компоненты другого типа, например,
аплеты Java и программные компоненты ActiveX Controls.
В отличие от макроязыков JavaScript и VBScript язык VRML разработан корпорацией
Silicon Graphics специально для создания интерпретируемых программ, моделирующих
трехмерные виртуальные миры. Интерпретаторы VRML подключаются к Webнавигаторам чаще всего в виде отдельных программных модулей (plug-ins). Исходные
тексты программ на языке VRML оформляются в виде отдельного VRML-файла и вызываются по ссылке с Web-документа при его просмотре Web-навигатором. Щелчок мышью
по такой ссылке приводит к открытию отдельного окна, позволяющего пройтись по расположенному в нем фрагменту трехмерной реальности.
2.2.3 Технологии ActiveX
Под ActiveX понимается набор технологий от Microsoft, направленных на дополнение, интеграцию и унификацию существующих методов представления и обработки информации в компьютерных сетях, построенных по Web-архитектуре. Основная идея
ActiveX-технологий заключается в использовании одинакового способа доступа ко всем
информационным ресурсам сети (рис. 3.1). В качестве основы такого унифицированного
способа доступа выбрана Web-технология.
Рис. 2.6 -Схема единообразного доступа к информационным ресурсам сети
В соответствии с ActiveX Web-навигатор должен стать частью операционной системы. Более того, методы доступа к любой информации на собственном компьютере, на
сервере локальной сети или в Internet должны быть совершенно одинаковы и прозрачны
для пользователя. Данная концепция частично уже реализована в Web-навигаторе Microsoft Internet Explorer 4.0.
С точки зрения разработки мобильных программ набор технологий ActiveX с одной
стороны выступает как альтернатива, а с другой — как существенное дополнение техноФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
26
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
логий Java и JavaScript. ActiveX обеспечивает не только разработку и выполнение мобильных программ, но и реализацию ряда дополнительных возможностей, например, вызов из среды Web-навигатора функций по просмотру и редактированию документов
Word, Excel и PowerPoint. В распоряжение программистов и авторов Web-документов
ActiveX предоставляет набор функций API (Application Program Interface), реализованный
как для клиента, так и для сервера.
ActiveX поддерживает следующие типы мобильных программ, которые могут быть
связаны с Web-документом и передаваться на рабочую станцию для выполнения
(рис. 2.4):
 программные компоненты ActiveX Controls;
 аплеты Java;
 программы, написанные на языках сценариев JavaScript, VBScript (Visual Basic
Scripting) и VRML.
Технологии по созданию и использованию программных компонентов ActiveX
Controls, а также программ, написанных на макроязыке VBScript, являются собственными разработками Microsoft.
Рис. 2.7 -Миграция программ в технологии ActiveX
На сервере для действенности технологий ActiveX должны функционировать общесистемные программные средства от Microsoft: операционная система Windows NT
Server и Web-сервер IIS (Internet Information Server). Взаимодействие Web-сервера IIS с
другими приложениями, например с системой управления базами данных (СУБД), обеспечивается за счет реализованных в нем интерфейсов ISAPI (Internet Server API) и CGI
(Common Gateway Interface).
Программные компоненты ActiveX Controls представляют собой обычные исполняемые программы, которые могут загружаться с сервера для исполнения на рабочей станции. Как и при использовании Java-аплетов ссылки на эти программы располагаются в
Web-документах. Непосредственно в состав Web-документов программные компоненты
ActiveX Controls не входят. Они хранятся в отдельных файлах на сервере.
Компоненты ActiveX Controls отличаются от Java-аплетов следующими особенностями:
 программы ActiveX Controls включают исполняемый код, зависящий от аппаратнооперационной платформы; байт-коды же Java-аплетов являются машиннонезависимыми;
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
27
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
 загруженные элементы ActiveX Controls остаются в клиентской системе, тогда как
аплеты Java необходимо каждый раз загружать заново;
 поскольку программы ActiveX Controls не работают подобно Java-аплетам под контролем диспетчера безопасности, они могут получать доступ к дискам и выполнять
другие функции, характерные для традиционных приложений.
Учитывая, что программы ActiveX Controls по сути являются обычными программными приложениями, то их разработка может осуществляться с помощью любого языка
программирования. Могут быть использованы такие инструментальные системы, как
Visual C++, Visual Basic, Delphi, Visual J++ и ряд других. Разработан и комплексный инструментальный пакет Microsoft ActiveX Development Kit (MADК).
Программные компоненты ActiveX Controls, а также программы, написанные на
макроязыках JavaScript и VBScript, могут включать вызовы функций API ActiveX по
предоставлению ряда сервисов, таких как:
 создание высококачественных мультимедийных эффектов;
 открытие и редактирование электронных документов путем обращения к приложениям, поддерживающим стандарт OLE (Object Linking and Embedding — связывание и встраивание объектов), например, к приложениям Microsoft Office;
 обращения к операционной системе для оптимальной настройки параметров выполнения полученных с сервера программ.
Программы, написанные на макроязыках JavaScript и VBScript, могут автоматизировать взаимодействие между множеством объектов, включая аплеты Java, программные
компоненты ActiveX Controls и другие программы на клиентском компьютере, позволяя
им работать вместе как часть интегрированного активного пространства Web. Можно
написать свой макроязык и добавить его интерпретатор в Web-навигатор Internet Explorer
с помощью динамически загружаемой библиотеки DLL.
В сравнении с технологией Java технология ActiveX Controls имеет как недостатки,
так и преимущества.
Недостатки связаны прежде всего с более низким уровнем безопасности распределенной обработки информации. Программные компоненты ActiveX Controls, загруженные на клиентскую систему, могут обращаться к любой ее части подобно обычному приложению. Microsoft реализовала в рамках ActiveX доверительную защиту на основе цифровых сертификатов, которые обеспечивают подтверждение подлинности загруженных с
сети программных компонентов. Однако подтверждение подлинности еще не означает
подтверждение безопасности. Кроме того, схема доверительной защиты ActiveX может
оказаться недейственной, когда пользователи загружают программные компоненты
ActiveX Controls из Internet, особенно из неизвестных или сомнительных источников.
Вместе с тем программные компоненты ActiveX Controls, в отличие от Java-аплетов,
позволяют реализовать функции, свойственные полномасштабным программным приложениям. Эта особенность для корпоративной сети является существенным преимуществом при условии принятия соответствующих мер безопасности, например, при разрешении загрузки программ ActiveX Controls только с серверов корпорации. Что же касается производительности, то поскольку Java является интерпретируемым языком, аплеты
Java выполняются на виртуальной машине клиентской системы с меньшей скоростью,
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
28
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
чем скомпилированные элементы ActiveX Controls. Но с другой стороны, аплеты Java
очень компактны, поэтому загружаются быстро. Для загрузки же программ ActiveX
Controls требуется большее время. Следует также учесть, что загруженные программы
ActiveX Controls остаются в клиентской системе, тогда как все аплеты Java необходимо
каждый раз загружать заново. Эта особенность с точки зрения безопасности является недостатком, так как нарушается централизация прикладной системы. Но с точки зрения
производительности достигается преимущество перед Java-аплетами.
По независимости от аппаратных и операционных платформ ActiveX уступает Javaтехнологии. Несмотря на заявление компании Microsoft, что ActiveX обеспечивает открытую многоплатформенную поддержку операционных систем Macintosh, Windows и
UNIX, технологии ActiveX лучше работают на платформах Microsoft Windows, поскольку
разработаны преимущественно для использования функций, встроенных в эти операционные системы. Соответственно в полной мере ActiveX может использоваться в сетях,
работающих под управлением операционных систем Microsoft Windows.
2.3 Доступ к реляционным базам данных
В архитектуре «клиент-сервер», основанной на Web-технологии, Web-сервер выступает в качестве информационного концентратора, который доставляет информацию из
разных источников, а потом однородным образом с помощью Web-навигатора предоставляет ее пользователю. Непосредственная интеграция разнородной информации выполняется при визуализации и интерпретации Web-документов, которую реализует Webнавигатор при взаимодействии с Web-сервером, а также другими серверами по предоставлению информационных ресурсов.
Взаимодействие Web-навигатора с сервером системы управления базами данных
(сервером СУБД) может осуществляться двумя основными способами:
 доступ к серверу СУБД через Web-сервер;
 доступ к серверу СУБД напрямую.
2.3.1 Доступ к серверу СУБД через Web-сервер
Для доступа Web-навигатора к серверу СУБД через Web-сервер используется система программных шлюзов (см. рис. 2.1). Программный шлюз, получив запрос от Webсервера, выступает в качестве посредника между сервером Web и сервером СУБД. Программные шлюзы разрабатываются в соответствии с определенными стандартами, определяющими способы вызова Web-сервером прикладных программ или функций динамических библиотек, а также способы обмена информацией с этими программными объектами. Одними из наиболее распространенных стандартов данного типа являются интерфейс CGI (Common Gateway Interface — общий интерфейс шлюзов), а также его усовершенствованная спецификация, названная как FastCGI (ускоренный CGI).
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
29
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
2.3.2 Интерфейс CGI
Для доступа Web-навигатора к серверу СУБД через Web-сервер по стандарту CGI
необходима соответствующая CGI-программа, выполняющая роль программного шлюза
между Web-сервером и сервером СУБД (рис. 2.8).
CGI-приложения работают независимо от Web-сервера, а их запуск осуществляется
по вызову с Web-документа при его обработке Web-навигатором. CGI-программа взаимодействует с Web-сервером посредством двустороннего обмена переменными среды через
стандартные каналы ввода/вывода данного приложения.
Рис. 2.8 -Схема доступа к СУБД через CGI-программу
Поскольку CGI-программы работают независимо от Web-сервера и имеют простой
общий интерфейс, разработчики Web-документов имеют возможность создавать свои
CGI-программы на любом языке, поддерживающем стандартные файловые операции
ввода/вывода. Кроме того, при независимой разработке можно создавать такие приложения, которые легко переносятся с одного на другой Web-сервер. Существуют и стандартные CGI-программы, специально разработанные для взаимодействия Web-серверов с
различными СУБД, например, программа WebDBC.
В качестве интерфейса между Web-навигатором и сервером СУБД в составе Webдокументов применяют HTML-формы, которые позволяют формулировать запросы к базе
данных. CGI-программа получает информацию от Web-сервера либо через переменные
окружения, либо через стандартный ввод. Все зависит от метода доступа, который используется при обмене данными между Web-навигатором и Web-сервером. Далее CGIпрограмма через драйвер ODBC (Open DataBase Connectivity) обращается к серверу
СУБД и возвращает Web-серверу ответ на запрос через стандартный вывод.
Драйвер ODBC обеспечивает унифицированный способ доступа к различным СУБД
посредством стандартного языка запросов SQL. Благодаря стандарту ODBC прикладные
программы могут использовать единственный диалект SQL и взаимодействовать с разными СУБД. Можно обойтись и без драйвера ODBC, но в этом случае CGI-программа
должна быть написана с ориентацией на конкретную СУБД, функционирующую на сервере.
Таким образом, разработчику CGI-приложения не надо ничего знать о том, как
устроен Web-сервер. Более того, ему вовсе не обязательно использовать сложные языки
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
30
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
типа C++. CGI-программа может быть написана и на командном языке, например Perl.
Главное выдержать все соглашения, накладываемые стандартом CGI. Такой подход существенно облегчает разработку прикладного программного обеспечения для Web вообще и
для сопряжения баз данных с Web-сервером в частности.
Стандарт CGI обладает и недостатком — снижение скорости обработки запросов
при увеличении интенсивности их поступления. При каждом вызове CGI-программы ее
приходится загружать с диска (т. е. запускать новый процесс). По завершении работы
программы требуется освободить использовавшиеся ею ресурсы. Такие операции создают заметную дополнительную нагрузку на сервер, что сказывается на его производительности. К тому же запуск нового процесса при каждом запросе снижает эффективность постоянных процессов и доступность данных. Информацию, которая сгенерирована в ходе обработки одного запроса, невозможно использовать при обработке другого.
2.3.3 Интерфейсы API и FastCGI
Для того чтобы обойти проблемы, связанные с быстродействием CGI, многие поставщики Web-серверов, включая Microsoft и Netscape, разработали соответствующие
интерфейсы прикладного программирования (API). Корпорацией Microsoft был разработан интерфейс ISAPI (Internet Server API), a корпорацией Netscape — интерфейс NSAPI
(Netscape Server API). Эти интерфейсы тесно интегрированы с Web-сервером, позволяя
сохранять доступность постоянно используемых процессов и данных. Программы с интерфейсом ISAPI компилируются в файлы динамически подключаемых библиотек DLL.
Они загружаются в память во время первого обращения к ним и поэтому для повторного
вызова этих программ не нужно порождать новый процесс. Функции интерфейса NSAPI
загружаются в серверное пространство процессов. Соответственно при вызове этих
функций также не порождаются дополнительные процессы. Благодаря API-интерфейсу
использующая его программа может оставлять соединение с СУБД открытым, так что
следующему запросу к базе данных не придется тратить время на открытие и закрытие
соединения.
Однако API-интерфейсы Web-серверов — хоть и неплохое, но нестандартное решение. Большинство приложений нельзя переносить с одного API на другой, и очень редко
удается переносить приложения на другие платформы. Кроме того, большинство приложений для Web-серверов все еще создаются для интерфейса CGI, поэтому переход к приложениям на базе API не представляется экономически оправданным.
Поэтому стали появляться способы построения некоторого промежуточного варианта, который, с одной стороны, удовлетворял бы требованиям мобильности, независимости и простоты программирования, а с другой стороны — был бы достаточно эффективным. Одним из таких решений является спецификация FastCGI. Идея этой спецификации
в том, что прикладная программа использует способ передачи параметров и данных, который применяется в CGI, но при этом не удаляется из памяти, а остается резидентной,
обрабатывая поступающие запросы.
Таким образом, приложения на базе FastCGI, подобно CGI-программам, работают
независимо от Web-сервера и запускаются через стандартные ссылки в Web-документах.
Но, как и программы на базе API, программы для FastCGI являются постоянно действуФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
31
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
ющими. Когда программа заканчивает обработку очередного запроса, ее процесс остается открытым в ожидании нового запроса.
При доступе Web-навигатора к реляционной базе данных через интерфейс FastCGI
получается схема, в которой фактически используются три сервера: Web-сервер, FastCGIпрограмма и сервер базы данных. Web-сервер принимает запрос Web-навигатора и передает его FastCGI-программе, которая в свою очередь обращается к серверу баз данных.
Результат возвращается по обратной цепочке.
2.3.4 Доступ к серверу СУБД напрямую
Для доступа Web-навигатора к серверу СУБД напрямую могут использоваться как
Java-аплеты (рис. 2.9) и программные компоненты ActiveX Controls (рис. 2.10), так и подключаемые к навигатору специализированные программные модули (plug-ins).
Для использования Java-аплетов по доступу к различным серверам СУБД разработан
стандартный интерфейс JDBC (Java DataBase Connectivity) (рис. 2.9). Данный интерфейс
ориентирован на обеспечение взаимодействия с сервером СУБД не только Java-аплетов,
выполняющихся на клиентских станциях, но и Java-программ, запускаемых на сервере.
Рис. 2.9 -Схема доступа к СУБД с помощью Java-аплета
Доступ Web-навигатора к серверу СУБД с помощью программных компонентов
ActiveX Controls (рис. 2.10) предполагает, как и в случае Java-аплетов, запрос и передачу
соответствующей программы на рабочую станцию, а также ее дальнейшее выполнение
на рабочей станции. В этом случае взаимодействие с сервером СУБД должно выполняться через интерфейс ODBC. Если учесть, что Java исполняется Web-навигатором в режиме
интерпретации мобильного кода, то требования к аппаратуре рабочей станции по производительности и объему оперативной памяти существенно возрастают.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
Автор: Алексеев Н.А.
Рис. 2.10 -Схема доступа к СУБД с помощью 32
программного компонента ActiveX Controls
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Использование для доступа Web-навигатора к серверу СУБД подключаемых к навигатору специализированных программных модулей (plug-ins) требует предварительной
установки соответствующего программного дополнения на рабочей станции. После этого
взаимодействие с сервером СУБД будет осуществлять установленное программное средство, получающее управление от Web-навигатора при обработке соответствующего вызова в Web-документе.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
33
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Тема 3 ПРОТОКОЛЫ INTERNET/INTRANET
В общем случае термин TCP/IP обозначает целое семейство протоколов:
– TCP (Transmission Control Protocol/Internet Protocol) для надежной доставки данных;
– UDP (User Datagram Protocol) для негарантированной доставки;
– IP (Internet Protocol)
и других прикладных служб.
Протоколы
прикладного уровня
(FTP, HTTP, и т.д.)
TCP
Протоколы
прикладного
уровня
(TFTP, DNS, NFS
и т.д.)
ICMP
UDP
IP
Механизмы канального и физического уровней
Рис. 3.1 -Связи между протоколами семейства TCP/IP
TCP/IP является открытым коммуникационным протоколом. Открытость означает,
что он обеспечивает связь в любых комбинациях устройств независимо от того, насколько они различаются на физическом уровне.
Благодаря протоколу TCP/IP Интернет стал тем, чем он является сегодня. В результате Интернет произвел в нашем стиле жизни и работы почти такие же революционные
изменения, как печатный станок, электричество и компьютер. Без популярных протоколов и служб – таких, как HTTP, SMTP и FTP – Интернет был бы просто большим количеством компьютеров, связанных в бесполезный клубок.
Протокол TCP/IP встречается повсеместно. Это семейство протоколов, благодаря которым любой пользователь с компьютером, модемом и договором, заключенным с поставщиком услуг Интернета, может получить доступ к информации по всему Интернету.
Именно благодаря TCP/IP каждый день благополучно выполняются миллиарды различных операций, поскольку работа в Интернете отнюдь не ограничивается электронной
почтой и обменом сообщениями. Более того, в ближайшее время TCP/IP не собирается
сдавать свои позиции. Это стабильное, хорошо проработанное и достаточно полное семейство протоколов.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
34
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
3.1 Эталонная модель TCP/IP
В отличие от эталонной модели OSI, модель ТСР/IP в большей степени ориентируется на обеспечение сетевых взаимодействий, нежели на жесткое разделение функциональных уровней. Для этой цели она признает важность иерархической структуры функций, но предоставляет проектировщикам протоколов достаточную гибкость в реализации. Соответственно, эталонная модель OSI гораздо лучше подходит для объяснения механики межкомпьютерных взаимодействий, но протокол TCP/IP стал основным межсетевым протоколом.
Таблица 3.1- Соответствие эталонной модель TCP/IP и эталонной модели OSI.
Эквивалентный
Уровень OSI
Номер OSI
уровень TCP/IP
Прикладной уровень
7
Представительский уровень
6
Прикладной уровень
Сеансовый уровень
5
Транспортный уровень
Сетевой уровень
Канальный уровень
Физический уровень
4
3
2
1
Межхостовый уровень
Межсетевой уровень
Уровень сетевого доступа
3.2 Анатомия модели TCP/IP
Группа протоколов TCP/IP состоит из четырех функциональных уровней: прикладного, межхостового, межсетевого и уровня сетевого доступа.
3.2.1 Прикладной уровень
Прикладной уровень содержит протоколы удаленного доступа и совместного использования ресурсов. Хорошо знакомые приложения- такие, как Telnet, FTP, SMTP,
HTTP и многие другие- работают на этом уровне и зависят от функциональности уровней, расположенных ниже в иерархии. Любые приложения, использующие взаимодействие в сетях IP (включая любительские и коммерческие программы), относятся к этому
уровню модели.
3.2.2 Межхостовый уровень
К функциям этого уровня относится сегментирование данных в приложениях для
пересылки по сети, выполнение математических проверок целостности принятых данных
и мультиплексирование потоков данных (как передаваемых, так и принимаемых) для нескольких приложений одновременно. Отсюда следует, что межхостовый уровень располагает средствами идентификации приложений и умеет переупорядочивать данные, принятые не в том порядке.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
35
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
В настоящее время межхостовый уровень состоит из двух протоколов: протокола
управления передачей TCP и протокола пользовательских дейтаграмм UDP. С учетом того, что Интернет становится все более транзакционно-ориентированным, был определен
третий протокол, условно названный протоколом управления транзакциями/передачей
T/TCP (Transaction/Transmission Control Protocol). Тем не менее, в большинстве прикладных сервисов Интернета на межхостовом уровне используются протоколы TCP и UDP.
3.2.3 Межсетевой уровень
Межсетевой уровень IPv4 состоит из всех протоколов и процедур, позволяющих потоку данных между хостами проходить по нескольким сетям. Следовательно, пакеты, в
которых передаются данные, должны быть маршрутизируемыми. За маршрутизируемость пакетов отвечает протокол IP (Internet Protocol).
Межсетевой уровень должен поддерживать маршрутизацию и функции управления
маршрутами. Эти функции предоставляются внешними протоколами, которые называются протоколами маршрутизации. К их числу относятся протоколы IGP (Interior Gateway
Protocols) и EGP (Exterior Gateway Protocols).
3.2.4 Уровень сетевого доступа
Уровень сетевого доступа состоит из всех функций, необходимых для физического
подключения и передачи данных по сети. В эталонной модели OSI этот набор функций
разбит на два уровня: физический и канальный. Эталонная модель TCP/IP создавалась
после протоколов, присутствующих в ее названии, и в ней эти два уровня были слиты воедино, поскольку различные протоколы IP останавливаются на межсетевом уровне. Протокол IP предполагает, что все низкоуровневые функции предоставляются либо локальной сетью, либо подключением через последовательный интерфейс.
3.3 Преимущества TCP/IP
Протокол TCP/IP обеспечивает возможность межплатформенных сетевых взаимодействий (то есть связи в разнородных сетях). Например, сеть под управлением Windows
NT/2000 может содержать рабочие станции Unix и Macintosh, и даже другие сети более
низкого порядка. TCP/IP обладает следующими характеристиками:
– Хорошие средства восстановления после сбоев.
– Возможность добавления новых сетей без прерывания текущей работы.
– Устойчивость к ошибкам.
– Независимость от платформы реализации.
– Низкие непроизводительные затраты на пересылку служебных данных.
3.4 Уровни и протоколы TCP/IP
Семейство протоколов IP состоит из нескольких протоколов, часто обозначаемых
общим термином “TCP/IP”:
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
36
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
–
–
–
–
IP – протокол межсетевого уровня;
TCP – протокол межхостового уровня, обеспечивающий надежную доставку;
UDP – протокол межхостового уровня, не обеспечивающий надежной доставки;
ICMP – многоуровневый протокол, упрощающий контроль, тестирование и управление в сетях IP. Различные протоколы ICMP распространяются на межхостовой и
прикладной уровни.
Связи между этими протоколами изображены на рисунке 3.1.
Протоколы TCP и IP совместно управляют потоками данных (как входящими, так и
исходящими) в сети. Но если протокол IP просто передает пакеты, не обращая внимания
на результат, TCP должен проследить за тем, чтобы пакеты прибыли в положенное место.
В частности, TCP отвечает за выполнение следующих задач:
– Открытие и закрытие сеанса.
– Управление пакетами.
– Управление потоком данных.
– Обнаружение и обработка ошибок.
3.4.1 Протокол IP
Протокол IP (Internet Protocol) является самым распространенным межсетевым протоколом в мире. Функциональность протокола определяется объемом данных, хранящихся в заголовках. Структура заголовков IP, а, следовательно, и его возможности первоначально определялись в серии RFC и других общедоступных документов, которые были
опубликованы еще во времена создания группы IETF. Обычно считается, что базовым
документом для современной версии IP является RSC 791 («internet protocol», Postel, J.B;
1981).
Благодаря неустанной работе IETF протокол IP постоянно развивается. В последующих RFC (Request for Comments) были добавлены многочисленные новые возможности.
Тем не менее, все они строятся на основе, заложенной в RFC 791. С архитектурной точки
зрения текущая версия IP имеет номер 4 (Ipv4). Коммерциализация Интернета вызвала
бурный рост сообщества пользователей и изменила его демографическую структуру. В
свою очередь, это обусловило необходимость в новых адресах и поддержки новых типов
сервиса на уровне Интернета. Ограниченные возможности Ipv4 привели к разработке совершенно новой версии протокола. Новой версии IP был присвоен номер 6 (Ipv6), но
также часто используется термин Ipng (Internet Protocol: Next Generation).
3.4.1.1 Задачи протокола IP
Заголовок пакета IP содержит всю информацию, необходимую для выполнения основных сетевых операций. К числу таких операций относятся:
– адресация и маршрутизация;
– фрагментация и повторная сборка;
– выявление и исправление данных, поврежденных в процессе пересылки;
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
37
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
3.4.2 Протокол ТСР
Протокол TCP (Transmission Control Protocol) пользуется сервисом IP для обеспечения надежной доставки прикладных данных. ТСР создает между двумя или более хостами сеанс, ориентированный на соединение. Он обладает такими возможностями, как
поддержка нескольких потоков данных, координация потока и контроль ошибок и даже
восстановление нарушенного порядка пакетов. Протокол ТСР также разрабатывался посредством публикации общедоступных документов RFC группой IETF.
3.4.2.1 Задачи протокола ТСР
В сеансе связи ТСР обеспечивает ряд важных функций, большая часть которых связана с обеспечением интерфейса между различными приложениями и сетью. К числу
этих функций относятся:
– мультиплексирование данных между приложениями и сетью;
– проверка целостности полученных данных;
– восстановление нарушенного порядка данных;
– подтверждение успешного получения данных;
– регулирование скорости передачи данных;
– измерение временных характеристик;
– координация повторной передачи данных, поврежденных или потерянных в процессе пересылки.
3.4.3 Протокол UDP
Протокол UDP (User Datagram Protocol) является вторым протоколом межхостового
уровня (соответствующего транспортному уровню в эталонной модели OSI). UDP обеспечивает простейшие, требующие минимальных затрат средства передачи данных в виде
так называемых «дейтаграмм» (datagrams).
Как правило, UDP используется в приложениях, ориентированных на широковещательную рассылку или работу с сообщениями, а также там, где не требуется полная
надежность, обеспечиваемая протоколом TCP.
3.4.3.1 Задачи протокола UDP
Протокол UDP намеренно проектировался как эффективный транспортный протокол
с минимальными издержками, что напрямую отражено в структуре его заголовка. Информации, хранящейся в заголовке, хватает только для того, чтобы переслать дейтаграмму нужному приложению (то есть номеру порта) и выполнить простейшую проверку
ошибок.
UDP не обладает ни одной из нетривиальных возможностей, обеспечиваемых протоколом ТСР. В нем не предусмотрены таймеры, средства управления потоком или регулировки скорости передачи, подтверждения, механизмы ускоренной доставки срочных данных и т.д. Протокол UDP просто пытается доставить дейтаграмму. Если попытка по какой-либо причине завершается неудачей, дейтаграмма теряется без каких-либо попыток
повторной передачи данных.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
38
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
3.4.4 Telnet
Термин «Telnet» (TELecommunications NETwork) обычно используется для обозначения, как приложения, так и самого протокола, что наделяет его двойным смыслом.
Telnet предоставляет в распоряжение пользователя средства для удаленного входа и прямого выполнения терминальных операций по сети. Иначе говоря, Telnet обеспечивает
прямой доступ к удаленному компьютеру. Telnet работает используя порт 23.
На хосте должен работать сервер Telnet, ожидающий аутентифицированного удаленного входа. В Windows 9x/NT/2000, BeOS, Linux и других операционных системах на
платформе х86 необходимо установить отдельный сервер Telnet, настроить его и запустить на прием входящих запросов. Системы на базе MacOS также требуют отдельного
сервера Telnet. Только в системах Unix имеется собственный сервер Telnet, который
обычно называется telnetd («d»-«daemon»- серверное приложение, работающее в фоновом режиме). На другом конце соединения работает приложение Telnet, обеспечивающее
текстовый или графический интерфейс для пользовательского сеанса.
3.4.5 FTP
В отличие от протокола Telnet, позволяющего работать на удаленном хосте, протокол
FTP (File Transfer Protocol) играет более пассивную роль и предназначается для приема и
отправки файлов на удаленный сервер. Такая возможность идеально подходит для webмастеров и вообще для всех, кому потребуется переслать большие файлы с одного компьютера на другой без прямого подключения. FTP обычно используется в так называемом «пассивном» режиме, при котором клиент загружает данные о дереве каталогов и
отключается, но периодически сигнализирует серверу о необходимости сохранять открытый порт.
В системах Unix поддержка FTP обычно обеспечивается программами ftpd и ftp. По
умолчанию протокол FTP работает на портах 20 (пересылка данных) и 21 (пересылка команд). FTP отличается от всех остальных протоколов ТСР/IP тем, что команды могут передаваться одновременно с передачей данных в реальном времени; у других протоколов
подобная возможность отсутствует.
Клиенты и сервера FTP в той или иной форме существуют во всех операционных
системах. Приложения FTP на базе MacOS имеют графический интерфейс, как и большинство приложений для системы Windows. Преимущество графических клиентов FTP
заключается в том, что команды, обычно вводимые вручную, теперь автоматически генерируются клиентом, что снижает вероятность ошибок, упрощает и ускоряет работу. С
другой стороны, серверы FTP после первоначальной настройки не требуют дополнительного внимания, поэтому графический интерфейс для них оказывается лишним.
3.5 TFTP
Название протокола TFTP (Trivial FTP) выбрано весьма удачно. TFTP поддерживает
лишь малое подмножество функций FTP. Он работает на базе протокола UDP. TFTP не
следит за доставкой пакетов и практически не обладает средствами обработки ошибок. С
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
39
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
другой стороны, эти ограничения снижают непроизводительные затраты при пересылке.
TFTP не выполняет аутентификации; он просто устанавливает соединение. В качестве
защитной меры TFTP позволяет перемещать только общедоступные файлы.
Применение TFTP создает серьезную угрозу для безопасности системы. По этой
причине TFTP обычно используется во встроенных приложениях, для копирования конфигурационных файлов при настройке маршрутизатора, при необходимости жесткой
экономии ресурсов, а также в тех случаях, когда безопасность обеспечивается другими
средствами. Протокол TFTP также используется в сетевых конфигурациях, в которых загрузка компьютеров производится с удаленного сервера, а протокол TFTP может быть
легко записан в ПЗУ сетевых адаптеров.
3.6 SMTP
Протокол SMTP (Simple Mail Transfer Protocol) является фактическим стандартом
пересылки электронной почты в сетях, особенно в Интернете. Во всех операционных системах имеются почтовые клиенты с поддержкой SMTP, а большинство поставщиков
услуг Интернета использует SMTP для работы с исходящей почтой. Серверы SMTP существуют для всех операционных систем, включая Windows 9x/NT/2K, MacOS, семейство Unix, Linux, BeOS, и даже AmigaOS.
Протокол SMTP проектировался для транспортировки сообщений электронной почты в разных сетевых средах. В сущности, SMTP не следит за тем, как перемещается сообщение, а лишь за тем, чтобы оно было доставлено к месту назначения.
SMTP обладает мощными средствами обработки почты, обеспечивающими автоматическую маршрутизацию по определенным критериям. В частности, SMTP может оповестить отправителя о том, что адрес не существует, и вернуть ему сообщение, если почта остается не доставленной в течение определенного периода времени (задаваемого системным администратором сервера, с которого отправляется сообщение). SMTP использует порт ТСР с номером 25.
3.7 NFS
Файловая система NFS (Network File System) создавалась компанией Sun Microsystems, Inc. для решения проблем в сетях с несколькими операционными системами. NFS
поддерживает только совместны доступ к файлам и является компонентом многих операционных систем семейства Unix. Кроме того, NFS хорошо поддерживается большинством других операционных систем.
В NFS версии 1 и 2 в качестве основного транспортного протокола использовался
протокол UDP. Поскольку UDP не обеспечивает гарантированной доставки, для ненадежных каналов эта проблема должна решаться на уровне NFS, а не на уровне протокола. Изза этого в некоторых ранних реализациях NFS существовали проблемы с порчей содержимого файлов.
Начиная с NFS версии 3, в качестве транспортного протокола может использоваться
TCP. Впрочем, появившаяся в NFS 3 поддержка TCP не оптимизирована. При использоФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
40
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
вании TCP в качестве транспортного протокола NFS может использовать надежность ТСР
для повышения качества доставки по ненадежным каналам. Соответственно, NFS версии
3 лучше работает в глобальных сетях и в Интернет.
«Чистая» реализация NFS не может предотвратить одновременную запись в файл со
стороны нескольких пользователей, что легко приводит к порче данных, если пользователи не знают о параллельном выполнении операции с файлом. Тем не менее, механизм
блокировки файлов, реализованный протоколом NLM (Network Lock Manager), может
использоваться в сочетании с NFS для организации совместного чтения и записи в файл.
Механизм доступа к файлам через NFS прямолинеен и прозаичен. После монтирования том NFS становится частью системы конечного пользователя. Никаких дополнительных шагов не требуется – естественно, не считая процесса экспортирования, необходимого для синхронизации конфигурации NFS на сервере и у клиентов.
3.8 SNMP
Протокол SNMP (Simple Network Management Protocol) реализует простые средства
сбора данных о работе маршрутизатора и управления им с использованием различных
протоколов – таких, как UDP, IPX и IP. При любом обсуждении SNMP важно помнить,
что первая буква в названии протокола означает «простой». Протокол поддерживает
только четыре команды – GET, GETNEXT, SET и TRAP.Первые две команды предоставляют доступ к информации, а третья позволяет осуществлять удаленное управление некоторыми функциями маршрутизаторов. Команда TRAP включает режим получения от
устройства информации о проблемах или происходящих событиях.
Сетевые устройства передают информацию о себе через базу управляющей информации MIB (Management Information Base). Эти данные, описывающие устройство, передаются станции управления SNMP (SNMP Management Station), которая поочередно
идентифицирует каждое устройство и сохраняет информацию о нем. Станция управляет
всеми SNMP-совместимыми устройствами. Для каждого устройства запускается агент
SNMP, представляющий клиентскую сторону операций с устройствами. Когда станция
управления запрашивает информацию о порте командой GET, агент возвращает эту информацию.
Протокол SNMP не предназначен для управления всеми сетевыми устройствами с
возможностью точного описания операций. Это простой протокол для повседневной работы, который позволяет получить нужную информацию без загрузки 5-6 управляющих
интерфейсов. Для отправки сообщений SNMP используется транспортный протокол UDP.
3.9 World Wide Web. Протокол HTTP
World Wide Web часто называют технологическим прорывом 1990-х годов. Web стала величайшим достижением с первых дней революции, произведенной широким внедрением персональных компьютеров.
Концепция World Wide Web разрабатывалась в Европейской лаборатории по ядерным исследованиям (CERN) для упрощения совместного доступа к файлам и обмена инФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
41
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
формацией между учеными-физиками. В 1993 году в Национальном центре по использованию суперкомпьютеров (NCSA) был разработан первый графический браузер Mosaic.
С разработки этого web-клиента началась World Wide Web в том виде, в котором она существует сегодня.
Протокол HTTP заложен в основу работы World Wide Web. В сущности, именно
HTTP принадлежит основная заслуга в бурном развитии Интернета в середине 1990-х годов. Сначала появились первые клиенты HTTP (такие, как Mosaic и Netscape), которые
позволяли наглядно «увидеть» Web. Вскоре стали появляться web-серверы с полезной
информацией. В наше время в Интернете существует более шести миллионов webсайтов, работающих на базе HTTP. Протокол HTTP работает на хорошо известном порте
TCP с номером 80. Протокол передачи гипертекста (HTTP) - протокол прикладного уровня для распределенных, совместных, многосредных информационных систем. HTTP используется в World Wide Web (WWW) начиная с 1990 года. Первой версией HTTP, известной как HTTP/0.9, был простой протокол для передачи необработанных данных через
Интернет. HTTP/1.0 был улучшением этого протокола, допускал MIME-подобный формат
сообщений, содержащий метаинформацию о передаваемых данных и имел модифицированную семантику запросов/ответов. Однако HTTP/1.0 недостаточно учитывал особенности работы с иерархическими прокси-серверами (hierarchical proxies), кэшированием, постоянными соединениями, и виртуальными хостами (virtual hosts). Кроме того, быстрый
рост числа не полностью совместимых с протоколом HTTP/1.0 приложений, потребовал
введения новой версии протокола, в которой были бы заложены дополнительные возможности, которые помогли бы привести эти приложения к единому стандарту.
Большие информационные системы требуют большего количества функциональных
возможностей, чем просто загрузку информации, включая поиск и модификацию данных
при помощи внешних интерфейсов. HTTP предоставляет открытый (open-ended) набор
методов, которые основаны на системе ссылок, которые обеспечиваются URI (Универсальными Идентификаторами Ресурсов). URI могут идентифицировать как расположение
(URL), так и имя (URN) ресурса, к которому применяется данный метод. Сообщения передаются в формате, подобному используемому электронной почтой согласно определениям MIME (Многоцелевых Расширений Электронной Почты).
HTTP также используется как обобщенный протокол связи между агентами пользователей (user agents) и прокси-серверами/шлюзами (proxies/gateways) или другими Интернет-сервисами, включая такие как SMTP, NNTP, FTP, Gopher и WAIS. Таким образом,
HTTP определяет основы многосредного доступа к ресурсам для разнообразных приложений.
Протокол HTTP - это протокол запросов/ответов. Клиент посылает по соединению
запрос серверу, содержащий: метод запроса, URI, версию протокола, MIME-подобное сообщение, включающее модификаторы запроса, клиентскую информацию и, возможно,
тело запроса. Сервер отвечает строкой состояния, включающей версию протокола сообщения, кодом успешного выполнения или ошибки, MIME-подобным сообщением, содержащим информацию о сервере, метаинформацию объекта и, возможно, тело объекта.
Большинство HTTP соединений, инициализируется агентом пользователя и состоит
из запроса, который нужно применить к ресурсу на некотором первоначальном сервере. В
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
42
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
самом простом случае, он может быть выполнен посредством одиночного соединения
между агентом пользователя и первоначальным сервером.
Более сложная ситуация возникает, когда в цепочке запросов/ответов присутствует
один или несколько посредников (см. п. 2.1.1). Существуют три основных разновидности
посредников:
– прокси-сервера;
– шлюзы;
– туннели.
Прокси-сервер является агентом-посредником, который получает запросы на некоторый URI в абсолютной форме, изменяет все сообщение или его часть и отсылает измененный запрос серверу, идентифицированному URI. Шлюз - это принимающий агент,
действующий как бы на уровень выше некоторого другого сервера и при необходимости
транслирующий запросы в протокол основного сервера. Туннель действует как реле
между двумя соединениями, не изменяя сообщений; туннели используются, когда связь
нужно производить через посредника (например, firewall), который не понимает содержание сообщений.
Фактически, имеется широкое разнообразие архитектур и конфигураций кэшей и
прокси-серверов, разрабатываемых в настоящее время или развернутых в World Wide
Web; эти системы включают национальные иерархии прокси-кэшей, которые сохраняют
пропускную способность межокеанских каналов, системы, которые распространяют по
многим адресам содержимое кэша, организации, которые распространяют подмножества
кэшируемых данных на CD-ROM, и так далее. HTTP системы используются в корпоративных интранет-сетях с высокоскоростными линиями связи, и для доступа через PDA с
маломощными радиолиниями и неустойчивой связью. Цель HTTP/1.1 состоит в поддержании широкого многообразия конфигураций, уже построенных при введении ранних
версий протокола, а также в удовлетворении потребностей разработчиков web приложений, требующих все более высокой надежности.
HTTP соединение обычно происходит посредством TCP/IP соединений. HTTP также
может быть реализован посредством любого другого протокола Интернет, или других сетей. HTTP необходима только надежная передача данных, следовательно, может использоваться любой протокол, который гарантирует надежную передачу данных; отображение
структуры запроса и ответа HTTP/1.1 на транспортные модули данных рассматриваемого
протокола - вопрос, не решается на уровне самого протокола.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
43
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Тема 4 ПЛАТФОРМА.NET
4.1 Концепция и возможности подхода .NET
.NET – это подход к проектированию и реализации программного обеспечения,
включающий, по меньшей мере, четыре компонента:
– идеология проектирования и реализации программного обеспечения;
– модель эффективной поддержки жизненного цикла прикладных систем;
– унифицированная, интегрированная технологическая платформа для программирования;
– современный, удобный в использовании, безопасный инструментарий для создания, развертывания и поддержки программного обеспечения.
Остановимся подробнее на каждом из этих аспектов.
Прежде всего, постараемся объяснить идеологию подхода Microsoft .NET.
Самой корпорацией-разработчиком сформулированы приблизительно следующие
важнейшие аспекты видения идеологии .NET:
– легкость развертывания приложений в глобальной среде Internet;
– экономичная разработка программного обеспечения;
– «бесшовная», гибкая интеграция программных продуктов и аппаратных ресурсов;
– предоставление программного обеспечения как сервиса;
– новый уровень безопасности и удобства использования.
Действительно, все аспекты видения .NET удалось реализовать на качественно новом уровне, обеспечив существенное продвижение вперед в направлениях гибкости интеграции с программно-аппаратными ресурсами, безопасности и удобства использования
кода, а также снижения затрат на производство программного обеспечения. Рассмотрим
подробнее, как идеология .NET претворяется в практические вопросы проектирования
программного обеспечения.
Корпорацией Microsoft предложен новаторский компонентно-ориентированный подход к проектированию, который является развитием объектно-ориентированного направления. Согласно этому подходу, интеграция объектов (возможно, гетерогенной природы),
производится на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты. Такой подход существенно облегчает написание и
взаимодействие программных «молекул»-компонент в гетерогенной среде проектирования и реализации. Стандартизируется хранение и повторное использование компонент
программного проекта в условиях распределенной сетевой среды вычислений, где различные компьютеры и пользователи обмениваются информацией, например, взаимодействуя в рамках исследовательского или бизнес-проекта.
Существенным преимуществом является и возможность практической реализации
принципа «всякая сущность представляет собой объект гетерогенной программной среды». Во многом это стало реализуемым благодаря усовершенствованной, обобщенной
системе типизации Common Type System, или CTS, которая будет подробнее рассмотрена
позже.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
44
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Строгая иерархичность организации пространств для типов, классов и имен сущностей программы позволяет стандартизировать и унифицировать реализацию.
Новый подход к интеграции компонент приложений в среде вычислений Internet
(или так называемые web-сервисы) дает возможность ускоренного создания приложений
для глобальной аудитории пользователей.
Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных в соответствии с различными подходами к программированию.
Говоря о .NET как о технологической платформе, нельзя не отметить тот факт, что
она обеспечивает одновременную поддержку проектирования и реализации программного обеспечения с использованием различных языков программирования. При этом поддерживаются десятки языков программирования, начиная от самых первых (в частности,
COBOL и FORTRAN) и заканчивая современными (например, C# и Visual Basic). Ранние
языки программирования до сих пор активно используются, в частности, для обеспечения совместимости с ранее созданными приложениями (скажем, COBOL весьма широко
применялся для создания прикладных программ, поддерживающих финансовую деятельность).
Технология web-сервисов – это не просто дань моде на Internet, а реальная (и, пожалуй, наиболее приемлемая практически) возможность обеспечения масштабируемости и
интероперабельности приложений. Под масштабируемостью понимают возможность
плавного роста времени ответа программной системы на запрос с ростом числа одновременно работающих пользователей; в случае web-сервисов масштабируемость реализуется посредством распределения вычислительных ресурсов между сервером, на котором
выполняется прикладная программа (или хранятся данные), и компьютером пользователя.
Под интероперабельностью следует понимать возможность интегрированной обработки гетерогенных данных, поступающих от разнородных прикладных программ.
Именно благодаря интероперабельности возможна унификация взаимодействия пользователей через приложение с операционной системой на основе специализированного интерфейса прикладных программ, или API-интерфейса (Application Programming Interface).
Немаловажно отметить и то обстоятельство, что новая технология .NET не только
востребована мировой общественностью, но и официально признана, что отражено в соответствующих стандартах ECMA (European Computer Manufacturers Association).
Теперь рассмотрим инструментальные возможности .NET как средства проектирования и реализации программного обеспечения, т.е., собственно программирования в
широком смысле этого слова.
Прежде всего, необходимо отметить поддержку многоязыковой среды разработки
приложений CLR (Common Language Runtime). Эта возможность появилась благодаря
универсальному межъязыковому интерфейсу Common Language Infrastructure, или CLI,
который поддерживает разработку программных компонент на различных языках программирования.
При этом несомненным преимуществом для программистов является то обстоятельство, что они могут разрабатывать (или дорабатывать) программное обеспечение на
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
45
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
наиболее подходящем языке программирования. Здесь следует учитывать характер задачи (скажем, рекурсия или символьная обработка более прозрачно и с меньшими трудозатратами реализуется на языке функционального программирования, а формализация
структуры предметной области – на объектно-ориентированном языке). Кроме того,
необходимо принимать во внимание опыт работы программистов в команде разработчиков и язык программирования, на котором изначально создавалась система.
Отметим еще два существенных обстоятельства. Во-первых, основные сервисные
возможности для разработчиков, которые предоставляет среда .NET (отладка, анализ кода
и т. д.) не зависят от конкретного языка программирования, и, следовательно, программистам нет необходимости заново постигать особенности среды разработки, если необходимо «перейти» с одного языка на другой. Во-вторых, несмотря на то, что еще не все
языки программирования поддерживаются .NET, существует возможность самостоятельной разработки транслятора для любого языка программирования, причем его реализация
не вызывает трудностей даже у программистов, практически не имеющих профессиональной подготовки в области разработки компиляторов.
Важнейшим элементом любой идеологии, технологии и инструментального средства
программирования в настоящее время является безопасность. Это утверждение неоспоримо, если принять во внимание тот факт, что управление многими важнейшими системами жизнеобеспечения и оборонной отрасли автоматизировано, т.е. осуществляется с
помощью компьютеров.
В этой связи .NET как инструментальное средство призвано обеспечивать уровень
безопасности, отвечающий современным требованиям.
Для этого в .NET реализована, в частности, такая мера безопасности, как автоматизированное управление жизненным циклом программного обеспечения. Для программиста это проявляется, например, в автоматической реализации процедуры «сборки мусора», а также в запрете использования указателей на области памяти с неопределенным
значением («висячих» ссылок) и ссылающихся на себя указателей (циклических ссылок).
Более существенным ограничением безопасности является автоматизация обеспечения синтаксической коррекции кода. Это достигается посредством безопасных вызовов
функций и процедур, контроля выхода за границы заявленного программистом размера
статически распределяемых областей памяти, а также запрета использования переменных, если им не задано значение по умолчанию (инициализация).
Еще одним важным аспектом комплексного обеспечения безопасности в .NET является обязательная проверка промежуточного кода (IL – Intermediate Language) на корректность типизации, осуществляемая в рамках реализованной стратегии расширенного
контроля соответствия типов.
Существенно усовершенствованы и права доступа пользователей к ресурсам. В
частности, для включения компонента в проект необходимо проверить источник кода, заверенный автором цифровой подписью, и убедиться в подлинности отправителя.
Гибкое и надежное ограничение доступа пользователей к ресурсам осуществляется
также благодаря широкому спектру динамически корректируемых в соответствии с профилями пользователя политик доступа.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
46
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Немаловажными для обеспечения безопасности являются криптографические методы, которые необходимы для шифрования конфиденциальной или коммерческой информации, передаваемой, например, по Internet-каналам.
Продолжим обсуждение поддержки жизненного цикла программного обеспечения в
рамках подхода .NET.
Для установки на компьютеры пользователей ранее созданного прикладного программного обеспечения создаются инсталляционные комплекты в форме так называемых
сборок.
Сборкой называется множество модулей, необходимых для инсталляции программного обеспечения.
Сборка характеризуется уникальностью, которая обеспечивается идентификатором
ее версии и цифровой подписью автора. Сборка является самодостаточной единицей для
установки программного обеспечения и не требует никаких дополнений. Возможно как
индивидуальное, так и коллективное (сетевое) использование сборки на основе компонентной технологии.
Сборка обеспечивает простой и удобный механизм инсталляции и позволяет экономить средства на развертывание программного обеспечения, сводя к минимуму затраты
на установку.
Описание сборки содержится в так называемом манифесте, где хранятся идентификация автора и версии сборки, а также режим и политика использования последней.
Современное общество вступило в эпоху Internet-коммуникации, т.е. в самое ближайшее время практически каждый человек сможет получать доступ к распределенным
ресурсам глобальной сети из любой точки Земли.
В этой связи в .NET реализована концепция web-сервисов как средства поддержки
распределенных компонентных вычислений в глобальной сети.
При этом наиболее существенными задачами, решение которых необходимо обеспечить, являются следующие:
– интерактивная обработка пользователями информации (документов, таблиц, графики и т.д.), представленной в электронном виде;
– организация совместной работы пользователей с прикладным программным обеспечением (заседания рабочих групп, конференции и т.д.);
– поддержка взаимодействия прикладных программ.
В этой связи в концепции .NET сформулирована и решена задача адаптации изначально аморфной и практически не структурированной Internet-среды для достижения
возможности интеграции приложений. Основные направления решения этой задачи следующие:
– унификация информационной инфраструктуры;
– достижение необходимого уровня интероперабельности прикладного программного обеспечения;
– достижение необходимого уровня масштабируемости прикладного программного
обеспечения.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
47
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Задача достижения необходимого уровня масштабируемости прикладного программного обеспечения является технически сложной и выходит за рамки данного учебного курса.
Задача поддержки интероперабельности прикладного программного обеспечения в
рамках концепции .NET решается с помощью универсальной высокоуровневой языковой
среды Common Language Infrastructure (CLI), которая характеризуется следующими возможностями.
Прежде всего, осуществляется поддержка разнообразных языков программирования,
а, следовательно, и различных подходов к программированию, в частности, функционального (например, на основе SML, Scheme, Haskell), объектно-ориентированного
(например, на основе С++) и компонентного (например, на основе С#).
Кроме того, интегрированное использование языков программирования осуществляется совместно с единой системой типов (Common Type System, CTS), включающей общую иерархию для примитивных типов, типов-значений и ссылочных типов.
Управление оперативной памятью также реализовано в .NET в обобщенном варианте. В частности, централизованно осуществляются «сборка мусора» и тестирование кода
на безопасность с точки зрения взаимодействия с оперативной памятью. Механизм обработки исключительных ситуаций также унифицирован.
Наконец, универсальная высокоуровневая языковая среда Common Language
Infrastructure обеспечивает межъязыковую отладку.
Для любого тиражируемого коммерческого программного продукта необходимо подтверждение его соответствия общепринятым в мировой практике программирования
стандартам.
В отношении технологий .NET теоретические достижения и технологические инновации подтверждаются мнением европейской ассоциации по стандартам ECMA
(European Computer Manufacturers Association).
Так, язык программирования C# и среда Common Language Infrastructure (CLI) ратифицированы организацией ECMA в качестве международного стандарта. Кроме того, несколько независимых разработчиков программного обеспечения осуществляют проекты в
соответствии со спецификациями ECMA (в частности, реализация .NET под управлением
операционной системы Linux).
Ведущие производители аппаратного и программного обеспечения рассчитывают на
.NET как на стратегический путь совместного с Microsoft развития. В частности, в 2001
году подписано соглашение о сотрудничестве между Microsoft, Intel и Hewlett-Packard.
Вопреки распространенному мнению, Microsoft не настаивает на непременном
условии единственности операционной системы Windows для поддержки .NET. Корпорация планирует совместную разработку программного проекта .NET под управлением
операционных систем FreeBSD и Windows.
Более подробную информацию о стандартизации технологий и программного обеспечения семейства .NET можно получить по адресу: http://msdn.microsoft.com/net/ecma/.
Несмотря на перечисленные выше инновации в области теории, технологии и практической реализации, в силу масштабности идеологии и новизны исследуемой проблематики, подход .NET не лишен отдельных недостатков, большинство из которых, поФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
48
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
видимому, носит временный характер. Отметим, на наш взгляд, наиболее существенные
из них.
– Во-первых, разработчики отмечают достаточно высокие требования к аппаратному обеспечению (в частности, объем оперативной памяти должен быть не менее
256 Мбайт, свободный объем жесткого диска для работы с Microsoft Visual Studio
.NET – не менее 10 Гбайт).
– Кроме того, некоммерческие версии программных продуктов Microsoft, которые
зачастую предоставляют новые существенные возможности, в недостаточной степени устойчивы в работе, а документация по ряду новых функций программного
обеспечения представлена не в полном объеме.
– Поддержка теоретически интересных и практически полезных языков программирования реализована лишь отчасти (скажем, компилятор для языка программирования SML для Visual Studio .NET находится в процессе реализации). Поскольку
многие компиляторы для языков программирования предоставляюется сторонними по отношению к Microsoft компаниями-разработчиками или некоммерческими
учреждениями, результаты их деятельности поддаются контролю и доработке с
ограничениями.
– Комплекс программно-инструментальных средств, реализующий подход .NET
(включая и компиляторы для языков программирования) ратифицирован по международным стандартам не в полном объеме.
Безусловно, .NET является выдающимся достижением современной индустрии программирования. Достаточно сказать, что корпорация Microsoft считает именно .NET своей стратегической идеологией и технологической платформой на ближайшее десятилетие.
Несомненное качественное превосходство над существующими средствами автоматизированного проектирования и быстрой реализации прикладного программного обеспечения (в частности, Inprise Delphi и JBuilder, Oracle Developer, Microsoft Visual Studio и
др.) достигается за счет следующих основных факторов:
– интероперабельность и межъязыковое взаимодействие;
– многоуровневая, гибкая и надежная политика безопасности;
– интеграция с технологией web-сервисов;
– упрощение процедуры развертывания и использования программного обеспечения.
4.2 Описание платформы .NET
Корпорацией Microsoft предложен новаторский компонентно-ориентированный подход к программированию, который является развитием объектно-ориентированного
направления. Согласно этому подходу, интеграция объектов (возможно, гетерогенной
природы) производится на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты. Такой подход существенно облегчает
написание и взаимодействие программных «молекул»-компонент в гетерогенной среде
проектирования и реализации. Стандартизируется хранение и повторное использование
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
49
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
компонент программного проекта в условиях распределенной сетевой среды вычислений,
где различные компьютеры и пользователи обмениваются информацией, например, взаимодействуя в рамках исследовательского или бизнес-проекта.
Существенным преимуществом следует считать и возможность практической реализации принципа «всякая сущность является объектом» в гетерогенной программной среде. Во многом это стало возможным благодаря усовершенствованной, обобщенной системе типизации Common Type System, или CTS, которая будет подробнее рассмотрена в
одной из следующих лекций.
Строгая иерархичность организации пространств для типов, классов и имен сущностей программы позволяет стандартизировать и унифицировать реализацию.
Новый подход к интеграции компонент приложений в среде вычислений Internet
(или так называемые веб-сервисы) дает возможность ускоренного создания приложений
для широкого круга пользователей.
Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных согласно различным
подходам к программированию.
Говоря о .NET как о технологической платформе, нельзя не отметить тот факт, что
она обеспечивает одновременную поддержку проектирования и реализации программного обеспечения с использованием различных языков программирования. При этом поддерживаются десятки языков программирования, начиная от самых первых (в частности,
COBOL и FORTRAN) и заканчивая современными (например, C# и Visual Basic). Ранние
языки программирования до сих пор активно используются, в частности, для обеспечения совместимости с ранее созданными приложениями, критичными для бизнеса (скажем, COBOL весьма широко применялся для создания прикладных программ, поддерживающих финансовую деятельность).
Применение технологии веб-сервисов – это не просто дань моде на Internet, а реальная (и, пожалуй, наиболее приемлемая) возможность обеспечения масштабируемости и
интероперабельности приложений. Под масштабируемостью понимают возможность
плавного роста времени ответа программной системы на запрос с ростом числа одновременно работающих пользователей; в случае веб-сервисов масштабируемость реализуется
посредством распределения вычислительных ресурсов между сервером, на котором выполняется прикладная программа (или хранятся данные) и компьютером пользователя.
Под интероперабельностью понимается возможность интегрированной обработки
гетерогенных данных, поступающих от разнородных прикладных программ. Именно
благодаря интероперабельности возможна унификация взаимодействия пользователей
через приложение с операционной системой на основе специализированного интерфейса
прикладных программ, или API-интерфейса (Application Programming Interface).
Следует отметить и то обстоятельство, что новая технология .NET не только востребована мировой общественностью, но и официально признана, что отражено в соответствующих стандартах ECMA (European Computer Manufacturers Association).
Теперь рассмотрим инструментальные возможности .NET как средства проектирования и реализации программного обеспечения, то есть, собственно, программирования в
широком смысле этого слова.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
50
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Прежде всего, необходимо отметить поддержку многоязыковой среды разработки
приложений CLR (Common Language Runtime).
Эта возможность появилась благодаря универсальному межъязыковому интерфейсу
Common Language Infrastructure, или CLI, который поддерживает разработку программных компонентов на различных языках программирования.
При этом несомненным преимуществом для программистов является то, что они могут разрабатывать (или дорабатывать) программное обеспечение на наиболее подходящем языке программирования. Здесь следует учитывать характер задачи (скажем, рекурсию или символьную обработку более естественно реализовать на языке функционального программирования, а формализацию структуры предметной области – на объектноориентированном языке). Кроме того, необходимо принимать во внимание опыт работы
программистов в команде разработчиков и тот язык программирования, на котором изначально создавалась система.
Отметим еще два существенных обстоятельства. Во-первых, основные сервисные
возможности для разработчиков, которые предоставляет среда .NET (отладка, анализ кода
и т. д.) не зависят от конкретного языка программирования, и, следовательно, программистам нет необходимости заново постигать особенности среды разработки, если требуется
перейти с одного языка на другой. Во-вторых, несмотря на то, что еще не все языки программирования поддерживаются .NET, существует возможность самостоятельной разработки транслятора для любого языка программирования, причем это не вызывает трудностей даже у программистов, практически не имеющих профессиональной подготовки в
области разработки компиляторов.
Кратко рассмотрим основные аспекты архитектурного решения Microsoft .NET
Framework, отметив прежде всего то обстоятельство, что важную роль играет среда разработки Microsoft Visual Studio.NET, а первостепенное значение имеет среда выполнения
программ – Common Language Runtime (CLR). Среда выполнения CLR реализует управление памятью, типами данных, межъязыковым взаимодействием, развертыванием
(deployment) приложений.
Существенным преимуществом конструктивного решения .NET является компонентно-ориентированный подход к проектированию и реализации программного обеспечения. Суть подхода состоит в принципиальной возможности создания независимых составляющих программного обеспечения с унифицированной интерфейсной частью для
многократного повторного и распределенного использования. При этом продуктивность
решения обусловлена многоязычностью интегрируемых программных проектов (концепция .NET потенциально поддерживает произвольный язык программирования, в числе
наиболее известных языков – C#, Visual Basic, C++ и др.).
В ходе компиляции программа на .NET-совместимом языке программирования
трансформируется в соответствии с заранее заданной обобщенной спецификацией языка
Common Type System (CTS). Система типов CTS полностью описывает все типы данных,
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
Автор: Алексеев Н.А.
51
Рис. 4.1 -Схема компиляции Common Language Runtime
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
поддерживаемые средой выполнения, определяет их взаимосвязи и хранит их отображения в системе типов .NET.
Под Common Language Specification (или CLS) понимается набор правил, определяющих подмножество обобщенных типов данных, в отношении которых гарантируется,
что они безопасны при использовании во всех языках .NET.
Интерфейсы реализуются посредством форм Windows и ASP.NET для вебприложений.
В ходе выполнения процедуры трансляции исходный текст программы (написанный
на SML, C#, Visual Basic, C++ или любом другом языке программирования, который поддерживается .NET) преобразуется компилятором в так называемую сборку (assembly) и
сохраняется в виде файла динамически присоединяемой библиотеки (Dynamically Linked
Library, DLL) или исполняемого файла (Executable, EXE) (см. рис. 2.4).
Естественно, что для каждого компилятора (будь то компилятор языка C#, csc.exe
или Visual Basic, vbc.exe) средой времени выполнения производится необходимое отображение используемых типов в типы CTS, а программного кода – в код «абстрактной
машины» .NET – MSIL (Microsoft Intermediate Language).
В итоге программный проект формируется в виде сборки – самодостаточного компонента для развертывания, тиражирования и повторного использования. Сборка идентифицируется цифровой подписью автора и уникальным номером версии.
Рассмотрим достаточно обобщенный пример трансляции многокомпонентного гетерогенного программного проекта под управлением Microsoft .NET (см. 2.4).
Рис. 4.2 -Схема выполнения CLR
Предположим, что компоненты проекта написаны на трех языках программирования: уже знакомом нам языке SML, изучаемом языке C#, а также языке С++, который характеризуется возможностью создания потенциально небезопасного кода (в частности,
динамического распределения памяти).
Исходные тексты компонент проекта транслируются, соответственно, компиляторами с языков SML, C# и C++ в унифицированный MSIL-код и сохраняются в файлах в виде сборок.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
52
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
В ходе компоновки и выполнения программного проекта Just-In-Time (JIT) компилятор среды CLR производит выполнение проекта с «ленивым» (по мере необходимости)
означиванием оттранслированного промежуточного кода сборок.
Существенно, что потенциально небезопасный код на языке C++ принципиально невыполним собственно JIT-компилятором, но исполняется посредством сервисов операционной системы. Ответственность за работоспособность программы и безопасность кода в
этом случае лежит уже не на среде проектирования и разработки программного обеспечения .NET, а на программисте-разработчике.
Существенным позитивным отличием Microsoft .NET от существующих аналогов на
современном рынке программного обеспечения является универсальная система типизации.
В ходе компиляции программа на .NET-совместимом языке программирования
трансформируется в соответствии с заранее заданной Common Type System (CTS) обобщенной спецификацией языка. Система типов CTS полностью описывает все типы данных, поддерживаемые средой выполнения, определяет их взаимосвязи и хранит их отображения в систему типов .NET.
Рис. 4.3 -Унииверсальная система типизации (UTS).
Система типизации Microsoft .NET представляет собой частично упорядоченное
множество, которое на качественном уровне может пониматься как ISA-иерархия (аббревиатура ISA происходит от английских слов «is a», которые означают «является одним
из»).
Так, например, высказывание STUDENT ISA PERSON означает, что тип STUDENT
является подтипом типа PERSON (здесь вполне уместна аналогия с множествами и
вполне точна аналогия с доменами).
Таким образом, система типов Microsoft .NET образует иерархию с возрастанием
общности снизу вверх (см. 2.4), в которой явно выделяются две большие группы типов, а
именно, типы-ссылки и типы-значения. Различие между последними определяется особенностями вызова в процедурах: по имени или по значению (call-by-name, CBN) и по
ссылке (call-by-reference, CBR).
Заметим также, что система типизации Microsoft .NET помимо развитой иерархии
предопределенных типов позволяет пользователю создавать собственные типы (как типы-ссылки, так и типы-значения) на основе уже существующих.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
53
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Изложение важнейших аспектов Microsoft .NET было бы неполным, если бы мы не
упомянули о таком существенном архитектурном принципе как веб-сервисы.
Значение веб-сервисов заключается в распределении возможностей разработанных
прикладных систем по каналам Internet.
Заметим, что центральным блоком в схеме (рис.2.4) является .NET Framework, который можно рассматривать как библиотеку базовых объектов и операций над ними.
Рис. 4.4 -Веб-серверы в .NET
В качестве среды разработки прикладных систем целесообразно использовать
Microsoft Visual Studio .NET, предоставляющую целый комплекс развитых средств создания, редактирования и отладки программного кода на различных языках программирования. В случае несложных задач можно ограничиться примитивными редакторами текста
программ, подобных Notepad.
Интерфейсная часть прикладной программной системы в Internet-архитектуре представлена так называемыми веб-формами, предназначенными для ввода и вывода данных
в унифицированном формате.
В качестве языка реализации может использоваться язык гипертекстовой разметки
HTML (HyperText Markup Language). Взаимодействие между клиентом и приложением в
простейшем случае осуществляется с использованием традиционного Internet-протокола
передачи данных HTTP (HyperText Transfer Protocol).
Структурированные данные хранятся в формате XML (вариант HTML с более строгим синтаксисом).
Заметим, что технология веб-сервисов, реализованная Microsoft, допускает интеграцию с компонентами независимых производителей.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
54
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
Попытаемся сформулировать определение понятия «веб-сервис» (или, иначе, «вебслужба»).
Под веб-сервисами обычно понимают программируемые компоненты прикладных
программных систем, которые доступны для клиента (пользователя) посредством стандартных протоколов, применяемых для работы в Internet-среде.
Как уже упоминалось ранее, именно веб-сервисы являются одной из важнейших составляющих идеологии .NET, центральной частью данной архитектуры, поскольку предназначены для реализации декларируемого Microsoft основополагающего принципа
«программное обеспечение как сервис».
Смысл использования веб-сервисов состоит в возможности распределения функций
разработанных прикладных систем по глобальной сети.
Для реализации этой задачи веб-сервисы организуются на проверенных временем,
традиционных, а также развивающихся стандартах взаимодействия приложений в
Internet, а именно:
– HTTP – стандартный протокол обмена гипертекстовыми документами в Internet с
возможностью передачи данных посредством веб-форм;
– XML – формат хранения структурированных данных с возможностью обмена ими
по Internet-каналам;
– SOAP – стандартный протокол взаимодействия компонент (глобально) распределенного приложения (Simple Object Access Protocol);
– UDDI – стандарт интеграции приложений (Universal Description, Discovery and Integration);
– WSDL – универсальный язык описания веб-сервисов (Web Service Description
Language),
а также целом ряде других менее употребительных протоколов.
Одним из принципиальных технологических преимуществ проектирования и реализации программного обеспечения, декларируемых Microsoft, является так называемый
компонентный подход к программированию.
В своей основе указанный подход совпадает с традиционным объектноориентированным, однако он имеет ряд важных особенностей. Поскольку конечной целью учебного курса является гетерогенное компонентное программирование, необходимо
с самого начала уяснить смысл основных понятий, на которых зиждется компонентный
подход.
Центральной концепцией подхода (и это очевидно уже из названия) является понятие компонента.
Под компонентом имеется в виду независимый модуль программного обеспечения,
который можно использовать повторно, а также тиражировать.
В отличие от «традиционных» объектов ООП компоненты обладают следующими
характеристическими свойствами:
– в целом компонент обладает более высоким уровнем абстракции по сравнению с
объектом (под последним понимается конструкция уровня языка программирования);
– компоненты могут содержать в своем составе множественные классы;
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
55
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
– компоненты с точки зрения пользователя являются инвариантами по отношению к
тому языку программирования, на котором они реализованы.
Таким образом, оказывается, что в общем случае разработчик и пользователь компонента могут быть территориально разделены и имеют возможность использовать различные языки программирования в рамках единой среды разработки приложений Microsoft
.NET.
Заметим, что попытки построения компонентных программных систем предпринимались и рядом других разработчиков программного обеспечения (в частности, технология JavaBeans производства Sun Microsystems), а также международных ассоциаций, объединяющих усилия исследователей и практиков в области объектного программирования
(например, стандарт брокеров объектных запросов CORBA организации Object
Management Group).
В основе таких попыток лежали варианты объектных моделей. Один из подобных
вариантов, детально проработанный с математической точки зрения,– модель двухуровневой концептуализации, которую нам предстоит рассмотреть в ходе данного курса. Пока
же лишь кратко охарактеризуем основные отличительные особенности наиболее известных из представленных на рынке современного программного обеспечения объектных
моделей.
Прежде всего, рассмотрим компонентную модель Microsoft, которая обычно обозначается в литературе аббревиатурой COM (Component Object Model).
Компонентная объектная модель COM является основным стандартом Microsoft для
компонентного проектирования и реализации программного обеспечения. На сегодня это
самая развитая, и, пожалуй, самая удачная в практическом плане модель, которая обеспечивает возможность инициализации и использования компонентов как внутри одного
процесса, так и между процессами или между компьютерами независимо от языка реализации. COM-модель поддерживается в идеологии .NET для целого ряда языков программирования (C#, SML, Visual Basic, C++ и др.), является основой для ActiveX, OLE, а также для многих других технологий Microsoft.
В отличие от СОМ, модель Java Beans, базовый стандарт Sun Microsystems для компонент, оказывается зависимой от языка реализации.
Исследовав основные особенности объектно-ориентированного и компонентного
подходов к проектированию и реализации программного обеспечения, произведем краткий сравнительный анализ этих особенностей и подходов в целом.
Прежде всего, перечислим основополагающие понятия, характеризующие каждый
из подходов. Затем сопоставим эти подходы друг с другом с целью поиска аналогий между ними.
В объектно-ориентированном подходе ключевыми следует считать, в частности, понятия класса и интерфейса. Заметим, что в компонентно-ориентированном подходе эти
понятия также являются системообразующими.
При этом под классом понимается базовая сущность, определяемая как совокупность элементов.
Под интерфейсом понимается набор семантически связанных абстрактных элементов. Для компонентно-ориентированного подхода понятие интерфейса имеет первостеФайл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
56
Автор: Алексеев Н.А.
Информационные телекоммуникационные платформы и стандарты Интернет.
Error! Use the Home tab to apply Заголовок 1 to the text that you want to appear here. - Error! Use the Home tab to apply
Заголовок 1 to the text that you want to appear here.
пенное значение, поскольку исключительно посредством этого механизма клиент в архитектуре с моделью COM может непосредственно осуществлять взаимодействие с COMклассом. Заметим, что интерфейсы повышают безопасность кода, так как взаимодействие
с объектом происходит не непосредственно, а через указатель (ссылку). Понятия свойства
(как атрибута объекта) и метода (как операции над объектом), как и механизма событий
(соотнесений над объектами предметной области), свойственны обоим подходам.
Принципиально новым является наличие в COM-модели сборок – самодостаточных
единиц информации для инсталляции и развертывания программных продуктов.
В целом компонентный подход является более удобным с практической точки зрения, хотя механизмы, реализованные в нем, принципиально сравнимы с возможностями
ООП.
Файл: 308839792 Создан: 27.12.2004 Модифицирован: 28.01.2016
57
Автор: Алексеев Н.А.
Download