Активные серверные страницы ASP
Новая технология фирмы Microsoft - активные серверные страницы ActiveServerPages (ASP)- позволяет использовать языки сценариев VBScript и JavaScript для создания динамичного, интерактивного содержимого WorldWideWeb. Применение технологии ASP дает возможность выполнять сценарии на сервере и отображать результат с помощью любого Web-броузера независимо от того, поддерживает он языки сценариев или нет.
До недавнего времени создание динамичного, интерактивного содержимого в Internet/Intranet требовало использования CGI или ISAPI/NSAPI-интерфейсов. В этом случае клиенты посылали HTTP-запросы, которые адресовались не статическим HTML-страницам, а серверным программам, написанным с помощью специальных средств, которые бы обрабатывали параметры и отсылали клиенту результат в виде потока HTML-тегов. Недостатком такого подхода является то, что создание программ такого рода - дело довольно затруднительное, никак не связанное с непосредственным написанием HTML-страниц.
Что предлагает технология ASP? С ее помощью можно создавать сценарии, выполняемые в контексте сервера. Такие программы интегрируются непосредственно в HTML-страницы и не требуют каких-либо дополнительных средств разработки. Самое важное, что создание HTML-страниц и создание серверных программ - это единый процесс.
Следует отметить, что указанная технология базируется на двух проверенных временем решениях: ActiveXScripting - для поддержки языков сценариев на уровне внутрипроцессорных CJM-серверов и OLEAutomation - для выполнения серверных компонентов ActiveX. Существует, однако, некоторое ограничение на тип этих компонентов. Так как они выполняются в контексте сервера, то не должны иметь пользовательский интерфейс.
Активные серверные страницы хранятся на сервере в файлах с расширением ASP. Каждый файл представляет собой ASCII-файл, в котором объединяются текст, отображаемый в клиентском броузере, теги языка HTML, служащие для форматирования текста, и программа на языке сценария. Последняя выделяется с помощью пары специальных тегов: <%
Здесь располагается сценарий %>
Анимация
Простой способ обогатить анимационными эффектами Web-страницу, не прибегая к программированию, - это сформировать анимационные GIF-файлы. Один анимационный GIF-файл содержит множество изображений, а движение персонажей обусловлено тем, что загрузка следующего кадра происходит в тот момент, когда предыдущий еще на экране. Это означает, что пока идет загрузка файла по линии связи, пользователь наблюдает за процессом в режиме анимации. В настоящее время средствами работы с анимационными GIF-файлами оснащены броузеры NetscapeNavigator 2.0 и MicrosoftInternetExplorer. Также возможна реализация анимационных эффектов другими способами, например, с помощью программ на языках Java и MacromediaShockwave, но для них требуются модули расширений или серверные сценарии, и обычно их на много труднее реализовать. Правда, в отличие от некоторых других типов анимации GIF-файлы не интерактивны.
Архитектура Internet/Intranet-приложений
Для анализа архитектуры Internet/Intranet-приложений необходимо рассмотреть основные информационные ресурсы и потоки, классификацию средств для разработки, эксплуатации и сопровождения подобных приложений, а также основные схемы взаимодействия компонентов системы.
Архитектура клиент-сервер, сервера БД и инструментальные средства
Архитектура клиент-сервер спроектирована, чтобы разрешить проблемы файл-серверных приложений путем разделения компонент приложения и размещение их там, где они будут функционировать более эффективно. Существует несколько возможных схем построения такой архитектуры.
Особенностью архитектуры клиент-сервер является использование выделенных серверов баз данных, понимающих запросы на языке структурированных запросов SQL и выполняющих поиск, сортировку и агрегирование информации на месте без излишней перекачки данных на рабочие станции. Клиенты серверов БД получают последовательно и порциями только результаты запросов.
Другая отличительная черта серверов БД - наличие справочника данных, в котором записаны структура БД, ограничения целостности данных, форматы вывода и даже серверные процедуры обработки данных по вызову или по событиям в программе.
Для реализации серверов БД используются системное ПО реляционных СУБД, понимающих язык запросов SQL, например: Oracle, Informix, Sybase, MSSQLServer. Многие из этих СУБД работают на различных аппаратных платформах и в средах разных ОС.
Объектами разработки в приложениях клиент-сервер, помимо диалога и логики обработки, являются, прежде всего, реляционная модель данных и связанный с ней набор SQL-операторов для типовых запросов для этой БД.
Большинство конфигураций клиент-сервер используют двухзвенную модель, состоящую из сервера и клиента, который обращается к услугам сервера. Для эффективной реализации такой схемы часто используют неоднородную сеть.
В классической схеме клиент-сервер значительная часть приложения располагается на клиенте, а СУБД - на сервере. Поскольку эта схема предъявляет наименьшие требования к серверу, она обладает наилучшей масштабируемостью. Однако сложные приложения, вызывающие большое взаимодействие с БД, могут жестко загрузить как клиента, так и сеть. Результаты SQL-запроса должны вернуться к клиенту для обработки, потому что там находится логика принятия решения. Такая схема возлагает дополнительное бремя администрирования приложений, разбросанных по различным клиентским узлам.
Можно сократить нагрузку на клиента и сеть, переместив целиком прикладную обработку на сервер, при этом вся логика обработки, оформленная в виде триггеров и хранимых процедур, выполняется на сервере БД. Триггер является обработчиком событий изменения (обновлений, добавлений и удалений) данных. Хранимая процедура - процедура с операторами SQL для доступа к БД, вызываемая по имени с передачей требуемых параметров и выполняемая на сервере БД. Компиляция повышает скорость выполнения хранимых процедур и сокращает нагрузку на сервер. Но, перегрузив хранимые процедуры прикладной логикой, можно потерять преимущества по производительности. Хранимые процедуры улучшают целостность приложений и БД, гарантируют актуальность коллективно используемых операций и вычислений. Улучшается сопровождение таких процедур, а также безопасность (нет прямого доступа к данным).
Группу инструментальных средств для создания информационных приложений с архитектурой клиент-сервер можно разделить на следующие подгруппы:
среды разработки приложений для серверов баз данных; независимые от СУБД инструменты для создания приложений клиент-сервер; средства поддержки распределенных информационных приложений.
Среды разработки приложений для серверов БД представляют собой системы программирования четвертого поколения 4GL или инструментальные средства быстрой разработки приложений RAD (RapidApplicationDevelopment). Особенностями этой подгруппы средств являются:
реализация удаленного доступа к СУБД по двухзвенной схеме клиент-сервер; связь клиентских приложений с серверами БД с помощью непроцедурного языка структурированных запросов SQL (кроме серверов Btrieve); обеспечение целостности БД, включая целостность транзакций; поддержка хранимых процедур на серверах БД; реализация клиентских и серверных триггеров-процедур; генерация элементов диалогового интерфейса и отчетов.
В качестве примера можно назвать инструменты Informix/4GL, Oracle*Forms и др.
Независимые инструментальные средства, ориентированные на многие платформы СУБД, представлены в виде средств быстрой разработки приложений RAD. Для таких средств создания приложений клиент-сервер характерны:
возможность распределения приложения на клиентах и/или серверах; создание приложений для разных серверов БД; поддержка спецификации ODBC (OpenDataBaseConnectivity) для доступа к различным серверам БД, включая СУБД для ПК; связь с мониторами транзакций для организации трехзвенной архитектуры приложений клиент-сервер; объектно-ориентированное программирование приложений; визуальный характер генерации приложения; ведение репозитория объектов и их свойств, что облегчает интеграцию со средствами автоматизации проектирования программ CASE; управление проектами и версиями приложений; интеграция приложения с электронной почтой и средствами офисной автоматизации.
Известными примерами независимых инструментальных средств разработки являются: PowerBuilder, JAM, Uniface и др.
Общим недостатком всех средств разработки приложений первого поколения является невозможность создания с их помощью больших и сложных приложений масштаба предприятия. Другая проблема - минимальные программные возможности: макроязыки и языки сценариев, которые хороши для решения только простых задач. Как увидим в дальнейшем, многие проблемы сняты в новых версиях инструментальных средств.
Средства поддержки распределенных приложений относятся к категории промежуточного программного обеспечения middleware для организации серверов приложений. Сюда входят разнообразные библиотеки и наборы инструментальных средств:
интерфейсы доступа к базам данных ODBC и IDAPI; шлюзы для систем управления базами данных; протоколы и команды мониторов обработки транзакций; почтовые интерфейсы MAPI, VIM, MHS, X.400 и EDI; средства обмена сообщениями MOM; протоколы связывания и встраивания объектов OLE и динамического обмена данными DDE; протоколы удаленного вызова процедур RPC и именованных конвейеров NamedPipes; средства коммуникационного ввода-вывода BSDSockets и WinSock.
Самостоятельную группу инструментальных средств составляют объектно-ориенти-рованные базы данных, которые используют для хранения объектов реляционные БД или применяют специальные хранилища объектов.
Аудио и видео
Наиболее распространенный способ воспроизведения видео на ПК связан с обработкой файлов в формате MPEG. Он позволяет демонстрировать видеофильмы, записанные на CD-ROM или жесткий диск, на полном экране монитора с частотой развертки 30 кадр./с. Существует два основных подхода к решению задачи передачи "живого" видео по Internet/Intranet: распространение файлов MPEG или AVI (AudioVideoInterleaved), как обычных данных; передача отдельных потоков звуковых или видеоданных, которые декодируются клиентским ПО в режиме реального времени. Преимущество второго метода для пользователя - исключается необходимость загружать многомегабайтный видеоклип в свой компьютер, на что при использовании обычного модема уходит не один час. Трудность реализации этого подхода не только в том, что Internet не обеспечивает такую же высокую пропускную способность, как внутренняя магистраль ПК. Помехи или задержки при передаче любого из множества пакетов данных, составляющие один кадр видео, могут нарушить весь поток. Не менее важно, чтобы клиентская рабочая станция справлялась с поступающим потоком. Технология потокового видео для Internet подразумевает подготовку видео или аудиопотоков, их компрессию и рассылку по сети клиентам, которые декомпрессируют их и воспроизводят результаты на экране или акустической системе компьютера. Подготовить аудио и видеопотоки можно с помощью любых средств подготовки мультимедийных файлов. Чтобы компенсировать чрезвычайно ограниченную полосу пропускания аналогового модема, производители ПО разрабатывают такие способы восстановления потерянных или искаженных пакетов и кадров, которые в любом случае гарантировали бы воспроизведение окончательного изображения - пусть с более низким качеством. При распространении по сетям IP такие программы обычно опираются на стандарт UserDatagramProtocol (UDP), позволяющий передавать данные быстрее, чем TCP: от клиентской станции не требуется подтверждения приема пакетов. Недавно заявившая о себе компания Vosaic предложила новый протокол VideoDatagramProtocol (VDP), согласно которому, как она утверждает, скорость доставки видеопотоков возрастает по сравнению со скоростью UDP или TCP в 44раза.
Базовая структура HTML-страницы
HTML-файлы всегда начинаются с тега <HTML> , который указывается в начале файла. Этот тег сообщает считывающему файл броузеру, что он имеет дело с HTML-файлом. Последней строкой в документе должна быть закрывающая пара </HTML> , которую можно интерпретировать как "конец HTML-страницы". Таким образом, каждая HTML-страница должна содержать строки
<HTML> </HTML>
Следующие теги разделяют документ на две секции: голову и тело. Для определения головы добавляется тег <HEAD> с закрывающей парой </HEAD>. С учетом этого HTML-страница принимает вид:
<HTML> <HEAD> </HEAD> </HTML>
В секции тела вводится текст и все то, что фактически должно появится на HTML-странице. Для определения тела применяется тег <BODY> с закрывающей парой </BODY>, помещаемые после тегов головы:
<HTML> <HEAD> </HEAD> <BODY> </BODY> </HTML>
Броузеры и серверы Intranet
Броузеры и Web-серверы являются краеугольными камнями WWW-технологии, они формируют Run-time среду соответственно для клиентских и серверных частей Internet/Intranet-приложений. Многие языковые возможности встроены в эти компоненты или реализуются за счет расширений клиентов и серверов.
Броузеры NetscapeNavigator и MicrosoftInternetExplorer
На сегодняшний день лучшими коммерческими броузерами являются NetscapeNavigator и MicrosoftInternetExplorer. Остальные броузеры не могут с ними сравниться, поскольку они либо не поддерживают последние расширения HTML, либо не имеют некоторых других крайне важных возможностей.
Чтение страниц Web
При просмотре большинства узлов Web не будет заметно никаких различий между возможностями отображения обоих броузеров. Однако, InternetExplorer 3.0 добавляет несколько усовершенствований: новое расширение HTML позволит узлам Web отображать кадры без рамок, придавая странице менее загроможденный вид. Дизайнеры узлов Web также смогут предоставлять посетителям возможность перемещать кадры и даже минимизировать для удобства некоторые из них. Кроме того, InternetExplorer поддерживает шрифты TrueType, так что авторы могут использовать на своих Web-страницах различные начертания символов.
В третью версию InternetExplorer, в отличие от Navigator, входит поддержка стилей HTML (CSS). Netscape обещает включить CSS лишь в следующую, четвертую версию своего броузера. Оба навигатора могут воспроизводить видео- и аудиофайлы, размещенные на странице Web, не пользуясь вспомогательными приложениями. Кроме того они позволяют просматривать трехмерные узлы Web, созданные при помощи VirtualRealityMarkupLanguage.
CorelOffice
Появление пакета CorelOfficeforJava корпорации Corel - написанного на языке Java, доказывает возможность создания подобных продуктов и готовит почву для перехода к платформонезависемым вычислительным процессам. После окончательной доработки пакет позволит создавать документы, доступные для любого Web-броузера, поддерживающего Java.
В настоящее время пакет содержит рабочие версии текстового процессора WordPerfect и электронные таблицы QuattroPro. Ожидается, что кроме процессора WordPerfect и QuattroPro окончательная версия CorelOfficeforJava будет содержать приложения демонстрационной графики, программу создания диаграмм, приложения для рисования, личную информационную систему (PIM), а также клиентскую программу электронной почты.
Для CorrelOffice forJava необходимо наличие JavaVirtualMachine (виртуальные машины языка Java), работающей на платформах Windows, Macintosh и Unix, либо Web-броузера, поддерживающего Java, например Navigator 3.0 NetscapeCommunications или InternetExplorer3.0 корпорации Microsoft. Приложения пакета CorelOfficeforJava создавались с использованием оригинального программного средства Сontainer-СomponentFramework, которое должно быть выпущено в ближайшее время. Это средство представляет собой библиотеку классов и интерфейсов Java и предназначается для ускорения развертки приложений. Поскольку библиотека написана полностью на языке Java, приложения на его основе могут работать с любыми виртуальными машинами Java и являются кросс-платформными. Одним из интересных примеров создания и размещения на Web-страницах Internet и корпоративных интрасетей авторских произведений с применением компьютерной графики, анимации и виртуальной реальности является графический пакет для Internet- CorelWeb.GraphicsSuite.
Этот набор программ прост в работе, поэтому им могут пользоваться и новички. CorelWeb.GraphicsSuite состоит из шести компонентов:
Редактор HTMLCorelWeb.Designer позволяет создавать Web-страницы посредством знакомого интерфейса текстового редактора в режиме WYSIWYG, а в случае необходимости редактировать исходный код HTML. CorelWeb.Designer поддерживает Java-приложения, растровые графические ссылки как со стороны клиента, так и со стороны сервера, автоматическое преобразование файлов BMP в формат GIF или JPEG, позволяет создавать таблицы и формы и добавлять изображения фона, менять размеры, стили и цвет шрифта. Компонент CorelWeb.Transit помогает размещать в Web готовые документы. Он включает в себя инструмент для преобразования документов, созданных в обычных текстовых редакторах, в формат HTML, поддерживая все популярные программы для работы с текстом (CorelWordPerfect, MicrosoftWord, LotusAmiPro, RTF). Один и тот же документ может служить исходным как для печати, так и для публикации в Internet. Программа анимации CorelWeb.Move помогает "оживлять" Web-страницы. При этом поддерживается ряд форматов, включая Java-приложения и анимированные GIF-изображения. В программу входит свыше 2 тыс. персонажей, образцов движений и звуков. Появлением и исчезновением персонажей управляют обычные элементы графического интерфейса пользователя. Готовые анимации можно импортировать, а к ним добавлять свои собственные изображения. Библиотека готовых для размещения на Web-страницах изображений CorelWeb.Gallery содержит более 7500 картин в форматах GIF и JPEG, образцов фона, разделителей, кнопок, символов, стрелок, буквиц, графических рисунков и других. Изображения помещаются на Web-страницу методом буксировки. Программа CorelWeb.World позволяет превратить Web-узел в объект интерактивной виртуальной реальности. Для этого предлагаются более 100 готовых моделей, гладкая интеграция видео, изображений, аудио и текста, встроенные указатели для переноса посетителей "в другие измерения" или на другие Web-страницы, инструменты создания трехмерных миров в формате VRML или в собственном формате MUS. Вариант для Web популярного графического пакета CorelWeb.Draw обеспечивает выполнение и редактирование иллюстраций с помощью технологии CorelDraw. Он содержит обширный набор фильтров экспорта/импорта файлов, разнообразные графические инструменты и средства художественного оформления текста, специальные эффекты, включая плавные переходы цвета и рельефные изображения, и устанавливает векторные гиперсвязи с выпадающим списком последних посещенных пользователем URL, растровые графические ссылки со стороны клиента и полноценные файлы .HTM.
Динамическая публикация отчетов из БД
Помимо статической публикации отчетов из БД, в Intranet находит применение динамическая публикация отчетов из БД на основе запроса пользователя. Такой метод можно реализовать через CGI или с помощью специальных средств на основе API для Web-серверов. Ряд фирм предлагает такие средства, часто в них используются HTML-шаблоны для подстановки значений полей из записей БД. Примером средства динамической публикации может служить компонент InternetDatabaseConnector (IDC) для сервера MicrosoftIIS. IDC позволяет по SQL-запросу обращаться через интерфейс ODBC к настольным и реляционным СУБД. Рассмотрим подробнее процесс динамической публикации, обеспечиваемый IDC. На InternetInformationServer полный цикл работы IDC состоит из шести шагов, которые показаны ниже на схеме.
Добавление новых строк в таблицу
Процедуру создания первой строки нужно повторить для создания следующих строк таблицы:
<TABLE> <TR> <TD>One</TD><TD>Two</TD><TD>Three</TD> </TR> <TR> <TD>Red</TD><TD>Green</TD><TD>Blue</TD> </TR> <TR> <TD>1990</TD><TD>1995</TD><TD>2000</TD> </TR> </TABLE>
Достоинства и недостатки спецификации CGI
Применение CGI-программ сопряжено с высокими накладными расходами. В результате извлечение данных из БД выполняется медленно, так как каждый раз при генерации запроса требуется подключение к базе данных. Определенные трудности возникают и при обработке транзакций посредством интерактивных Web-страниц. Например, интерактивная система заказа товаров по каталогу, расположенному на Web-узле, не сможет правильно отследить, какие позиции выбраны покупателем, если связь с БД прервется между двумя запросами на разные виды товаров. А поскольку в такой системе не предусмотрена фиксация транзакций, необработанные запросы просто теряются.
Однако то, что CGI-программы после обработки каждого запроса разрывают связь с базой данных, сильно осложняет деятельность хакеров, так как при отсутствии постоянного подключения к корпоративной системе проникнуть в нее гораздо сложнее. Существенным достоинством этих программ является и то, что связь с Web-сервером устанавливается только на короткий промежуток времени: в результате он не перегружается и может выполнять другие задания.
На сегодняшний день имеется множество продуктов, которые дают возможность пользователям создавать собственные программы в стандарте CGI (на языках С, С++ или PERL). Они по-разному решают проблемы CGI и реализуют достоинства этой спецификации. Вот несколько примеров.
Bluestone предлагает среду для разработки CGI-приложений Sapphire/Web. Проблема преждевременного отключения от базы данных решена в этом продукте за счет автоматической поддержки связи с БД в течение заданного времени. Если пользователь обращается к Web-узлу и передает запрос БД, которая используется большинством приложений, не требующих регистрации в базе данных, то шлюзовое ПО автоматически использует уже установленную связь. IBM разработала продукт Net. Data, который представляет собой исполнительный механизм CGI, интегрированный с динамически компонуемой библиотекой. В его состав входит также программа для управления подключениями (менеджер подключения), позволяющая задавать период времени, в течение которого поддерживается непрерывная связь с БД. WebMate выпускает интегрированную среду для разработки приложений WebMate/Foundation. Этот продукт позволяет не только создавать программные коды в стандарте CGI (как и все другие аналогичные пакеты), но и дает возможность устанавливать права доступа к файлам баз данных (по чтению или по записи), предохраняя БД от внесения несанкционированных изменений. Simware предлагает продукт Salvo - инструментальные средства разработки интерактивных Web-приложений, которые обеспечивают защиту данных за счет того, что источник информации остается "невидимым" пользователю. Продукт позволяет также собирать данные, поступающие от различных приложений и БД. Intersolv выпускает набор драйверов для стандарта ODBC, который обеспечивает доступ к БД Oracle; программу для подключения к серверу базы данных и шлюз между стандартами JDBC и ODBC. Продукты позволяют программистам создавать Web-страницы на языке Java и использовать их для доступа к БД. Аналогичные средства выпускает компания VisigenicSoftware.
Доступ к базе данных на стороне клиента
Видимо, наиболее мощные средства обеспечения доступа к базам данных на стороне Web-клиента обеспечивает язык Java. Java - это объектно-ориентированный язык программирования, являющийся, по сути дела, "безопасным" подмножеством языка С++. В частности, Java не содержит средств адресной арифметики, не поддерживает механизм множественного наследования и т.д. Поэтому утверждается, что корректность Java-программы можно проверить до ее реального выполнения (это абсолютно недоказанное утверждение). Различают:
язык Java как таковой, для которого существуют компиляторы в так называемый "мобильный код" (машинно-независимый код, который может интерпретироваться или из которого могут генерироваться машинные коды на разных платформах); язык JavaScript, который обычно используется для расширения возможностей языка HTML за счет добавления процедурной составляющей; и программный продукт HotJava, являющийся, по сути, интерпретатором мобильных кодов Java.
Для обеспечения доступа к базам данных на стороне Web-клиента наиболее существенно наличие языка Java. Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ, откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документа. Такие дополнительные Java-программы называются апплетами (Java-applets). Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все мобильные коды. Коды могут начать выполняться сразу после размещения в компьютере клиента или быть активизированы с помощью специальных команд.
Поскольку апплет представляет собой произвольную Java-программу, то, в частности, он может быть специализирован для работы с внешними базами данных. Более того, система программирования Java включает развитый набор классов, предназначенных для поддержки графического пользовательского интерфейса. Опираясь на использование этих классов, апплет может получить от пользователя информацию, характеризующую его запрос к базе данных, в том же виде, как если бы использовался стандартный механизм форм языка HTML, а может применять какой-либо другой интерфейс.
Для взаимодействия Java-апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который, фактически, сочетает функции шлюзования между интерпретатором мобильных Java-кодов и ODBC, а также включает ODBC.
В заключение сравним достоинства и недостатки двух рассмотренных подходов. Использование CGI-скриптов на стороне Web-сервера позволяет иметь на стороне клиента только сравнительно простые программы просмотра. Вся хитроумная логика работы с базами данных (возможно, с обработкой полученных данных) переходит на сторону Web-сервера. Это легкий способ построения трехзвенной архитектуры приложения. (В последнее время разгрузку клиента от логики приложения называют решением проблемы "толстого" клиента.) Отрицательным моментом является то, что при необходимости подключения нового CGI-скрипта, вообще говоря, требуется (относительная) модификация кода сервера.
Использование Java-апплетов, вообще говоря, обеспечивает более гибкое решение. Апплет - это часть HTML-документа. Для включения нового апплета нужно всего-навсего перекомпоновать документ. Web-cервер трогать не нужно. С другой стороны, клиент должен быть толще. Что бы там ни говорили, клиент должен быть достаточно "толстым", чтобы в приемлемое время справиться с интерпретацией всех апплетов. Но, конечно же, сервер по-прежнему должен быть "толще" клиента.
На самом деле и при применении первого подхода, и при использовании второго остается нерешенной одна организационно-производственная проблема: кто должен проектировать, писать, отлаживать и сопровождать процедурный код? Web-мастера, производящие HTML-документы, обычно считают себя, скорее, дизайнерами нежели программистами. А здесь требуется чисто программистская работа.
Доступ к базе данных на стороне сервера
Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:
поддержки диалоговых форм на уровне гипертекстового документа (язык HTML); возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера.
При реализации на основе CGI общая схема реализации доступа к базе данных на стороне Web-сервера выглядит следующим образом:
при просмотре документа пользователь встречает ссылку на страницу, содержащую одну или несколько форм, предназначенных для запроса данных из базы данных; пользователь запрашивает эту страницу, помимо незаполненных форм страница может содержать общую информацию о базе данных и о назначении предлагаемых форм; если пользователя интересует информация из БД, которую можно получить на основе предложенных форм, то он заполняет одну из форм и отправляет заполненную форму на сервер; получив заполненную форму, сервер запускает соответствующую внешнюю программу, передавая ей параметры и получая результаты на основе протокола CGI; внешняя программа преобразует запрос, выраженный с помощью заполненной формы, в запрос на языке, понятном серверу баз данных (обычно это язык SQL).
При использовании CGI вся интерпретация пользовательского запроса производится серверной программой. Она может быть предельно жесткой, ориентированной на выполнение запроса к фиксированной таблице фиксированной базы данных, или относительно гибкой, способной выполнить произвольный запрос к одной или нескольким таблицам базы данных, идентифицируемой в параметрах клиента.
API - это, фактически, дешевый, но небезопасный способ выполнить в адресном пространстве сервера WWW программу, которая соответствует спецификациям на языке HTML. Такая программа должна быть заранее подготовлена и включена в библиотеку, из которой сервер может производить динамическую загрузку (DLL-модули в Windows или разделяемая библиотека sharedlibrary в Unix).
Доступ к БД через интерфейс JDBC
Апплеты Java не позволяют напрямую связываться с базами данных. Для разработчиков, использующих язык Java в среде клиент/сервер, разработан прикладной программный интерфейс APIJDBC, обеспечивающий доступ к базам данных из языка Java.
Спецификация JDBC представляет собой прикладной программный интерфейс и разработана в подразделении JavaSoft корпорации Sun. Стандарт пока еще не утвержден. JDBC базируется на интерфейсе уровня вызовов X/OpenSQLCLI - основе ODBC. Прикладной программный интерфейс JDBC реализуется поверх других SQL-API, включая ODBC. Это означает, что все базы данных, допускающие работу с ODBC, будут взаимодействовать с JDBC без изменений.
JDBC использует двухуровневую архитектуру для связи апплетов и баз данных. Этот процесс прост - Internet- или Intranet-пользователи, использующие броузеры, подключаются к локальному или удаленному Web-серверу и загружают HTML-документ с включенным апплетом. Апплет выполняется на клиентской ЭВМ в среде броузера и устанавливает обратную связь с сервером базы данных. Механизм связи с базами данных является стандартным классом Java, поэтому средства безопасности, обеспечиваемые языком Java, поддерживают безопасную связь с базами данных.
Архитектура JDBC состоит из двух уровней: JDBCAPI, который обеспечивает связь между приложением и менеджером JDBC, и драйвер JDBCAPI, который поддерживает связь между JDBC менеджером и драйвером. Разработчики имеют возможность взаимодействовать напрямую с ODBC посредством моста JDBC-ODBC. Согласно JavaSoft, производительность при использовании моста не ухудшится.
При необходимости доступа к базе данных, апплет получает объект java.sql.Connection непосредственно из слоя управления JDBC и менеджера драйвера java.sql.DriverManager. Менеджер драйвера использует строку URL в качестве аргумента и уровень управления JDBC обнаруживает и загружает соответствующий драйвер для целевой базы данных, с которой пытается соединиться апплет. Менеджер драйвера выполняет это, опрашивая каждый драйвер, для выявления драйвера, который может соединиться с указанным адресом URL. Драйвер определяет, требует ли данный URL субпротокол, поддерживаемый драйвером. После этого драйвер подключается к удаленной базе данных, возвращая правильный объект java.sql.Connection, являющийся методом доступа апплета к сервисам базы данных.
Рис. 4.1. Механизм доступа JDBC к базам данных из Java-апплетов
JDBC не может выполнить свою работу без драйвера и уровень управления JDBC должен знать о размещении всех доступных драйверов баз данных. Существуют два способа, которыми JDBC может это выполнить. Первый способ - во время инициализации класс java.sql.DriverManager ищет свойства sql.drivers в системных свойствах. Если он существует, DriverManager класс загрузит его. Второй способ заключается в явном вызове определенного драйвера, тем самым отпадает необходимость в поиске.
Доступ к данным.
SQL обеспечивает доступ к хранимым данным из приложений.
Единая платформа разработки приложений для Internet и Intranet от Netscape
Корпорация Netscape Communication предлагает основанную на стандартах единую платформу для разработки приложений клиент/сервер нового поколения для Internet и интрасетей. NetscapeONE поддерживает такие стандарты как HTTP, HTML, LDAP, Java. В нее включены язык JavaScript, иерархия Java-классов NetscapeInternetFoundationClasses, а также распределенная объектная модель, основанная на протоколе InternetInter-ORBProtocol (IIOP). Документацию, исходный код и NetscapeONESDK можно загрузить со страницы компании.
Платформа NetscapeONE объединяет открытые стандарты, лежащие в основе ведущих программных продуктов Netscape с широким набором базирующихся на языке Java инструментов, что позволяет корпоративным разработчикам быстро строить распределенные кроссплатформенные приложения для Internet и интрасетей.
Netscape анонсировала также, расширенную версию JavaScript своего открытого и бесплатно лицензируемого языка сценариев, который предназначен для быстрого построения сетевых приложений. JavaScript включает поддержку технологии LiveConnect, обеспечивающей взаимодействие между такими активными элементами, как Plug-in, Javaapplets, сценарии JavaScript и компоненты HTML.
Чтобы упростить создание коммерческих приложений на языке Java, компания Netscape выпустила системно-независимую библиотеку классов NetscapeInternetFoundationClasses. В нее вошли классы UserInterface, разработанные корпорацией Netcode, недавно приобретенной Netscape. Бета-версия NetscapeInternetFoundationClasses доступна разработчикам уже сегодня.
Модель распределенных объектов в NetscapeONE базируется на IIOP. Полностью совместимый с этим протоколом брокер объектных запросов (ORB) в следующих версиях. NetscapeONE содержит инфраструктуру IIOP, прозрачно поддерживающую распределенный вызов методов Java-классов, и, в частности, в состав пакета войдет совместимая с этим стандартом библиотека NetscapeInternetFoundationClasses.
Формы для организации диалога
Форма FORM служит для организации диалога по выбору и вводу данных, по нажатию экранных кнопок. Обработка введенных данных осуществляется серверной программой, заданной в атрибуте ACTION. Обмен данными между броузером и сервером производится через интерфейс CGI с помощью методов GET (через переменные среды) и POST (через входной и выходной потоки), задаваемые атрибутом METHOD. В обмене участвуют пары "имя=значение" для диалоговых переменных.
При наличии нескольких форм на HTML-странице необходимо их именовать (атрибут NAME).
Основными элементами формы являются элемент ввода INPUT, многострочная область текста TEXTAREA и меню SELECT (рисунок 3.2).
<FORM NAME=форма ACTION=сервер_прогрMETHOD=метод_доступа
<INPUTTYPE=тип NAME=перем...> Ввод данных ... <TEXTAREANAME=имя> многострочный текст
</TEXTAREA> <SELECTNAME=имя> Выбор из меню (списка) <OPTION> Первое <OPTION> Второе <OPTION> Третье </SELECT> </FORM>
Рис. 3.2. Основные элементы HTML-формы
Элемент INPUT является наиболее универсальным, реализует наибольшее число диалоговых элементов, тип которых определяется атрибутом TYPE.
Поля ввода имеют типы:
TEXT - простое текстовое поле PASSWORD - ввод пароля без отображения FILE - поле ввода или выбора имени файла.
Для полей выбора различают типы:
CHECKBOX - поле выбора с помощью пометки RADIO - поле выбора с помощью "радиокнопок".
В формах поддерживаются экранные кнопки следующих типов:
SUBMIT - кнопка вызова действия ACTION RESET - кнопка сброса (восстановления значений по умолчанию) IMAGE - пиктографическая кнопка.
Каждый элемент INPUT обязательно имеет имя переменной, задаваемое атрибутом NAME, оно служит для идентификации переменной при обмене данными с обрабатывающей программой.
Для полей ввода можно задавать значения по умолчанию с помощью атрибута VALUE. Этот же атрибут для текстовых кнопок определяет надписи на них. Начальное состояние полей выбора задается атрибутом CHECKED.
Атрибут SIZE определяет размер видимой части поля ввода, а MAXLENGTH - максимальное число символов, которое можно ввести в поле. С помощью атрибута ALIGN обеспечивается выравнивание введенного значения.
Специальный тип HIDDEN позволяет скрыть элемент диалога, а также может служить для хранения значений рабочих переменных.
Для графических кнопок атрибут SRC задает адрес изображения.
Элемент TEXTAREA предназначен для ввода строк длинного текста. Каждая область поименована (атрибут NAME) и имеет два параметра для определения ее размера: число видимых строк ROWS и ширина области COLS. Текст внутри контейнера TEXTAREA отображается на экране.
Элемент SELECT с вложенными элементами OPTION предназначены для организации меню разных типов: выпадающих, с множественным выбором и графических (определяется атрибутом TYPE).
В некоторых броузерах поддерживаются дополнительные атрибуты, упрощающие контроль данных. Так параметры MIN и MAX позволяют контролировать вводимое числовое значение по диапазону допустимых значений. В атрибуте ERROR приводится текст сообщения об ошибке при неправильном вводе. Для создания нередактируемых полей вывода или запрета редактирования используется атрибут DISABLE.
Фреймы и окна
При работе с фреймами и окнами в предыдущих версиях JavaScript постоянно приходилось отслеживать последовательность открытия окон и фреймов для того, чтобы аккуратно их потом закрывать. На некоторых неточностях работы с окнами были основаны так называемые mail-bombs. Суть этих "подарков" заключалась в том, что если пользователь по почте принимает документ, который состоит только из одной команды:
window.close (),
то система, не спрашивая пользователя, закрывала текущее окно, а в этот момент таким окном является окно электронной почты. Теперь, перед тем как что-либо закрыть, система будет спрашивать разрешения. Правда, если в момент получения команды на закрытие окна на экране только одно окно Navigator, то система его закроет без каких-либо комментариев.
Работа с окнами и фреймами на этом не исчерпывается. В систему введено новое свойство opener, которое определено для текущего окна или фрейма, и методы blur и focus распространены на работу с окнами.
Свойство opener определяет окно документа, который вызвал открытие окна текущего документа. Свойство определено для любого окна и фрейма. Если необходимо выполнить некоторые функции по отношению к окну, открывшему данное окно, то можно использовать выражение типа:
window.opener.[method]
Например, если требуется закрыть окно-предшественник, то можно просто выполнить метод close:
window.opener.close ()
Точно таким же способом можно изменить содержание этого окна при помощи методов write или writeln.
Можно менять и другие свойства объектов в окне-предшественнике. Следующий пример взят из дополнений к спецификации JavaScript:
window.opener.document.bgColor="СcyanТ"
В данном случае для окна-предшественника определен светло-голубой цвет в качестве цвета фона.
Но самым замечательным является то, что предшественника можно менять. Это значит, что автор получает возможность открывать и закрывать окна не в строго иерархической последовательности, а в произвольном порядке. Управление многооконным интерфейсом в этом случае становится более гибким:
window.opener = new_window window.opener = null
Первый пример переназначает окно-предшественник, в то время как второй вообще защищает предшественника от каких-либо действий.
Все, что было сказано об окнах, распространяется и на фреймы, которые являются просто частным случаем окна.
Фрейм часто может быть порожден путем разбиения другого фрейма на части. Если при этом потребуется обратиться к окну фрейма-предшественника, то свойство opener в этом случае незаменимо.
Кроме обращения к различным свойствам окон и фреймов разработчики расширили действие методов blur и focus с фреймов до окон. Теперь не только фрейм, но и окно может быть сделано текущим с использованием метода focus или, наоборот, переведено в фон при помощи метода blur. В ряде случаев, например, при порождении нескольких страниц, обращение к этим функциям бывает довольно полезным.
Графические форматы
В WWW стандартизированы всего два формата, а именно GIF и JPEG. Формат GIF (GraphicInterchangeFormat) занимает в WWW исключительное положение. Все графические броузеры поддерживают этот формат и без проблем выводят внутри HTML-страницы изображения, представленные в этом формате.
Формат JPEG (JointPhotographicExpertsGroup) становится в последнее время все более популярным. Главное достоинство JPEG-файлов состоит в том, что они короче GIF-файлов и на их загрузку требуется меньше времени. К сожалению, встроенные изображения в формате JPEG поддерживают только некоторые броузеры, например Netscape и Mosaic.
Графический тег <img>
Кодом HTML, который заставляет броузер выводить изображения, является тег <IMG> со следующим общим форматом:
<IMGSRC='имя_файла'>
Здесь SRC означает источник (Source), а имя файла представляет собой имя выводимого графического файла. Предположим, к примеру, что у Вас есть изображение picture.gif. Для добавления его на страницу HTML применяется такая строка:
<IMGSRC=picture.gif>
Графика
Как было сказано ранее, самым распространенным графическим форматом в Web является GIF-формат. Для того, чтобы вставить изображение в Web-страницу, необходимо либо нарисовать его, либо взять уже готовое. В любой программе рисования несложно нарисовать простое изображение и сохранить его в формате GIF. Если программа не поддерживает этот формат, то необходимо преобразовать файл. Существует множество программ, предназначенных для преобразования одного графического формата в другой. Позаимствовать же картинки можно из многих программных пакетов, например MicrosoftOffice, и большинства программ рисования, в которых поставляются библиотеки художественных клипов (клипартов - cliparts). Клипарт представляет собой произведение профессионального качества, которое уже готово для вставки в Web-страницу. Также возможно заимствование изображений со страниц Web. Когда броузер выводит страницу Web с изображением, соответствующий графический файл временно хранится в памяти компьютера. В большинстве броузеров есть команда, позволяющая сохранить файл на локальном диске. Существует множество других вариантов получения графических файлов.
Изображения очень полезны и придают Web-странице профессиональный вид. Приведем наиболее распространенные случаи применения изображений:
логотип компании на деловой странице; графика для рекламного объявления; различные рисунки; диаграммы и графики; интересные шрифты; подпись автора страницы; применение графической строки в качестве горизонтальной разделительной линии; применение графических маркеров для создания красивых маркированных списков.
Теперь рассмотрим, как вставить изображение в страницу Web. Кодом HTML, который заставляет броузер выводить изображение, является метка <IMG> со следующим общим форматом:
<IMGSRC="имя_файла">
Здесь SRC означает источник (SouRCe), а имя_файла представляет собой имя выводимого графического файла. Например, для вывода изображения logo.gif на страницу Web применяется такая строка:
<IMGSRC="logo.gif" border=0>
Некоторые броузеры работают только с текстом и не могут выводить графические файлы. Вместо них такие броузеры выводят только [IMAGE], что делает страницу несколько некрасивой. Для предотвращения этого метка <IMG> имеет дополнительный атрибут, который можно использовать для вывода некоторого альтернативного текста, появляющегося вместо изображения. Вот как выглядит общий формат метки:
<IMGSRC="имя_файла" ALT="[альтернативный текст]">
Здесь альтернативный текст означает тот текст, который применяется вместо графики. В качестве такого текста можно определить краткую фразу, описывающую изображение, но многие пользуются вместо описания просто символом пробела, например:
<IMGSRC="logo.gif" border=0 ALT=" ">
Кроме этого существует еще одна причина применения расширения ALT. Дело в том, что большинство графических броузеров позволяют выключать вывод изображений, что позволяет гораздо быстрее выводить страницу с удаленного Web-сервера.
Изображения страницы Web предназначены не только для просмотра, но могут использоваться в качестве гипертекстовых связей, как и обычный текст. Читатель Web-страницы щелкает на изображении и отправляется на другую страницу. Для обозначения изображения как гипертекстовой метки используется та же метка <A>, что и для текста, но между <A> и </A> вставляется метка <IMG>:
<AHREF="URL"><IMGSRC="имя_файла"></A>
Например, в качестве ссылки может выступать домашняя страница на том же диске:
Clickonthishouse <AHREF="homepage.htm"><IMGSRC="house.gif" border=0 ALT="house"></A>
Графика в текстовых броузерах
Некоторые броузеры работают только с текстом и не могут выводить графические файлы. Поэтому в том месте, где имеется тег <IMG>, они выводят только [IMAGE]. В итоге страница получается некрасивой, поэтому тег <IMG> имеет дополнительный атрибут, который можно использовать для вывода некоторого альтернативного текста, появляющегося вместо изображения. Общий формат тега выглядит следующим образом:
<IMGSRC='имя_файла' ALT="[альтернативный текст]">
здесь альтернативный текст означает тот текст, который появляется вместо графики. Применима и такая конструкция:
<IMGSRC='имя_файла' ALT=" ">
Группы тегов HTML
Все теги HTML по их назначению и области действия можно разделить на следующие основные группы:
структура документа; оформление блоков гипертекста (параграфы, списки, таблицы, картинки); гипертекстовые ссылки и закладки; формы для организации диалога; вызов программ.
HAVING
позволяет отобрать из множества сгруппированных строк только те, которые удовлетворяют указанному условию.
ORDERBY позволяет определить условие упорядоченности строк в результирующем отношении. Такое условие представляет собой список колонок, по которым необходимо упорядочить строки. Для каждого из атрибутов можно выбрать убывающую или возрастающую последовательность.
Два или более SELECT-предложения могут образовывать общую результирующую таблицу с использованием реляционных операций соединения (UNION), пересечения (INTERSECT) и деления (DIFFERENCE).
HoTMetalPro
HoTMetalPro 3. фирмы SoftQuad располагает такими мощными функциями, как вставка графики с помощью механизма drag-and-drop, графический редактор кадров и возможность работы с тегами проекта HTML 3.2. Однако в ней отсутствуют мощные средства управления информационными узлами, и, несмотря на WYSIWYG-интерфейс, она требует глубоких знаний HTML. Программа не содержит средств управления информационным узлом, однако фирма SoftQuad обещает выпустить отдельную программу управления информационным узлом.
В HoTMetalPro нет таких функций, как "мастера" для построения форм. Однако, программа располагает десятками шаблонов и образцов графики, а также исчерпывающим самоучителем и системой подсказок.
HoTMetalPro 3. поддерживает механизм drag-and-drop для вставки графики, редактор навигационных карт, создающий объекты произвольной формы, возможность отменить все изменения, внесенные после момента, когда файл был последний раз сохранен, сохраняемые макрокоманды, средства конвертирования из основных форматов текстовых процессоров, проверку синтаксиса импортированных HTML-файлов и соответствие последнему проекту стандарта HTML 3.2.
Окно редактирования обычно показывает создаваемый документ в форме, приближенной к режиму полного соответствия (WYSIWYG), с отображением текста HTML в виде небольших пиктограмм. Можно "спрятать" пиктограммы управляющих кодов и другие отвлекающие детали, чтобы работать исключительно в среде WYSIWYG.
Превосходный табличный редактор программы HoTMetal позволяет добавлять и удалять строки и столбцы, объединять несколько ячеек в одну и легко выполнять множество других операций над таблицами. Модуль управления изображениями создает каталоги миниатюр, представляющих графические образы, хранящиеся на диске, а инструмент картографирования составляет навигационные карты для клиентской или серверной стороны. Редактор кадров позволяет нарисовать структурную схему кадрового документа и перетащить файл, который будет отображать кадр, из Explorer, но не отображает содержательный материал в кадрах.
Слабое место HoTMetal - функции управления информационным узлом.
HTML-редакторы и визуальные редакторы гипертекста
Графические редакторы отличаются от программных тем, что обеспечивают более или менее точное соблюдение принципа WYSIWYG, то есть страница предстает такой, какой она будет в окне броузера. Программа встроена в страницу, но скрыта от автора, который не работает с ней напрямую. В свою очередь программные редакторы выводят на экран в качестве основного представления страницы исходный текст на языке HTML, предоставляя при этом в распоряжение автора мощные средства генерации кода, избавляющие от необходимости писать его вручную.
В обоих типах программ предлагаются в сущности похожие средства создания и редактирования страниц. Кнопки инструментальной панели дают возможность быстрого доступа к таким элементам, как изображения, списки и связи, или к кодам, служащим для создания и размещения этих элементов на странице; как правило, они вызывают диалоговые окна, которые помогают на всех этапах проектирования. Многие продукты содержат "мастеров", автоматизирующих по крайней мере базовые процедуры создания страниц и способных помочь при построении форм, навигационных карт и выполнении других сложных операций.
Несомненно, пользоваться редакторами WYSIWYG легче, поскольку они изолируют автора от непростого синтаксиса HTML. Почти все популярные редакторы этого типа кроме MicrosoftFrontPage и NetscapeNavigatorGold, позволяют также выполнять непосредственное редактирование текста HTML. Недостаток графических инструментов заключается в том, что они дают приблизительное, часто лишь отдаленное представление о том, какой страница предстанет в окне броузера.
Программные редакторы предоставляют более мощные и гибкие средства. Они заставляют уделять большее внимание тексту программы, который стоит за документом. Однако в этом случае необходимо владеть языком HTML. По мере того как язык HTML становится все более сложным, он перестает быть пригодным для чтения человеком, и привлекательность средств, открывающих доступ к исходному тексту, уменьшается.
Однако HTML - лишь часть общей проблемы. Сложнее обстоит дело с построением интерактивных страниц. Интерактивность в Web по-прежнему базируется в основном на формах, которые собирают информацию от пользователей и затем, через связь с CGI-сценарием на сервере, обрабатывают данные и выдают результат. В настоящее время многие продукты позволяют создавать сложные формы. Так MicrosoftFrontPage имеет встроенные обработчики форм, которые устраняют необходимость вручную готовить сценарии для множества тривиальных задач. Интерактивные функции перемещаются на сторону клиента, где исполнимое содержимое создается с помощью таких технологий, как Java фирмы Sun или элементов управления ActiveX фирмы Microsoft.
Инструментальные средства разработки Intranet-приложений
Языки разработки интерактивных страниц поддержаны инструментальными средствами разработки Intranet-приложений.
Наиболее широко представлены средства программирования мобильных приложений на языке Java.
Инструментальные системы для языков сценариев менее развиты, особенно это касается отладки сценариев.
Инструментальный набор JDK
Комплект разработчика JDK может быть бесплатно загружен с узла Web компании Sun по адресу http://java.sun.com. Данная страница Web позволяет загружать Windows-версии Java (для Windows 95 или WindowsNT, но не для Windows 3.1), а также версии для компьютеров Macintosh и различных UNIX-систем.
Таблица 3.6. Основные программы SDK
Программа | Назначение |
java | Интерпретатор Java |
javac | Компилятор Java |
javadoc | "Генератор документации" Java |
javah | Генератор файлов-описаний для языка С, который создает файлы заголовков и исходные файлы для определения классов |
javap | Дизассемблер классов Java |
jdb | Отладчик Java |
Комплект JDK содержит компилятор Java, предназначенный для создания апплетов. Кроме того, этот комплект предоставляет несколько утилит, таких, как appletviewer, которая позволяет запускать и тестировать апплеты; отладчик, который поможет в поиске и устранении ошибок в апплетах; а также "генератор документации" (documentgenerator), который облегчает усилия по документированию программ. Таблица 3.6 суммирует сведения о нескольких программах, которые можно найти в комплекте разработчика Java.
Кроме компилятора и различного рода утилит, комплект разработчика Java содержит в себе множество примеров апплетов, исходный код которых может помочь в освоении языка.
Инструментарий для других служб Internet
Утилиты электронной почты и в InternetExplorer, и в Navigator включают в себя адресные книги и поддержку MIME, распространенного способа передачи двоичных файлов, содержащих изображения или исполняемые программы. Немаловажна способность продуктов к работе с корреспонденцией в формате HTML. Единственное, что имеется в Navigator и отсутствует в InternetExplorer, так это группировка адресов и планирование сеансов снятия сообщений электронной почты.
Группы новостей - еще одна популярная служба Internet. Прекрасно организованный, многопанельный модуль чтения новостей в Navigator позволяет быстро перемещаться на начало нового сообщения. Модуль чтения новостей InternetExplorer мало чем отличается от этого модуля в Navigator.
Таблица 2.1. Сравнение возможностей InternetExplorer 3.0 и Navigator 3.0
Стандартные возможности | InternetExplorer 3.0 | Navigator 3.0 |
Поддержка Windows 95 | да | да |
Другие платформы | Mac, NT | Mac, NT, Unix |
Удобство использования | очень хорошо | очень хорошо |
Поддержка списка посещенных узлов | очень хорошо | удовлетворительно |
Отметка страниц | хорошо | отлично |
Навигация | очень хорошо | отлично |
Система помощи | очень хорошо | хорошо |
Производительность | отлично | отлично |
Совместное исполнение задач | да | да |
хорошо | очень хорошо | |
Таблицы HTML | да | да |
Кадры | да | да |
Анимационные файлы GIF | да | да |
Поддержка OLE-компонент ActiveX | да | да |
Интерпретация программ Java и сценариев JavaScript | да | да |
Интерпретация сценариев VBScript | да | нет |
Возможность использования модулей расширения Plug-in | да | да |
Инструментарий для рабочих групп | очень хорошо | хорошо |
Грифельная доска | отлично | очень хорошо |
Internet-телефон | хорошо | хорошо |
Коллективное использование приложений | да | нет |
Защита | очень хорошо | отлично |
Инструментарий для других служб Internet | очень хорошо | очень хорошо |
Клиент электронной почты | хорошо | очень хорошо |
Посылка форм по электронной почте | нет | да |
Модули чтения групп новостей | очень хорошо | очень хорошо |
Возможности FTP | удовлетворительно | удовлетворительно |
Инструментарий для организации коллективной работы
InternetExplorer лучше подходит для рабочих групп. Такие приложения, как "белая доска" (whiteboard), "переговоры" (chat) и Internet-телефон, имеются в обоих продуктах. Оба броузера позволяют вам и вашим удаленным сотрудникам просматривать одни и те же изображения, снабжать их комментариями и сохранять на локальных жестких дисках непосредственно во время их обсуждения - и все по Internet. Однако, Navigator не допускает, чтобы более двух абонентов одновременно пользовались телефоном. Приложения InternetExplorer, напротив, позволяют принимать участие в работе сразу нескольким людям. Благодаря новой возможности совместного использования приложений в NetMeeting можно передавать другим сотрудникам управление приложением или папкой на вашем локальном жестком диске. Однако технология NetMeeting компании Microsoft сложнее, чем CoolTalk фирмы Netscape, которая допускает возможность одновременной работы только для двух пользователей.
Интеграция Intranet-технологий и СУБД
Основой для построения информационных Intranet-приложений служит интеграция Intranet-технологий и СУБД.
Хотя средств доступа Intranet-приложений к БД множество, основных способов организации такого взаимодействия не так много: доступ со стороны клиента и доступ со стороны сервера.
Интеграция офисных пакетов с Internet/Intranet
Новые версии офисных пакетов имеют средства импорта-экспорта гипертекстовых файлов. Это позволяет организовать статическую публикацию документов, электронных таблиц и т.д. Такие пакеты по существу выступают в качестве конверторов файлов в гипертекст и обратно. Кроме того, в них встроена поддержка гиперссылок, поэтому с их помощью можно создавать гипертекстовые страницы и Web-структуры.
Отдельное направление развития офисных пакетов связано с реализацией их в виде мобильных приложений на языке Java.
5.1.1. MicrosoftOffice 97 в Web
В популярном комплекте офисных приложений Office 97 фирмы Microsoft наряду со стандартными предлагаются Web-ориентированные редакции, специально предназначенные для использования дома, в корпоративном секторе и в профессиональной деятельности. Дополнительно входят средства Web-издательской деятельности (Publisher 97).
Панель WebToolbar обеспечивает доступ из текущего приложения ко всем функциям стандартного Web-броузера, в том числе к навигации во взаимосвязанных гипертекстовых документах.
Броузер InternetExplorer производства Microsoft может использоваться для просмотра как в Internet, так и в корпоративной интрасети. Благодаря технологии ActiveX реализована интеграция всех функций и компонентов, из броузера можно просматривать как HTML-, так и Office-документы.
Web-расширения, ранее представленные в виде дополнительных компонентов (InternetAssistant для текстового процессора Word), теперь полностью встроены в основные продукты Office; появилось множество дополнительных заполнений фона, элементов оформления списков и средств графического дизайна на основе горизонтальных линий, которые доступны из любых Office-приложений. Утилита-мастер WebPageWizard помогает в создании Web- страниц.
MicrosoftWord 97 - мощный интеллектуальный текстовый процессор, удобный и простой в использовании инструмент создания профессионально оформленных документов и публикации материалов в Internet/Intranet.
Автокоррекция имеет много новых свойств, в том числе, функцию автоматического создания гипертекстовых ссылок.
MicrosoftWord 97 позволяет легко создавать красочные страницы в формате HTML, готовые для публикации на Web-сервере. Специальные знания о языке HTML не требуются. Достаточно просто сохранить готовый документ как HTML-страницу.
При создании таких страниц удобно использовать стандартные атрибуты Web-страниц:
фоновые рисунки ( можно добавлять фоновый рисунок, который будет присутствовать при просмотре Web-страницы прямо в MicrosoftWord; можно выбрать готовую текстуру из библиотеки или создать свою собственную); маркеры (самые различные маркеры для оформления списков в Web-страницах доступны при работе в MicrosoftWord 97); горизонтальные линии. Это еще один элемент оформления, который поможет украсить страницу на Web-сервере; рисунки. Можно дополнять Web-страницы рисунками, используя стандартные операции вставки рисунка в текст. видеоролики. Их также можно встраивать в HTML-страницы; звуки;
мигающий текст;
HTML-формы.
В Word предусмотрено автоматическое преобразование графики и OLE-объектов в изображения форматов JPEG и GIF (допускается присоединение гипертекстовых ссылок и к графическим элементам), поддерживаются новейшие HTML-теги.
В Word доступны те же текстуры для заполнения фона, что и в Publisher и PowerPoint, поэтому при создании Web-страниц средствами Word выбор значительно шире.
MicrosoftExcel содержит встроенные функции, позволяющие легко помещать на Web-сервер документы, созданные в среде Excel, включая графику. К их числу относятся: мастер сохранения документа в формате HTML, средство просмотра содержимого документов Excel97 для пользователей, не работающих с этим приложением и ряд других.
Excel 97 позволяет импортировать данные из HTML-документов, найденных на Web-сервере, восстанавливая при этом формат и оформление таблицы. После импорта данные доступны для выполнения любых операций в MicrosoftExcel.
В MicrosoftExcel 97 имеется операция создания запроса к данным, хранящимся на Web-сервере. Можно создать постоянную ссылку на страницу в Internet, и данные в таблице будут обновляться автоматически.
Версия Excel, входящая в комплект Office 97, предусматривает публикацию деловой графики в формате GIF, а также импорт данных из HTML-страниц при помощи специально составленного запроса.
PowerPoint 97 - инструмент подготовки и проведения презентаций. В качестве средства отображения используют проецирование на экран через жидкокристаллическую панель, 35мм слайды, цветные и черно-белые "прозрачки", страницу Web-сервера.
Специальный мастер автосодержания (AutoContentWizard) помогает быстро создавать качественные профессионально оформленные презентации, включает около 30 новых шаблонов. Система подготовки презентаций MicrosoftPowerPoint 97 имеет встроенный мастер сохранения презентаций в формате HTML для публикации на Web-сервере.
Специальное средство просмотра презентаций (PowerPointAnimationPlayer) позволяет просматривать презентации на Web-сервере.
Новые Web-ориентированные возможности в PowerPoint включают трехмерные кнопки ActionButton, помещаемые на слайды презентации. Они могут определять гипертекстовые ссылки на Web-страницы точно так же, как и на другие слайды презентации или документы. Слайды PowerPoint можно экспортировать в формате HTML-страниц. Таким способом можно создавать анимационные ролики для Web-страниц.
В MicrosoftAccess 97 включены свойства, позволяющие публиковать данные из Access на Web-сервере. Так, HTML включен в список форматов, в которых можно создавать отчеты. Теперь очень просто публиковать данные в виде отчета MicrosoftAccess на сервере.
Новая Web-функция в Access позволяет сохранять сгенерированные Access отчеты в формате HTML. В Access можно создавать и Web-формы. Новый тип поля Hyperlink своим значением может иметь ссылку на любой Web-узел, либо документ Office.
В MicrosoftAccess имеется специальный мастер быстрого перемещения информации из базы данных на Web-сервер. Среди новинок возможность генерации Web-приложений, доступ к FTP-серверу, использование ActiveX-компонент, синхронизация БД с информацией на Web-сервере, поддержка полей hyperlink в БД, ссылок в таблицах данных, формах и отчетах.
MicrosoftOutlook 97 - настольный информационный менеджер, основанный на продуктах MicrosoftExchangeClient (клиент электронной почты) и MicrosoftSchedule+ (персональный менеджер расписаний). Outlook объединяет следующие функции:
электронная почта; персональный календарь и групповое планирование; персональная информация (книга контактов и список заданий); журнал выполненных и планируемых действий; просмотр и совместное использование документов, файлов и общих папок Exchange; приложения коллективной работы.
Outlook автоматически проверяет набранный адрес почтового сообщения в адресной книге.
Outlook может выступать как клиент для любой почтовой системы, поддерживающей интерфейс программирования приложений электронной почты MAPI.
Outlook может работать с предшествующими версиями MicrosoftMail, MicrosoftExchangeClient и Schedule+, причем никакого обновления сервера не требуется. Outlook является клиентом MicrosoftExchangeServer для 32-разрядных Windows.
Из Outlook можно набрать телефонный номер, послать почтовое сообщение, факс, перейти на личную Web-страницу.
Outlook является клиентской программой для связи с Internet, предоставляя полный набор функций, которые могут быть использованы как с MicrosoftExchangeServer, так и при непосредственном соединении с поставщиком услуг Internet.
Пользователи Outlook могут посылать и принимать почтовые сообщения через Internet. В теле почтового сообщения можно помещать ссылки на ресурсы Internet. Нажатие кнопки мыши на такой ссылке автоматически запускает MicrosoftInternetExplorer или другую программу просмотра.
Outlook предоставляет возможность планировать встречи и посылать запросы на их проведение через Internet другим пользователям Outlook или Schedule+.
Используя Outlook, удаленные пользователи могут соединяться с MicrosoftExchangeServer через Internet для того, чтобы иметь полный доступ к электронной почте, расписаниям, общим папкам в сети их стационарного офиса.
TeamManager 97 - тесно интегрированное со средой Office 97. Это новое приложение для управления коллективной работой. Официально эта программа корпорации Microsoft входит в состав интегрированного комплекта, однако продается и отдельно. Она служит связующим звеном между средствами для работы с электронной почтой, приложениями Office и системой MicrosoftProject и обеспечивает членов коллектива и менеджеров самой свежей информацией о ходе работ.
TeamManager может тесно взаимодействовать с программой Outlook, которая превращается в данном случае в интерфейс управления коллективными проектами. С помощью Outlook можно определять и модифицировать выполняемые задания - эта информация будет передана TeamManager автоматически.
Программа MicrosoftPublisher интересна тем, что пользователь невысокой квалификации может создавать с ее помощью материалы профессионального качества.
Publisher 97 позволяет работать не только с печатными, но и с Web-материалами. Благодаря "мастеру" WebSiteWizard, Web-страница оказывается для пользователя Publisher просто еще одним типом документа наряду с календарями, визитными карточками, логотипами, фирменными бланками, резюме и другими формами деловых бумаг. Можно опубликовать в Web любой документ, подготовленный средствами Publisher.
При создании нового Web-узла, можно обратиться к утилите-мастеру PageWizard, выбрав в качестве типа создаваемого документа WebSite. При создании многостраничных узлов Publisher добавит перекрестные ссылки между отдельными страницами автоматически. Выбор варианта BusinessSite (коммерческий узел), приводит к тому, что "мастер" предлагает на выбор несколько заготовок страниц, которые, по его разумению, могут пригодиться.
Можно быстро подготовить каркас многостраничного Web-узла. "Мастер" помогает рационально разместить текстовый и графический материал. Все редактирование осуществляется в WYSIWYG-среде Publisher. Предусмотрено размещение на Web-страницах таблиц.
Реорганизованная библиотека графики ClipGallery поддерживает 256-цветные изображения. Дополнительные картинки для нее можно получить из Web с помощью функции MicrosoftClipGalleryLive.
Интерфейс связи с БД 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.
|
Интерпретируемые загружаемые Intranet-приложения
Предложенная фирмой Sun технология Java ориентирует взаимодействие между клиентом и сервером на поток команд, а не данных. В ходе сеанса обеспечивается фоновая подкачка через сеть на компьютер клиента программных агентов - апплетов, которые берут на себя функции обеспечения гибкого взаимодействия. Все, что нужно для этого - встроить в Web-броузер исполняющую систему для апплетов.
Для исполнения апплетов на любой архитектуре необходимо обеспечить их выполнение на абстрактной архитектуре. Конкретизацией занимается Web-броузер. Апплеты представляют собой переносимый бинарный код, способный функционировать на любой архитектуре, где реализована виртуальная Java-машина, интерпретирующая байт-коды, порожденные соответствующим компилятором. Байт-коды были впервые реализованы при создании переносимых Pascal-программ и получили название P-кодов.
Рис. 1.3. Схема интерпретации загружаемых Intranet-приложений
Схема, используемая при реализации языка Java, во многом схожа с принципами P-кодов. Исходный текст на языке Java транслируется специальным конвертером (JavaCompiler) в Java-байт-код. При использовании в Internet/Intranet этот код передается по каналам связи на удаленную машину, где попадает в загрузчик байт-кодов (BytecodeLoader). Затем он подвергается специальной динамической проверке, которую осуществляет верификатор байт-кодов (BytecodeVerifier). Предварительные проверки, возложенные на верификатор, гарантируют корректность типов параметров всех пришедших байт-инструкций, отсутствие переполнения стека операндов и, наконец, корректность доступа к полям объекта с учетом атрибутов. Это предпринято с целью обеспечить безопасность исполняемого кода, а также для проведения скрытой оптимизации. Затем проверенный байт-код передается интерпретатору, который посредством исполняющей системы виртуальной Java-машины осуществляет привязку к конкретной архитектуре.
При построении информационных приложений с использованием Java-технологии получается классическая двух- или трехзвенная архитектура клиент-сервер (рисунок 1.3), а гипертекст уходит на задний план и выполняет лишь роль инициатора апплетов. Существенным достоинством такой технологии является независимость приложения от аппаратной платформы. Но есть и немало недостатков: невысокое быстродействие вследствие интерпретации байт-кодов, возврат к оконной метафоре "рабочего стола", остаются те же проблемы организации связи с БД.
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-приложения с доступом к БД
ISAPI и NSAPI
Ведущие поставщики, такие как Netscape, BorlandInternational, Microsoft и Sun, устраняют недостатки, присущие спецификации CGI, используя вместо нее собственные API-интерфейсы. Netscape предлагает NetscapeServerAPI, компания Microsoft разрабатывает технологию ActiveX и интерфейсы InternetServerAPI (ISAPI), которые взаимодействуют с совместимыми OLE-серверами для выполнения распределенных вычислений. Sun занимается созданием интерфейса JDBC, который позволит устанавливать непосредственную связь между Web-страницами, написанными на языке Java, и базой данных. Некоторые API-интерфейсы из набора JDBC уже предлагаются пользователям, но большая их часть находится в стадии разработки.
Microsoft выпустила Web-сервер InternetInformationServer (IIS), поддерживающий ISAPI, который входит в состав WindowsNT и тесно интегрирован с СУБД SQLServer. Запрос передается серверу IIS, который использует ISAPI для извлечения данных из БД и передачи их пользователю в формате HTML. Представители Microsoft считают, что такое решение намного проще в использовании, чем CGI, и работает на порядок быстрее.
Oracle предлагает ПО WebServer, который также использует API-интерфейсы Oracle. С его помощью можно разрабатывать приложения на языках PL/SQL, C и C++, которые исполняют запросы к базе данных, написанные на языке PL/SQL. В дальнейшем компания намерена дополнить WebServer поддержкой спецификаций JDBC.
Кроме риска, связанного с защитой данных, CGI присущи ограниченные возможности масштабирования и невысокое быстродействие. Каждая реализация CGI-сценария запускается в своем собственном адресном пространстве, а не в адресном пространстве Web-сервера. Для 32-разрядных систем Windows это означает, что каждое обращение к CGI-сценарию требует запуска приложения WinExec, загрузки с диска новой копии исполняемой программы и, возможно, новой копии сценария, а также создания нового адресного пространства с новым процессом и новой структурой указателей. Часто сам сценарий делает очень мало, поэтому непроизводительные затраты на создание процесса составляют большую часть времени выполнения сценария CGI.
Один из способов улучшить эту ситуацию - создать расширение Web-сервера, которое запускается как динамическая библиотека DLL и выполняет обработку каждого вызова сервера по отдельной структуре. Это равнозначно созданию структуры указателей в адресном пространстве Web-сервера для каждого клиентского запроса, что значительно проще, чем создание процесса для каждого клиентского запроса.
Два ведущих производителя Web-серверов, Netscape и Microsoft, опубликовали свои собственные патентованные схемы расширения Web-сервера, основанные на DLL. Интерфейс NSAPI компании Netscape работает на платформе Unix, которая поддерживает совместно используемые объекты. Интерфейс ISAPI корпорации Microsoft не будет работать в Unix, поскольку сервер IIS этой же корпорации запускается только на системе WindowsNTServer.
DLL-библиотеки ISAPI имеют две необходимые точки входа - GetExtensionVersion и HttpExtensionProc. Первый вызов позволяет серверу узнавать номера версий расширений DLL и строку описания при инициализации, а второй эквивалентен процедуре main расширения. Информация в HttpExtensionProc передается при помощи единственного параметра и указателя управляющего блока расширения. Структура этого блока несет главную информацию, которая должна быть направлена в переменные среды CGI-программы.
ISAPI может следующее:
запросить дополнительную информацию по имени при помощи вызова GetServerVariable; считать информацию из тела HTTP- запроса Web-клиента при помощи вызова ReadClient; послать информацию HTTP-клиенту при помощи вызова WriteClient; возвратить серверу информацию о расположении, переадресации и состоянии процесса при помощи вызова ServerSupportFunction.
Дополнительную информацию по ISAPI вы можете найти в IISSDK корпорации Microsoft по адресу: http://www.microsoft.com/intdev/.
Дать резюме для NSAPI нелегко. Будучи аналогичным ISAPI, интерфейс NSAPI все же является более сложным и теснее привязан к конфигурации сервера, хотя и более гибок. Конфигурация каждой функции NSAPI должна быть задана в объектной базе данных конфигурации Netsite. Блоки параметров NSAPI базируются на парах name-value, что во многом аналогично переменным Web-форм. Дополнительную информацию по NSAPI можно найти по адресу: http://www.netscape.com/newsref/std/server_api.html.
Когда каждый компьютер в мире наконец получит свой Web-сервер, возникнет интересный потребительский рынок для расширений серверов. Любопытно, найдутся ли желающие провести опрос, чтобы получить возможность предсказать, когда же это произойдет?
Использование интерфейса CGI для связи с СУБД
Первым технологическим решением, обеспечивающим создание интерактивных страниц Web, стал API-интерфейс CGI. Эта спецификация позволяет строить программы, расширяющие возможности Web-сервера, которые позволяют разработчикам обращаться к HTTP-серверам, чтобы оперативно выводить информацию в ответ на запросы пользователя. CGI-программа исполняется на сервере, обеспечивая обработку данных и запросов пользователя. Программы, поддерживающие CGI, могут осуществлять обычные операции обработки данных, включая вычисления, исполнение запросов к базе данных, обновление БД и взаимодействие с другими сетевыми приложениями. Кроме того, CGI-программы автоматически определяют, какие HTML-форма, шаблон или документ должны быть выведены на экран в ответ на запрос пользователя.
Программы, поддерживающие спецификацию CGI, можно писать на различных языках программирования, в том числе С, С++ и PERL. Они могут обращаться к реляционным БД, считывать и выводить данные, собирать информацию с других компьютеров и исполнять многие другие функции. Множество CGI-программ самого различного назначения бесплатно распространяются по Internet. По мнению аналитиков, принципиальные ограничения на функциональные возможности CGI-совместимых продуктов отсутствуют. Эти программы могут взаимодействовать практически с любой реляционной базой данных и Web-сервером. Однако CGI-продукты имеют один существенный недостаток: не поддерживают непрерывную связь между БД и Web-сервером. Они подключаются к базе данных, исполняют запрос пользователя Web-страницы, а затем отключаются от БД. При следующем запросе весь процесс подключения к БД повторяется.
На сленге Web-мастеров любая внешняя программа, запускаемая Web-сервером в соответствии со спецификациями CGI, называется CGI-скриптом. CGI-скрипт может быть написан на языке программирования (С, С++, Паскаль и т.д.) или на командном языке (языки семейства shell, perl и т. д.). CGI-скрипт, выполняющий роль посредника между Web-сервером и другими видами серверов (например, сервером баз данных), называется шлюзом (видимо, более правильно было бы использовать термин CGI-шлюз). Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения из клиента на сервер. CGI-шлюзы представляют собой средство для организации трехзвенной (в общем случае, многозвенной) архитектуры клиент-сервер.
В спецификациях CGI предусмотрены четыре способа взаимодействия Web-сервера и CGI-скрипта (по крайней мере, в среде ОС Unix). Первый способ состоит в использовании создаваемых сервером переменных окружения, через которые передается как общая информация, независящая от функциональных особенностей CGI-скрипта (например, имя и версия Web-сервера), так и специфические данные, определяющие поведение CGI-скрипта (скажем набор значений, введенных в форму на стороне клиента). Второй способ заключается в формировании параметров argc и argv, которые передаются функции mainCGI-скрипта (как если бы CGI-скрипт вызывался командной строкой в интерактивном режиме). Этот способ применяется для реализации ограниченного класса запросов ISINDEX. Наконец, входные параметры могут передаваться CGI-скрипту через файл стандартного ввода, а CGI-скрипт может передавать Web-серверу результирующие данные через файл стандартного вывода.
Использование комплексов защиты сетей
Всего несколько месяцев назад типичная программа-брандмауэр представляла собой не очень тщательно отделанное UNIX-приложение, основанное на использовании какой-то одной довольно простой технологии. При его разработке удобство пользования стояло в списке приоритетов явно ближе к концу, чем к началу.
Нынешнее поколение брандмауэров демонстрирует, насколько значителен прогресс в данной области и насколько быстро он достигнут. Лучшие из современных продуктов предлагают сложные настраиваемые схемы управления доступом, позволяющие очень подробно расписать, кому разрешен доступ в корпоративную сеть и при каких условиях. Многие из них оснащены графическим пользовательским интерфейсом, делающим управление многочисленными параметрами более удобным, благодаря чему сокращается вероятность возникновения ошибок, любая из которых может впоследствии очень дорого обойтись. Растет число продуктов, ориентированных в первую очередь на платформу WindowsNT.
По мере того, как все больше предприятий открывают свои сети для Internet-трафика, брандмауэры приобретают статус ПО первой необходимости. Это один из важнейших "бастионов безопасности", защищающих локальную сеть или интрасеть корпорации от большинства попыток несанкционированного проникновения, хотя ни одна из этих программ не гарантирует той надежности, какой можно было ожидать от ПО с таким названием. Было бы неосторожно полагаться только на брандмауэр, необходимо дополнять его другими средствами обеспечения безопасности.
Место брандмауэра обычно между внутренними локальными и глобальными сетями с одной стороны и внешними сетями, такими как Internet, с другой. Основное его назначение - ограничение доступа. По существу, такая программа представляет собой контрольно-пропускной пункт, где у каждого проверяют документы. Брандмауэру предъявляются имена пользователей, идентификаторы приложений, IP-адреса и другие характеристики проходящей информации. Затем к этим данным применяются правила, заданные администратором системы.
Если раньше в типичном брандмауэре использовалась какая-либо одна технология, то теперь все чаще встречаются гибридные системы, а администратору предоставляется широкий выбор методов обеспечения безопасности. Например, он может разрешить некоторой группе абонентов сети неограниченный доступ, а другой - использовать лишь систему LotusNotes, и то только в установленные часы.
Но расширение возможностей ведет к усложнению работы с системой. К счастью, многие продукты оснащаются графическим пользовательским интерфейсом, что значительно облегчает администратору принятие и реализацию многих решений.
Хотя количество брандмауэров, предназначенных для среды UNIX, остается весьма значительным, все большую популярность приобретает платформа WindowsNT, а некоторые продукты позволяют осуществлять и с рабочих станций "легкой весовой категории", функционирующих под управлением Windows 95.
Еще недавно брандмауэры в зависимости от применяемого метода управления доступом делили на четыре большие категории: фильтры пакетов, шлюзы уровня приложения, шлюзы низкого уровня и серверы-посредники (proxy). Большинство же современных продуктов - это гибриды, не укладывающиеся ни в одну из названных категорий.
Метод фильтрации пакетов состоит в том, что все поступающие в маршрутизатор пакеты проверяются на соответствие адресов отправления/назначения и запрашиваемых/предо-ставляемых сервисов тем или иным условиям. Этот метод - самый простой в администрировании, зато построенную на его основе защиту и преодолеть легче. Процесс задания правил, на основе которых предоставляется или не предоставляется доступ, отнимает много времени и чреват ошибками. Необходимо перечислить все типы пакетов, пропуск которых не разрешен. Каждая ошибка - это серьезная пробоина в вашем оборонительном щите.
Шлюзы уровня приложения представляют собой специализированные программы, ограничивающие трафик, связанный с определенным приложением, например, с системой электронной почты или с LotusNotes. В этих системах применяются особые коды для каждого приложения, а не для сетевого трафика в целом. Такие шлюзы считаются надежными благодаря тому, что администратору, формулирующему правила доступа, приходится учитывать значительно меньшее количество вариантов. У средств этой группы хорошая репутация.
Шлюзы низкого уровня предназначены для соединения внешнего TCP/IP-порта с каким-либо внутренним устройством, например, с сетевым принтером. Эти шлюзы функционируют как интеллектуальные фильтры, определяющие допустимость сеансов связи по протоколу TCP или UDP. Конкретное приложение, участвующее в обмене, не идентифицируется.
Серверы-посредники образуют отдельный класс продуктов, но могут выполнять, в частности, и функции брандмауэра. На таком сервере обычно хранят тиражируемые копии некоторых Web-страниц, чтобы упростить доступ к ним отдельных категорий пользователей. Так, можно разместить на нем информацию, предназначенную для свободного доступа, а конфиденциальную упрятать в недра корпоративной сети подальше от точки входа.
Современные системы являются, как правило, гибридными. Даже если основной продукт основан на технологии одного типа, к нему обычно предлагаются факультативные компоненты. Такие гибриды позволяют более гибко задавать ограничения доступа.
Помимо перечисленных выше, существует еще одна технология, называемая контролем отклонений, используя ее, выявляют характеристики содержимого пакетов при нормальной работе с системой и на этой основе формируют правила для проверки. Указанная технология реализована в пакете FireWall-1, где различные наборы правил создаются в зависимости от контекста обмена: источника и пункта назначения. Например, правило, сформированное на основе собранной информации о характеристиках взаимодействия с некоторым приложением благонадежного клиента, может затем применяться для контроля за работой с тем же приложением других клиентов. При таком подходе пакет работает на самом нижнем уровне протокола OSI, так что контроль проходящих сообщений осуществляется прежде, чем они успеют вступить во взаимодействие с операционной системой.
Еще одна важная административная функция - регистрация. Эффективная стратегия обеспечения безопасности требует регистрировать все попытки проникновения через брандмауэр, включая и неудавшиеся. Зная источник опасности, администратор сможет своевременно принять соответствующие меры по укреплению "обороны". Немедленное уведомление администратора о происходящем очень важно. Некоторые продукты используют для этого телефонную связь, другие - пейджинговую или систему электронной почты. Но у электронной почты есть один недостаток - сообщение остается непрочитанным, пока адресат не заглянет в свой почтовый ящик. Пейджеру обычно удается быстрее привлечь внимание.
Web-сервер может быть отрезан от сети, когда какой-то злоумышленник, используя архитектуру протокола TCP/IP, посылает запрос с фальшивым IP-адресом. В результате Web-сервер не в состоянии установить соединение, так как приемник сообщения не может получить подтверждения от отправителя, которого не существует. Дело в том, что согласно протоколу TCP/IP, при подключении конечного пользователя к Internet его компьютер обменивается сообщениями с хост-машиной на другом конце связи. Если пользователь присваивает своему компьютеру фальшивый IP-адрес, то хост-машина некоторое время сохраняет связь и тщетно ждет подтверждения. Если число таких обращений достаточно велико, хост-машина будет заниматься только их обработкой и не сможет реагировать на нормальные запросы.
Однако поставщики брандмауэров, защищающих интрасети от вторжений извне, не дремлют. Они выпускают для своих продуктов дополнительные модули, которые предохраняют Web-серверы от фальшивых запросов. В различных продуктах данная проблема решается по-разному. Например, программа SYNDefender компании CheckPoint проверяет все запросы на соединение до того, как они поступят в хост-машину.
Продукт N.O.A.H (NoAttackHere) фирмы LivermoreSoftwareLaboratories выявляет повторяющиеся запросы на связь, сокращает время, в течение которого хост-машина ждет подтверждения от инициатора запроса, исключает все предыдущие записи в очереди на подключение и сообщает системному администратору о проблеме.
Брандмауэр Guardian компании LanOptics проверяет каждый поступающий пакет на всех семи уровнях сетевого протокола, чтобы обнаружить какие-либо отклонения от нормы.
Однако, по мнению некоторых экспертов, полностью обезопасить Web-серверы практически невозможно. Можно только максимально затруднить злоумышленнику путь к успеху, защитив ядро системы и тщательно выполняя ее мониторинг. Пользователи должны внимательно отнестись к этой проблеме, так как, с одной стороны угроза атаки вполне реальна, а с другой - средства для ее решения уже существуют.
История развития HTML. Диалекты и стандарты
Изначально HTML, как и положено SGML-приложению, разделял все особенности идеологии SGML. Из сорока с небольшим тегов HTML версии 1.2 (датированной июнем 1993 г.) всего три, да к тому же и не рекомендованных к использованию, тега осмеливались намекать на физические параметры представления документа. Вся разметка была чисто логической, и лишь в описательной части стандарта, сопровождающей формальное определение тегов, можно было прочесть что-нибудь вроде "в графических броузерах действие этого тега может передаваться курсивным начертанием".
А первым (и долгое время единственным) графическим броузером в те далекие времена была программа Mosaic, разработанная, как и собственно WWW, в научном учреждении - Национальном центре суперкомпьютерных приложений США (NationalCenterforSupercomputerApplications, NCSA; http://www.ncsa.uiuc.edu). Так что нет ничего удивительного в том, что в этот "золотой век" никаких противоречий между официальными стандартами и их реализацией в броузерах еще не существовало. HTML неторопливо развивался, оставаясь в рамках парадигмы структурной разметки, и в апреле 1994 г. началась подготовка спецификации следующей версии языка - 2.0. Этим занимался образованный в том же году Консорциум W3 (W3 Consortium, сокращенно W3C; http://www.w3.org/pub/WWW), унаследовавший от CERN верховную власть и авторитет в мире WWW.
В настоящий момент консорциум, имеющий статус "международной некоммерческой организации", объединяет свыше 150 организаций-членов, в том числе фирмы Netscape, Microsoft и множество других. Однако в 1994-1995 г.г. его членами были почти исключительно университеты и научные учреждения. Столь "академический" состав W3C сказывался как на самих документах, публикуемых консорциумом, так и на процедуре (и особенно на сроках) их принятия. Достаточно сказать, что окончательный вариант HTML 2.0 (http://ds.internic.net/rfc/rfc1866.txt), единственным серьезным усовершенствованием в котором был механизм бланков (форм) для отсылки информации с компьютера пользователя на сервер, был официально утвержден лишь в сентябре 1995 г., когда в W3C уже полным ходом шло обсуждение HTML 3 (или, как его называли поначалу, "HTML+").
Пожалуй, проект HTML 3 (http://www.w3.org/pub/WWW/MarkUp/html3/) - самая яркая и неоднозначная страница в истории языка. Работа над ним началась в марте 1995 г., и первоначальный вариант стандарта включал в себя много интересных нововведений - теги для создания таблиц, разметки математических формул, вставки обтекаемых текстом рисунков, примечаний и др. Но самое главное - HTML 3.0 был попыткой разрешить уже достаточно очевидное к тому времени противоречие между идеологией структурной разметки и потребностями пользователей, заинтересованных в первую очередь в гибких и богатых возможностях визуального представления.
Чтобы разрешить это противоречие, не оскверняя заветов отцов-основателей HTML, авторы версии 3 ввели в ней поддержку нового средства - так называемых иерархических стилевых спецификаций (CascadingStyleSheets, CSS; http://www.w3.org/pub/WWW/TR/REC-CSS1). Система CSS формально независима от HTML, имеет совершенно иной синтаксис (более того, HTML 3 можно стыковать с разными реализациями CSS, обладающими разным синтаксисом и возможностями), не наследует никаких идеологических ограничений и позволяет, уже в совершенно иных терминах, задавать параметры визуального представления для любого тега HTML. С помощью CSS автор может наконец с чистой совестью указать, каким шрифтом какого кегля набирать заголовки такого-то уровня. И, что самое важное, достигнуто это было не введением новых тегов, а разработкой механизма, позволяющего влиять на интерпретацию уже существующих тегов логической разметки, причем с учетом контекста их употребления. Броузеры с текстовым интерфейсом или с синтезатором речи смогут с легкостью проигнорировать эту дополнительную информацию и использовать для оформления свои обычные средства.
Слово cascading в названии системы CSS служит напоминанием о том, что в действительности на вывод каждого тега в документе могут оказывать влияние сразу несколько стилевых спецификаций, образующих иерархическую систему: например, поверх спецификаций, относящихся к конкретному документу, может действовать стилевой файл, общий для всех документов на сервере. Кроме того, пользователь броузера, поддерживающего CSS, может указать свои собственные параметры вывода для тех или иных тегов. Конфликты, которые при этом возникают, разрешаются в пользу более частных, узких спецификаций: то, что указано для конкретного документа, берет верх над спецификациями для всего сервера, а параметры вывода тега в данном контексте имеют преимущество перед параметрами для того же тега "вообще", без учета контекста. В случае же конфликта спецификаций, заданных пользователем, с установками автора страницы побеждают последние, хотя пользователь может при желании изменить эту ситуацию на обратную.
Нет сомнения, что CSS - почти идеальное средство избавить HTML от наследственных дефектов и перевести его развитие на принципиально новые рельсы. Тем досаднее то, как сложилась судьба этого замечательного изобретения. Поскольку спецификацию CSS увязали с другими нововведениями HTML 3, W3C долго не утверждал ее в качестве официального стандарта; задерживалось доведение до более или менее завершенного вида, при котором стала бы возможной ее реализация в коммерческих продуктах.
А между тем коммерческое освоение WWW не заставило себя долго ждать. В начале 1994 г. группа разработчиков броузера Mosaic под предводительством Джеймса Кларка, который за несколько лет до того создал и "вывел в люди" компанию SiliconGraphics, основала корпорацию NetscapeCommunications и вскоре выпустила первую версию коммерческого броузера NetscapeNavigator. Вскоре после этого начался экспоненциальный рост WWW, продолжающийся по сей день. Не менее впечатляющие темпы показала при этом и Netscape, которая в конце 1995 г. объявила, что достигнутые результаты делают ее самой быстрорастущей компанией в мировой истории (!). Чтобы закрепить лидерство (на которое, впрочем, тогда еще мало кто покушался) и привлечь новых пользователей, Netscape, увы, вводила в HTML все новые и новые усовершенствования, - и эти усовершенствования поддерживались только броузером NetscapeNavigator.
Практически все новые теги, в изобилии предлагавшиеся Netscape, были направлены на улучшение внешнего вида документа и расширение возможностей его форматирования. Причины этого понятны: чтобы убедить, скажем, бизнесмена, что ему пора обратить внимание на новое средство коммуникации и рекламы, прежде всего нужно показать ему это средство в привлекательном, "товарном" виде. Поставив себе целью завоевание корпоративного рынка, разработчики Netscape не могли (да и не хотели, по-видимому) уделять должное внимание сложившимся традициям развития языка. В результате тот вариант HTML, который поддерживала выпущенная в январе 1996 г. версия NetscapeNavigator 2.0, представлял собой довольно странную смесь старых логических тегов с беззастенчиво вломившимися новыми, ориентированными на графическое экранное представление документа и затрудняющими его воспроизведение на других устройствах вывода.
Такая политика компании, с одной стороны, принесла ей быстрый и впечатляющий успех (одно время версии NetscapeNavigator составляли более 90% всех используемых броузеров), а с другой - вызвала ожесточенное сопротивление наиболее сознательной части HTML-сообщества. Энтузиасты неустанно разъясняли каждому, кто согласен был их слушать, что HTML по природе своей не имеет права зависеть от какого-то конкретного броузера и что заявления типа, "эту страницу лучше всего смотреть в NetscapeNavigator", являются насмешкой над здравым смыслом. Движение "борцов за чистоту HTML" существует и сейчас, однако ощутимого влияния не имеет.
Многие Web-дизайнеры, даже признавая справедливость аргументации "HTML-пуристов", считают использование новых тегов практически оправданным. Неудобства при этом будут испытывать лишь несколько процентов пользователей других броузеров, для которых страницы с этими тегами будут выглядеть совсем не так, как задумал автор (хотя текст в большинстве случаев все равно останется читабельным). Вероятно, аргументы противников Netscape звучали бы более убедительно, если бы сам по себе "официальный" HTML не был столь неимоверно беден изобразительными возможностями. Меня, к примеру, пробирает дрожь при мысли, что для миллионов страниц в современной "паутине", путешествие по которой способно порой принести подлинное эстетическое наслаждение, были бы доступны лишь возможности HTML 2.0.
Помимо использования "плохих" Netscape-ориентированных тегов, широко распространена также практика "злоупотребления" средствами HTML ради сопутствующих им визуальных эффектов. Скажем, вместо того чтобы использовать тег TABLE только для оформления настоящих ("логических") таблиц, Web-дизайнеры сплошь и рядом применяют таблицы без рамок для управления размещением обычного текста и иллюстраций, регулируют с их помощью ширину полей и т.п. Нет нужды объяснять, что оформление в виде таблицы того, что по сути своей таблицей совсем не является, есть прямое нарушение идеологии структурной разметки. "Борцы за чистоту HTML" сломали немало копий, доказывая недопустимость этого и многих других дизайнерских приемов. Но времена постепенно меняются, и теперь любой желающий может увидеть пример такого "злоупотребления" прямо на заглавной странице сервера W3C (http://www.w3.org/pub/WWW).
В конце 1995 г. ситуация в мире HTML была довольно смутной. Популярность броузера Netscape неуклонно росла; программисты этой фирмы готовили к выпуску версию 2.0, которая должна была утвердить господство Netscape на вечные времена благодаря неслыханному набору новшеств, таких как интерфейс подключаемых модулей, поддержка языка Java, встроенный язык сценариев JavaScript, возможность разбивки окна на кадры (frames) и многое другое. К этому времени W3C окончательно завяз в своем проекте HTML 3, который был слишком сильно оторван от реального мира, и на завершение которого у консорциума попросту не хватало ни сил, ни средств. HTML 3 по сравнению с HTML 2.0 был важным шагом вперед, однако он развивался по-прежнему в рамках идеологии структурной разметки, а инструмент, дающий возможность выйти за эти рамки, - система CSS - был еще далек от завершения.
В этот переломный момент в игру вступил новый участник - всемогущая корпорация Microsoft. Долгое время эта компания, привыкшая монопольно владеть своим сектором рынка, недооценивала перспективы Internet и не собиралась как-либо участвовать в развитии этой информационной среды, считая ее, по-видимому, слишком демократичной и непредсказуемой. Однако невероятный взлет Netscape (число копий броузера Navigator измерялось к этому времени уже десятками миллионов) заставил Microsoft изменить мнение.
И именно на броузерном фронте, где господство Netscape оставляло меньше всего шансов конкурентам, корпорация Microsoft нанесла свой главный удар. Поначалу мало кто верил, что броузер MicrosoftInternetExplorer, который тогда существовал в версии 2.0 и не представлял собой ничего выдающегося, сможет составить конкуренцию Netscape. Тем не менее, выпущенная летом 1996 г. версия InternetExplorer 3.0, которая поддерживала почти все расширения Netscape и обладала оригинальным и привлекательным интерфейсом, вызвала настоящий бум и очень быстро утвердилась в качестве "второго главного броузера". Сейчас Microsoft и Netscape делят рынок броузеров почти поровну, и окончательный исход их битвы не берется предсказать никто.
Одновременно с разработкой конкурентоспособного броузера Microsoft решила "навести порядок" и в мире HTML. Взяв под свою опеку W3C, она напитала его денежными и людскими ресурсами и тем самым заработала право едва ли не решающего голоса в этой организации. Проект HTML 3 был заморожен, а вместо него в сжатые сроки создан стандарт HTML 3.2, который, по сути, всего лишь описывает большинство расширений Netscape (с тем же успехом их можно назвать теперь "расширениями Microsoft"). Пройдя обычный в W3C процесс обсуждения и внесения поправок, спецификация HTML 3.2 (http://www.w3.org/pub/WWW/TR/REC-html32.html) была утверждена совсем недавно (в январе этого года) и является, таким образом, последним на настоящий момент официальным стандартом языка. Спираль развития HTML завершила свой первый виток - как и в "золотой век", расхождения между предписаниями стандарта и реализацией HTML в броузерах вновь сведены к минимуму.
Однако HTML сегодня уже совсем не тот, что вначале. Становится все более очевидным, что язык этот в его теперешнем состоянии практически исчерпал перспективы развития, и что добавление новых тегов вряд ли выведет его на принципиально иной уровень. Это особенно понятно тем, кто занимается практическим дизайном: из-за того, что HTML с самого начала не ориентировался на описание внешнего вида документа, он не в состоянии удовлетворительно выполнить эту задачу даже сейчас, при наличии множества визуально-ориентированных тегов. Прямым следствием этого является огромное количество расхождений в интерпретации тегов броузерами. Как бы строго вы ни следовали стандарту, HTML-файл приходится обязательно тестировать по меньшей мере в двух броузерах - NetscapeNavigator и InternetExplorer, и чаще всего такое тестирование не обходится без неприятных сюрпризов: отступы, пробелы, размеры элементов оформления и логика их размещения на странице даже для простейших тегов различаются довольно сильно.
Изображения в качестве гипертекстовых связей
Изображения на HTML-страницах можно использовать не только для просмотра, но и в качестве гипертекстовых связей, как и обычный текст.
Обозначение изображения в качестве гипертекстовой связи не отличается от текста. Для этого применяется тот же тег <A>, но между <A> и </A> вставляется тег <IMG>:
<AHREF="URL"><IMGSRC='имя_файла'></A>
При этом броузер выводит вокруг изображения рамку, чтобы идентифицировать ее как связь. Чтобы подавить вывод рамки можно добавить BORDER=0 в тег <IMG>:
<IMGSRC=myhome.gifBORDER=0>
Язык гипермедиа VRML
VRML отвечает требованиям аппаратной независимости, расширяемости и способности работы с низкоскоростными сетями. Объекты виртуального мира, созданного с помощью VRML, могут содержать объекты из других миров, документов HTML или типов MIME. При выборе объекта загружается либо соответствующий визуализатор MIME, либо программа просмотра VRML.
Стандарт языка содержит определение шести разделов спецификации языка VRML: основные конструкции, базовая координатная система, поля, узлы, размножение, расширение.
Язык гипертекста HTML
Разработчики HTML пытались решить две задачи:
дать дизайнерам гипертекстовых баз данных простое средство создания документов; сделать это средство достаточно мощным, чтобы отразить имевшиеся на тот момент представления об интерфейсе пользователя гипертекстовых баз данных.
Первая задача была решена за счет выбора теговой модели описания документа. Такая модель широко применяется в системах подготовки документов для печати. К моменту создания HTML существовал стандарт языка разметки печатных документов - StandardGeneralisedMarkupLanguage, который и был взят в качестве основы HTML.
Такой подход предполагает наличие еще одной компоненты технологии - интерпретатора языка. В WWW функции интерпретатора разделены между сервером гипертекстовой базы данных и клиентом.
Язык гипертекстовой разметки HTML
Гипертекст играет роль своеобразного клея, который соединяет различные информационные ресурсы.
Статический гипертекст, хранящийся на Web-сервере, отображается и служит для навигации, может поддержать диалог с пользователем - ввод данных по электронной форме с пересылкой на сервер.
Возможна генерация динамического гипертекста с использованием данных из других ресурсов (например, БД).
Для представления гипертекста служит язык разметки HTML, обеспечивающий независимость описания Web-структур от броузеров и их однозначная интерпретация на разных платформах.
Язык программирования Java
Java - это современный язык для разработки приложений, созданный специально для распределенных сред. Java является простым объектно-ориентированным языком, не требующим длительного обучения программистов. Для работы в сетецентрической среде возрастающей сложности система программирования должна соответствовать объектно-ориентированной концепции.
Java является знакомымязыком программирования, так как синтаксис Java во многом напоминает C++. Исключение адресной арифметики по мнению создателей должно обеспечить более надежный код по сравнению с С++. Надежность программ обеспечивается проверками на этапе компиляции и последующей проверкой во время выполнения.
Средствабезопасности, встроенные в Java, обеспечивают защиту как от внешнего проникновения в файловую систему, так и от модификации кода вирусами. Другими важными свойствами Java является независимость от платформы, переносимость, многопоточность и динамическая сборка программы.
Многопоточность встроена на уровень языковых примитивов. Достаточно объявить некоторый метод синхронным, чтобы на время его работы с объектами они автоматически блокировались. Снимается блокировка также автоматически, независимо от того, нормально или аварийно завершилась работа метода. Блокировки сделаны реентерабельными, что исключает возможность зависания при повторном блокировании объекта одним и тем же процессом.
Java-технология состоит из следующих основных частей: программирования на объектно-ориентированном языке Java в классическом смысле этого слова и разработки мобильных Java байт-кодов. Сюда часто относят и программирование на JavaScript.
Система программирования в среде Java позволяет компилировать программы для компьютерной платформы, на которой она стоит в том же ключе, как и любая другая, например, С или С++. В этом случае главным отличием Java-программ является использование Java-классов, обеспечивающих разработку безопасных, распределенных систем. При этом утверждается, что язык позволяет делать гораздо меньше ошибок при разработке программ, главным образом, из-за отсутствия адресной арифметики.
Концепция мобильных Java байт-кодов (апплетов) была специально разработана для использования в WWW. Для использования апплетов в язык гипертекстовой разметки HTML был введен тег APPLET, указывающий имя апплета и параметры его вызова. При этом обработка HTML-документов выполняется броузером также, как и при обработке встроенной в документ графики. Сначала запрашивается документ, анализируется его содержание, а потом, если имеются теги APPLET, подгружаются апплеты. После получения всех апплетов они могут быть выполнены. Из этой схемы ясно, что броузер является одновременно и интерпретатором байт-кодов. Используя библиотеку классов, можно разработать эффектные динамические мультимедийные страницы. Кроме того, применение байт-кодов позволяет организовать распределенные процедуры вычислений с использованием различных серверов, с которыми можно взаимодействовать по разным протоколам.
В настоящее время выпущено несколько систем визуальной разработки программ на Java. Наиболее известными являются:
JavaWorkShop фирмы Sun; SymantecCafeforWindows 95 / WindowsNT фирмы Symantec; Latte фирмы Borland; VisualJ++ фирмы Microsoft.
Язык сценариев JavaScript
Язык программирования сценариев JavaScript, разработанный фирмой Netscape совместно с Sun,- это компактный, объектно-ориентированный язык, предназначенный для создания небольших клиентских и серверных Internet/Intranet-приложений. В целом язык ориентирован на встроенные объекты NetscapeNavigator: окна, формы, поля форм, элементы рабочих областей Navigator. Это сильно облегчает обучение языку и позволяет сразу писать интересные и полезные программы.
Сценарии, написанные на языке JavaScript, включаются в состав HTML-документов, размещаются на Web-сервере и вместе с ними передаются клиентам по запросам. Броузеры распознают встроенные в текст документа программы и выполняют их путем интерпретации. Используя JavaScript, можно организовать многооконный интерфейс с локальной справочной системой и встроенной графикой, возложив при этом многие вопросы проверки вводимых пользователем данных на JavaScript. По своим функциональным возможностям JavaScript довольно сильно уступает Java: можно организовать прокрутку текста, организовать открытие нового окна, запрограммировать калькулятор, но не более того.
Примерами программ на JavaScript могут служить сценарии, проверяющие введенные пользователем данные, выполняющие какие-либо действия по открытию и закрытию документа. Такие сценарии могут быть обработчиками диалоговых событий - распознавать и реагировать на действия пользователя - нажатие кнопок мыши, ввод данных в форме и перемещение по странице. Помимо этого с помощью сценария можно управлять самим броузером и атрибутами документа.
Язык SQL
SQL является наиболее мощным и популярным языком манипулирования данными реляционных систем управления базами данных (СУБД). Основные возможности языка, доступные в SQL-ориентированных СУБД, определены в рамках специального стандарта ANSI/ISO. SQL-стандарт признан с 1982 года, а формально определен как ANSI-стандарт Х3.135 в 1986 году и как ISO-стандарт - в 1987. Стандартизация возможностей SQL продолжается и сейчас. На смену стандарту SQL2, реализованному в большинстве коммерческих СУБД, приходит новый вариант - SQL3.
SQL сочетает в себе возможности языка определения данных, языка манипулирования данными и языка запросов. При этом он реализует и основные функции реляционных СУБД:
Язык виртуальной реальности VRML
После создания HTML естественным было создание открытого, общепринятого языка, позволяющего описывать трехмерные сцены и увязывать их с гиперсвязями, принятыми в WWW - что-то типа HTML, но применительно к виртуальной реальности. Так возник термин VirtualRealtyMarkupLanguage (VRML), где слово Markup было позднее заменено на Modelling, для того, чтобы подчеркнуть его графическую сущность. Первая версия VRML появилась в 1994г. на основе формата OpenInventorASCIIFileFormat (IFF) фирмы SGI. Подмножество IFF, расширенное сетевыми возможностями, было положено в основу базовых форм VRML.
Языки и средства разработки Intranet-приложений
Для разработки Internet/Intranet-приложений используется широкий спектр языков и средств программирования:
язык разметки гипертекста HTML, средства редактирования и конвертирования для создания и интерпретации Web-структур; средства подготовки, конвертирования и воспроизведения графических изображений и карт изображений, анимации, аудио и видео; язык виртуальной реальности VRML для генерации и управления трехмерными сценами; язык Java и средства программирования мобильных приложений; языки сценариев и средства программирования для разработки интерактивных страниц.