[an error occurred while processing this directive]

1. Общие сведения об Internet/Intranet

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

1.1. Основы технологии Internet/Intranet

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

1.1.1. Сети Internet и WWW

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

В настоящее время существуют два созвучных термина - internet и Internet. Термин internet относится к технологии обмена данными, основанной на использовании семейства протоколов TCP/IP, а Internet - это глобальное сообщество мировых сетей, которые используют internet для обмена данными. Как правило, термин "TCP/IP" это то же самое, что и "набор протоколов TCP/IP", или "набор протоколов internet", или "технология internet".

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

1.1.2. Принципы организации WWW

В марте 1989 года Тим Бернерс-Ли предложил руководству исследовательского центра CERN концепцию новой распределенной информационной системы, которую он назвал WorldWideWeb. Тим Бернерс-Ли считал, что информационная система, построенная на принципах гипертекста, должна объединить все множество информационных ресурсов CERN, которое состояло из базы данных отчетов, компьютерной документации, списков почтовых адресов, наборов данных экспериментов, информационной реферативной системы и т.п. Основная метафора гипертекста - это "электронная книга" с автоматически поддерживаемыми переходами по ссылкам. Гипертекстовая технология должна была позволить легко переходить с одного документа на другой с помощью гипертекстовых ссылок.

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

Язык гипертекстовой разметки HTML был создан на опыте использования редактора TeX и стандартного языка разметки SGML. Основная идея гипертекста заключается в присутствии внутри ASCII-текста форматирующих полей и ссылок как на части внутри документа, так и на другие документы. Поля и ссылки также являются фрагментами ASCII-текста, но, подобно программе, следуют строгим синтаксическим правилам. Благодаря этому, пользователь имеет возможность просматривать документы в том порядке, какой ему больше нравится, а не последовательно, как при чтении книг. Help-файлы, с которыми сталкивался любой пользователь ЭВМ, дают хорошее представление о гипертекстовой организации информации, позволяющей пользователю переходить от темы к теме, используя выделенные слова или поля текста.

Чтобы получить файл из Internet, броузер (browser, программа для просмотра Web, клиент) должен знать, где находится файл и как общаться с компьютером, на котором этот файл находится. Поэтому требуется, чтобы программа-клиент WWW передала имя определенного файла, его местоположение в Internet (адрес хоста) и метод доступа (обычно протокол типа HTTP или FTP). Комбинация этих элементов формирует универсальный идентификатор ресурса (UniversalResourceIdentifier, URI). URI определяет способ записи адресов различных информационных ресурсов. В основу URI были заложены идеи расширяемости, полноты и читаемости. Реализация URI для WWW называется URL (UniversalResourceLocator).

Общий формат ссылки URL:

протокол://узел/путь/файл[#метка]

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

Вот некоторые примеры URL:

http://www.citmgu.ru/glossary.htm#P
http://citnt/text/docs/intro.htm
http://190.248.27.124/scripts/proc1.exe

В первом случае вызывается фрагмент HTML-файла с указанием доменного имени Web-сервера. Во втором примере используется простое имя узла. Третий пример содержит вызов процедуры при помощи IP-адреса Web-сервера.

Ссылки URL могут быть относительными. Например, из документа http://citnt/text/docs/intro.htm и для сервера citnt допустимы следующие обращения:

books/book1.doc
/images/pic24.gif
http://citnt/text/
http://citnt/

Первая ссылка выполняется относительно текущего каталога, вторая - по отношению к корню Web-сервера. Последние две ссылки правильнее называть неполными. При этом в указанных каталогах отыскивается стандартный индексный файл index.html (index.htm) или default.htm. В некоторых броузерах при отсутствии такого файла на экран выдается оглавление каталога.

При записи всегда используется нотация Unix (слэши, а не обратные слэши), для локальных дисков - идентификатору диска предшествует слэш, а вместо двоеточия ставится вертикальная черта, например: file:///C intranet/lab1/test1.htm

Глобальная сеть Internet, объединяющая гигантские информационные ресурсы, оставалась бы колоссальным банком данных, малоизвестных и потому малодоступных. Конечно, начальная страница по интересующей тематике и дальнейшие гипертекстовые ссылки рано или поздно выведут на необходимую информацию, но как найти нужные страницы среди сотен миллионов, даже если известно, что интересующая информация организована в гипертекстовые ссылки. Мощные поисковые службы Yahoo, Lycos и AltaVista обеспечивают быстрый поиск и доступ практически ко всей информации, находящейся в Internet.

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

1.1.3. Корпоративные Intranet-сети

Применение internet- и WWW-технологий в корпоративной сети, изолированной от Internet, называется Intranet-технологией. Intranet-сети, получающие все более широкое распространение, состоят из внутрикорпоративных Web-серверов, доступ персонала к которым организован через ЛВС или глобальные сети.

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

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

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

"Меня убедил опыт собственной компании, - говорит Билл Гейтс. - В Microsoft мы опубликовали в своей сети intranet тысячи документов для использования внутри корпорации. Я с удивлением обнаружил, что с вводом у нас сети intranet число обращений к данным возросло в несколько раз (прим.: по данным другой статьи - в 3 раза). Это весьма примечательный факт, если учесть, что и раньше ко многим из таких файлов добраться было нетрудно, а пользующиеся ими сотрудники неплохо владеют компьютером и весьма заинтересованы в изучении хранящейся в них информации". Это свидетельство особенно показательно, так как именно Microsoft выпускает и рекламирует пакет коллективной работы Exchange как средство публикации общедоступной информации через систему папок.

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

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

1.1.4. Преимущества и недостатки Internet/Intranet-технологии

Достоинства и недостатки Intranet-технологии проистекают из особенностей, заложенных при создании WWW-технологий:

Преимущества

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

Недостатки

Прикладные системы совместной работы для intranet-сетей не обладают мощными возможностями традиционного ПО для групповой работы. Существует ограниченный набор средств привязки Web-серверов к базам данных и другим вспомогательным прикладным системам. Необходимо организовывать и поддерживать функционирование отдельных прикладных систем, в частности, таких, как электронная почта и Web-серверы, вместо того, чтобы пользоваться одной унифицированной системой, как в пакетах для групповой работы. Реализация Intranet требует наличия сети TCP/IP в отличие от других пакетов для групп, которые будут работать с существующими протоколами передачи данных по ЛВС. В intranet-сетях нет встроенных средств тиражирования для удаленных пользователей, в то время как в пакетах типа LotusNotes они есть. Язык HTML и протокол HTTP не обладают достаточной мощностью для разработки прикладных систем клиент-сервер. Стандарты программирования для Web, например, такие, как Java, являются относительно новыми и недостаточно освоенными.

1.2. Архитектура Internet/Intranet-приложений

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

1.2.1. Основные информационные ресурсы и потоки

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

В информационную инфраструктуру корпорации могут входить следующие информационные ресурсы:

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

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

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

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

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

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

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

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

Базы данных не имеют прямой поддержки в Internet/Intranet. Доступ и ведение БД производится через серверные или клиентские приложения. При этом запросы на поиск и ввод данных оформляются в виде HTML-форм.

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

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

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

1.2.2. Средства разработки, эксплуатации и сопровождения Internet/Intranet-приложений

В состав средств, предназначенных для разработки Internet/Intranet-приложений, их эксплуатации и сопровождения, входят следующие группы:

Средства Run-time включают:

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

Клиентские приложения имеют различную природу. Это может быть, прежде всего, гипертекст или гипермедиа. Дополнительную функциональность обеспечивают сценарии на языках JavaScript или VBScript, мобильные Java-апплеты, helper-программы (редакторы текста, процессоры электронных таблиц и другие готовые программы, активируемые в зависимости от типа файла) и клиентские расширения (ActiveX и Plug-in).

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

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

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

Программное обеспечение Internet-серверов служит для поддержки электронной почты, FTP-сервиса для передачи файлов, возможностей доступа к новостям и др.

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

Инструментальные средства разработки Internet/Intranet-приложений очень разнообразны и включают:

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

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

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

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

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

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

В качестве средств программирования серверных приложений могут использоваться как обычные системы программирования (C/C++, VisualBasic, Java и др.), так и интерпретаторы команд (UNIX-shell, REXX и др.), интерпретаторы и компиляторы сценариев на JavaScript, VBScript и Perl.

Для создания клиентских и серверных расширений используются системы программирования, позволяющие создавать компоненты с использованием механизмов ActiveX или Plug-in, представленных в виде встроенных или дополнительных библиотек интерфейсов.

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

Далее будем рассматривать в основном инструментальные средства разработки Intranet-приложений и только по необходимости касаться средств Run-time и администрирования.

1.2.3. Традиционная схема публикации и просмотра документов

Изначально технология Internet/Intranet/WWW предназначалась для облегчения доступа к информации и публикации документов (рисунок 1.1). Программа-клиент (броузер) выполняет функции интерфейса пользователя (диалоговый ввод-вывод PS и логика диалога PL) и обеспечивает доступ практически ко всем информационным ресурсам Internet/Intranet посредством HTTP-сервиса. База данных гипертекста - это часть файловой системы, которая содержит текстовые файлы в формате HTML и связанные с ними графику и другие ресурсы. Фактически, броузер является интерпретатором HTML-текста. И как типичный интерпретатор клиент в зависимости от команд разметки выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но и обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных графических образов. При анализе URL-спецификаций или по командам сервера клиент запускает дополнительные help-программы для работы с документами в форматах, отличных от HTML, например, GIF, JPEG, MPEG, Postscript и т.п. Кроме того, в гипертекст может быть встроен текст сценария на JavaScipt, VBScript и др., который расширяет логику диалога (PL) и обеспечивает простую прикладную обработку (BL). Броузер вызывает соответствующий интерпретатор для исполнения сценария.

Рис. 1.1. Традиционная схема публикации и просмотра документов

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

1.2.4. Intranet-приложения с доступом к БД

Наличие диалоговых свойств в HTML и интерфейса CGI позволяет строить Intranet-приложения с доступом к БД (рисунок 1.2). Наиболее распространена схема динамической публикации отчетов. При этом в качестве CGI-процедуры используется параметризуемый генератор отчетов. Однако это не единственная схема, возможно применять программы ввода информации в БД. Для контроля вводимых данных лучше применять сценарии на клиентской стороне, а не серверные процедуры. В последнем случае замедляется реакция, и диагностика ошибок носит отложенный пакетный характер.

Если используются традиционные статичные страницы гипертекста, то в ответ на запрос клиента Web-сервер передает страницу в формате HTML. Однако при работе Intranet-приложения с базой данных адрес URL указывает не на страницу гипертекста, а на серверную программу или сценарий. Серверная процедура получает введенные пользователем данные, формирует и передает SQL-запрос (определяющий логику управления данными DL) и, возможно, данные к СУБД. Сервер БД по запросу выполняет обновление, вставку, удаление или выборку записей из БД. CGI-процедура полученные результаты преобразует в формат HTML или в формат диалоговых переменных. Затем Web-сервер посылает полученную HTML-cтраницу или значения диалоговых переменных броузеру для отображения. Так как этот процесс основан на технологии Web, клиентской платформой может стать любой компьютер, на котором исполняется Web-броузер, а серверной платформой - любая ЭВМ под управлением Web-сервера.

Использование CGI-процедур имеет ряд недостатков - статичное представление информации, преобразование результата-отчета в HTML-файл, отсутствие динамического просмотра изменения информации в базе данных, процедура "не помнит состояний запросов" - каждое обращение к БД требует повторного установления соединения. Кроме того, такой принцип работы перегружает коммуникационную среду.

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

Рис. 1.2. Схема Intranet-приложения с доступом к БД

1.2.5. Интерпретируемые загружаемые Intranet-приложения

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

Для исполнения апплетов на любой архитектуре необходимо обеспечить их выполнение на абстрактной архитектуре. Конкретизацией занимается Web-броузер. Апплеты представляют собой переносимый бинарный код, способный функционировать на любой архитектуре, где реализована виртуальная Java-машина, интерпретирующая байт-коды, порожденные соответствующим компилятором. Байт-коды были впервые реализованы при создании переносимых Pascal-программ и получили название P-кодов.

Рис. 1.3. Схема интерпретации загружаемых Intranet-приложений

Схема, используемая при реализации языка Java, во многом схожа с принципами P-кодов. Исходный текст на языке Java транслируется специальным конвертером (JavaCompiler) в Java-байт-код. При использовании в Internet/Intranet этот код передается по каналам связи на удаленную машину, где попадает в загрузчик байт-кодов (BytecodeLoader). Затем он подвергается специальной динамической проверке, которую осуществляет верификатор байт-кодов (BytecodeVerifier). Предварительные проверки, возложенные на верификатор, гарантируют корректность типов параметров всех пришедших байт-инструкций, отсутствие переполнения стека операндов и, наконец, корректность доступа к полям объекта с учетом атрибутов. Это предпринято с целью обеспечить безопасность исполняемого кода, а также для проведения скрытой оптимизации. Затем проверенный байт-код передается интерпретатору, который посредством исполняющей системы виртуальной Java-машины осуществляет привязку к конкретной архитектуре.

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

1.2.6. Взаимодействие Web-клиента с другими серверами

В настоящее время броузеры WWW помимо Web-серверов (через HTTP) могут взаимодействовать с различными типами серверов с использованием протоколов FTP, gopher, mailto, news, nntp, telnet, wais, file (таблица 1.1, рисунок 1.4). В состав URL входит информация о методе доступа, требующаяся броузеру WWW, чтобы использовать любой из этих протоколов.

Таблица 1.1 Схемы доступа URL httpПротокол передачи гипертекстаftpПротокол передачи файловgopherПротокол GophermailtoАдрес электронной почтыnews, nntpНовостиtelnetСеанс telnetwaisСервер протокола WAISfileИмя файла в компьютере
Схема доступаОписание доступа

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

Рис. 1.4. Взаимодействие Web-клиента с другими серверами

1.3. Обзор языков и средств программирования Internet

Для разработки Internet/Intranet-приложений используется широкий спектр языков и средств программирования:

1.3.1. Язык гипертекста HTML

Разработчики HTML пытались решить две задачи:

Первая задача была решена за счет выбора теговой модели описания документа. Такая модель широко применяется в системах подготовки документов для печати. К моменту создания HTML существовал стандарт языка разметки печатных документов - StandardGeneralisedMarkupLanguage, который и был взят в качестве основы HTML.

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

1.3.2. Язык виртуальной реальности VRML

После создания HTML естественным было создание открытого, общепринятого языка, позволяющего описывать трехмерные сцены и увязывать их с гиперсвязями, принятыми в WWW - что-то типа HTML, но применительно к виртуальной реальности. Так возник термин VirtualRealtyMarkupLanguage (VRML), где слово Markup было позднее заменено на Modelling, для того, чтобы подчеркнуть его графическую сущность. Первая версия VRML появилась в 1994 г. на основе формата OpenInventorASCIIFileFormat (IFF) фирмы SGI. Подмножество IFF, расширенное сетевыми возможностями, было положено в основу базовых форм VRML.

1.3.3. Язык программирования Java

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

Java является знакомымязыком программирования, так как синтаксис Java во многом напоминает C++. Исключение адресной арифметики по мнению создателей должно обеспечить более надежный код по сравнению с С++. Надежность программ обеспечивается проверками на этапе компиляции и последующей проверкой во время выполнения.

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

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

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

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

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

В настоящее время выпущено несколько систем визуальной разработки программ на Java. Наиболее известными являются:

1.3.4. Языки сценариев JavaScript

Язык JavaScript разрабатывался компанией Netscape как язык сценариев просмотра HTML-страниц. JavaScript является объектно-ориентированным языком. В целом язык ориентирован на встроенные объекты NetscapeNavigator: окна, формы, поля форм, элементы рабочих областей Navigator. Это сильно облегчает обучение языку и позволяет сразу писать интересные и полезные программы.

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

VisualBasicScript

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

Так же, как VisualBasic облегчает разработку приложений для Windows, а VisualBasicforApplication (VBA) делает то же для приложений, базирующихся на MicrosoftOffice, VisualBasicScript (VBScript), дает в руки тех, кто создает Internet-приложения, аналогичный по мощности инструмент.

VBScript является простым подмножеством VisualBasicforApplication и, следовательно, полностью с ним совместим. Все эти три продукта можно рассматривать следующим образом: VisualBasic - полная интегрированная среда разработки, VisualBasicforApplication - инструмент для создания приложений, работающих в рамках MicrosoftOffice, VBScript - инструмент для написания приложений, функционирующих в программах, работающих в Internet.

VBScript позволяет разрабатывать клиентские приложения, автоматически загружаемые вместе с Web-страницей. Затем скрипты могут выполняться на клиентской ЭВМ как обычные программы. VBScript был разработан для применения в корпоративных Интранет-сетях как средство для создания приложений клиент-сервер. VBScript поддерживается броузером InternetExplorer, начиная с версии 3.0 на платформах Macintosh и Windows.

PERL

Объектно-ориентированный язык PERL (PracticalExtractionandReportLanguage) является переносимым, интерпретируемым языком, хорошо приспособленным для фильтрации и преобразования текста. Интерпретаторы PERL являются бесплатными программными продуктами. PERL находит широкое распространение в Internet в среде UNIX. Предшественники PERL - редактор sed и утилита awk. Язык в определенной части похож на С, но имеет и существенную специфику.

Язык PERL представляет программисту широкий спектр возможностей:

Основное назначение PERL в Internet связано с разработкой серверных приложений на основе CGI.

Tcl/Tk

Пакет Tcl/Tk (ToolCommandLanguage / ToolKit) состоит из языка Tcl и Tk - средства для работы с библиотеками виджетов. Язык Tcl - это интерпретируемый язык сценариев, особенно удобный при написании пользовательских интерфейсов программ. В отличие от тяжеловесного Motif, Tcl/Tk может обходиться без C/C++.

Tcl разработан в SunMicrosystems, ориентирован на сетевые применения, платформно-независим (работает на всех Windows, Macintosh и Solaris 2.x) и имеет мощные механизмы защиты (тиклеты могут исполняться в безопасном окружении Safe-Tcl). Tcl/Tk будет работать в паре с Java, а не с C++. Tcl по применению расположится рядом с VisualBasic, а Tk, соответственно, рядом с ActiveX.

Sun выпустила семейство программ для работы с технологией Tcl/Tk. В основной пакет Tcl7.5 Tk4.1 входят две программы: оболочка командного интерпретатора SHELL и графический интерфейс разработки Wish, библиотека и документация. Наиболее популярен модуль расширения к NetscapeNavigator. Для работы он не требует пакета Tcl7.5 Tk4.1, при этом пользователь может не только исполнять тиклеты в окне NetscapeNavigator, но и встраивать Tcl-сценарии в свои Web-страницы. Мощная среда разработки графических интерфейсов SpecTcl (вместе cSpecJava) для работы требует пакет Tcl7.5 Tk4.1.

Редактор для гипертекстовой графики WebTkImagemapEditor для работы требует пакет Tcl7.5 Tk4.1. Компактный полнофункциональный HTTP-сервер TclWebServer целиком написан на Tcl (около 1000 строк кода), работает с CGI и использует безопасный режим SafeTcl.

1.4. Обзор протоколов и интерфейсов

Основными протоколами и интерфейсами, связанными с Internet/Intranet, являются:

Помимо перечисленных протоколов и интерфейсов в Internet используется ряд других, например, почтовые протоколы, SMTP и POP, протокол передачи файлов FTP, протокол новостей NNTP и т.п.

1.4.1. Протокол HTTP

Подобно всему в Internet, действия WWW зависят от протокола передачи гипертекста HTTP. Так же, как в протоколе FTP, почтовых протоколах POP и SMTP, в HTTP задан набор команд, передающийся посредством строк текста в формате ASCII. Транзакция HTTP состоит из четырех частей: установление соединения, запрос, ответ и завершение. Программа-клиент устанавливает TCP-соединение с официальным портом HTTP (80) на удаленном компьютере. Затем клиент посылает запрос к серверу HTTP. После того, как сервер HTTP высылает ответ, клиент или сервер закрывают соединение. Каждая транзакция HTTP подчиняется вышеописанной схеме.

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

1.4.2. Шлюзовой интерфейс CGI

Спецификация CommonGatewayInterface предложена группой NCSA. Интерфейс CGI был специально разработан для расширения возможностей WWW за счет подключения всевозможного внешнего программного обеспечения. Такой подход логично продолжал принцип публичности и простоты разработки и наращивания возможностей WWW. Если команда CERN предложила простой и быстрый способ разработки баз данных, то NCSA развила этот принцип на разработку программных средств.

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

1.4.3. Прикладные интерфейсы Web-серверов

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

Прикладные интерфейсы Web-серверов призваны улучшить эту ситуацию. Они реализуются в виде динамических библиотек (DDL в Windows и совместно используемые объекты в UNIX) в адресном пространстве Web-сервера.

Два ведущих производителя Web-серверов, Netscape и Microsoft, разработали свои API расширения серверов: ISAPI для InternetInformationServer и NSAPI для серверов Netscape.

DLL-библиотеки ISAPI имеют две точки входа:

Информация в HttpExtensionProc передается с помощью единственного параметра и указателя управляющего блока расширения. В этом блоке приведена информация о взаимодействии по данным между броузером и CGI-процедурой на Web-сервере.

Основными функциями ISAPI являются:

Дополнительную информацию можно найти в IISSDK фирмы Microsoft по адресу: http://www/microsoft.com/intdev/ .

Интерфейс NSAPI аналогичен ISAPI, но является сложным, теснее связан с конфигурацией сервера, но и более гибок. Конфигурация каждой функции NSAPI должна быть задана в объектной базе данных конфигурации Netsite. Блоки параметров NSAPI основаны на парах name-value (имя-значение), что похоже на передачу диалоговых переменных HTML-форм. Дополнительную информацию по NSAPI можно получить в Netscape по адресу: http://www/netscape.com/newsref/std/server_api.html .

1.4.4. Интерфейс связи с БД JDBC

JavaSoft, подразделение компании SunMicrosystems, в начале 1996 года анонсировало интерфейс прикладного программирования JDBC, который обеспечивает доступ к базам данных из переносимых, независимых от платформы приложений, написанных на языке Java. Предусмотренная в нем функция управления драйверами БД автоматически загружает в память компьютера требуемый JDBC-совместимый драйвер, что позволяет приложениям, использующим новый интерфейс от JavaSoft, взаимодействовать с разными БД. Описанная функция будет включена и в будущие пакеты Sun на языке Java. Кроме того, фирма намерена выпустить программный мост между JDBC и продуктами, основанными на спецификациях ODBC фирмы Microsoft.

О поддержке интерфейса JDBC и начале разработки ПО на его основе уже заявили IBM, Informix, ObjectDesign, Oracle, Sybase, а также поставщики инструментальных средств BorlandInternational, Gupta (Centura), Intersolv, OpenLinkSoftware, SASInstitute и Visigenic.

Содержание | Вперед

  [an error occurred while processing this directive]